summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej S. Szmigiero <mail@maciej.szmigiero.name>2018-08-16 00:56:45 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-09-09 20:55:59 +0300
commited480f2b9e86102b5d57fcd708915ae4f34add5b (patch)
treeaf5b98b3afd1f49ac55b99d88e3a4a3a87856775
parentfe806eb54bca42f854e2b74a08ebbba5a860f473 (diff)
downloadlinux-ed480f2b9e86102b5d57fcd708915ae4f34add5b.tar.xz
block, bfq: return nbytes and not zero from struct cftype .write() method
commit fc8ebd01deeb12728c83381f6ec923e4a192ffd3 upstream. The value that struct cftype .write() method returns is then directly returned to userspace as the value returned by write() syscall, so it should be the number of bytes actually written (or consumed) and not zero. Returning zero from write() syscall makes programs like /bin/echo or bash spin. Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name> Fixes: e21b7a0b9887 ("block, bfq: add full hierarchical scheduling and cgroups support") Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--block/bfq-cgroup.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c
index 5d53e504acae..4b571f3ea009 100644
--- a/block/bfq-cgroup.c
+++ b/block/bfq-cgroup.c
@@ -887,7 +887,8 @@ static ssize_t bfq_io_set_weight(struct kernfs_open_file *of,
if (ret)
return ret;
- return bfq_io_set_weight_legacy(of_css(of), NULL, weight);
+ ret = bfq_io_set_weight_legacy(of_css(of), NULL, weight);
+ return ret ?: nbytes;
}
static int bfqg_print_stat(struct seq_file *sf, void *v)