Re: Question about invalidate_inode_pages2_range()

From: Peng Tao
Date: Mon Oct 19 2009 - 04:38:18 EST


On Mon, Oct 19, 2009 at 4:26 PM, Trond Myklebust
<trond.myklebust@xxxxxxxxxx> wrote:
> On Mon, 2009-10-19 at 16:16 +0800, Peng Tao wrote:
>> Hi,
>>
>> I've a question about invalidate_inode_pages2_range().
>>
>> When does invalidate_inode_pages2_range() returns -EBUSY? It locks and
>> writes back the page. Why invalidate_complete_page2() still may fail
>> due to page dirtiness?
>
> A lot of those requirements were set by NFS, which uses
> invalidate_inode_pages2() in order to invalidate the page cache when it
> detects that a file has been changed on the server (either due to an
> O_DIRECT write, or due to another client modifying the file).
>
> In such cases, you want to try to keep the dirty data by writing it out
> instead of discarding it.
Thanks for your quick response. But I have two more questions about this.
1. invalidate_inode_pages2_range() calls wait_on_page_writeback().
Does the latter actually write out the dirty page?
2. Is there any interface in the mm subsystem forces discarding a page cache?

Cheers,
Peng Tao
--
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/