From: Greg KH <greg@kroah.com>
To: lvm-devel@sistina.com, linux-kernel@vger.kernel.org
Subject: Re: [lvm-devel] [PATCH] add kobject to struct mapped_device
Date: Wed, 18 Dec 2002 10:53:01 -0800 [thread overview]
Message-ID: <20021218185301.GB32190@kroah.com> (raw)
In-Reply-To: <20021218184307.GA32190@kroah.com>
On Wed, Dec 18, 2002 at 10:43:07AM -0800, Greg KH wrote:
>
> Here's a simple patch against 2.5.52 that adds the kobject structure to
> struct mapped_device.
Sorry, that patch didn't apply against the latest 2.5-bk tree. Here's
an updated version.
thanks,
greg k-h
===== drivers/block/genhd.c 1.61 vs edited =====
--- 1.61/drivers/block/genhd.c Wed Dec 4 16:07:17 2002
+++ edited/drivers/block/genhd.c Wed Dec 18 10:53:26 2002
@@ -475,3 +475,4 @@
EXPORT_SYMBOL(bdev_read_only);
EXPORT_SYMBOL(set_device_ro);
EXPORT_SYMBOL(set_disk_ro);
+EXPORT_SYMBOL(block_subsys);
===== drivers/md/dm.c 1.14 vs edited =====
--- 1.14/drivers/md/dm.c Mon Dec 16 01:42:31 2002
+++ edited/drivers/md/dm.c Wed Dec 18 10:54:10 2002
@@ -40,7 +40,7 @@
struct mapped_device {
struct rw_semaphore lock;
- atomic_t holders;
+ struct kobject kobj;
unsigned long flags;
@@ -65,9 +65,13 @@
mempool_t *io_pool;
};
+#define to_md(obj) container_of(obj, struct mapped_device, kobj)
+
#define MIN_IOS 256
static kmem_cache_t *_io_cache;
+struct subsystem dm_subsys;
+
static __init int local_init(void)
{
int r;
@@ -89,6 +93,7 @@
if (!_major)
_major = r;
+ subsystem_register(&dm_subsys);
return 0;
}
@@ -100,7 +105,8 @@
DMERR("devfs_unregister_blkdev failed");
_major = 0;
-
+ subsystem_unregister(&dm_subsys);
+
DMINFO("cleaned up");
}
@@ -603,7 +609,8 @@
DMWARN("allocating minor %d.", minor);
memset(md, 0, sizeof(*md));
init_rwsem(&md->lock);
- atomic_set(&md->holders, 1);
+ md->kobj.subsys = &dm_subsys;
+ kobject_init(&md->kobj);
md->queue.queuedata = md;
blk_queue_make_request(&md->queue, dm_request);
@@ -696,17 +703,30 @@
void dm_get(struct mapped_device *md)
{
- atomic_inc(&md->holders);
+ kobject_get(&md->kobj);
}
void dm_put(struct mapped_device *md)
{
- if (atomic_dec_and_test(&md->holders)) {
- DMWARN("destroying md");
- __unbind(md);
- free_dev(md);
- }
+ kobject_put(&md->kobj);
}
+
+static void dm_release(struct kobject *kobj)
+{
+ struct mapped_device *md = to_md(kobj);
+
+ DMWARN("destroying md");
+ __unbind(md);
+ free_dev(md);
+}
+
+extern struct subsystem block_subsys;
+
+struct subsystem dm_subsys = {
+ .kobj = { .name = "dm", .parent = &block_subsys.kobj },
+ .release = dm_release,
+};
+
/*
* Requeue the deferred bios by calling generic_make_request.
next prev parent reply other threads:[~2002-12-18 18:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-18 18:43 [PATCH] add kobject to struct mapped_device Greg KH
2002-12-18 18:53 ` Greg KH [this message]
2002-12-19 10:55 ` [lvm-devel] " Joe Thornber
2002-12-20 8:31 ` Greg KH
2002-12-20 9:44 ` Joe Thornber
2002-12-20 17:49 ` Greg KH
2002-12-30 10:57 ` Joe Thornber
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=20021218185301.GB32190@kroah.com \
--to=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lvm-devel@sistina.com \
/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