[Ocfs2-devel] [-mm PATCH] ocfs2: Shared writeable mmap

Mark Fasheh mark.fasheh at oracle.com
Tue Jun 20 00:42:19 CDT 2006


On Mon, Jun 19, 2006 at 04:55:14PM -0700, Daniel Phillips wrote:
> While this may be a great patch, you didn't actually explain what it does,
> how it does it or why it does it.
Essentially data in OCFS2 is already covered by a cluster lock. We simply
make use of the lock in ->page_mkwrite to ensure that data written via
shared writeable mmap will be coherent with respect to other nodes.

Cluster locks can have levels of NL (no lock), PR (protected read, aka
shared) or EX (exclusive). The act of taking the lock on one node triggers
actions on the other nodes which have competing lock levels. In the case of
locks covering inode data, this means that the other nodes will do a
combination of sync and invalidate against their pages. This is what
ocfs2_data_convert_worker() does.

So the patch just makes use of the callback to take a data lock on the
associated inode. We also take a meta data lock to verify inode size against
the page index, but I'm not completely sure that piece is absolutely
necessary as we should've already done it from ->nopage.
	--Mark

--
Mark Fasheh
Senior Software Developer, Oracle
mark.fasheh at oracle.com



More information about the Ocfs2-devel mailing list