inactive: spin_unlock_irq(&lo->lo_lock); goto out; 
static int loop_make_request(request_queue_t *q, struct bio *old_bio){	struct loop_device *lo = q->queuedata;	int rw = bio_rw(old_bio);	if (!lo)		goto out;	spin_lock_irq(&lo->lo_lock);	if (lo->lo_state != Lo_bound)		goto inactive;	atomic_inc(&lo->lo_pending);	spin_unlock_irq(&lo->lo_lock);	if (rw == WRITE) {		if (lo->lo_flags & LO_FLAGS_READ_ONLY)			goto err;	} else if (rw == READA) {		rw = READ;	} else if (rw != READ) {		printk(KERN_ERR "loop: unknown command (%x)\n", rw);		goto err;	}	loop_add_bio(lo, old_bio);	return 0;err:	if (atomic_dec_and_test(&lo->lo_pending))		up(&lo->lo_bh_mutex);out:	bio_io_error(old_bio, old_bio->bi_size);	return 0;inactive:	spin_unlock_irq(&lo->lo_lock);	goto out;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/35a82d1a53e1a9ad54efafcc940f9335beaed5c3/loop.c/buggy/drivers/block/loop.c