All of lore.kernel.org
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Pawel Baldysiak <pawel.baldysiak@intel.com>, ssuominen@gentoo.org
Cc: linux-raid@vger.kernel.org, artur.paszkiewicz@intel.com
Subject: Re: [PATCH] IMSM: move "validate_container_imsm" to be included in mdassemble
Date: Mon, 21 Jul 2014 16:57:43 +1000	[thread overview]
Message-ID: <20140721165743.4be73256@notabene.brown> (raw)
In-Reply-To: <20140718150127.10665.91982.stgit@gklab-154-222.intel.com>

[-- Attachment #1: Type: text/plain, Size: 3920 bytes --]

On Fri, 18 Jul 2014 17:01:27 +0200 Pawel Baldysiak
<pawel.baldysiak@intel.com> wrote:

> Commit 0c21b485e4beb7bcfe631412a231f7c1ea1067bc added new
> function in imsm superswitch. This function should be
> included in mdassemble.
> 
> Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
> ---
>  super-intel.c |   82 +++++++++++++++++++++++++++++----------------------------
>  1 file changed, 41 insertions(+), 41 deletions(-)
> 
> diff --git a/super-intel.c b/super-intel.c
> index b4efa72..e28ac7d 100644
> --- a/super-intel.c
> +++ b/super-intel.c
> @@ -9048,6 +9048,47 @@ int open_backup_targets(struct mdinfo *info, int raid_disks, int *raid_fds,
>  	return 0;
>  }
>  
> +/*******************************************************************************
> + * Function:	validate_container_imsm
> + * Description: This routine validates container after assemble,
> + *		eg. if devices in container are under the same controller.
> + *
> + * Parameters:
> + *	info	: linked list with info about devices used in array
> + * Returns:
> + *	1 : HBA mismatch
> + *	0 : Success
> + ******************************************************************************/
> +int validate_container_imsm(struct mdinfo *info)
> +{
> +	if (!check_env("IMSM_NO_PLATFORM")) {
> +		struct sys_dev *idev;
> +		struct mdinfo *dev;
> +		char *hba_path = NULL;
> +		char *dev_path = devt_to_devpath(makedev(info->disk.major,
> +										info->disk.minor));
> +
> +		for (idev = find_intel_devices(); idev; idev = idev->next) {
> +			if (strstr(dev_path, idev->path)) {
> +				hba_path = idev->path;
> +				break;
> +			}
> +		}
> +		free(dev_path);
> +
> +		if (hba_path) {
> +			for (dev = info->next; dev; dev = dev->next) {
> +				if (!devt_attached_to_hba(makedev(dev->disk.major,
> +						dev->disk.minor), hba_path)) {
> +					pr_err("WARNING - IMSM container assembled with disks under different HBAs!\n"
> +						"       This operation is not supported and can lead to data loss.\n");
> +					return 1;
> +				}
> +			}
> +		}
> +	}
> +	return 0;
> +}
>  #ifndef MDASSEMBLE
>  /*******************************************************************************
>   * Function:	init_migr_record_imsm
> @@ -10524,47 +10565,6 @@ abort:
>  	return ret_val;
>  }
>  
> -/*******************************************************************************
> - * Function:	validate_container_imsm
> - * Description: This routine validates container after assemble,
> - *		eg. if devices in container are under the same controller.
> - *
> - * Parameters:
> - *	info	: linked list with info about devices used in array
> - * Returns:
> - *	1 : HBA mismatch
> - *	0 : Success
> - ******************************************************************************/
> -int validate_container_imsm(struct mdinfo *info)
> -{
> -	if (!check_env("IMSM_NO_PLATFORM")) {
> -		struct sys_dev *idev;
> -		struct mdinfo *dev;
> -		char *hba_path = NULL;
> -		char *dev_path = devt_to_devpath(makedev(info->disk.major,
> -										info->disk.minor));
> -
> -		for (idev = find_intel_devices(); idev; idev = idev->next) {
> -			if (strstr(dev_path, idev->path)) {
> -				hba_path = idev->path;
> -				break;
> -			}
> -		}
> -		free(dev_path);
> -
> -		if (hba_path) {
> -			for (dev = info->next; dev; dev = dev->next) {
> -				if (!devt_attached_to_hba(makedev(dev->disk.major,
> -						dev->disk.minor), hba_path)) {
> -					pr_err("WARNING - IMSM container assembled with disks under different HBAs!\n"
> -						"       This operation is not supported and can lead to data loss.\n");
> -					return 1;
> -				}
> -			}
> -		}
> -	}
> -	return 0;
> -}
>  #endif /* MDASSEMBLE */
>  
>  struct superswitch super_imsm = {


Applied, thanks.

Though I do wonder if we really need mdassemble.  Is there a convincing
use-case?

NeilBrown


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

  reply	other threads:[~2014-07-21  6:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-18 15:01 [PATCH] IMSM: move "validate_container_imsm" to be included in mdassemble Pawel Baldysiak
2014-07-21  6:57 ` NeilBrown [this message]
2014-07-21  7:47   ` Samuli Suominen
2014-07-21  8:02     ` Baldysiak, Pawel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140721165743.4be73256@notabene.brown \
    --to=neilb@suse.de \
    --cc=artur.paszkiewicz@intel.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=pawel.baldysiak@intel.com \
    --cc=ssuominen@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.