aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/fuse_lowlevel.h18
1 files changed, 12 insertions, 6 deletions
diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h
index bad1d45..0f8c030 100644
--- a/include/fuse_lowlevel.h
+++ b/include/fuse_lowlevel.h
@@ -420,12 +420,18 @@ struct fuse_lowlevel_ops {
/**
* Open a file
*
- * Open flags (with the exception of O_CREAT, O_EXCL, O_NOCTTY and
- * O_TRUNC) are available in fi->flags.
- *
- * Filesystem may store an arbitrary file handle (pointer, index,
- * etc) in fi->fh, and use this in other all other file operations
- * (read, write, flush, release, fsync).
+ * Open flags are available in fi->flags. Creation (O_CREAT,
+ * O_EXCL, O_NOCTTY) and by default also truncation (O_TRUNC)
+ * flags will be filtered out. If an application specifies
+ * O_TRUNC, fuse first calls truncate() and then open().
+ *
+ * If filesystem is able to handle O_TRUNC directly, the
+ * init() handler should set the `FUSE_CAP_ATOMIC_O_TRUNC` bit
+ * in ``conn->want``.
+ *
+ * Filesystem may store an arbitrary file handle (pointer,
+ * index, etc) in fi->fh, and use this in other all other file
+ * operations (read, write, flush, release, fsync).
*
* Filesystem may also implement stateless file I/O and not store
* anything in fi->fh.