From: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>
To: Alasdair G Kergon <agk@redhat.com>
Cc: linux-kernel@vger.kernel.org, akpm@osdl.org,
device-mapper development <dm-devel@redhat.com>
Subject: Re: [PATCH 6/6] dm to use bd_claim_by_disk
Date: Mon, 06 Mar 2006 12:00:15 -0500 [thread overview]
Message-ID: <440C6A9F.1060301@ce.jp.nec.com> (raw)
In-Reply-To: <20060306155649.GB25317@agk.surrey.redhat.com>
[-- Attachment #1: Type: text/plain, Size: 697 bytes --]
Hi Alasdair,
Alasdair G Kergon wrote:
>>+static int open_dev(struct dm_dev *d, dev_t dev, struct gendisk *holder)
>>+static int upgrade_mode(struct dm_dev *dd, int new_mode, struct gendisk *holder)
>>+static void close_dev(struct dm_dev *d, struct gendisk *holder)
>
> Please pass the dm structure, struct mapped_device, around between dm functions
> internally where you can, instead of struct gendisk. (Every time the new
> parameter is passed it's wrapped with dm_disk(), so move the dm_disk() inside.)
Thank you for the comment. I changed them and updated the patch.
Could you check whether there is any other wrong thing?
Thanks,
--
Jun'ichi Nomura, NEC Solutions (America), Inc.
[-- Attachment #2: 06-dm_deptree-2.patch --]
[-- Type: text/x-patch, Size: 2886 bytes --]
Use bd_claim_by_disk.
Following symlinks are created if dm-0 maps to sda:
/sys/block/dm-0/slaves/sda --> /sys/block/sda
/sys/block/sda/holders/dm-0 --> /sys/block/dm-0
This patch depends on dm-table-store-md.patch in
http://www.kernel.org/pub/linux/kernel/people/agk/patches/2.6/editing/
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
drivers/md/dm-table.c | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
--- linux-2.6.16-rc5.orig/drivers/md/dm-table.c 2006-03-02 14:55:14.000000000 -0500
+++ linux-2.6.16-rc5/drivers/md/dm-table.c 2006-03-06 11:00:23.000000000 -0500
@@ -348,7 +348,7 @@ static struct dm_dev *find_device(struct
/*
* Open a device so we can use it as a map destination.
*/
-static int open_dev(struct dm_dev *d, dev_t dev)
+static int open_dev(struct dm_dev *d, dev_t dev, struct mapped_device *md)
{
static char *_claim_ptr = "I belong to device-mapper";
struct block_device *bdev;
@@ -361,7 +361,7 @@ static int open_dev(struct dm_dev *d, de
bdev = open_by_devnum(dev, d->mode);
if (IS_ERR(bdev))
return PTR_ERR(bdev);
- r = bd_claim(bdev, _claim_ptr);
+ r = bd_claim_by_disk(bdev, _claim_ptr, dm_disk(md));
if (r)
blkdev_put(bdev);
else
@@ -372,12 +372,12 @@ static int open_dev(struct dm_dev *d, de
/*
* Close a device that we've been using.
*/
-static void close_dev(struct dm_dev *d)
+static void close_dev(struct dm_dev *d, struct mapped_device *md)
{
if (!d->bdev)
return;
- bd_release(d->bdev);
+ bd_release_from_disk(d->bdev, dm_disk(md));
blkdev_put(d->bdev);
d->bdev = NULL;
}
@@ -398,7 +398,7 @@ static int check_device_area(struct dm_d
* careful to leave things as they were if we fail to reopen the
* device.
*/
-static int upgrade_mode(struct dm_dev *dd, int new_mode)
+static int upgrade_mode(struct dm_dev *dd, int new_mode, struct mapped_device *md)
{
int r;
struct dm_dev dd_copy;
@@ -408,9 +408,9 @@ static int upgrade_mode(struct dm_dev *d
dd->mode |= new_mode;
dd->bdev = NULL;
- r = open_dev(dd, dev);
+ r = open_dev(dd, dev, md);
if (!r)
- close_dev(&dd_copy);
+ close_dev(&dd_copy, md);
else
*dd = dd_copy;
@@ -453,7 +453,7 @@ static int __table_get_device(struct dm_
dd->mode = mode;
dd->bdev = NULL;
- if ((r = open_dev(dd, dev))) {
+ if ((r = open_dev(dd, dev, t->md))) {
kfree(dd);
return r;
}
@@ -464,7 +464,7 @@ static int __table_get_device(struct dm_
list_add(&dd->list, &t->devices);
} else if (dd->mode != (mode | dd->mode)) {
- r = upgrade_mode(dd, mode);
+ r = upgrade_mode(dd, mode, t->md);
if (r)
return r;
}
@@ -539,7 +539,7 @@ int dm_get_device(struct dm_target *ti,
void dm_put_device(struct dm_target *ti, struct dm_dev *dd)
{
if (atomic_dec_and_test(&dd->count)) {
- close_dev(dd);
+ close_dev(dd, ti->table->md);
list_del(&dd->list);
kfree(dd);
}
prev parent reply other threads:[~2006-03-06 17:00 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 ` [PATCH 2/6] add holders/slaves subdirectory to /sys/block Jun'ichi Nomura
2006-03-04 0:57 ` 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 [this message]
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=440C6A9F.1060301@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=linux-kernel@vger.kernel.org \
/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.