diff options
author | Tristan Ye <tristan.ye@oracle.com> | 2010-10-11 16:46:39 +0800 |
---|---|---|
committer | Joel Becker <joel.becker@oracle.com> | 2010-10-11 14:14:55 -0700 |
commit | 7bdb0d18bfd381cc5491eb95973ec5604b356c7e (patch) | |
tree | 1abe07df935a336eeac5c7705dc9b59341b47b0a /fs/ocfs2/ocfs2.h | |
parent | 75d9bbc73804285020aa4d99bd2a9600edea8945 (diff) | |
download | linux-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.h | 3 |
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 |