Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755517AbbHYKTu (ORCPT ); Tue, 25 Aug 2015 06:19:50 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:45260 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752443AbbHYKTs (ORCPT ); Tue, 25 Aug 2015 06:19:48 -0400 Date: Tue, 25 Aug 2015 11:19:45 +0100 From: Luis Henriques To: NeilBrown Cc: stable@vger.kernel.org, linux-raid , GuoQing Jiang , Goldwyn Rodrigues , lkml Subject: Re: [PATCH stable] md/bitmap: return an error when bitmap superblock is corrupt. Message-ID: <20150825101945.GB14096@ares> References: <20150814170421.60d40eb0@noble> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20150814170421.60d40eb0@noble> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1807 Lines: 50 On Fri, Aug 14, 2015 at 05:04:21PM +1000, NeilBrown wrote: > > commit b97e92574c0bf335db1cd2ec491d8ff5cd5d0b49 upstream > Use separate bitmaps for each nodes in the cluster > > bitmap_read_sb() validates the bitmap superblock that it reads in. > If it finds an inconsistency like a bad magic number or out-of-range > version number, it prints an error and returns, but it incorrectly > returns zero, so the array is still assembled with the (invalid) bitmap. > > This means it could try to use a bitmap with a new version number which > it therefore does not understand. > > This bug was introduced in 3.5 and fix as part of a larger patch in 4.1. > So the patch is suitable for any -stable kernel in that range. > > Fixes: 27581e5ae01f ("md/bitmap: centralise allocation of bitmap file pages.") > Cc: stable@vger.kernel.org (v3.5..v4.1) Thanks! Queuing it for the 3.16 kernel. Cheers, -- Lu?s > Signed-off-by: NeilBrown > Reported-by: GuoQing Jiang > > diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c > index 3a5767968ba0..894fd58f75f1 100644 > --- a/drivers/md/bitmap.c > +++ b/drivers/md/bitmap.c > @@ -577,6 +577,8 @@ static int bitmap_read_sb(struct bitmap *bitmap) > if (err) > return err; > > + err = -EINVAL; > + > sb = kmap_atomic(sb_page); > > chunksize = le32_to_cpu(sb->chunksize); > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/