RE: [PATCH] IMSM: move "validate_container_imsm" to be included in mdassemble
From: Baldysiak, Pawel <hidden>
Date: 2014-07-21 08:02:29
On Monday, July 21, 2014 9:48 AM Samuli Suominen [mailto:ssuominen@gentoo.org] wrote: To: NeilBrown; Baldysiak, Pawel Cc: linux-raid@vger.kernel.org; Paszkiewicz, Artur Subject: Re: [PATCH] IMSM: move "validate_container_imsm" to be included in mdassemble On 21/07/14 09:57, NeilBrown wrote:quoted
On Fri, 18 Jul 2014 17:01:27 +0200 Pawel Baldysiak [off-list ref] wrote:quoted
Commit 0c21b485e4beb7bcfe631412a231f7c1ea1067bc added newfunction inquoted
quoted
imsm superswitch. This function should be included in mdassemble. Signed-off-by: Pawel Baldysiak <redacted> --- super-intel.c | 82 +++++++++++++++++++++++++++++----------------------------quoted
quoted
1 file changed, 41 insertions(+), 41 deletions(-)diff --git a/super-intel.c b/super-intel.c index b4efa72..e28ac7d100644--- 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,quoted
quoted
return 0; }+/********************************************************* **********************quoted
quoted
+ * 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 ++********************************************************* ***********quoted
quoted
+**********/ 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,quoted
+info->disk.minor));quoted
quoted
+ + 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,quoted
+ dev->disk.minor), hba_path)){quoted
quoted
+ pr_err("WARNING - IMSM containerassembled with disks under different HBAs!\n"quoted
quoted
+ " This operation is notsupported and can lead to data loss.\n");quoted
quoted
+ return 1; + } + } + } + } + return 0; +} #ifndef MDASSEMBLE/********************************************************** *********************quoted
quoted
* Function: init_migr_record_imsm@@ -10524,47 +10565,6 @@ abort: return ret_val; } -/********************************************************** *********************quoted
quoted
- * 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 -********************************************************** ***********quoted
quoted
*********/ -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,quoted
-info->disk.minor));quoted
quoted
- - 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,quoted
- dev->disk.minor), hba_path)){quoted
quoted
- pr_err("WARNING - IMSM containerassembled with disks under different HBAs!\n"quoted
quoted
- " This operation is notsupported and can lead to data loss.\n");quoted
quoted
- 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? NeilBrownThis is why we are packaging mdassemble in Gentoo's sys-fs/mdadm package: http://bugs.gentoo.org/show_bug.cgi?id=211426 Quoting from the bug: "mdassemble is a lightweight program to assemble raid devices that can be called directly for an initramfs filesystem. It weights 88ko compiled statically with dietlibc." So the use case seems to be initramfs, embedded, minimal systems - Samuli
Hi Intel does not support mdassemble. Above fix was created only to avoid compilation errors. Thanks Pawel Baldysiak