diff options
author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2014-10-23 22:16:48 +0530 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-10-23 12:35:42 -0600 |
commit | d32f6b57523b6e9b2e39e990e056f9882a6f099a (patch) | |
tree | 2e7f132eb3583a235cf9a8e0dbe876db32c69a2a /block/elevator.c | |
parent | 84ce0f0e94ac97217398b3b69c21c7a62ebeed05 (diff) | |
download | lwn-d32f6b57523b6e9b2e39e990e056f9882a6f099a.tar.gz lwn-d32f6b57523b6e9b2e39e990e056f9882a6f099a.zip |
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.c | 4 |
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); |