Re: GFS

From: Pekka J Enberg
Date: Wed Aug 10 2005 - 23:43:28 EST


Hi,

On Wed, Aug 10, 2005 at 11:18:48PM +0300, Pekka J Enberg wrote:
> You, however, don't maintain the same level of data consistency when reads
> and writes are from other filesystems as they use ->nopage.

Mark Fasheh writes:
I'm not sure what you mean here...

Reading and writing from other filesystems to a GFS2 mmap'd file
does not walk the vmas. Therefore, data consistency guarantees
are different:

- A GFS2 filesystem does a read that writes to a GFS2 mmap'd
file -> we take all locks for the mmap'd buffer in order and
release them after read() is done.

- A ext3 filesystem, for example, does a read that writes to
a GFS2 mmap'd file -> we now take locks one page at the
time releasing them before we exit ->nopage(). Other nodes
are now free to write to the same GFS2 mmap'd file.

Or am I missing something here?

On Wed, Aug 10, 2005 at 11:18:48PM +0300, Pekka J Enberg wrote:
> Fixing this requires a generic vma walk in every write() and read(), no?
> That doesn't seem such an hot idea which brings us back to using ->nopage
> for taking the locks (but now the deadlocks are back).

Mark Fasheh writes:
Yeah if you look through mmap.c in ocfs2_fill_ctxt_from_buf() we do this...
Or am I misunderstanding what you mean?

If are doing write() or read() from some other filesystem, we don't walk the vmas but instead rely on ->nopage for locking, right?

Pekka

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/