summaryrefslogtreecommitdiffstats
path: root/fuse/include/fuse_lowlevel.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--fuse/include/fuse_lowlevel.h28
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);
/* ----------------------------------------------------------- *