linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] md: clear WantReplacement once disk is removed
@ 2017-04-24  7:58 Guoqing Jiang
  2017-04-25 16:36 ` Shaohua Li
  0 siblings, 1 reply; 2+ messages in thread
From: Guoqing Jiang @ 2017-04-24  7:58 UTC (permalink / raw)
  To: linux-raid; +Cc: neilb, shli, Guoqing Jiang

We can clear 'WantReplacement' flag directly no
matter it's replacement existed or not since the
semantic is same as before.

Also since the disk is removed from array, then
it is straightforward to remove 'WantReplacement'
flag and the comments in raid10/5 can be removed
as well.

Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
---
 drivers/md/raid1.c  | 6 +++---
 drivers/md/raid10.c | 8 ++------
 drivers/md/raid5.c  | 9 +++------
 3 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 57611f4..e93dd50 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -1831,9 +1831,9 @@ static int raid1_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
 			p->rdev = repl;
 			conf->mirrors[conf->raid_disks + number].rdev = NULL;
 			unfreeze_array(conf);
-			clear_bit(WantReplacement, &rdev->flags);
-		} else
-			clear_bit(WantReplacement, &rdev->flags);
+		}
+
+		clear_bit(WantReplacement, &rdev->flags);
 		err = md_integrity_register(mddev);
 	}
 abort:
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index acb3f46..72b2a9c 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -1874,13 +1874,9 @@ static int raid10_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
 			   * but will never see neither -- if they are careful.
 			   */
 		p->replacement = NULL;
-		clear_bit(WantReplacement, &rdev->flags);
-	} else
-		/* We might have just remove the Replacement as faulty
-		 * Clear the flag just in case
-		 */
-		clear_bit(WantReplacement, &rdev->flags);
+	}
 
+	clear_bit(WantReplacement, &rdev->flags);
 	err = md_integrity_register(mddev);
 
 abort:
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 356cd9c..3d971e5 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -7603,15 +7603,12 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
 			   * but will never see neither - if they are careful
 			   */
 		p->replacement = NULL;
-		clear_bit(WantReplacement, &rdev->flags);
 
 		if (!err)
 			err = log_modify(conf, p->rdev, true);
-	} else
-		/* We might have just removed the Replacement as faulty-
-		 * clear the bit just in case
-		 */
-		clear_bit(WantReplacement, &rdev->flags);
+	}
+
+	clear_bit(WantReplacement, &rdev->flags);
 abort:
 
 	print_raid5_conf(conf);
-- 
2.10.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] md: clear WantReplacement once disk is removed
  2017-04-24  7:58 [PATCH] md: clear WantReplacement once disk is removed Guoqing Jiang
@ 2017-04-25 16:36 ` Shaohua Li
  0 siblings, 0 replies; 2+ messages in thread
From: Shaohua Li @ 2017-04-25 16:36 UTC (permalink / raw)
  To: Guoqing Jiang; +Cc: linux-raid, neilb

On Mon, Apr 24, 2017 at 03:58:04PM +0800, Guoqing Jiang wrote:
> We can clear 'WantReplacement' flag directly no
> matter it's replacement existed or not since the
> semantic is same as before.
> 
> Also since the disk is removed from array, then
> it is straightforward to remove 'WantReplacement'
> flag and the comments in raid10/5 can be removed
> as well.

applied, thanks! 
> Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
> ---
>  drivers/md/raid1.c  | 6 +++---
>  drivers/md/raid10.c | 8 ++------
>  drivers/md/raid5.c  | 9 +++------
>  3 files changed, 8 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
> index 57611f4..e93dd50 100644
> --- a/drivers/md/raid1.c
> +++ b/drivers/md/raid1.c
> @@ -1831,9 +1831,9 @@ static int raid1_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
>  			p->rdev = repl;
>  			conf->mirrors[conf->raid_disks + number].rdev = NULL;
>  			unfreeze_array(conf);
> -			clear_bit(WantReplacement, &rdev->flags);
> -		} else
> -			clear_bit(WantReplacement, &rdev->flags);
> +		}
> +
> +		clear_bit(WantReplacement, &rdev->flags);
>  		err = md_integrity_register(mddev);
>  	}
>  abort:
> diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
> index acb3f46..72b2a9c 100644
> --- a/drivers/md/raid10.c
> +++ b/drivers/md/raid10.c
> @@ -1874,13 +1874,9 @@ static int raid10_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
>  			   * but will never see neither -- if they are careful.
>  			   */
>  		p->replacement = NULL;
> -		clear_bit(WantReplacement, &rdev->flags);
> -	} else
> -		/* We might have just remove the Replacement as faulty
> -		 * Clear the flag just in case
> -		 */
> -		clear_bit(WantReplacement, &rdev->flags);
> +	}
>  
> +	clear_bit(WantReplacement, &rdev->flags);
>  	err = md_integrity_register(mddev);
>  
>  abort:
> diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
> index 356cd9c..3d971e5 100644
> --- a/drivers/md/raid5.c
> +++ b/drivers/md/raid5.c
> @@ -7603,15 +7603,12 @@ static int raid5_remove_disk(struct mddev *mddev, struct md_rdev *rdev)
>  			   * but will never see neither - if they are careful
>  			   */
>  		p->replacement = NULL;
> -		clear_bit(WantReplacement, &rdev->flags);
>  
>  		if (!err)
>  			err = log_modify(conf, p->rdev, true);
> -	} else
> -		/* We might have just removed the Replacement as faulty-
> -		 * clear the bit just in case
> -		 */
> -		clear_bit(WantReplacement, &rdev->flags);
> +	}
> +
> +	clear_bit(WantReplacement, &rdev->flags);
>  abort:
>  
>  	print_raid5_conf(conf);
> -- 
> 2.10.0
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-04-25 16:36 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-24  7:58 [PATCH] md: clear WantReplacement once disk is removed Guoqing Jiang
2017-04-25 16:36 ` Shaohua Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).