aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGravatar Nikolaus Rath <Nikolaus@rath.org>2016-11-16 13:04:47 -0800
committerGravatar Nikolaus Rath <Nikolaus@rath.org>2016-11-16 13:14:30 -0800
commit08ce854a739d25a31995886a0f0697c564f28e94 (patch)
treed0111f797d22946a2dbc56a3c5192d68958ee642 /include
parent007c9a29ed02b4030481f50b138446790dccdae6 (diff)
Enable more capabilities by default, and document defaults.
Fixes #112.
Diffstat (limited to 'include')
-rw-r--r--include/fuse_common.h49
1 files changed, 42 insertions, 7 deletions
diff --git a/include/fuse_common.h b/include/fuse_common.h
index a906bc5..251ad8b 100644
--- a/include/fuse_common.h
+++ b/include/fuse_common.h
@@ -91,45 +91,63 @@ struct fuse_file_info {
* ensure that there is at most one pending read request per
* file-handle at any time, and will attempt to order read requests by
* increasing offset.
+ *
+ * This feature is enabled by default when supported by the kernel.
*/
#define FUSE_CAP_ASYNC_READ (1 << 0)
/**
* Indicates that the filesystem supports "remote" locking.
+ *
+ * This feature is enabled by default when supported by the kernel,
+ * and if getlk() and setlk() handlers are implemented.
*/
#define FUSE_CAP_POSIX_LOCKS (1 << 1)
/**
* Indicates that the filesystem supports the O_TRUNC open flag
+ *
+ * This feature is enabled by default when supported by the kernel.
*/
#define FUSE_CAP_ATOMIC_O_TRUNC (1 << 3)
/**
* Indicates that the filesystem supports lookups of "." and "..".
+ *
+ * This feature is disabled by default.
*/
#define FUSE_CAP_EXPORT_SUPPORT (1 << 4)
/**
* Indicates that the kernel should not apply the umask to the
* file mode on create operations.
+ *
+ * This feature is disabled by default.
*/
#define FUSE_CAP_DONT_MASK (1 << 6)
/**
* Indicates that libfuse should try to use splice() when writing to
- * the fuse device
+ * the fuse device. This may improve performance.
+ *
+ * This feature is disabled by default.
*/
#define FUSE_CAP_SPLICE_WRITE (1 << 7)
/**
- * Indicates that libfuse should try to move pages instead of copying
- * when writing to / reading from the fuse device.
+ * Indicates that libfuse should try to move pages instead of copying when
+ * writing to / reading from the fuse device. This may improve performance.
+ *
+ * This feature is disabled by default.
*/
#define FUSE_CAP_SPLICE_MOVE (1 << 8)
/**
* Indicates that libfuse should try to use splice() when reading from
- * the fuse device.
+ * the fuse device. This may improve performance.
+ *
+ * This feature is enabled by default when supported by the kernel and
+ * if the filesystem implements a write_buf() handler.
*/
#define FUSE_CAP_SPLICE_READ (1 << 9)
@@ -140,11 +158,16 @@ struct fuse_file_info {
* If not set, flock(2) calls will be handled by the FUSE kernel module
* internally (so any access that does not go through the kernel cannot be taken
* into account).
+ *
+ * This feature is enabled by default when supported by the kernel and
+ * if the filesystem implements a flock() handler.
*/
#define FUSE_CAP_FLOCK_LOCKS (1 << 10)
/**
* Indicates that the filesystem supports ioctl's on directories.
+ *
+ * This feature is enabled by default when supported by the kernel.
*/
#define FUSE_CAP_IOCTL_DIR (1 << 11)
@@ -165,25 +188,35 @@ struct fuse_file_info {
* This flag should always be set when available. If all file changes
* go through the kernel, *attr_timeout* should be set to zero to
* avoid unneccessary getattr() calls.
+ *
+ * This feature is enabled by default when supported by the kernel.
*/
#define FUSE_CAP_AUTO_INVAL_DATA (1 << 12)
/**
* Indicates that the filesystem supports readdirplus
+ *
+ * This feature is enabled by default when supported by the kernel and if the
+ * filesystem implements a readdirplus() handler.
*/
#define FUSE_CAP_READDIRPLUS (1 << 13)
/**
* Indicates that the filesystem supports adaptive readdirplus
+ *
+ * This feature is enabled by default when supported by the kernel and if the
+ * filesystem implements a readdirplus() handler.
*/
#define FUSE_CAP_READDIRPLUS_AUTO (1 << 14)
/**
* Indicates that the filesystem supports asynchronous direct I/O submission.
*
- * If this capability is not requested/available, the kernel will
- * ensure that there is at most one pending read and one pending write request per
- * direct I/O file-handle at any time.
+ * If this capability is not requested/available, the kernel will ensure that
+ * there is at most one pending read and one pending write request per direct
+ * I/O file-handle at any time.
+ *
+ * This feature is enabled by default when supported by the kernel.
*/
#define FUSE_CAP_ASYNC_DIO (1 << 15)
@@ -191,6 +224,8 @@ struct fuse_file_info {
* Indicates that writeback caching should be enabled. This means that
* individual write request may be buffered and merged in the kernel
* before they are send to the filesystem.
+ *
+ * This feature is disabled by default.
*/
#define FUSE_CAP_WRITEBACK_CACHE (1 << 16)