lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 21 Oct 2009 12:08:03 +0800
From:	Peng Tao <lkml.bergwolf@...il.com>
To:	Trond Myklebust <trond.myklebust@....uio.no>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: Question about invalidate_inode_pages2_range()

On Tue, Oct 20, 2009 at 1:25 PM, Trond Myklebust
<trond.myklebust@....uio.no> wrote:
> On Mon, 2009-10-19 at 16:38 +0800, Peng Tao wrote:
>> On Mon, Oct 19, 2009 at 4:26 PM, Trond Myklebust
>> <trond.myklebust@....uio.no> 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?
>
> No. It just waits for any outstanding writeback activity on that page to
> finish.
Got it. Thank you.
>
>> 2. Is there any interface in the mm subsystem forces discarding a page cache?
>
> You mean that also discards dirty pages? Yes. That is what
> truncate_inode_pages() does...
But truncate_inode_pages() truncates all pages beyond lstart.
Is there any way to discard a single page?
truncate_inode_page() seems to be able to do the magic. But it is not exported.

>
>
>



-- 
Cheers,
Peng Tao
State Key Laboratory of Networking and Switching Technology
Beijing Univ. of Posts and Telecoms.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists