/**
* Notify to invalidate cache for an inode
*
- * @param ch the channel through which to send the invalidation
+ * @param se the session object
* @param ino the inode number
* @param off the offset in the inode where to start invalidating
* or negative to invalidate attributes only
* @param len the amount of cache to invalidate or 0 for all
* @return zero for success, -errno for failure
*/
-int fuse_lowlevel_notify_inval_inode(struct fuse_chan *ch, fuse_ino_t ino,
+int fuse_lowlevel_notify_inval_inode(struct fuse_session *se, fuse_ino_t ino,
off_t off, off_t len);
/**
* don't call it with a lock held that can also be held by a filesystem
* operation.
*
- * @param ch the channel through which to send the invalidation
+ * @param se the session object
* @param parent inode number
* @param name file name
* @param namelen strlen() of file name
* @return zero for success, -errno for failure
*/
-int fuse_lowlevel_notify_inval_entry(struct fuse_chan *ch, fuse_ino_t parent,
+int fuse_lowlevel_notify_inval_entry(struct fuse_session *se, fuse_ino_t parent,
const char *name, size_t namelen);
/**
* don't call it with a lock held that can also be held by a filesystem
* operation.
*
- * @param ch the channel through which to send the notification
+ * @param se the session object
* @param parent inode number
* @param child inode number
* @param name file name
* @param namelen strlen() of file name
* @return zero for success, -errno for failure
*/
-int fuse_lowlevel_notify_delete(struct fuse_chan *ch,
+int fuse_lowlevel_notify_delete(struct fuse_session *se,
fuse_ino_t parent, fuse_ino_t child,
const char *name, size_t namelen);
* If this function returns an error, then the store wasn't fully
* completed, but it may have been partially completed.
*
- * @param ch the channel through which to send the invalidation
+ * @param se the session object
* @param ino the inode number
* @param offset the starting offset into the file to store to
* @param bufv buffer vector
* @param flags flags controlling the copy
* @return zero for success, -errno for failure
*/
-int fuse_lowlevel_notify_store(struct fuse_chan *ch, fuse_ino_t ino,
+int fuse_lowlevel_notify_store(struct fuse_session *se, fuse_ino_t ino,
off_t offset, struct fuse_bufvec *bufv,
enum fuse_buf_copy_flags flags);
/**
* buffer. For dirty pages the write() method will be called
* regardless of having been retrieved previously.
*
- * @param ch the channel through which to send the invalidation
+ * @param se the session object
* @param ino the inode number
* @param size the number of bytes to retrieve
* @param offset the starting offset into the file to retrieve from
* @param cookie user data to supply to the reply callback
* @return zero for success, -errno for failure
*/
-int fuse_lowlevel_notify_retrieve(struct fuse_chan *ch, fuse_ino_t ino,
+int fuse_lowlevel_notify_retrieve(struct fuse_session *se, fuse_ino_t ino,
size_t size, off_t offset, void *cookie);
}
}
-int fuse_lowlevel_notify_inval_inode(struct fuse_chan *ch, fuse_ino_t ino,
+int fuse_lowlevel_notify_inval_inode(struct fuse_session *se, fuse_ino_t ino,
off_t off, off_t len)
{
struct fuse_notify_inval_inode_out outarg;
struct fuse_ll *f;
struct iovec iov[2];
- if (!ch)
+ if (!se)
return -EINVAL;
- f = fuse_chan_session(ch)->f;
+ f = se->f;
if (!f)
return -ENODEV;
iov[1].iov_base = &outarg;
iov[1].iov_len = sizeof(outarg);
- return send_notify_iov(f, ch, FUSE_NOTIFY_INVAL_INODE, iov, 2);
+ return send_notify_iov(f, se->ch, FUSE_NOTIFY_INVAL_INODE, iov, 2);
}
-int fuse_lowlevel_notify_inval_entry(struct fuse_chan *ch, fuse_ino_t parent,
+int fuse_lowlevel_notify_inval_entry(struct fuse_session *se, fuse_ino_t parent,
const char *name, size_t namelen)
{
struct fuse_notify_inval_entry_out outarg;
struct fuse_ll *f;
struct iovec iov[3];
- if (!ch)
+ if (!se)
return -EINVAL;
- f = fuse_chan_session(ch)->f;
+ f = se->f;
if (!f)
return -ENODEV;
iov[2].iov_base = (void *)name;
iov[2].iov_len = namelen + 1;
- return send_notify_iov(f, ch, FUSE_NOTIFY_INVAL_ENTRY, iov, 3);
+ return send_notify_iov(f, se->ch, FUSE_NOTIFY_INVAL_ENTRY, iov, 3);
}
-int fuse_lowlevel_notify_delete(struct fuse_chan *ch,
+int fuse_lowlevel_notify_delete(struct fuse_session *se,
fuse_ino_t parent, fuse_ino_t child,
const char *name, size_t namelen)
{
struct fuse_ll *f;
struct iovec iov[3];
- if (!ch)
+ if (!se)
return -EINVAL;
- f = fuse_chan_session(ch)->f;
+ f = se->f;
if (!f)
return -ENODEV;
iov[2].iov_base = (void *)name;
iov[2].iov_len = namelen + 1;
- return send_notify_iov(f, ch, FUSE_NOTIFY_DELETE, iov, 3);
+ return send_notify_iov(f, se->ch, FUSE_NOTIFY_DELETE, iov, 3);
}
-int fuse_lowlevel_notify_store(struct fuse_chan *ch, fuse_ino_t ino,
+int fuse_lowlevel_notify_store(struct fuse_session *se, fuse_ino_t ino,
off_t offset, struct fuse_bufvec *bufv,
enum fuse_buf_copy_flags flags)
{
size_t size = fuse_buf_size(bufv);
int res;
- if (!ch)
+ if (!se)
return -EINVAL;
- f = fuse_chan_session(ch)->f;
+ f = se->f;
if (!f)
return -ENODEV;
iov[1].iov_base = &outarg;
iov[1].iov_len = sizeof(outarg);
- res = fuse_send_data_iov(f, ch, iov, 2, bufv, flags);
+ res = fuse_send_data_iov(f, se->ch, iov, 2, bufv, flags);
if (res > 0)
res = -res;
fuse_ll_clear_pipe(f);
}
-int fuse_lowlevel_notify_retrieve(struct fuse_chan *ch, fuse_ino_t ino,
+int fuse_lowlevel_notify_retrieve(struct fuse_session *se, fuse_ino_t ino,
size_t size, off_t offset, void *cookie)
{
struct fuse_notify_retrieve_out outarg;
struct fuse_retrieve_req *rreq;
int err;
- if (!ch)
+ if (!se)
return -EINVAL;
- f = fuse_chan_session(ch)->f;
+ f = se->f;
if (!f)
return -ENODEV;
iov[1].iov_base = &outarg;
iov[1].iov_len = sizeof(outarg);
- err = send_notify_iov(f, ch, FUSE_NOTIFY_RETRIEVE, iov, 2);
+ err = send_notify_iov(f, se->ch, FUSE_NOTIFY_RETRIEVE, iov, 2);
if (err) {
pthread_mutex_lock(&f->lock);
list_del_nreq(&rreq->nreq);