From patchwork Thu Aug 2 00:21:42 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: NeilBrown X-Patchwork-Id: 1266061 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id ECC63DFAF2 for ; Thu, 2 Aug 2012 00:22:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753178Ab2HBAWA (ORCPT ); Wed, 1 Aug 2012 20:22:00 -0400 Received: from cantor2.suse.de ([195.135.220.15]:60041 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753116Ab2HBAV4 (ORCPT ); Wed, 1 Aug 2012 20:21:56 -0400 Received: from relay1.suse.de (unknown [195.135.220.254]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 14176A30B9; Thu, 2 Aug 2012 02:21:55 +0200 (CEST) Date: Thu, 2 Aug 2012 10:21:42 +1000 From: NeilBrown To: Steve Dickson Cc: Karel Zak , NFS Subject: Re: nfs-utils: Something is wrong in is_vers4() Message-ID: <20120802102142.10be27f4@notabene.brown> In-Reply-To: <5019499C.2040805@RedHat.com> References: <20120731165842.08017d60@notabene.brown> <5018103A.9070607@RedHat.com> <20120731183739.GA16347@x2.net.home> <5019499C.2040805@RedHat.com> X-Mailer: Claws Mail 3.7.10 (GTK+ 2.24.7; x86_64-suse-linux-gnu) Mime-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org On Wed, 01 Aug 2012 11:22:04 -0400 Steve Dickson wrote: > > > On 07/31/2012 02:37 PM, Karel Zak wrote: > > On Tue, Jul 31, 2012 at 01:04:58PM -0400, Steve Dickson wrote: > >>> BTW Steve, Karel's "[PATCH] umount.nfs: ignore non-nfs filesystems" > >>> which appears in email: > >>> > >>> From: Karel Zak > >>> To: NeilBrown > >>> Cc: Steve Dickson , NFS > >>> Subject: Re: [PATCH] umount.nfs: restore correct error status when umount fails. > >>> Date: Thu, 12 Jul 2012 18:44:20 +0200 > >>> > >>> hasn't been applied, but probably should be. > >> I beg to differ.... > >> > >> commit 76908c3f14a12e865054ea5d6e4cad201c28839a > >> Author: NeilBrown > >> Date: Mon Jul 16 08:43:28 2012 -0400 > >> > >> mount.nfs: restore correct error status when umount fails > >> > >> Or am I missing something? > > > > Yes, Neil found two problems: > > > > http://www.spinics.net/lists/linux-nfs/msg31466.html > Ah... Found it and committed it... > > steved. Thanks. So here is one more :-) This fixes the the bug in $SUBJECT NeilBrown From: Neil Brown Date: Thu, 2 Aug 2012 10:20:13 +1000 Subject: [PATCH] umount: use correct return value for is_vers4. is_vers4 in mount_libmount.c is based on nfs_umount_is_vers4 in nfsumount.c, except the return values are reversed. The result of this is: - a MOUNT_UMNT call is not sent when an NFSv3 or NFSv2 filesystem is unmounted - a MOUNT_UMNT call *is* sent when and 'nfs4' filesystem is unmounted (but not when an 'nfs -o vers=4 filesystem is unmounted, as that is checked elsewhere). Signed-off-by: NeilBrown diff --git a/utils/mount/mount_libmount.c b/utils/mount/mount_libmount.c index ddf61b2..701d41e 100644 --- a/utils/mount/mount_libmount.c +++ b/utils/mount/mount_libmount.c @@ -140,14 +140,14 @@ static int try_mount(struct libmnt_context *cxt, int bg) return ret; } -/* returns: error = -1, success = 0 , unknown = 1 */ +/* returns: error = -1, success = 1 , not vers4 == 0 */ static int is_vers4(struct libmnt_context *cxt) { struct libmnt_fs *fs = mnt_context_get_fs(cxt); struct libmnt_table *tb = NULL; const char *src = mnt_context_get_source(cxt), *tgt = mnt_context_get_target(cxt); - int rc = 1; + int rc = 0; if (!src || !tgt) return -1; @@ -163,7 +163,7 @@ static int is_vers4(struct libmnt_context *cxt) if (fs) { const char *type = mnt_fs_get_fstype(fs); if (type && strcmp(type, "nfs4") == 0) - rc = 0; + rc = 1; } mnt_free_table(tb); return rc;