Displaying 2 results from an estimated 2 matches for "full_coherency".
2010 Oct 09
2
[PATCH 1/2] Ocfs2: Add a mount option "coherency=*" for O_DIRECT writes.
Currently, default behavior of O_DIRECT writes was allowing
concurrent writing among nodes, no cluster coherency guaranteed
(no EX locks was taken), it hurts buffered reads on other nodes
by reading stale data from cache.
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
2010 Nov 19
5
[PATCH 1/1] Ocfs2: Teach 'coherency=full' O_DIRECT writes to correctly up_read i_alloc_sem.
..., (unsigned long *)&iocb->private)
#endif /* OCFS2_FILE_H */
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 77b4c04..df070a3 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -2277,8 +2277,24 @@ relock:
}
ocfs2_inode_unlock(inode, 1);
+
+ /*
+ * Due to the fault of 'full_coherency' O_DIRECT
+ * write needs to acqure both i_alloc_sem and rw_lock.
+ * We do another trick here to have coherency bit
+ * stored in iocb to communicate with ocfs2_dio_end_io
+ * for properly unlocking i_alloc_sem.
+ */
+ ocfs2_iocb_set_coherency(iocb);
}
+ /*
+ * Concurrent-allow...