diff --git a/fs/namei.c b/fs/namei.c index 94e792fa5e6b..dbc6fe875db7 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2168,8 +2168,10 @@ static int path_lookupat(struct nameidata *nd, unsigned flags, struct path *path if (!err) { struct super_block *sb = nd->inode->i_sb; if (sb->s_flags & MS_RDONLY) { - if (d_is_su(nd->path.dentry) && !su_visible()) + if (d_is_su(nd->path.dentry) && !su_visible()) { + path_put(&nd->path); err = -ENOENT; + } } }