blob_to_mnt(): kern_unmount() is needed to undo kern_mount()
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 2 Mar 2022 21:11:23 +0000 (16:11 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 20 May 2022 03:25:47 +0000 (23:25 -0400)
plain mntput() won't do.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
kernel/usermode_driver.c

index 9dae1f6..8303f4c 100644 (file)
@@ -28,7 +28,7 @@ static struct vfsmount *blob_to_mnt(const void *data, size_t len, const char *na
 
        file = file_open_root_mnt(mnt, name, O_CREAT | O_WRONLY, 0700);
        if (IS_ERR(file)) {
-               mntput(mnt);
+               kern_unmount(mnt);
                return ERR_CAST(file);
        }
 
@@ -38,7 +38,7 @@ static struct vfsmount *blob_to_mnt(const void *data, size_t len, const char *na
                if (err >= 0)
                        err = -ENOMEM;
                filp_close(file, NULL);
-               mntput(mnt);
+               kern_unmount(mnt);
                return ERR_PTR(err);
        }