diff options
author | Denis Cheng <crquan@gmail.com> | 2007-10-17 02:26:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-17 11:42:47 -0400 |
commit | d2c9740b499f959ed513375b6e35c2ab161921cb (patch) | |
tree | a7add684a7cf1dcfd5ff8d3ce60e071fca55cf80 | |
parent | 04fc8bbcf5eb25fa2aec290b302a9878dde20168 (diff) |
nbd: use list_for_each_entry_safe to make it more consolidated and readable
Thus the traverse of the loop may delete nodes, use the safe version.
Signed-off-by: Denis Cheng <crquan@gmail.com>
Cc: Paul Clements <paul.clements@steeleye.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/block/nbd.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index be5ec3a9b1fc..d7a421579908 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c | |||
@@ -233,8 +233,7 @@ error_out: | |||
233 | 233 | ||
234 | static struct request *nbd_find_request(struct nbd_device *lo, char *handle) | 234 | static struct request *nbd_find_request(struct nbd_device *lo, char *handle) |
235 | { | 235 | { |
236 | struct request *req; | 236 | struct request *req, *tmp; |
237 | struct list_head *tmp; | ||
238 | struct request *xreq; | 237 | struct request *xreq; |
239 | int err; | 238 | int err; |
240 | 239 | ||
@@ -245,8 +244,7 @@ static struct request *nbd_find_request(struct nbd_device *lo, char *handle) | |||
245 | goto out; | 244 | goto out; |
246 | 245 | ||
247 | spin_lock(&lo->queue_lock); | 246 | spin_lock(&lo->queue_lock); |
248 | list_for_each(tmp, &lo->queue_head) { | 247 | list_for_each_entry_safe(req, tmp, &lo->queue_head, queuelist) { |
249 | req = list_entry(tmp, struct request, queuelist); | ||
250 | if (req != xreq) | 248 | if (req != xreq) |
251 | continue; | 249 | continue; |
252 | list_del_init(&req->queuelist); | 250 | list_del_init(&req->queuelist); |