lkml.org 
[lkml]   [2005]   [Aug]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Kernel bug: Bad page state: related to generic symlink code and mmap
On Fri, Aug 19, 2005 at 09:43:17AM -0700, Linus Torvalds wrote:
> Actually, looking at the ncpfs patch, I'd rather not apply that patch
> as-is. It looks like it will totally disable symlink caching, which would
> be kind of sad. Somebody willing to do the same thing NFS does?
>
> NFS hides away the "struct page *" pointer at the end of the page data, so
> that when we pass the pointer to the virtual address around, we can
> trivially look up the "struct page".
>
> An alternative is to make the symlink address-space use a gfp_mask of
> GFP_KERNEL (no highmem), at which point ncpfs_put_link() just becomes
> something like
>
> void ncpfs_put_link(struct dentry *dentry, struct nameidata *nd)
> {
> char *addr = nd_get_link(nd);
>
> if (!IS_ERR(addr))
> page_cache_release(virt_to_page(addr));
> }
>
> which is pretty ugly, but even simpler than the NFS trick.
>
> Anybody?

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...
-
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/

\
 
 \ /
  Last update: 2005-08-19 19:25    [W:0.127 / U:0.164 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site