diff options
author | Nikolaus Rath <Nikolaus@rath.org> | 2017-05-25 13:12:06 -0700 |
---|---|---|
committer | Nikolaus Rath <Nikolaus@rath.org> | 2017-05-25 13:12:06 -0700 |
commit | 6ac254c00fc6026fd462b7b93aaa9dc4aa676f69 (patch) | |
tree | 1bed45a16bd4c6bebed390e25df197c66356e90f /include | |
parent | 8641db4af724682fb1c922cbecf6c7e1dfe1a71c (diff) |
Document RENAME_EXCHANGE and RENAME_NOREPLACE flags.
Diffstat (limited to 'include')
-rw-r--r-- | include/fuse.h | 12 | ||||
-rw-r--r-- | include/fuse_lowlevel.h | 7 |
2 files changed, 17 insertions, 2 deletions
diff --git a/include/fuse.h b/include/fuse.h index 754303f..0c5741f 100644 --- a/include/fuse.h +++ b/include/fuse.h @@ -339,8 +339,16 @@ struct fuse_operations { /** Create a symbolic link */ int (*symlink) (const char *, const char *); - /** Rename a file */ - int (*rename) (const char *, const char *, unsigned int); + /** Rename a file + * + * *flags* may be `RENAME_EXCHANGE` or `RENAME_NOREPLACE`. If + * RENAME_NOREPLACE is specified, the filesystem must not + * overwrite *newname* if it exists and return an error + * instead. If `RENAME_EXCHANGE` is specified, the filesystem + * must atomically exchange the two files, i.e. both must + * exist and neither may be deleted. + */ + int (*rename) (const char *, const char *, unsigned int flags); /** Create a hard link to a file */ int (*link) (const char *, const char *); diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h index 987b24d..fd8bc1a 100644 --- a/include/fuse_lowlevel.h +++ b/include/fuse_lowlevel.h @@ -408,6 +408,13 @@ struct fuse_lowlevel_ops { * future bmap requests will fail with EINVAL without being * send to the filesystem process. * + * *flags* may be `RENAME_EXCHANGE` or `RENAME_NOREPLACE`. If + * RENAME_NOREPLACE is specified, the filesystem must not + * overwrite *newname* if it exists and return an error + * instead. If `RENAME_EXCHANGE` is specified, the filesystem + * must atomically exchange the two files, i.e. both must + * exist and neither may be deleted. + * * Valid replies: * fuse_reply_err * |