Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP1:GA
mdadm.14070
0207-managemon-Don-t-add-disk-to-the-array-afte...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0207-managemon-Don-t-add-disk-to-the-array-after-it-has-s.patch of Package mdadm.14070
From a44c262abc49b3c69ee80c97813388e5d021d20b Mon Sep 17 00:00:00 2001 From: Tomasz Majchrzak <tomasz.majchrzak@intel.com> Date: Thu, 7 Dec 2017 10:23:54 +0100 Subject: [PATCH] managemon: Don't add disk to the array after it has started Git-commit: a44c262abc49b3c69ee80c97813388e5d021d20b Patched-mainline: mdadm-4.0+ References: bsc#1073862 If disk has disappeared from the system and appears again, it is added to the corresponding container as long the metadata matches and disk number is set. This code had no effect on imsm until commit 20dc76d15b40 ("imsm: Set disk slot number"). Now the disk is added to container but not to the array - it is correct as the disk is out-of-sync. Rebuild should start for the disk but it doesn't. There is the same behaviour for both imsm and ddf metadata. There is no point to handle out-of-sync disk as "good member of array" so remove that part of code. There are no scenarios when monitor is already running and disk can be safely added to the array. Just write initial metadata to the disk so it's taken for rebuild. Signed-off-by: Tomasz Majchrzak <tomasz.majchrzak@intel.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com> Signed-off-by: Coly Li <colyli@suse.de> --- managemon.c | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/managemon.c b/managemon.c index 4e85398..101231c 100644 --- a/managemon.c +++ b/managemon.c @@ -266,9 +266,7 @@ static void add_disk_to_container(struct supertype *st, struct mdinfo *sd) { int dfd; char nm[20]; - struct supertype *st2; struct metadata_update *update = NULL; - struct mdinfo info; mdu_disk_info_t dk = { .number = -1, .major = sd->disk.major, @@ -287,25 +285,6 @@ static void add_disk_to_container(struct supertype *st, struct mdinfo *sd) if (dfd < 0) return; - /* Check the metadata and see if it is already part of this - * array - */ - st2 = dup_super(st); - if (st2->ss->load_super(st2, dfd, NULL) == 0) { - st2->ss->getinfo_super(st2, &info, NULL); - if (st->ss->compare_super(st, st2) == 0 && - info.disk.raid_disk >= 0) { - /* Looks like a good member of array. - * Just accept it. - * mdadm will incorporate any parts into - * active arrays. - */ - st2->ss->free_super(st2); - return; - } - } - st2->ss->free_super(st2); - st->update_tail = &update; st->ss->add_to_super(st, &dk, dfd, NULL, INVALID_SECTORS); st->ss->write_init_super(st); -- 2.15.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor