* [PATCH for stable branch 3.16.y] block: fix wrong error return in elevator_init()
@ 2017-05-06 11:11 Dinesh K B
0 siblings, 0 replies; only message in thread
From: Dinesh K B @ 2017-05-06 11:11 UTC (permalink / raw)
To: linux-kernel, stable; +Cc: Dinesh K B, Sudip Mukherjee, Jens Axboe
3.16.y review patch. Please let me know if anybody has objections.
-----------------------------------------------------------------------
commit d32f6b57523b6e9b2e39e990e056f9882a6f099a
From: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Date: Thu, 23 Oct 2014 22:16:48 +0530
Subject: 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>
Backported to 3.16.y as is.
Signed-off-by: Dinesh K B <dineshkumarb@gmail.com>
---
block/elevator.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/block/elevator.c b/block/elevator.c
index 24c28b6..afa3b03 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);
--
2.7.4
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-05-06 11:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-06 11:11 [PATCH for stable branch 3.16.y] block: fix wrong error return in elevator_init() Dinesh K B
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®