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

Commit e7520651 authored by Louis Rilling's avatar Louis Rilling Committed by Mark Fasheh
Browse files

configfs: call drop_link() to cleanup after create_link() failure



When allow_link() succeeds but create_link() fails, the subsystem is not
informed of the failure.

This patch fixes this by calling drop_link() on create_link() failures.

Signed-off-by: default avatarLouis Rilling <Louis.Rilling@kerlabs.com>
Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
parent 11c3b792
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -140,8 +140,12 @@ int configfs_symlink(struct inode *dir, struct dentry *dentry, const char *symna
		goto out_put;

	ret = type->ct_item_ops->allow_link(parent_item, target_item);
	if (!ret)
	if (!ret) {
		ret = create_link(parent_item, target_item, dentry);
		if (ret && type->ct_item_ops->drop_link)
			type->ct_item_ops->drop_link(parent_item,
						     target_item);
	}

	config_item_put(target_item);
	path_put(&nd.path);