Re: [PATCH] nbd: show nbd client pid in sysfs

From: Pavel Machek
Date: Sun Dec 10 2006 - 08:17:51 EST


Hi!

> This simple patch allows nbd to expose the nbd-client
> daemon's PID in /sys/block/nbd<x>/pid. This is helpful
> for tracking connection status of a device and for
> determining which nbd devices are currently in use.

Should get a line or two in Documentation/ ?
Pavel

> Tested against 2.6.19.
>
> Thanks,
> Paul

> --- ./drivers/block/nbd.c Wed Nov 29 16:57:37 2006
> +++ ./drivers/block/nbd.c Tue Nov 28 16:09:31 2006
> @@ -355,14 +389,30 @@ harderror:
> return NULL;
> }
>
> +static ssize_t pid_show(struct gendisk *disk, char *page)
> +{
> + return sprintf(page, "%ld\n",
> + (long) ((struct nbd_device *)disk->private_data)->pid);
> +}
> +
> +static struct disk_attribute pid_attr = {
> + .attr = { .name = "pid", .mode = S_IRUGO },
> + .show = pid_show,
> +};
> +
> static void nbd_do_it(struct nbd_device *lo)
> {
> struct request *req;
>
> BUG_ON(lo->magic != LO_MAGIC);
>
> + lo->pid = current->pid;
> + sysfs_create_file(&lo->disk->kobj, &pid_attr.attr);
> +
> while ((req = nbd_read_stat(lo)) != NULL)
> nbd_end_request(req);
> +
> + sysfs_remove_file(&lo->disk->kobj, &pid_attr.attr);
> return;
> }
>
> --- ./include/linux/nbd.h Wed Nov 29 16:57:37 2006
> +++ ./include/linux/nbd.h Mon Dec 4 23:28:30 2006
> @@ -64,6 +64,7 @@ struct nbd_device {
> struct gendisk *disk;
> int blksize;
> u64 bytesize;
> + pid_t pid; /* pid of nbd-client, if attached */
> };
>
> #endif


--
Thanks for all the (sleeping) penguins.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/