Message ID | 20200414124304.4470-2-eesposit@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Simplefs: group and simplify linux fs code | expand |
On Tue, Apr 14, 2020 at 02:42:55PM +0200, Emanuele Giuseppe Esposito wrote: > 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. *Why* is refcounting not needed here? Luis > > Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> > --- > 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; > > static int aa_mk_null_file(struct dentry *parent) > { > - struct vfsmount *mount = NULL; > + struct file_system_type *type = parent->d_sb->s_type; > + struct vfsmount *mount; > struct dentry *dentry; > struct inode *inode; > - int count = 0; > - int error = simple_pin_fs(parent->d_sb->s_type, &mount, &count); > > - if (error) > - return error; > + mount = vfs_kern_mount(type, SB_KERNMOUNT, type->name, NULL); > + if (IS_ERR(mount)) > + return PTR_ERR(mount); > > inode_lock(d_inode(parent)); > dentry = lookup_one_len(NULL_FILE_NAME, parent, strlen(NULL_FILE_NAME)); > @@ -2561,7 +2561,7 @@ static int aa_mk_null_file(struct dentry *parent) > dput(dentry); > out: > inode_unlock(d_inode(parent)); > - simple_release_fs(&mount, &count); > + mntput(mount); > return error; > } > > -- > 2.25.2 >
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; static int aa_mk_null_file(struct dentry *parent) { - struct vfsmount *mount = NULL; + struct file_system_type *type = parent->d_sb->s_type; + struct vfsmount *mount; struct dentry *dentry; struct inode *inode; - int count = 0; - int error = simple_pin_fs(parent->d_sb->s_type, &mount, &count); - if (error) - return error; + mount = vfs_kern_mount(type, SB_KERNMOUNT, type->name, NULL); + if (IS_ERR(mount)) + return PTR_ERR(mount); inode_lock(d_inode(parent)); dentry = lookup_one_len(NULL_FILE_NAME, parent, strlen(NULL_FILE_NAME)); @@ -2561,7 +2561,7 @@ static int aa_mk_null_file(struct dentry *parent) dput(dentry); out: inode_unlock(d_inode(parent)); - simple_release_fs(&mount, &count); + mntput(mount); return error; }
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 <eesposit@redhat.com> --- security/apparmor/apparmorfs.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)