On Fri, Jan 14, 2011 at 03:09:10PM +1100, Nick Piggin wrote: > > + ? ? ? ? ? ? ? ? ? ? ? struct dentry *i = path.dentry->d_inode; > > + ? ? ? ? ? ? ? ? ? ? ? if (!IS_ERR(cookie) && i->i_op->put_link) > > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i->i_op->put_link(path.dentry, &nd, cookie); > > ? ? ? ? ? ? ? ? ? ? ? ?/* nd.path had been dropped */ > > ? ? ? ? ? ? ? ? ? ? ? ?nd.path = path; > > ? ? ? ? ? ? ? ? ? ? ? ?goto out_path; > > It should be the inode we followed, rather than the inode of the > new path, I think. And that's what the first argument of __do_follow_link() is. I'm actually tempted to rename it from path to symlink and make it const to clarify the things a bit. BTW, "i" as a name for local struct inode * is -><- that close to being a shootable offense. Please, rename to e.g. struct inode *link (and it's struct inode, not struct dentry). -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html