diff options
Diffstat (limited to 'drivers/block/nbd.c')
-rw-r--r-- | drivers/block/nbd.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 0daa422aa281..a32fb41246f8 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <linux/errno.h> | 24 | #include <linux/errno.h> |
25 | #include <linux/file.h> | 25 | #include <linux/file.h> |
26 | #include <linux/ioctl.h> | 26 | #include <linux/ioctl.h> |
27 | #include <linux/smp_lock.h> | 27 | #include <linux/mutex.h> |
28 | #include <linux/compiler.h> | 28 | #include <linux/compiler.h> |
29 | #include <linux/err.h> | 29 | #include <linux/err.h> |
30 | #include <linux/kernel.h> | 30 | #include <linux/kernel.h> |
@@ -53,6 +53,7 @@ | |||
53 | #define DBG_BLKDEV 0x0100 | 53 | #define DBG_BLKDEV 0x0100 |
54 | #define DBG_RX 0x0200 | 54 | #define DBG_RX 0x0200 |
55 | #define DBG_TX 0x0400 | 55 | #define DBG_TX 0x0400 |
56 | static DEFINE_MUTEX(nbd_mutex); | ||
56 | static unsigned int debugflags; | 57 | static unsigned int debugflags; |
57 | #endif /* NDEBUG */ | 58 | #endif /* NDEBUG */ |
58 | 59 | ||
@@ -717,11 +718,11 @@ static int nbd_ioctl(struct block_device *bdev, fmode_t mode, | |||
717 | dprintk(DBG_IOCTL, "%s: nbd_ioctl cmd=%s(0x%x) arg=%lu\n", | 718 | dprintk(DBG_IOCTL, "%s: nbd_ioctl cmd=%s(0x%x) arg=%lu\n", |
718 | lo->disk->disk_name, ioctl_cmd_to_ascii(cmd), cmd, arg); | 719 | lo->disk->disk_name, ioctl_cmd_to_ascii(cmd), cmd, arg); |
719 | 720 | ||
720 | lock_kernel(); | 721 | mutex_lock(&nbd_mutex); |
721 | mutex_lock(&lo->tx_lock); | 722 | mutex_lock(&lo->tx_lock); |
722 | error = __nbd_ioctl(bdev, lo, cmd, arg); | 723 | error = __nbd_ioctl(bdev, lo, cmd, arg); |
723 | mutex_unlock(&lo->tx_lock); | 724 | mutex_unlock(&lo->tx_lock); |
724 | unlock_kernel(); | 725 | mutex_unlock(&nbd_mutex); |
725 | 726 | ||
726 | return error; | 727 | return error; |
727 | } | 728 | } |