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

Commit c04dc907 authored by Tony Asleson's avatar Tony Asleson Committed by Greg Kroah-Hartman
Browse files

bcache: Correct return value for sysfs attach errors



commit 77fa100f27475d08a569b9d51c17722130f089e7 upstream.

If you encounter any errors in bch_cached_dev_attach it will return
a negative error code.  The variable 'v' which stores the result is
unsigned, thus user space sees a very large value returned for bytes
written which can cause incorrect user space behavior.  Utilize 1
signed variable to use throughout the function to preserve error return
capability.

Signed-off-by: default avatarTony Asleson <tasleson@redhat.com>
Acked-by: default avatarColy Li <colyli@suse.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0b312f81
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -191,7 +191,7 @@ STORE(__cached_dev)
{
	struct cached_dev *dc = container_of(kobj, struct cached_dev,
					     disk.kobj);
	unsigned v = size;
	ssize_t v = size;
	struct cache_set *c;
	struct kobj_uevent_env *env;

@@ -226,7 +226,7 @@ STORE(__cached_dev)
		bch_cached_dev_run(dc);

	if (attr == &sysfs_cache_mode) {
		ssize_t v = bch_read_string_list(buf, bch_cache_modes + 1);
		v = bch_read_string_list(buf, bch_cache_modes + 1);

		if (v < 0)
			return v;