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

Commit b51c83c2 authored by Ilya Dryomov's avatar Ilya Dryomov
Browse files

rbd: return -ENOMEM instead of pool id if rbd_dev_create() fails



Returning pool id (i.e. >= 0) from a sysfs ->store() callback makes
userspace think it needs to retry the write.  Fix it - it's a leftover
from the times when the equivalent of rbd_dev_create() was the first
action in rbd_add().

Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
parent 343128ce
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -5397,7 +5397,7 @@ static ssize_t do_rbd_add(struct bus_type *bus,
	struct rbd_spec *spec = NULL;
	struct rbd_client *rbdc;
	bool read_only;
	int rc = -ENOMEM;
	int rc;

	if (!try_module_get(THIS_MODULE))
		return -ENODEV;
@@ -5432,8 +5432,10 @@ static ssize_t do_rbd_add(struct bus_type *bus,
	}

	rbd_dev = rbd_dev_create(rbdc, spec, rbd_opts);
	if (!rbd_dev)
	if (!rbd_dev) {
		rc = -ENOMEM;
		goto err_out_client;
	}
	rbdc = NULL;		/* rbd_dev now owns this */
	spec = NULL;		/* rbd_dev now owns this */
	rbd_opts = NULL;	/* rbd_dev now owns this */