diff options
author | Namhyung Kim <namhyung@gmail.com> | 2011-07-26 21:00:36 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2011-07-26 21:00:36 -0400 |
commit | 36fad858a7404a9656122a9e560a224ae2a00979 (patch) | |
tree | 95f8a7a6b8dad6bb8d7c7735f7845888b5e702db /drivers/md/raid5.c | |
parent | 8bda470e8ebde35f9349e98ecbce4dfb508a60fa (diff) |
md: introduce link/unlink_rdev() helpers
There are places where sysfs links to rdev are handled
in a same way. Add the helper functions to consolidate
them.
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r-- | drivers/md/raid5.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 467e8e1cd3d2..0cd591472e1f 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -5152,16 +5152,14 @@ static int raid5_start_reshape(mddev_t *mddev) | |||
5152 | if (rdev->raid_disk < 0 && | 5152 | if (rdev->raid_disk < 0 && |
5153 | !test_bit(Faulty, &rdev->flags)) { | 5153 | !test_bit(Faulty, &rdev->flags)) { |
5154 | if (raid5_add_disk(mddev, rdev) == 0) { | 5154 | if (raid5_add_disk(mddev, rdev) == 0) { |
5155 | char nm[20]; | ||
5156 | if (rdev->raid_disk | 5155 | if (rdev->raid_disk |
5157 | >= conf->previous_raid_disks) { | 5156 | >= conf->previous_raid_disks) { |
5158 | set_bit(In_sync, &rdev->flags); | 5157 | set_bit(In_sync, &rdev->flags); |
5159 | added_devices++; | 5158 | added_devices++; |
5160 | } else | 5159 | } else |
5161 | rdev->recovery_offset = 0; | 5160 | rdev->recovery_offset = 0; |
5162 | sprintf(nm, "rd%d", rdev->raid_disk); | 5161 | |
5163 | if (sysfs_create_link(&mddev->kobj, | 5162 | if (sysfs_link_rdev(mddev, rdev)) |
5164 | &rdev->kobj, nm)) | ||
5165 | /* Failure here is OK */; | 5163 | /* Failure here is OK */; |
5166 | } | 5164 | } |
5167 | } else if (rdev->raid_disk >= conf->previous_raid_disks | 5165 | } else if (rdev->raid_disk >= conf->previous_raid_disks |
@@ -5257,9 +5255,7 @@ static void raid5_finish_reshape(mddev_t *mddev) | |||
5257 | d++) { | 5255 | d++) { |
5258 | mdk_rdev_t *rdev = conf->disks[d].rdev; | 5256 | mdk_rdev_t *rdev = conf->disks[d].rdev; |
5259 | if (rdev && raid5_remove_disk(mddev, d) == 0) { | 5257 | if (rdev && raid5_remove_disk(mddev, d) == 0) { |
5260 | char nm[20]; | 5258 | sysfs_unlink_rdev(mddev, rdev); |
5261 | sprintf(nm, "rd%d", rdev->raid_disk); | ||
5262 | sysfs_remove_link(&mddev->kobj, nm); | ||
5263 | rdev->raid_disk = -1; | 5259 | rdev->raid_disk = -1; |
5264 | } | 5260 | } |
5265 | } | 5261 | } |