[PATCH 1/8] apparmor: just use vfs_kern_mount to make .null

Emanuele Giuseppe Esposito <[email protected]> Tue, 14 Apr 2020 14:42:55 +0200
Newsgroups gmane.linux.ports.ppc.embedded,gmane.linux.nfs,gmane.linux.usb.general,gmane.comp.video.dri.devel,gmane.linux.network,gmane.linux.kernel.efi,gmane.linux.drivers.rdma,gmane.linux.oprofile,gmane.linux.kernel.autofs,gmane.linux.file-systems,gmane.linux.scsi,gmane.linux.kernel.mm,gmane.linux.kernel.lsm,gmane.linux.kernel,gmane.comp.file-systems.ocfs2.devel
Message-ID <[email protected]>
aa_mk_null_file is using simple_pin_fs/simple_release_fs with local
variables as arguments, for what would amount to a simple
vfs_kern_mount/mntput pair if everything was inlined.  Just use
the normal filesystem API since the reference counting is not needed
here.

Signed-off-by: Emanuele Giuseppe Esposito <[email protected]>
---
 security/apparmor/apparmorfs.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.=
c
index 280741fc0f5f..828bb1eb77ea 100644
--- a/security/apparmor/apparmorfs.c
+++ b/security/apparmor/apparmorfs.c
@@ -2525,14 +2525,14 @@ struct path aa_null;
=20
 static int aa_mk_null_file(struct dentry *parent)
 {
-=09struct vfsmount *mount =3D NULL;
+=09struct file_system_type *type =3D parent->d_sb->s_type;
+=09struct vfsmount *mount;
 =09struct dentry *dentry;
 =09struct inode *inode;
-=09int count =3D 0;
-=09int error =3D simple_pin_fs(parent->d_sb->s_type, &mount, &count);
=20
-=09if (error)
-=09=09return error;
+=09mount =3D vfs_kern_mount(type, SB_KERNMOUNT, type->name, NULL);
+=09if (IS_ERR(mount))
+=09=09return PTR_ERR(mount);
=20
 =09inode_lock(d_inode(parent));
 =09dentry =3D lookup_one_len(NULL_FILE_NAME, parent, strlen(NULL_FILE_NAME=
));
@@ -2561,7 +2561,7 @@ static int aa_mk_null_file(struct dentry *parent)
 =09dput(dentry);
 out:
 =09inode_unlock(d_inode(parent));
-=09simple_release_fs(&mount, &count);
+=09mntput(mount);
 =09return error;
 }
=20
--=20
2.25.2