diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index be5ec3a9b1fc45a58419f0c7a2c1716ffc052a40..d7a421579908166881c9e7de928727d88ab8faa5 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -233,8 +233,7 @@ static int nbd_send_req(struct nbd_device *lo, struct request *req) static struct request *nbd_find_request(struct nbd_device *lo, char *handle) { - struct request *req; - struct list_head *tmp; + struct request *req, *tmp; struct request *xreq; int err; @@ -245,8 +244,7 @@ static struct request *nbd_find_request(struct nbd_device *lo, char *handle) goto out; spin_lock(&lo->queue_lock); - list_for_each(tmp, &lo->queue_head) { - req = list_entry(tmp, struct request, queuelist); + list_for_each_entry_safe(req, tmp, &lo->queue_head, queuelist) { if (req != xreq) continue; list_del_init(&req->queuelist);