io_lock
recursive_lock_lock(&device->io_lock);
recursive_lock_init(&io_lock, "usb_disk i/o lock");
recursive_lock_destroy(&io_lock);
recursive_lock_unlock(&device->io_lock);
RecursiveLocker ioLocker(device->io_lock);
ioLocker.SetTo(device->io_lock, false, true);
ASSERT_LOCKED_RECURSIVE(&device->io_lock);
RecursiveLocker ioLocker(lun->device->io_lock);
ASSERT_LOCKED_RECURSIVE(&device->io_lock);
ASSERT_LOCKED_RECURSIVE(&lun->device->io_lock);
ASSERT_LOCKED_RECURSIVE(&lun->device->io_lock);
recursive_lock_unlock(&lun->device->io_lock);
recursive_lock_lock(&lun->device->io_lock);
recursive_lock io_lock;
io_lock(data);
io_lock(data);
io_lock(data);