Locking question around "...PagePrivate()"

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

 



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?

Thanks,

Zoltan Menyhart
--
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