summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/ocfs2.h
diff options
context:
space:
mode:
authorTristan Ye <tristan.ye@oracle.com>2010-10-11 16:46:39 +0800
committerJoel Becker <joel.becker@oracle.com>2010-10-11 14:14:55 -0700
commit7bdb0d18bfd381cc5491eb95973ec5604b356c7e (patch)
tree1abe07df935a336eeac5c7705dc9b59341b47b0a /fs/ocfs2/ocfs2.h
parent75d9bbc73804285020aa4d99bd2a9600edea8945 (diff)
downloadlinux-7bdb0d18bfd381cc5491eb95973ec5604b356c7e.tar.gz
linux-7bdb0d18bfd381cc5491eb95973ec5604b356c7e.tar.bz2
linux-7bdb0d18bfd381cc5491eb95973ec5604b356c7e.zip
ocfs2: Add a mount option "coherency=*" to handle cluster coherency for O_DIRECT writes.
Currently, the default behavior of O_DIRECT writes was allowing concurrent writing among nodes to the same file, with no cluster coherency guaranteed (no EX lock held). This can leave stale data in the cache for buffered reads on other nodes. The new mount option introduce a chance to choose two different behaviors for O_DIRECT writes: * coherency=full, as the default value, will disallow concurrent O_DIRECT writes by taking EX locks. * coherency=buffered, allow concurrent O_DIRECT writes without EX lock among nodes, which gains high performance at risk of getting stale data on other nodes. Signed-off-by: Tristan Ye <tristan.ye@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/ocfs2.h')
-rw-r--r--fs/ocfs2/ocfs2.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
index 687e291d73f2..3064feef1430 100644
--- a/fs/ocfs2/ocfs2.h
+++ b/fs/ocfs2/ocfs2.h
@@ -263,6 +263,9 @@ enum ocfs2_mount_options
control lists */
OCFS2_MOUNT_USRQUOTA = 1 << 10, /* We support user quotas */
OCFS2_MOUNT_GRPQUOTA = 1 << 11, /* We support group quotas */
+
+ OCFS2_MOUNT_COHERENCY_BUFFERED = 1 << 12 /* Allow concurrent O_DIRECT
+ writes */
};
#define OCFS2_OSB_SOFT_RO 0x0001