diff options
author | Goldwyn Rodrigues <rgoldwyn@suse.de> | 2015-04-14 11:43:55 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2015-04-21 17:59:39 -0400 |
commit | 57d051dccaef395e0d8c0fff02cfc3a77bacc88c (patch) | |
tree | 250d78ba0fad52865ad28f54de4dd21e810cb14f | |
parent | fb56dfef4e31f214cfbfa0eb8a1949591c20b118 (diff) |
md: Export and rename find_rdev_nr_rcu
This is required by the clustering module (patches to follow) to
find the device to remove or re-add.
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r-- | drivers/md/md.c | 9 | ||||
-rw-r--r-- | drivers/md/md.h | 1 |
2 files changed, 6 insertions, 4 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index bc1e43014292..d406a79f9140 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -642,7 +642,7 @@ void mddev_unlock(struct mddev *mddev) | |||
642 | } | 642 | } |
643 | EXPORT_SYMBOL_GPL(mddev_unlock); | 643 | EXPORT_SYMBOL_GPL(mddev_unlock); |
644 | 644 | ||
645 | static struct md_rdev *find_rdev_nr_rcu(struct mddev *mddev, int nr) | 645 | struct md_rdev *md_find_rdev_nr_rcu(struct mddev *mddev, int nr) |
646 | { | 646 | { |
647 | struct md_rdev *rdev; | 647 | struct md_rdev *rdev; |
648 | 648 | ||
@@ -652,6 +652,7 @@ static struct md_rdev *find_rdev_nr_rcu(struct mddev *mddev, int nr) | |||
652 | 652 | ||
653 | return NULL; | 653 | return NULL; |
654 | } | 654 | } |
655 | EXPORT_SYMBOL_GPL(md_find_rdev_nr_rcu); | ||
655 | 656 | ||
656 | static struct md_rdev *find_rdev(struct mddev *mddev, dev_t dev) | 657 | static struct md_rdev *find_rdev(struct mddev *mddev, dev_t dev) |
657 | { | 658 | { |
@@ -2049,11 +2050,11 @@ static int bind_rdev_to_array(struct md_rdev *rdev, struct mddev *mddev) | |||
2049 | int choice = 0; | 2050 | int choice = 0; |
2050 | if (mddev->pers) | 2051 | if (mddev->pers) |
2051 | choice = mddev->raid_disks; | 2052 | choice = mddev->raid_disks; |
2052 | while (find_rdev_nr_rcu(mddev, choice)) | 2053 | while (md_find_rdev_nr_rcu(mddev, choice)) |
2053 | choice++; | 2054 | choice++; |
2054 | rdev->desc_nr = choice; | 2055 | rdev->desc_nr = choice; |
2055 | } else { | 2056 | } else { |
2056 | if (find_rdev_nr_rcu(mddev, rdev->desc_nr)) { | 2057 | if (md_find_rdev_nr_rcu(mddev, rdev->desc_nr)) { |
2057 | rcu_read_unlock(); | 2058 | rcu_read_unlock(); |
2058 | return -EBUSY; | 2059 | return -EBUSY; |
2059 | } | 2060 | } |
@@ -5721,7 +5722,7 @@ static int get_disk_info(struct mddev *mddev, void __user * arg) | |||
5721 | return -EFAULT; | 5722 | return -EFAULT; |
5722 | 5723 | ||
5723 | rcu_read_lock(); | 5724 | rcu_read_lock(); |
5724 | rdev = find_rdev_nr_rcu(mddev, info.number); | 5725 | rdev = md_find_rdev_nr_rcu(mddev, info.number); |
5725 | if (rdev) { | 5726 | if (rdev) { |
5726 | info.major = MAJOR(rdev->bdev->bd_dev); | 5727 | info.major = MAJOR(rdev->bdev->bd_dev); |
5727 | info.minor = MINOR(rdev->bdev->bd_dev); | 5728 | info.minor = MINOR(rdev->bdev->bd_dev); |
diff --git a/drivers/md/md.h b/drivers/md/md.h index d98c0d764d8f..ecdce36ec6b8 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h | |||
@@ -672,6 +672,7 @@ extern void md_unplug(struct blk_plug_cb *cb, bool from_schedule); | |||
672 | extern void md_reload_sb(struct mddev *mddev); | 672 | extern void md_reload_sb(struct mddev *mddev); |
673 | extern void md_update_sb(struct mddev *mddev, int force); | 673 | extern void md_update_sb(struct mddev *mddev, int force); |
674 | extern void md_kick_rdev_from_array(struct md_rdev * rdev); | 674 | extern void md_kick_rdev_from_array(struct md_rdev * rdev); |
675 | struct md_rdev *md_find_rdev_nr_rcu(struct mddev *mddev, int nr); | ||
675 | static inline int mddev_check_plugged(struct mddev *mddev) | 676 | static inline int mddev_check_plugged(struct mddev *mddev) |
676 | { | 677 | { |
677 | return !!blk_check_plugged(md_unplug, mddev, | 678 | return !!blk_check_plugged(md_unplug, mddev, |