aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Pargmann <mpa@pengutronix.de>2015-08-17 02:20:05 -0400
committerJens Axboe <axboe@fb.com>2015-08-17 10:22:55 -0400
commit6521d39a64b3f9c3acb0fd25a34cfaf9a40e548e (patch)
treee85c2f48f7fc593a8d9cd2cd737c4772d77d4c06
parente78273c80b213806ec7c51176ec81e034fe5cb9f (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.c19
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
387static struct device_attribute pid_attr = { 386static 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;