Messages in this thread | | | Date | Fri, 08 Aug 2003 11:00:58 -0400 | From | Paul Clements <> | Subject | Re: [PATCH] 2.6.0 NBD driver: remove send/recieve race for request |
| |
Jens Axboe wrote: > > On Fri, Aug 08 2003, Lou Langholtz wrote: > > >@@ -499,12 +508,14 @@ static void do_nbd_request(request_queue > > > lo->disk->disk_name); > > > spin_lock(&lo->queue_lock); > > > list_del_init(&req->queuelist); > > >+ req->ref_count--; > > > spin_unlock(&lo->queue_lock); > > > nbd_end_request(req); > > > spin_lock_irq(q->queue_lock); > > > continue; > > > } > > > > > >+ req->ref_count--; > > > spin_lock_irq(q->queue_lock); > > > > > Since ref_count isn't atomic, shouldn't ref_count only be changed while > > the queue_lock is held??? > > Indeed, needs to be done after regrabbing the lock.
But req is pulled off of nbd's main request queue at this point, so I don't think anyone else could be touching it, could they?
-- Paul - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |