Re: [PATCH mdadm v6 2/7] Create: remove safe_mode_delay local variable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 23, 2022 at 12:09:49PM -0700, Logan Gunthorpe wrote:
> All .getinfo_super() call sets the info.safe_mode_delay variables
> to a constant value, so no matter what the current state is
> that function will always set it to the same value.
> 
> Create() calls .getinfo_super() multiple times while creating the array.
> The value is stored in a local variable for every disk in the loop
> to add disks (so the last disc call takes precedence). The local
> variable is then used in the call to sysfs_set_safemode().
> 
> This can be simplified by using info.safe_mode_delay directly. The info
> variable had .getinfo_super() called on it early in the function so, by the
> reasoning above, it will have the same value as the local variable which
> can thus be removed.
> 
> Doing this allows for factoring out code from Create() in a subsequent
> patch.
> 
> Signed-off-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>
> Acked-by: Kinga Tanska <kinga.tanska@xxxxxxxxxxxxxxx>

Acked-by: Coly Li <colyli@xxxxxxx>

Thanks.

> ---
> Create.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/Create.c b/Create.c
> index 2e8203ecdccd..8ded81dc265d 100644
> --- a/Create.c
> +++ b/Create.c
> @@ -137,7 +137,6 @@ int Create(struct supertype *st, char *mddev,
> 	int did_default = 0;
> 	int do_default_layout = 0;
> 	int do_default_chunk = 0;
> -	unsigned long safe_mode_delay = 0;
> 	char chosen_name[1024];
> 	struct map_ent *map = NULL;
> 	unsigned long long newsize;
> @@ -952,7 +951,6 @@ int Create(struct supertype *st, char *mddev,
> 					goto abort_locked;
> 				}
> 				st->ss->getinfo_super(st, inf, NULL);
> -				safe_mode_delay = inf->safe_mode_delay;
> 
> 				if (have_container && c->verbose > 0)
> 					pr_err("Using %s for device %d\n",
> @@ -1065,7 +1063,7 @@ int Create(struct supertype *st, char *mddev,
> 						    "readonly");
> 				break;
> 			}
> -			sysfs_set_safemode(&info, safe_mode_delay);
> +			sysfs_set_safemode(&info, info.safe_mode_delay);
> 			if (err) {
> 				pr_err("failed to activate array.\n");
> 				ioctl(mdfd, STOP_ARRAY, NULL);
> -- 
> 2.30.2
> 

-- 
Coly Li



[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux