From: Paul Clements <paul.clements@steeleye.com>
To: akpm@osdl.org
Cc: linux-kernel@vger.kernel.org, wouter@grep.be
Subject: [PATCH] nbd: show nbd client pid in sysfs
Date: Tue, 05 Dec 2006 21:13:25 -0500 [thread overview]
Message-ID: <45762745.7010202@steeleye.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 252 bytes --]
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.
Tested against 2.6.19.
Thanks,
Paul
[-- Attachment #2: nbd_pid_sysfs.diff --]
[-- Type: text/plain, Size: 1019 bytes --]
--- ./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
next reply other threads:[~2006-12-06 2:13 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-06 2:13 Paul Clements [this message]
2006-12-08 21:16 ` [PATCH] nbd: show nbd client pid in sysfs Pavel Machek
2006-12-08 21:17 ` Pavel Machek
2006-12-10 18:07 ` Wouter Verhelst
2006-12-10 19:58 ` Pavel Machek
2006-12-10 23:18 ` Wouter Verhelst
2006-12-10 23:23 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45762745.7010202@steeleye.com \
--to=paul.clements@steeleye.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=wouter@grep.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox