From: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>
To: Alasdair Kergon <agk@redhat.com>, Neil Brown <neilb@suse.de>,
Greg KH <gregkh@suse.de>,
linux-kernel@vger.kernel.org
Cc: akpm@osdl.org, device-mapper development <dm-devel@redhat.com>,
Lars Marowsky-Bree <lmb@suse.de>
Subject: [PATCH 2/6] add holders/slaves subdirectory to /sys/block
Date: Fri, 03 Mar 2006 19:57:37 -0500 [thread overview]
Message-ID: <4408E601.1040602@ce.jp.nec.com> (raw)
In-Reply-To: <4408E33E.1080703@ce.jp.nec.com>
[-- Attachment #1: Type: text/plain, Size: 266 bytes --]
This patch is part of dm/md sysfs dependency tree.
With this patch, "slaves" and "holders" directories are
created in /sys/block/<disk> and
"holders" directory is created in /sys/block/<disk>/<partition>.
Thanks,
--
Jun'ichi Nomura, NEC Solutions (America), Inc.
[-- Attachment #2: 02-add_subdirs.patch --]
[-- Type: text/x-patch, Size: 2824 bytes --]
Creating "slaves" and "holders" directories in /sys/block/<disk> and
creating "holders" directory under /sys/block/<disk>/<partition>
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
fs/partitions/check.c | 27 +++++++++++++++++++++++++++
include/linux/genhd.h | 3 +++
2 files changed, 30 insertions(+)
--- linux-2.6.16-rc5.orig/include/linux/genhd.h 2006-02-27 00:09:35.000000000 -0500
+++ linux-2.6.16-rc5/include/linux/genhd.h 2006-03-02 10:29:55.000000000 -0500
@@ -78,6 +78,7 @@ struct hd_struct {
sector_t start_sect;
sector_t nr_sects;
struct kobject kobj;
+ struct kobject *holder_dir;
unsigned ios[2], sectors[2]; /* READs and WRITEs */
int policy, partno;
};
@@ -114,6 +115,8 @@ struct gendisk {
int number; /* more of the same */
struct device *driverfs_dev;
struct kobject kobj;
+ struct kobject *holder_dir;
+ struct kobject *slave_dir;
struct timer_rand_state *random;
int policy;
--- linux-2.6.16-rc5.orig/fs/partitions/check.c 2006-02-27 00:09:35.000000000 -0500
+++ linux-2.6.16-rc5/fs/partitions/check.c 2006-03-02 10:29:55.000000000 -0500
@@ -297,6 +297,25 @@ struct kobj_type ktype_part = {
.sysfs_ops = &part_sysfs_ops,
};
+static inline void partition_sysfs_add_subdir(struct hd_struct *p)
+{
+ struct kobject *k;
+
+ k = kobject_get(&p->kobj);
+ p->holder_dir = kobject_add_dir(k, "holders");
+ kobject_put(k);
+}
+
+static inline void disk_sysfs_add_subdirs(struct gendisk *disk)
+{
+ struct kobject *k;
+
+ k = kobject_get(&disk->kobj);
+ disk->holder_dir = kobject_add_dir(k, "holders");
+ disk->slave_dir = kobject_add_dir(k, "slaves");
+ kobject_put(k);
+}
+
void delete_partition(struct gendisk *disk, int part)
{
struct hd_struct *p = disk->part[part-1];
@@ -310,6 +329,8 @@ void delete_partition(struct gendisk *di
p->ios[0] = p->ios[1] = 0;
p->sectors[0] = p->sectors[1] = 0;
devfs_remove("%s/part%d", disk->devfs_name, part);
+ if (p->holder_dir)
+ kobject_unregister(p->holder_dir);
kobject_unregister(&p->kobj);
}
@@ -337,6 +358,7 @@ void add_partition(struct gendisk *disk,
p->kobj.parent = &disk->kobj;
p->kobj.ktype = &ktype_part;
kobject_register(&p->kobj);
+ partition_sysfs_add_subdir(p);
disk->part[part-1] = p;
}
@@ -383,6 +405,7 @@ void register_disk(struct gendisk *disk)
if ((err = kobject_add(&disk->kobj)))
return;
disk_sysfs_symlinks(disk);
+ disk_sysfs_add_subdirs(disk);
kobject_uevent(&disk->kobj, KOBJ_ADD);
/* No minors to use for partitions */
@@ -483,6 +506,10 @@ void del_gendisk(struct gendisk *disk)
devfs_remove_disk(disk);
+ if (disk->holder_dir)
+ kobject_unregister(disk->holder_dir);
+ if (disk->holder_dir)
+ kobject_unregister(disk->slave_dir);
if (disk->driverfs_dev) {
char *disk_name = make_block_name(disk);
sysfs_remove_link(&disk->kobj, "device");
[-- Attachment #3: Type: text/plain, Size: 0 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>
To: Alasdair Kergon <agk@redhat.com>, Neil Brown <neilb@suse.de>,
Greg KH <gregkh@suse.de>,
linux-kernel@vger.kernel.org
Cc: Lars Marowsky-Bree <lmb@suse.de>,
akpm@osdl.org, device-mapper development <dm-devel@redhat.com>
Subject: [PATCH 2/6] add holders/slaves subdirectory to /sys/block
Date: Fri, 03 Mar 2006 19:57:37 -0500 [thread overview]
Message-ID: <4408E601.1040602@ce.jp.nec.com> (raw)
In-Reply-To: <4408E33E.1080703@ce.jp.nec.com>
[-- Attachment #1: Type: text/plain, Size: 266 bytes --]
This patch is part of dm/md sysfs dependency tree.
With this patch, "slaves" and "holders" directories are
created in /sys/block/<disk> and
"holders" directory is created in /sys/block/<disk>/<partition>.
Thanks,
--
Jun'ichi Nomura, NEC Solutions (America), Inc.
[-- Attachment #2: 02-add_subdirs.patch --]
[-- Type: text/x-patch, Size: 2824 bytes --]
Creating "slaves" and "holders" directories in /sys/block/<disk> and
creating "holders" directory under /sys/block/<disk>/<partition>
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
fs/partitions/check.c | 27 +++++++++++++++++++++++++++
include/linux/genhd.h | 3 +++
2 files changed, 30 insertions(+)
--- linux-2.6.16-rc5.orig/include/linux/genhd.h 2006-02-27 00:09:35.000000000 -0500
+++ linux-2.6.16-rc5/include/linux/genhd.h 2006-03-02 10:29:55.000000000 -0500
@@ -78,6 +78,7 @@ struct hd_struct {
sector_t start_sect;
sector_t nr_sects;
struct kobject kobj;
+ struct kobject *holder_dir;
unsigned ios[2], sectors[2]; /* READs and WRITEs */
int policy, partno;
};
@@ -114,6 +115,8 @@ struct gendisk {
int number; /* more of the same */
struct device *driverfs_dev;
struct kobject kobj;
+ struct kobject *holder_dir;
+ struct kobject *slave_dir;
struct timer_rand_state *random;
int policy;
--- linux-2.6.16-rc5.orig/fs/partitions/check.c 2006-02-27 00:09:35.000000000 -0500
+++ linux-2.6.16-rc5/fs/partitions/check.c 2006-03-02 10:29:55.000000000 -0500
@@ -297,6 +297,25 @@ struct kobj_type ktype_part = {
.sysfs_ops = &part_sysfs_ops,
};
+static inline void partition_sysfs_add_subdir(struct hd_struct *p)
+{
+ struct kobject *k;
+
+ k = kobject_get(&p->kobj);
+ p->holder_dir = kobject_add_dir(k, "holders");
+ kobject_put(k);
+}
+
+static inline void disk_sysfs_add_subdirs(struct gendisk *disk)
+{
+ struct kobject *k;
+
+ k = kobject_get(&disk->kobj);
+ disk->holder_dir = kobject_add_dir(k, "holders");
+ disk->slave_dir = kobject_add_dir(k, "slaves");
+ kobject_put(k);
+}
+
void delete_partition(struct gendisk *disk, int part)
{
struct hd_struct *p = disk->part[part-1];
@@ -310,6 +329,8 @@ void delete_partition(struct gendisk *di
p->ios[0] = p->ios[1] = 0;
p->sectors[0] = p->sectors[1] = 0;
devfs_remove("%s/part%d", disk->devfs_name, part);
+ if (p->holder_dir)
+ kobject_unregister(p->holder_dir);
kobject_unregister(&p->kobj);
}
@@ -337,6 +358,7 @@ void add_partition(struct gendisk *disk,
p->kobj.parent = &disk->kobj;
p->kobj.ktype = &ktype_part;
kobject_register(&p->kobj);
+ partition_sysfs_add_subdir(p);
disk->part[part-1] = p;
}
@@ -383,6 +405,7 @@ void register_disk(struct gendisk *disk)
if ((err = kobject_add(&disk->kobj)))
return;
disk_sysfs_symlinks(disk);
+ disk_sysfs_add_subdirs(disk);
kobject_uevent(&disk->kobj, KOBJ_ADD);
/* No minors to use for partitions */
@@ -483,6 +506,10 @@ void del_gendisk(struct gendisk *disk)
devfs_remove_disk(disk);
+ if (disk->holder_dir)
+ kobject_unregister(disk->holder_dir);
+ if (disk->holder_dir)
+ kobject_unregister(disk->slave_dir);
if (disk->driverfs_dev) {
char *disk_name = make_block_name(disk);
sysfs_remove_link(&disk->kobj, "device");
next prev parent reply other threads:[~2006-03-04 0:57 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-04 0:45 [PATCH 0/6] dm/md sysfs dependency tree (rev.3) Jun'ichi Nomura
2006-03-04 0:45 ` Jun'ichi Nomura
2006-03-04 0:57 ` [PATCH 1/6] kobject_add_dir Jun'ichi Nomura
2006-03-04 0:57 ` Jun'ichi Nomura
2006-03-04 0:57 ` Jun'ichi Nomura [this message]
2006-03-04 0:57 ` [PATCH 2/6] add holders/slaves subdirectory to /sys/block Jun'ichi Nomura
2006-03-04 0:57 ` [PATCH 3/6] bd_claim_by_kobject Jun'ichi Nomura
2006-03-04 0:57 ` Jun'ichi Nomura
2006-03-04 0:57 ` [PATCH 4/6] bd_claim_by_disk Jun'ichi Nomura
2006-03-04 0:57 ` Jun'ichi Nomura
2006-03-04 0:58 ` [PATCH 5/6] md to use bd_claim_by_disk Jun'ichi Nomura
2006-03-04 0:58 ` Jun'ichi Nomura
2006-03-04 0:58 ` [PATCH 6/6] dm " Jun'ichi Nomura
2006-03-04 0:58 ` Jun'ichi Nomura
2006-03-06 15:56 ` Alasdair G Kergon
2006-03-06 15:56 ` Alasdair G Kergon
2006-03-06 17:00 ` Jun'ichi Nomura
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=4408E601.1040602@ce.jp.nec.com \
--to=j-nomura@ce.jp.nec.com \
--cc=agk@redhat.com \
--cc=akpm@osdl.org \
--cc=dm-devel@redhat.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=lmb@suse.de \
--cc=neilb@suse.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.