diff options
author | Markus Pargmann <mpa@pengutronix.de> | 2015-08-17 08:20:05 +0200 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-08-17 08:22:55 -0600 |
commit | 6521d39a64b3f9c3acb0fd25a34cfaf9a40e548e (patch) | |
tree | e85c2f48f7fc593a8d9cd2cd737c4772d77d4c06 /drivers/block/nbd.c | |
parent | e78273c80b213806ec7c51176ec81e034fe5cb9f (diff) |
nbd: Remove variable 'pid'
This patch uses nbd->task_recv to determine the value of the previously
used variable 'pid' for sysfs.
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/block/nbd.c')
-rw-r--r-- | drivers/block/nbd.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index a4f2c7b7d8cf..eeefa5cac520 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -55,7 +55,6 @@ struct nbd_device { struct gendisk *disk; int blksize; loff_t bytesize; - pid_t pid; /* pid of nbd-client, if attached */ int xmit_timeout; int disconnect; /* a disconnect has been requested by user */ @@ -379,9 +378,9 @@ static ssize_t pid_show(struct device *dev, struct device_attribute *attr, char *buf) { struct gendisk *disk = dev_to_disk(dev); + struct nbd_device *nbd = (struct nbd_device *)disk->private_data; - return sprintf(buf, "%ld\n", - (long) ((struct nbd_device *)disk->private_data)->pid); + return sprintf(buf, "%d\n", task_pid_nr(nbd->task_recv)); } static struct device_attribute pid_attr = { @@ -397,16 +396,16 @@ static int nbd_do_it(struct nbd_device *nbd) BUG_ON(nbd->magic != NBD_MAGIC); sk_set_memalloc(nbd->sock->sk); - nbd->pid = task_pid_nr(current); + + nbd->task_recv = current; + ret = device_create_file(disk_to_dev(nbd->disk), &pid_attr); if (ret) { dev_err(disk_to_dev(nbd->disk), "device_create_file failed!\n"); - nbd->pid = 0; + nbd->task_recv = NULL; return ret; } - nbd->task_recv = current; - while (1) { req = nbd_read_stat(nbd); if (IS_ERR(req)) { @@ -417,6 +416,8 @@ static int nbd_do_it(struct nbd_device *nbd) nbd_end_request(nbd, req); } + device_remove_file(disk_to_dev(nbd->disk), &pid_attr); + nbd->task_recv = NULL; if (signal_pending(current)) { @@ -431,8 +432,6 @@ static int nbd_do_it(struct nbd_device *nbd) ret = -ETIMEDOUT; } - device_remove_file(disk_to_dev(nbd->disk), &pid_attr); - nbd->pid = 0; return ret; } @@ -708,7 +707,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd, struct socket *sock; int error; - if (nbd->pid) + if (nbd->task_recv) return -EBUSY; if (!nbd->sock) return -EINVAL; |