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

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.com


Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
parent 568035b0
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -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 (kill) {
		if (flags & IOCB_NOWAIT)
			return -EAGAIN;

		error = __remove_privs(file_mnt_user_ns(file), dentry, kill);
	}

	if (!error)
		inode_has_no_xattr(inode);

	return error;
}