Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
        nd->last_type = LAST_ROOT;
        nd->flags = flags;
        nd->depth = 0;
-       nd->root.mnt = NULL;
 
        nd->path.dentry = dentry;
        nd->path.mnt = mnt;
        path_get(&nd->path);
+       nd->root = nd->path;
+       path_get(&nd->root);
 
        retval = path_walk(name, nd);
        if (unlikely(!retval && !audit_dummy_context() && nd->path.dentry &&
                                nd->path.dentry->d_inode))
                audit_inode(name, nd->path.dentry);
 
-       if (nd->root.mnt) {
-               path_put(&nd->root);
-               nd->root.mnt = NULL;
-       }
+       path_put(&nd->root);
+       nd->root.mnt = NULL;
 
        return retval;
 }