]> git.decadent.org.uk Git - nfs-utils.git/commitdiff
Address an inconsistency: the mount.nfs command uses the glibc routines
authorSteve Dickson <steved@redhat.com>
Wed, 16 Jan 2008 16:53:41 +0000 (11:53 -0500)
committerSteve Dickson <steved@redhat.com>
Wed, 16 Jan 2008 16:53:41 +0000 (11:53 -0500)
to manipulate /etc/mtab (setmntent) but, everything else in nfs-utils
uses a local private version (nfs_setmntent).  The local version does
some extra mangling of the mtab entries.

We should check what util-linux does these days to be sure, but for now,
let's make the mount.nfs command use the nfs_ variants of setmntent().

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
utils/mount/mount.c

index cc00bf7b95cc304a287f450d37e8674aa93ee98d..ea47cb48e4e17e3bebf0d44983efc77c127a92d4 100644 (file)
@@ -36,6 +36,7 @@
 #include "nls.h"
 #include "mount_constants.h"
 #include "nfs_paths.h"
+#include "nfs_mntent.h"
 
 #include "nfs_mount.h"
 #include "nfs4_mount.h"
@@ -227,7 +228,7 @@ static int add_mtab(char *spec, char *mount_point, char *fstype,
                        int flags, char *opts, int freq, int pass)
 {
        struct mntent ment;
-       FILE *mtab;
+       mntFILE *mtab;
        int result = EX_FILEIO;
 
        ment.mnt_fsname = spec;
@@ -245,19 +246,20 @@ static int add_mtab(char *spec, char *mount_point, char *fstype,
 
        lock_mtab();
 
-       if ((mtab = setmntent(MOUNTED, "a+")) == NULL) {
+       mtab = nfs_setmntent(MOUNTED, "a+");
+       if (mtab == NULL || mtab->mntent_fp == NULL) {
                nfs_error(_("Can't open mtab: %s"),
                                strerror(errno));
                goto fail_unlock;
        }
 
-       if (addmntent(mtab, &ment) == 1) {
+       if (nfs_addmntent(mtab, &ment) == 1) {
                nfs_error(_("Can't write mount entry to mtab: %s"),
                                strerror(errno));
                goto fail_close;
        }
 
-       if (fchmod(fileno(mtab), 0644) == -1) {
+       if (fchmod(fileno(mtab->mntent_fp), 0644) == -1) {
                nfs_error(_("Can't set permissions on mtab: %s"),
                                strerror(errno));
                goto fail_close;
@@ -266,7 +268,7 @@ static int add_mtab(char *spec, char *mount_point, char *fstype,
        result = EX_SUCCESS;
 
 fail_close:
-       endmntent(mtab);
+       nfs_endmntent(mtab);
 fail_unlock:
        unlock_mtab();
        free(ment.mnt_opts);