[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-raid
Subject: [PATCH] - md_error gets simpler
From: Neil Brown <neilb () cse ! unsw ! edu ! au>
Date: 2001-05-16 6:12:27
[Download RAW message or body]
Linus,
This isn't a bug fix, just a tidy up.
Current, md_error - which is called when an underlying device detects
an error - takes a kdev_t to identify which md array is affected.
It converts this into a mddev_t structure pointer, and in every case,
the caller already has the desired structure pointer.
This patch changes md_error and the callers to pass an mddev_t
instead of a kdev_t
NeilBrown
--- ./include/linux/raid/md.h 2001/05/16 06:08:41 1.1
+++ ./include/linux/raid/md.h 2001/05/16 06:10:02 1.2
@@ -80,7 +80,7 @@
extern struct gendisk * find_gendisk (kdev_t dev);
extern int md_notify_reboot(struct notifier_block *this,
unsigned long code, void *x);
-extern int md_error (kdev_t mddev, kdev_t rdev);
+extern int md_error (mddev_t *mddev, kdev_t rdev);
extern int md_run_setup(void);
extern void md_print_devices (void);
--- ./drivers/md/raid5.c 2001/05/16 05:27:20 1.3
+++ ./drivers/md/raid5.c 2001/05/16 06:10:02 1.4
@@ -412,7 +412,7 @@
spin_lock_irqsave(&conf->device_lock, flags);
}
} else {
- md_error(mddev_to_kdev(conf->mddev), bh->b_dev);
+ md_error(conf->mddev, bh->b_dev);
clear_bit(BH_Uptodate, &bh->b_state);
}
clear_bit(BH_Lock, &bh->b_state);
@@ -440,7 +440,7 @@
md_spin_lock_irqsave(&conf->device_lock, flags);
if (!uptodate)
- md_error(mddev_to_kdev(conf->mddev), bh->b_dev);
+ md_error(conf->mddev, bh->b_dev);
clear_bit(BH_Lock, &bh->b_state);
set_bit(STRIPE_HANDLE, &sh->state);
__release_stripe(conf, sh);
--- ./drivers/md/md.c 2001/05/16 06:08:41 1.1
+++ ./drivers/md/md.c 2001/05/16 06:10:03 1.2
@@ -2464,7 +2464,7 @@
int ret;
fsync_dev(mddev_to_kdev(mddev));
- ret = md_error(mddev_to_kdev(mddev), dev);
+ ret = md_error(mddev, dev);
return ret;
}
@@ -2938,13 +2938,11 @@
}
-int md_error (kdev_t dev, kdev_t rdev)
+int md_error (mddev_t *mddev, kdev_t rdev)
{
- mddev_t *mddev;
mdk_rdev_t * rrdev;
int rc;
- mddev = kdev_to_mddev(dev);
/* printk("md_error dev:(%d:%d), rdev:(%d:%d), (caller: \
%p,%p,%p,%p).\n",MAJOR(dev),MINOR(dev),MAJOR(rdev),MINOR(rdev), \
__builtin_return_address(0),__builtin_return_address(1),__builtin_return_address(2),__builtin_return_address(3));
*/
if (!mddev) {
--- ./drivers/md/raid1.c 2001/05/16 05:27:20 1.3
+++ ./drivers/md/raid1.c 2001/05/16 06:10:03 1.4
@@ -388,7 +388,7 @@
* this branch is our 'one mirror IO has finished' event handler:
*/
if (!uptodate)
- md_error (mddev_to_kdev(r1_bh->mddev), bh->b_dev);
+ md_error (r1_bh->mddev, bh->b_dev);
else
/*
* Set R1BH_Uptodate in our master buffer_head, so that
@@ -1426,7 +1426,7 @@
* We don't do much here, just schedule handling by raid1d
*/
if (!uptodate)
- md_error (mddev_to_kdev(r1_bh->mddev), bh->b_dev);
+ md_error (r1_bh->mddev, bh->b_dev);
else
set_bit(R1BH_Uptodate, &r1_bh->state);
raid1_reschedule_retry(r1_bh);
@@ -1437,7 +1437,7 @@
struct raid1_bh * r1_bh = (struct raid1_bh *)(bh->b_private);
if (!uptodate)
- md_error (mddev_to_kdev(r1_bh->mddev), bh->b_dev);
+ md_error (r1_bh->mddev, bh->b_dev);
if (atomic_dec_and_test(&r1_bh->remaining)) {
mddev_t *mddev = r1_bh->mddev;
unsigned long sect = bh->b_blocknr * (bh->b_size>>9);
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic