Re: Locking question around "...PagePrivate()"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2010-09-20 at 14:49 +0200, Menyhart Zoltan wrote:
> Hi,
> 
> nfs_inode_add_request() runs under the protection of the Page Lock
> while setting up SetPagePrivate(), set_page_private().
> 
> The consumers of PagePrivate() run also under the protection of the Page Lock.
> 
> On the other hand, nfs_inode_remove_request() invoked by
> nfs_writeback_release_full() and nfs_commit_release() apparently does
> not take the Page Lock.
> 
> nfs_inode_remove_request() includes the sequence of
> 
>          set_page_private(req->wb_page, 0);
>          ClearPagePrivate(req->wb_page);
> 
> When the base kernel calls e.g.
> 
> 	mapping->a_ops->releasepage(page, gfp_mask)
> 
> then nfs_release_page() may see an incoherent "private" state.
> 
> Should not all the "private" operations be protected by the Page Lock?

No.

Cheers
  Trond

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


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux