From: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Alasdair Kergon <agk@redhat.com>, Greg KH <gregkh@suse.de>,
Neil Brown <neilb@suse.de>, Lars Marowsky-Bree <lmb@suse.de>,
device-mapper development <dm-devel@redhat.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/7] dm/md dependency tree in sysfs: holders/slaves subdirectory
Date: Tue, 14 Mar 2006 12:21:45 -0500 [thread overview]
Message-ID: <4416FBA9.8040009@ce.jp.nec.com> (raw)
In-Reply-To: <4415EED0.20208@ce.jp.nec.com>
[-- Attachment #1: Type: text/plain, Size: 497 bytes --]
Hi Andrew,
Attached patch makes sysfs symlinking related codes conditional
on CONFIG_SYSFS.
Could you please replace
dm-md-dependency-tree-in-sysfs-holders-slaves-subdirectory.patch
with this?
Jun'ichi Nomura wrote:
> This patch is part of dm/md dependency tree in sysfs.
>
> 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: 3098 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 | 36 ++++++++++++++++++++++++++++++++++++
include/linux/genhd.h | 7 +++++++
2 files changed, 43 insertions(+)
--- linux-2.6.16-rc6.orig/include/linux/genhd.h 2006-03-11 17:12:55.000000000 -0500
+++ linux-2.6.16-rc6/include/linux/genhd.h 2006-03-14 08:09:51.000000000 -0500
@@ -78,6 +78,9 @@ struct hd_struct {
sector_t start_sect;
sector_t nr_sects;
struct kobject kobj;
+#ifdef CONFIG_SYSFS
+ struct kobject *holder_dir;
+#endif
unsigned ios[2], sectors[2]; /* READs and WRITEs */
int policy, partno;
};
@@ -114,6 +117,10 @@ struct gendisk {
int number; /* more of the same */
struct device *driverfs_dev;
struct kobject kobj;
+#ifdef CONFIG_SYSFS
+ struct kobject *holder_dir;
+ struct kobject *slave_dir;
+#endif
struct timer_rand_state *random;
int policy;
--- linux-2.6.16-rc6.orig/fs/partitions/check.c 2006-03-14 08:09:24.000000000 -0500
+++ linux-2.6.16-rc6/fs/partitions/check.c 2006-03-14 11:49:15.000000000 -0500
@@ -297,6 +297,30 @@ struct kobj_type ktype_part = {
.sysfs_ops = &part_sysfs_ops,
};
+#ifdef CONFIG_SYSFS
+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);
+}
+#else
+#define partition_sysfs_add_subdir(x) do { } while (0)
+#define disk_sysfs_add_subdirs(x) do { } while (0)
+#endif
+
void delete_partition(struct gendisk *disk, int part)
{
struct hd_struct *p = disk->part[part-1];
@@ -310,6 +334,10 @@ 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);
+#ifdef CONFIG_SYSFS
+ if (p->holder_dir)
+ kobject_unregister(p->holder_dir);
+#endif
kobject_unregister(&p->kobj);
}
@@ -337,6 +365,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 +412,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 +513,12 @@ void del_gendisk(struct gendisk *disk)
devfs_remove_disk(disk);
+#ifdef CONFIG_SYSFS
+ if (disk->holder_dir)
+ kobject_unregister(disk->holder_dir);
+ if (disk->slave_dir)
+ kobject_unregister(disk->slave_dir);
+#endif
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-14 17:21 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-13 22:03 [PATCH 0/7] dm/md dependency tree in sysfs (rev.4) Jun'ichi Nomura
2006-03-13 22:14 ` [PATCH 1/7] dm/md dependency tree in sysfs: kobject_add_dir Jun'ichi Nomura
2006-03-13 22:14 ` Jun'ichi Nomura
2006-03-14 19:40 ` patch kobject_add_dir.patch added to gregkh-2.6 tree gregkh
2006-03-13 22:14 ` [PATCH 2/7] dm/md dependency tree in sysfs: holders/slaves subdirectory Jun'ichi Nomura
2006-03-13 22:14 ` Jun'ichi Nomura
2006-03-14 17:21 ` Jun'ichi Nomura [this message]
2006-03-13 22:15 ` [PATCH 3/7] dm/md dependency tree in sysfs: bd_claim_by_kobject Jun'ichi Nomura
2006-03-13 22:15 ` Jun'ichi Nomura
2006-03-14 2:27 ` Andrew Morton
2006-03-14 2:27 ` Andrew Morton
2006-03-14 17:21 ` Jun'ichi Nomura
2006-03-13 22:16 ` [PATCH 4/7] dm/md dependency tree in sysfs: bd_claim_by_disk Jun'ichi Nomura
2006-03-13 22:16 ` Jun'ichi Nomura
2006-03-14 2:29 ` Andrew Morton
2006-03-14 2:29 ` Andrew Morton
2006-03-13 22:16 ` [PATCH 5/7] dm/md dependency tree in sysfs: md to use bd_claim_by_disk Jun'ichi Nomura
2006-03-13 22:17 ` [PATCH 6/7] dm/md dependency tree in sysfs: dm " Jun'ichi Nomura
2006-03-13 22:17 ` Jun'ichi Nomura
2006-03-13 22:17 ` [PATCH 7/7] dm/md dependency tree in sysfs: convert bd_sem to bd_mutex 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=4416FBA9.8040009@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.