aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorShaohua Li <shli@fb.com>2015-12-17 23:19:16 -0500
committerNeilBrown <neilb@suse.com>2015-12-17 23:19:16 -0500
commit9b15603dbd98ad1003355ef6ac7d682c75df81c1 (patch)
tree3c72f0018a1e791e49025536d8e224242bf6055f /drivers
parentcc57858831e3e9678291de730c4b4d2e52a19f59 (diff)
MD: change journal disk role to disk 0
Neil pointed out setting journal disk role to raid_disks will confuse reshape if we support reshape eventually. Switching the role to 0 (we should be fine as long as the value >=0) and skip sysfs file creation to avoid error. Signed-off-by: Shaohua Li <shli@fb.com> Signed-off-by: NeilBrown <neilb@suse.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/md/md.c2
-rw-r--r--drivers/md/md.h8
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 807095f4c793..874c843e72fb 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1652,7 +1652,7 @@ static int super_1_validate(struct mddev *mddev, struct md_rdev *rdev)
1652 rdev->journal_tail = le64_to_cpu(sb->journal_tail); 1652 rdev->journal_tail = le64_to_cpu(sb->journal_tail);
1653 if (mddev->recovery_cp == MaxSector) 1653 if (mddev->recovery_cp == MaxSector)
1654 set_bit(MD_JOURNAL_CLEAN, &mddev->flags); 1654 set_bit(MD_JOURNAL_CLEAN, &mddev->flags);
1655 rdev->raid_disk = mddev->raid_disks; 1655 rdev->raid_disk = 0;
1656 break; 1656 break;
1657 default: 1657 default:
1658 rdev->saved_raid_disk = role; 1658 rdev->saved_raid_disk = role;
diff --git a/drivers/md/md.h b/drivers/md/md.h
index 2bea51edfab7..ca0b643fe3c1 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -566,7 +566,9 @@ static inline char * mdname (struct mddev * mddev)
566static inline int sysfs_link_rdev(struct mddev *mddev, struct md_rdev *rdev) 566static inline int sysfs_link_rdev(struct mddev *mddev, struct md_rdev *rdev)
567{ 567{
568 char nm[20]; 568 char nm[20];
569 if (!test_bit(Replacement, &rdev->flags) && mddev->kobj.sd) { 569 if (!test_bit(Replacement, &rdev->flags) &&
570 !test_bit(Journal, &rdev->flags) &&
571 mddev->kobj.sd) {
570 sprintf(nm, "rd%d", rdev->raid_disk); 572 sprintf(nm, "rd%d", rdev->raid_disk);
571 return sysfs_create_link(&mddev->kobj, &rdev->kobj, nm); 573 return sysfs_create_link(&mddev->kobj, &rdev->kobj, nm);
572 } else 574 } else
@@ -576,7 +578,9 @@ static inline int sysfs_link_rdev(struct mddev *mddev, struct md_rdev *rdev)
576static inline void sysfs_unlink_rdev(struct mddev *mddev, struct md_rdev *rdev) 578static inline void sysfs_unlink_rdev(struct mddev *mddev, struct md_rdev *rdev)
577{ 579{
578 char nm[20]; 580 char nm[20];
579 if (!test_bit(Replacement, &rdev->flags) && mddev->kobj.sd) { 581 if (!test_bit(Replacement, &rdev->flags) &&
582 !test_bit(Journal, &rdev->flags) &&
583 mddev->kobj.sd) {
580 sprintf(nm, "rd%d", rdev->raid_disk); 584 sprintf(nm, "rd%d", rdev->raid_disk);
581 sysfs_remove_link(&mddev->kobj, nm); 585 sysfs_remove_link(&mddev->kobj, nm);
582 } 586 }