Re: i_mapping and i_data question

From: Chris Mason (mason@suse.com)
Date: Fri Feb 25 2000 - 09:55:33 EST


On Fri, 25 Feb 2000, Tigran Aivazian wrote:

> Hi,
>
> I want to understand this new address_space stuff, so my question is this:
>
> Imagine I want to invalidate all the pages (data and metadata)
> corresponding to a given inode, so next io on this inode will guarantee to
> call the get_block() fs-specific method. I guess I need to go through the
> 'pages' list of inode->i_mapping and inode->i_data under the cover of
> i_shared_lock and 'invalidate' each page. But how? Any clues?
>

Do you want to make sure get_block is called, or do you want to make sure
the data in the pages isn't used anymore? If the data in the page is
still valid, but the block locations on disk have changed, I think you
should be able to use something similar to the unmap_buffer() call in
fs/buffer.c.

In reiserfs, I'm using this to force a call to get_block for writing to
that offset, but allowing the page cache to keep the data for reads.

-chris

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



This archive was generated by hypermail 2b29 : Tue Feb 29 2000 - 21:00:12 EST