aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Schubert <bernd@bsbernd.com>2024-12-28 11:15:30 +0100
committerBernd Schubert <bernd@bsbernd.com>2024-12-30 23:04:03 +0100
commitefa630fa491566938c08508f64f41b590cfedc07 (patch)
treebb47feb38a10b82215d54903908a81d2e20a0b4e
parent682e87dbc0a18a703fd4a746b5ef7ee22fb559cf (diff)
downloadlibfuse-efa630fa491566938c08508f64f41b590cfedc07.tar.gz
Restore compat ABI in 'struct fuse_file_info'
This fixes commit a5eb7f2 "Enable parallel direct writes on the same file" and restores the ABI by moving the parallel_direct_writes bit. Given that there were already several releases with this commit we will still need an so version bump. Signed-off-by: Bernd Schubert <bernd@bsbernd.com>
-rw-r--r--include/fuse.h31
-rw-r--r--include/fuse_common.h8
2 files changed, 20 insertions, 19 deletions
diff --git a/include/fuse.h b/include/fuse.h
index 396358d..49ba7d9 100644
--- a/include/fuse.h
+++ b/include/fuse.h
@@ -281,21 +281,6 @@ struct fuse_config {
int nullpath_ok;
/**
- * Allow parallel direct-io writes to operate on the same file.
- *
- * FUSE implementations which do not handle parallel writes on
- * same file/region should NOT enable this option at all as it
- * might lead to data inconsistencies.
- *
- * For the FUSE implementations which have their own mechanism
- * of cache/data integrity are beneficiaries of this setting as
- * it now open doors to parallel writes on the same file (without
- * enabling this setting, all direct writes on the same file are
- * serialized, resulting in huge data bandwidth loss).
- */
- int parallel_direct_writes;
-
- /**
* These 3 options are used by libfuse internally and
* should not be touched.
*/
@@ -310,6 +295,22 @@ struct fuse_config {
*/
unsigned int fmask;
unsigned int dmask;
+
+ /**
+ * Allow parallel direct-io writes to operate on the same file.
+ *
+ * FUSE implementations which do not handle parallel writes on
+ * same file/region should NOT enable this option at all as it
+ * might lead to data inconsistencies.
+ *
+ * For the FUSE implementations which have their own mechanism
+ * of cache/data integrity are beneficiaries of this setting as
+ * it now open doors to parallel writes on the same file (without
+ * enabling this setting, all direct writes on the same file are
+ * serialized, resulting in huge data bandwidth loss).
+ */
+ int parallel_direct_writes;
+
};
diff --git a/include/fuse_common.h b/include/fuse_common.h
index e6c3b5d..c46aacb 100644
--- a/include/fuse_common.h
+++ b/include/fuse_common.h
@@ -67,10 +67,6 @@ struct fuse_file_info {
the file/directory is closed. */
unsigned int keep_cache : 1;
- /** Can be filled by open/create, to allow parallel direct writes on this
- file */
- unsigned int parallel_direct_writes : 1;
-
/** Indicates a flush operation. Set in flush operation, also
maybe set in highlevel lock operation and lowlevel release
operation. */
@@ -95,6 +91,10 @@ struct fuse_file_info {
on close. */
unsigned int noflush : 1;
+ /** Can be filled by open/create, to allow parallel direct writes on this
+ file */
+ unsigned int parallel_direct_writes : 1;
+
/** Padding. Reserved for future use*/
unsigned int padding : 23;
unsigned int padding2 : 32;