From mboxrd@z Thu Jan 1 00:00:00 1970 From: Krzysztof Wojcik Subject: [PATCH] FIX: imsm: Do not change serial if disk failed Date: Wed, 23 Mar 2011 17:36:29 +0100 Message-ID: <20110323163629.15574.93174.stgit@gklab-128-111.igk.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Return-path: Sender: linux-raid-owner@vger.kernel.org To: neilb@suse.de Cc: linux-raid@vger.kernel.org, wojciech.neubauer@intel.com, adam.kwolek@intel.com, dan.j.williams@intel.com, ed.ciechanowski@intel.com List-Id: linux-raid.ids This patch rollback one change connected with mdadm-OROM compatibility: adding ':0' at the end of disk serial number if disk is detected as failed. Current mdadm's implementation does not distinguish two cases when disk is marked as failed: 1. If disk is really failed- disconnected, broken 2. Just marked as failed by mdadm- using "-f" option Second case is not yet fully handled and compatible with IMSM standard. Changing serial number of existing, operational disk causes problems in "thunderdome" and "load_super" functions that use serial numbers to disks comparisons and searching. The change must be recalled until full support will be developed. Signed-off-by: Krzysztof Wojcik --- super-intel.c | 5 ----- 1 files changed, 0 insertions(+), 5 deletions(-) diff --git a/super-intel.c b/super-intel.c index 2b41e08..a91bcc2 100644 --- a/super-intel.c +++ b/super-intel.c @@ -5232,11 +5232,6 @@ static int mark_failure(struct imsm_dev *dev, struct imsm_disk *disk, int idx) if (is_failed(disk) && (ord & IMSM_ORD_REBUILD)) return 0; - sprintf(buf, "%s:0", disk->serial); - if ((len = strlen(buf)) >= MAX_RAID_SERIAL_LEN) - shift = len - MAX_RAID_SERIAL_LEN + 1; - strncpy((char *)disk->serial, &buf[shift], MAX_RAID_SERIAL_LEN); - disk->status |= FAILED_DISK; set_imsm_ord_tbl_ent(map, slot, idx | IMSM_ORD_REBUILD); if (map->failed_disk_num == 0xff)