diff options
author | John Muir <john@jmuir.com> | 2011-12-06 21:56:34 +0100 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2011-12-07 12:23:58 +0100 |
commit | 5a44747054926c2683a28392869c4f8603f5e70a (patch) | |
tree | 04deb769cd2b48926abd77f8b617fa8680c45bc6 /include | |
parent | 4b2157c44e6ad7e692fcffb7450143e83151d36b (diff) | |
download | android_external_fuse-5a44747054926c2683a28392869c4f8603f5e70a.tar.gz android_external_fuse-5a44747054926c2683a28392869c4f8603f5e70a.tar.bz2 android_external_fuse-5a44747054926c2683a28392869c4f8603f5e70a.zip |
libfuse: Notifying the kernel of deletion.
libfuse part to allow a FUSE file-system to tell the kernel when a
file or directory is deleted. If the specified dentry has the
specified inode number, the kernel will unhash it.
Signed-off-by: John Muir <john@jmuir.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'include')
-rw-r--r-- | include/fuse_kernel.h | 9 | ||||
-rw-r--r-- | include/fuse_lowlevel.h | 16 |
2 files changed, 25 insertions, 0 deletions
diff --git a/include/fuse_kernel.h b/include/fuse_kernel.h index 039eb1f..89e941a 100644 --- a/include/fuse_kernel.h +++ b/include/fuse_kernel.h @@ -79,6 +79,7 @@ * * 7.18 * - add FUSE_IOCTL_DIR flag + * - add FUSE_NOTIFY_DELETE * - add FUSE_MMAP and FUSE_MUNMAP */ @@ -322,6 +323,7 @@ enum fuse_notify_code { FUSE_NOTIFY_INVAL_ENTRY = 3, FUSE_NOTIFY_STORE = 4, FUSE_NOTIFY_RETRIEVE = 5, + FUSE_NOTIFY_DELETE = 6, FUSE_NOTIFY_CODE_MAX, }; @@ -667,6 +669,13 @@ struct fuse_notify_inval_entry_out { __u32 padding; }; +struct fuse_notify_delete_out { + __u64 parent; + __u64 child; + __u32 namelen; + __u32 padding; +}; + struct fuse_notify_store_out { __u64 nodeid; __u64 offset; diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h index 6435937..8ed555e 100644 --- a/include/fuse_lowlevel.h +++ b/include/fuse_lowlevel.h @@ -1323,6 +1323,22 @@ int fuse_lowlevel_notify_inval_entry(struct fuse_chan *ch, fuse_ino_t parent, const char *name, size_t namelen); /** + * Notify to invalidate parent attributes and delete the dentry matching + * parent/name if the dentry's inode number matches child (otherwise it + * will invalidate the matching dentry). + * + * @param ch the channel through which to send the notification + * @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, + fuse_ino_t parent, fuse_ino_t child, + const char *name, size_t namelen); + +/** * Store data to the kernel buffers * * Synchronously store data in the kernel buffers belonging to the |