Commit 41191cf6 authored by Stefan Roesch's avatar Stefan Roesch Committed by Christian Brauner (Microsoft)

fs: __file_remove_privs(): restore call to inode_has_no_xattr()

This restores the call to inode_has_no_xattr() in the function
__file_remove_privs(). In case the dentry_meeds_remove_privs() returned
0, the function inode_has_no_xattr() was not called.
Signed-off-by: default avatarStefan Roesch <shr@fb.com>
Fixes: faf99b56 ("fs: add __remove_file_privs() with flags parameter")
Reviewed-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
Link: https://lore.kernel.org/r/20220816153158.1925040-1-shr@fb.comSigned-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
parent 568035b0
......@@ -2018,23 +2018,25 @@ static int __file_remove_privs(struct file *file, unsigned int flags)
{
struct dentry *dentry = file_dentry(file);
struct inode *inode = file_inode(file);
int error;
int error = 0;
int kill;
if (IS_NOSEC(inode) || !S_ISREG(inode->i_mode))
return 0;
kill = dentry_needs_remove_privs(dentry);
if (kill <= 0)
if (kill < 0)
return kill;
if (flags & IOCB_NOWAIT)
return -EAGAIN;
if (kill) {
if (flags & IOCB_NOWAIT)
return -EAGAIN;
error = __remove_privs(file_mnt_user_ns(file), dentry, kill);
}
error = __remove_privs(file_mnt_user_ns(file), dentry, kill);
if (!error)
inode_has_no_xattr(inode);
return error;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment