Re: [PATCH 4/4] Spawn mdmon with --offroot if mdadm was launched with --offroot

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

 



On Wed, 25 Jan 2012 16:18:04 +0100 Jes.Sorensen@xxxxxxxxxx wrote:

> From: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
> 
> Signed-off-by: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx>
> ---
>  mdadm.c |    1 +
>  mdadm.h |    2 ++
>  util.c  |   17 +++++++++++++----
>  3 files changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/mdadm.c b/mdadm.c
> index 78f28d5..1efa3e8 100644
> --- a/mdadm.c
> +++ b/mdadm.c
> @@ -181,6 +181,7 @@ int main(int argc, char *argv[])
>  		 */
>  		case OffRootOpt:
>  			argv[0][0] = '@';
> +			__offroot = 1;
>  			continue;
>  
>  		case ':':
> diff --git a/mdadm.h b/mdadm.h
> index fec93aa..d862b3e 100644
> --- a/mdadm.h
> +++ b/mdadm.h
> @@ -1383,3 +1383,5 @@ static inline int xasprintf(char **strp, const char *fmt, ...) {
>  
>  #define PROCESS_DELAYED -2
>  #define PROCESS_PENDING -3
> +
> +extern int __offroot;
> diff --git a/util.c b/util.c
> index 6985a70..4ba44e6 100644
> --- a/util.c
> +++ b/util.c
> @@ -32,6 +32,8 @@
>  #include	<dirent.h>
>  #include	<signal.h>
>  
> +int __offroot;
> +
>  /*
>   * following taken from linux/blkpg.h because they aren't
>   * anywhere else and it isn't safe to #include linux/ * stuff.
> @@ -1622,10 +1624,17 @@ int start_mdmon(int devnum)
>  				skipped = 0;
>  
>  		for (i=0; paths[i]; i++)
> -			if (paths[i][0])
> -				execl(paths[i], "mdmon",
> -				      devnum2devname(devnum),
> -				      NULL);
> +			if (paths[i][0]) {
> +				if (__offroot) {
> +					execl(paths[i], "mdmon", "--offroot",
> +					      devnum2devname(devnum),
> +					      NULL);

I just occurred to me that this could be:

    execl(paths[i], "@mdmon", devnum2devname(devnum));

which seems simpler... but I'll leave it as it is.

All applied - thanks.

NeilBrown


> +				} else {
> +					execl(paths[i], "mdmon",
> +					      devnum2devname(devnum),
> +					      NULL);
> +				}
> +			}
>  		exit(1);
>  	case -1: fprintf(stderr, Name ": cannot run mdmon. "
>  			 "Array remains readonly\n");

Attachment: signature.asc
Description: PGP signature


[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