Re: [PATCH 10/13] VFS/namei: handle LOOKUP_RCU in page_follow_link_light.

From: Al Viro
Date: Mon Mar 16 2015 - 18:50:49 EST


On Mon, Mar 16, 2015 at 03:43:20PM +1100, NeilBrown wrote:
> + char *kaddr;
> + struct page *page;
> + struct address_space *mapping = dentry->d_inode->i_mapping;

Who said that dentry->d_inode hasn't gone NULL by that point?

> + nd_terminate_link(kaddr, dentry->d_inode->i_size, PAGE_SIZE - 1);

... or changed here. Again, dentry->d_inode is stable only if you are
holding a reference to dentry. That's why we have those dances around
nd->inode, for example. Doing unlazy_walk() is enough to stabilize the
damn thing, so currently ->follow_link() doesn't have to worry about it.
With your changes, though...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/