From: NeilBrown Date: Mon, 6 Aug 2012 12:41:13 +0000 (-0400) Subject: umount: use correct return value for is_vers4. X-Git-Tag: debian/1%1.2.8-1~11^2^2~101 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=commitdiff_plain;h=b0b342201140530c5b9e00408f12d22258df7c4e 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 Signed-off-by: Steve Dickson --- 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;