summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Baldysiak <pawel.baldysiak@intel.com>2014-07-18 17:01:27 +0200
committerNeilBrown <neilb@suse.de>2014-07-21 16:50:19 +1000
commitd31ad6439e2746d6d16d2e6eac771b138e5428c9 (patch)
treefb4776c4738eea0b7c2f292031e4a17f9a868284
parent13ffbe89b6103c146c08eb1c9a70833306c8322b (diff)
IMSM: move "validate_container_imsm" to be included in mdassemble
Commit 0c21b485e4beb7bcfe631412a231f7c1ea1067bc added new function in imsm superswitch. This function should be included in mdassemble. Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r--super-intel.c82
1 files changed, 41 insertions, 41 deletions
diff --git a/super-intel.c b/super-intel.c
index b4efa72b..e28ac7d3 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 = {