summaryrefslogtreecommitdiff
path: root/block/elevator.c
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2014-10-23 20:46:48 +0400
committerJens Axboe <axboe@fb.com>2014-10-23 22:35:42 +0400
commitd32f6b57523b6e9b2e39e990e056f9882a6f099a (patch)
tree2e7f132eb3583a235cf9a8e0dbe876db32c69a2a /block/elevator.c
parent84ce0f0e94ac97217398b3b69c21c7a62ebeed05 (diff)
downloadlinux-d32f6b57523b6e9b2e39e990e056f9882a6f099a.tar.xz
block: fix wrong error return in elevator_init()
while compiling integer err was showing as a set but unused variable. elevator_init_fn can be either cfq_init_queue or deadline_init_queue or noop_init_queue. all three of these functions are returning -ENOMEM if they fail to allocate the queue. so we should actually be returning the error code rather than returning 0 always. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/elevator.c')
-rw-r--r--block/elevator.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/block/elevator.c b/block/elevator.c
index 24c28b659bb3..afa3b037a17c 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -229,7 +229,9 @@ int elevator_init(struct request_queue *q, char *name)
}
err = e->ops.elevator_init_fn(q, e);
- return 0;
+ if (err)
+ elevator_put(e);
+ return err;
}
EXPORT_SYMBOL(elevator_init);