int error;
struct dentry *dentry = path->dentry;
- touch_atime(nd->mnt, dentry);
+ touch_atime(path->mnt, dentry);
nd_set_link(nd, NULL);
if (path->mnt == nd->mnt)
done:
path->mnt = mnt;
path->dentry = dentry;
+ __follow_mount(path);
return 0;
need_lookup:
err = do_lookup(nd, &this, &next);
if (err)
break;
- /* Check mountpoints.. */
- __follow_mount(&next);
err = -ENOENT;
inode = next.dentry->d_inode;
err = do_lookup(nd, &this, &next);
if (err)
break;
- __follow_mount(&next);
inode = next.dentry->d_inode;
if ((lookup_flags & LOOKUP_FOLLOW)
&& inode && inode->i_op && inode->i_op->follow_link) {