Messages in this thread | | | Date | Fri, 19 Aug 2005 22:16:47 +0300 | From | Mika Penttilä <> | Subject | Re: Kernel bug: Bad page state: related to generic symlink code and mmap |
| |
Al Viro wrote:
>On Fri, Aug 19, 2005 at 05:53:32PM +0100, Al Viro wrote: > > >>I'm taking NFS helpers to libfs.c and switching ncpfs to them. IMO that's >>better than copying the damn thing and other network filesystems might have >>the same needs eventually... >> >> > >[something like this - completely untested] > >* stray_page_get_link(inode, filler) - returns ERR_PTR(error) or pointer >to symlink body. Said symlink body sits in a page at offset equal to >offsetof(page, struct stray_page_link). filler() is expected to put it >at such offset. Page is cached. > >* stray_page_put_link() - ->put_link() suitable for links obtained from >stray_page_get_link(). Unlike the usual pagecache-based variants, this >sucker does _not_ rely on page staying cached. > >* nfs and ncpfs switched to the helpers above. > >Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> >---- > >
Just out of curiosity - what protects even local filesystems against concurrent truncate and symlink resolving when using the page cache helpers?
--Mika
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |