From patchwork Wed Dec 11 06:43:01 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Marzinski X-Patchwork-Id: 3322601 X-Patchwork-Delegate: christophe.varoqui@free.fr Return-Path: X-Original-To: patchwork-dm-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id D21F0C0D4B for ; Wed, 11 Dec 2013 06:47:19 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 92E2C20755 for ; Wed, 11 Dec 2013 06:47:17 +0000 (UTC) Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by mail.kernel.org (Postfix) with ESMTP id C7F0C20396 for ; Wed, 11 Dec 2013 06:47:16 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id rBB6hvp2017717; Wed, 11 Dec 2013 01:43:57 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id rBB6hS8m018857 for ; Wed, 11 Dec 2013 01:43:28 -0500 Received: from dhcp80-209.msp.redhat.com (octiron.msp.redhat.com [10.15.80.209]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id rBB6hRkB021206 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Dec 2013 01:43:28 -0500 Received: from dhcp80-209.msp.redhat.com (localhost [127.0.0.1]) by dhcp80-209.msp.redhat.com (8.14.7/8.14.7) with ESMTP id rBB6hQhj001364; Wed, 11 Dec 2013 00:43:26 -0600 Received: (from bmarzins@localhost) by dhcp80-209.msp.redhat.com (8.14.7/8.14.7/Submit) id rBB6hQdX001363; Wed, 11 Dec 2013 00:43:26 -0600 From: Benjamin Marzinski To: device-mapper development Date: Wed, 11 Dec 2013 00:43:01 -0600 Message-Id: <1386744190-1295-8-git-send-email-bmarzins@redhat.com> In-Reply-To: <1386744190-1295-1-git-send-email-bmarzins@redhat.com> References: <1386744190-1295-1-git-send-email-bmarzins@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-loop: dm-devel@redhat.com Cc: Christophe Varoqui Subject: [dm-devel] [PATCH 07/16] fix mutipath -W on empty wwids file X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk Reply-To: device-mapper development List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When multipath tries to open the wwids file and finds it empty or missing, it writes the header to the file. When it tried to wipe the wwids from an empty or missing file, it didn't seek back to the start of the file after truncating it. This caused the the wwids file to have a patch of zeroed bytes at the start. This patch fixes this by always seeking back to the start of the file before rewriting the header. Signed-off-by: Benjamin Marzinski --- libmultipath/wwids.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c index 91b07a7..eca1799 100644 --- a/libmultipath/wwids.c +++ b/libmultipath/wwids.c @@ -4,6 +4,7 @@ #include #include #include +#include #include "checkers.h" #include "vector.h" @@ -100,6 +101,11 @@ replace_wwids(vector mp) condlog(0, "cannot truncate wwids file : %s", strerror(errno)); goto out_file; } + if (lseek(fd, 0, SEEK_SET) < 0) { + condlog(0, "cannot seek to the start of the file : %s", + strerror(errno)); + goto out_file; + } len = strlen(WWIDS_FILE_HEADER); if (write_all(fd, WWIDS_FILE_HEADER, len) != len) { condlog(0, "Can't write wwid file header : %s",