diff options
author | Markus Pargmann <mpa@pengutronix.de> | 2015-08-17 02:20:05 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-08-17 10:22:55 -0400 |
commit | 6521d39a64b3f9c3acb0fd25a34cfaf9a40e548e (patch) | |
tree | e85c2f48f7fc593a8d9cd2cd737c4772d77d4c06 | |
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>
-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 { | |||
55 | struct gendisk *disk; | 55 | struct gendisk *disk; |
56 | int blksize; | 56 | int blksize; |
57 | loff_t bytesize; | 57 | loff_t bytesize; |
58 | pid_t pid; /* pid of nbd-client, if attached */ | ||
59 | int xmit_timeout; | 58 | int xmit_timeout; |
60 | int disconnect; /* a disconnect has been requested by user */ | 59 | int disconnect; /* a disconnect has been requested by user */ |
61 | 60 | ||
@@ -379,9 +378,9 @@ static ssize_t pid_show(struct device *dev, | |||
379 | struct device_attribute *attr, char *buf) | 378 | struct device_attribute *attr, char *buf) |
380 | { | 379 | { |
381 | struct gendisk *disk = dev_to_disk(dev); | 380 | struct gendisk *disk = dev_to_disk(dev); |
381 | struct nbd_device *nbd = (struct nbd_device *)disk->private_data; | ||
382 | 382 | ||
383 | return sprintf(buf, "%ld\n", | 383 | return sprintf(buf, "%d\n", task_pid_nr(nbd->task_recv)); |
384 | (long) ((struct nbd_device *)disk->private_data)->pid); | ||
385 | } | 384 | } |
386 | 385 | ||
387 | static struct device_attribute pid_attr = { | 386 | static struct device_attribute pid_attr = { |
@@ -397,16 +396,16 @@ static int nbd_do_it(struct nbd_device *nbd) | |||
397 | BUG_ON(nbd->magic != NBD_MAGIC); | 396 | BUG_ON(nbd->magic != NBD_MAGIC); |
398 | 397 | ||
399 | sk_set_memalloc(nbd->sock->sk); | 398 | sk_set_memalloc(nbd->sock->sk); |
400 | nbd->pid = task_pid_nr(current); | 399 | |
400 | nbd->task_recv = current; | ||
401 | |||
401 | ret = device_create_file(disk_to_dev(nbd->disk), &pid_attr); | 402 | ret = device_create_file(disk_to_dev(nbd->disk), &pid_attr); |
402 | if (ret) { | 403 | if (ret) { |
403 | dev_err(disk_to_dev(nbd->disk), "device_create_file failed!\n"); | 404 | dev_err(disk_to_dev(nbd->disk), "device_create_file failed!\n"); |
404 | nbd->pid = 0; | 405 | nbd->task_recv = NULL; |
405 | return ret; | 406 | return ret; |
406 | } | 407 | } |
407 | 408 | ||
408 | nbd->task_recv = current; | ||
409 | |||
410 | while (1) { | 409 | while (1) { |
411 | req = nbd_read_stat(nbd); | 410 | req = nbd_read_stat(nbd); |
412 | if (IS_ERR(req)) { | 411 | if (IS_ERR(req)) { |
@@ -417,6 +416,8 @@ static int nbd_do_it(struct nbd_device *nbd) | |||
417 | nbd_end_request(nbd, req); | 416 | nbd_end_request(nbd, req); |
418 | } | 417 | } |
419 | 418 | ||
419 | device_remove_file(disk_to_dev(nbd->disk), &pid_attr); | ||
420 | |||
420 | nbd->task_recv = NULL; | 421 | nbd->task_recv = NULL; |
421 | 422 | ||
422 | if (signal_pending(current)) { | 423 | if (signal_pending(current)) { |
@@ -431,8 +432,6 @@ static int nbd_do_it(struct nbd_device *nbd) | |||
431 | ret = -ETIMEDOUT; | 432 | ret = -ETIMEDOUT; |
432 | } | 433 | } |
433 | 434 | ||
434 | device_remove_file(disk_to_dev(nbd->disk), &pid_attr); | ||
435 | nbd->pid = 0; | ||
436 | return ret; | 435 | return ret; |
437 | } | 436 | } |
438 | 437 | ||
@@ -708,7 +707,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd, | |||
708 | struct socket *sock; | 707 | struct socket *sock; |
709 | int error; | 708 | int error; |
710 | 709 | ||
711 | if (nbd->pid) | 710 | if (nbd->task_recv) |
712 | return -EBUSY; | 711 | return -EBUSY; |
713 | if (!nbd->sock) | 712 | if (!nbd->sock) |
714 | return -EINVAL; | 713 | return -EINVAL; |