]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
md: remove test for duplicate device when setting slot number.
authorNeilBrown <neilb@suse.de>
Fri, 9 Dec 2011 03:27:00 +0000 (14:27 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 9 Dec 2011 03:27:00 +0000 (14:27 +1100)
When setting the slot number on a device in an active array we
currently check that the number is not already in use.
We then call into the personality's hot_add_disk function
which performs the same test and returns the same error.

Thus the common test is not needed.

As we will shortly be changing some personalities to allow duplicates
in some cases (to support hot-replace), the common test will become
inconvenient.

So remove the common test.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c

index ee981737edfcf3ff674749116d44d89bd45be751..773def2fc41689ca7c995fa43059001cb7052667 100644 (file)
@@ -2697,7 +2697,6 @@ slot_store(struct md_rdev *rdev, const char *buf, size_t len)
                set_bit(MD_RECOVERY_NEEDED, &rdev->mddev->recovery);
                md_wakeup_thread(rdev->mddev->thread);
        } else if (rdev->mddev->pers) {
-               struct md_rdev *rdev2;
                /* Activating a spare .. or possibly reactivating
                 * if we ever get bitmaps working here.
                 */
@@ -2711,10 +2710,6 @@ slot_store(struct md_rdev *rdev, const char *buf, size_t len)
                if (rdev->mddev->pers->hot_add_disk == NULL)
                        return -EINVAL;
 
-               list_for_each_entry(rdev2, &rdev->mddev->disks, same_set)
-                       if (rdev2->raid_disk == slot)
-                               return -EEXIST;
-
                if (slot >= rdev->mddev->raid_disks &&
                    slot >= rdev->mddev->raid_disks + rdev->mddev->delta_disks)
                        return -ENOSPC;