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
--
Linux-cluster@xxxxxxxxxx
http://www.redhat.com/mailman/listinfo/linux-cluster