Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit afdf04ea authored by Joel Becker's avatar Joel Becker Committed by Mark Fasheh
Browse files

configfs: add missing mutex_unlock()



d_alloc() failure in configfs_register_subsystem() would fail to unlock
the mutex taken above.  Reorganize the exit path to ensure the unlock
happens.

Reported-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent 03f981cf
Loading
Loading
Loading
Loading
+12 −15
Original line number Diff line number Diff line
@@ -1141,23 +1141,20 @@ int configfs_register_subsystem(struct configfs_subsystem *subsys)

	err = -ENOMEM;
	dentry = d_alloc(configfs_sb->s_root, &name);
	if (!dentry)
		goto out_release;

	if (dentry) {
		d_add(dentry, NULL);

		err = configfs_attach_group(sd->s_element, &group->cg_item,
					    dentry);
	if (!err)
		dentry = NULL;
	else
		if (err) {
			d_delete(dentry);
			dput(dentry);
		}
	}

	mutex_unlock(&configfs_sb->s_root->d_inode->i_mutex);

	if (dentry) {
	    dput(dentry);
out_release:
	if (err) {
		unlink_group(group);
		configfs_release_fs();
	}