From patchwork Tue Jan 8 22:15:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Verma, Vishal L" X-Patchwork-Id: 10752943 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EBE7914E5 for ; Tue, 8 Jan 2019 22:15:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DA12221C9A for ; Tue, 8 Jan 2019 22:15:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CE67328DD1; Tue, 8 Jan 2019 22:15:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 14D8821C9A for ; Tue, 8 Jan 2019 22:15:15 +0000 (UTC) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id DD439211B1FA1; Tue, 8 Jan 2019 14:15:14 -0800 (PST) X-Original-To: linux-nvdimm@lists.01.org Delivered-To: linux-nvdimm@lists.01.org Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.115; helo=mga14.intel.com; envelope-from=vishal.l.verma@intel.com; receiver=linux-nvdimm@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 2842D211ADA52 for ; Tue, 8 Jan 2019 14:15:13 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Jan 2019 14:15:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,455,1539673200"; d="scan'208";a="132814901" Received: from vverma7-desk1.lm.intel.com ([10.232.112.170]) by fmsmga002.fm.intel.com with ESMTP; 08 Jan 2019 14:15:13 -0800 From: Vishal Verma To: Subject: [ndctl PATCH] libndctl: ignore ENXIO in ndctl_namespace_delete Date: Tue, 8 Jan 2019 15:15:10 -0700 Message-Id: <20190108221510.28553-1-vishal.l.verma@intel.com> X-Mailer: git-send-email 2.17.2 X-BeenThere: linux-nvdimm@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Linux-nvdimm developer list." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" X-Virus-Scanned: ClamAV using ClamSMTP The kernel will return ENXIO and fail attempts to set the size of a namespace that has already been deleted. When we are deleting a namespace, we don't care that it has been previously destroyed, or is in an uninitialized state. Ignore the ENXIO from setting the size to zero in this case, and report to the callers of this API that the deletion was successful. This addresses github issue #73. Signed-off-by: Vishal Verma Reviewed-by: Dan Williams --- ndctl/lib/libndctl.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ndctl/lib/libndctl.c b/ndctl/lib/libndctl.c index 0c3a35e..e82a08d 100644 --- a/ndctl/lib/libndctl.c +++ b/ndctl/lib/libndctl.c @@ -4303,7 +4303,12 @@ NDCTL_EXPORT int ndctl_namespace_delete(struct ndctl_namespace *ndns) } rc = namespace_set_size(ndns, 0); - if (rc) + /* + * if the namespace has already been deleted, this will return + * -ENXIO due to the uuid check in __size_store. We can safely + * ignore it in the case of writing a zero. + */ + if (rc && (rc != -ENXIO)) return rc; region->namespaces_init = 0;