Re: nfs MAP_SHARED corruption fix

Trond Myklebust (trond.myklebust@fys.uio.no)
Wed, 9 May 2001 09:00:32 +0200


>>>>> " " == Andrea Arcangeli <andrea@suse.de> writes:

> On Tue, May 08, 2001 at 05:21:02PM +0200, Trond Myklebust
> wrote:
>> AFAICs this fix will clearly deadlock...

> yeah, it didn't triggered because it probably needs to be the
> same page writepaged and in the dirty list at the same time. I
> hooked it very deep into the writeback logic to keep it generic
> (it wasn't going to add a significant overhead) but it didn't
> need to be _that_ deep.

> Even worse I think it was partly wrong because it was only in
> the close(2) path but not in the fput path that is the one
> walked by munmap.

> This looks better to me, what do you think?

Just 2 comments.

- You should use nfs_wb_all() here rather than nfs_wb_file() since
writepage() unfortunately can't initialize the NFS writeback structure
with the correct vma->vm_file.

- Are we allowed to protect the filemap_fdatasync() + nfs_wb_all() by
grabbing the inode->i_sem in nfs_file_close_vma()? If so, this should
be done as well.

Otherwise, that patch looked fine to me... I'll test it out...

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