Re: dirty pages path in kernel
From: David Chow <hidden>
Date: 2003-02-01 09:18:21
Andrew Morton writes:
> Andrew Morton wrote:
> >
> > David Chow [off-list ref] wrote:
> > >
> > > Hi,
> > >
> > > If I do the following to an inode mapping page .
> > >
> > > 1. Generate a "struct page" from read_cache_page()
> > > 2. kmap() the page, do some memset() (Dirty the page)
> > > 3. kunmap() and page_cache_release() the page.
> > >
> >
> > The VFS does not know that the page has changed.
> >
> > You should do:
> >
> > lock_page(page);
> > memset()
> > set_page_dirty(page);
> > unlock_page(page);
> >
> > the page will be written to disk on the next kupdate cycle.
>
> Make that:
>
> lock_page(page);
> kaddr = kmap_atomic(page, KM_USER0);
> memset(kaddr, ...);
> flush_dcache_page(page)
> kunmap_atomic(kaddr, KM_USER0);
> set_page_dirty(page);
Shouldn't mark_page_accessed() go here?
> unlock_page(page);
Nikita.
Thanks for your help. However, do I have to deal with page ref cnts? regards, David -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/