From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753695AbcJKQXi (ORCPT ); Tue, 11 Oct 2016 12:23:38 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:48658 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752742AbcJKQXd (ORCPT ); Tue, 11 Oct 2016 12:23:33 -0400 Date: Tue, 11 Oct 2016 17:21:48 +0100 From: Andy Whitcroft To: Heinz Mauelshagen Cc: Mike Snitzer , linux-kernel@vger.kernel.org, linux-raid@vger.kernel.org, dm-devel@redhat.com, Shaohua Li , Alasdair Kergon Subject: [PATCH 1/1 V2] dm raid: fix compat_features validation Message-ID: <20161011162148.hz2ncmbvtmtmzjkz@brain> References: <20161011142835.11620-1-apw@canonical.com> <1c517f14-1234-7844-fc6a-cd1b9698fb8b@redhat.com> <20161011153808.nmyf6hafjaadcemw@brain> <591b9d8d-2036-2d0f-14f2-af176b5beaea@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <591b9d8d-2036-2d0f-14f2-af176b5beaea@redhat.com> User-Agent: Mutt/1.6.2-neo (2016-08-21) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >>From a30fba068e41214cb0ffcb14e68722482765e0c9 Mon Sep 17 00:00:00 2001 From: Andy Whitcroft Date: Tue, 11 Oct 2016 15:16:57 +0100 In ecbfb9f118bce4 ("dm raid: add raid level takeover support") a new compatible feature flag was added. Validation for these compat_features was added but this only passes for new raid mappings with this feature flag. This causes previously created raid mappings to be failed at import. Check compat_features for the only valid combination. Fixes: ecbfb9f118bce4 ("dm raid: add raid level takeover support") Signed-off-by: Andy Whitcroft --- drivers/md/dm-raid.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) V2: simplify checks as per maintainer. diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c index 8abde6b..2a39700 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -2258,7 +2258,8 @@ static int super_validate(struct raid_set *rs, struct md_rdev *rdev) if (!mddev->events && super_init_validation(rs, rdev)) return -EINVAL; - if (le32_to_cpu(sb->compat_features) != FEATURE_FLAG_SUPPORTS_V190) { + if (le32_to_cpu(sb->compat_features) && + le32_to_cpu(sb->compat_features) != FEATURE_FLAG_SUPPORTS_V190) { rs->ti->error = "Unable to assemble array: Unknown flag(s) in compatible feature flags"; return -EINVAL; } -- 2.9.3