Re: [PATCH 1/2] fs: Add and export file_needs_remove_privs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 31, 2023 at 01:24:30PM +0200, Bernd Schubert wrote:
> File systems want to hold a shared lock for DIO writes,
> but may need to drop file priveliges - that a requires an

s/priveliges/privileges/
s/that a requires/that requires/

> exclusive lock. The new export function file_needs_remove_privs()
> is added in order to first check if that is needed.
> 
> Cc: Miklos Szeredi <miklos@xxxxxxxxxx>
> Cc: Dharmendra Singh <dsingh@xxxxxxx>
> Cc: Josef Bacik <josef@xxxxxxxxxxxxxx>
> Cc: linux-btrfs@xxxxxxxxxxxxxxx
> Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
> Cc: Christian Brauner <brauner@xxxxxxxxxx>
> Cc: linux-fsdevel@xxxxxxxxxxxxxxx
> Signed-off-by: Bernd Schubert <bschubert@xxxxxxx>
> ---
>  fs/inode.c         | 8 ++++++++
>  include/linux/fs.h | 1 +
>  2 files changed, 9 insertions(+)
> 
> diff --git a/fs/inode.c b/fs/inode.c
> index 67611a360031..9b05db602e41 100644
> --- a/fs/inode.c
> +++ b/fs/inode.c
> @@ -2013,6 +2013,14 @@ int dentry_needs_remove_privs(struct mnt_idmap *idmap,
>  	return mask;
>  }
>  
> +int file_needs_remove_privs(struct file *file)
> +{
> +	struct dentry *dentry = file_dentry(file);
> +
> +	return dentry_needs_remove_privs(file_mnt_idmap(file), dentry);
> +}
> +EXPORT_SYMBOL_GPL(file_needs_remove_privs);
> +
>  static int __remove_privs(struct mnt_idmap *idmap,
>  			  struct dentry *dentry, int kill)
>  {
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 562f2623c9c9..9245f0de00bc 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -2721,6 +2721,7 @@ extern struct inode *new_inode_pseudo(struct super_block *sb);
>  extern struct inode *new_inode(struct super_block *sb);
>  extern void free_inode_nonrcu(struct inode *inode);
>  extern int setattr_should_drop_suidgid(struct mnt_idmap *, struct inode *);
> +int file_needs_remove_privs(struct file *);
>  extern int file_remove_privs(struct file *);
>  int setattr_should_drop_sgid(struct mnt_idmap *idmap,
>  			     const struct inode *inode);
> -- 
> 2.39.2
> 



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux