diff options
Diffstat (limited to 'fuse/include/fuse_lowlevel.h')
-rw-r--r-- | fuse/include/fuse_lowlevel.h | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/fuse/include/fuse_lowlevel.h b/fuse/include/fuse_lowlevel.h index 36cf26ddf..6971f732e 100644 --- a/fuse/include/fuse_lowlevel.h +++ b/fuse/include/fuse_lowlevel.h @@ -462,7 +462,7 @@ struct fuse_lowlevel_ops { * @param off offset to read from * @param fi file information */ - void (*read) (fuse_req_t req, fuse_ino_t ino, size_t size, off64_t off, + void (*read) (fuse_req_t req, fuse_ino_t ino, size_t size, loff_t off, struct fuse_file_info *fi); /** @@ -489,7 +489,7 @@ struct fuse_lowlevel_ops { * @param fi file information */ void (*write) (fuse_req_t req, fuse_ino_t ino, const char *buf, - size_t size, off64_t off, struct fuse_file_info *fi); + size_t size, loff_t off, struct fuse_file_info *fi); /** * Flush method @@ -612,7 +612,7 @@ struct fuse_lowlevel_ops { * @param off offset to continue reading the directory stream * @param fi file information */ - void (*readdir) (fuse_req_t req, fuse_ino_t ino, size_t size, off64_t off, + void (*readdir) (fuse_req_t req, fuse_ino_t ino, size_t size, loff_t off, struct fuse_file_info *fi); /** @@ -941,7 +941,7 @@ struct fuse_lowlevel_ops { * @param fi file information */ void (*write_buf) (fuse_req_t req, fuse_ino_t ino, - struct fuse_bufvec *bufv, off64_t off, + struct fuse_bufvec *bufv, loff_t off, struct fuse_file_info *fi); /** @@ -959,7 +959,7 @@ struct fuse_lowlevel_ops { * @param bufv the buffer containing the returned data */ void (*retrieve_reply) (fuse_req_t req, void *cookie, fuse_ino_t ino, - off64_t offset, struct fuse_bufvec *bufv); + loff_t offset, struct fuse_bufvec *bufv); /** * Forget about multiple inodes @@ -1015,7 +1015,7 @@ struct fuse_lowlevel_ops { * see fallocate(2) */ void (*fallocate) (fuse_req_t req, fuse_ino_t ino, int mode, - off64_t offset, off64_t length, struct fuse_file_info *fi); + loff_t offset, loff_t length, struct fuse_file_info *fi); }; /** @@ -1249,7 +1249,7 @@ int fuse_reply_bmap(fuse_req_t req, uint64_t idx); */ size_t fuse_add_direntry(fuse_req_t req, char *buf, size_t bufsize, const char *name, const struct stat *stbuf, - off64_t off); + loff_t off); /** * Reply to ask for data fetch and output buffer preparation. ioctl @@ -1329,12 +1329,16 @@ int fuse_lowlevel_notify_poll(struct fuse_pollhandle *ph); * @return zero for success, -errno for failure */ int fuse_lowlevel_notify_inval_inode(struct fuse_chan *ch, fuse_ino_t ino, - off64_t off, off64_t len); + loff_t off, loff_t len); /** * Notify to invalidate parent attributes and the dentry matching * parent/name * + * To avoid a deadlock don't call this function from a filesystem operation and + * 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 parent inode number * @param name file name @@ -1349,6 +1353,10 @@ int fuse_lowlevel_notify_inval_entry(struct fuse_chan *ch, fuse_ino_t parent, * parent/name if the dentry's inode number matches child (otherwise it * will invalidate the matching dentry). * + * To avoid a deadlock don't call this function from a filesystem operation and + * 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 parent inode number * @param child inode number @@ -1382,7 +1390,7 @@ int fuse_lowlevel_notify_delete(struct fuse_chan *ch, * @return zero for success, -errno for failure */ int fuse_lowlevel_notify_store(struct fuse_chan *ch, fuse_ino_t ino, - off64_t offset, struct fuse_bufvec *bufv, + loff_t offset, struct fuse_bufvec *bufv, enum fuse_buf_copy_flags flags); /** * Retrieve data from the kernel buffers @@ -1410,7 +1418,7 @@ int fuse_lowlevel_notify_store(struct fuse_chan *ch, fuse_ino_t ino, * @return zero for success, -errno for failure */ int fuse_lowlevel_notify_retrieve(struct fuse_chan *ch, fuse_ino_t ino, - size_t size, off64_t offset, void *cookie); + size_t size, loff_t offset, void *cookie); /* ----------------------------------------------------------- * |