summaryrefslogtreecommitdiffstats
path: root/utils/mount/mount.c
diff options
context:
space:
mode:
authorSteve Dickson <steved@redhat.com>2008-01-16 11:53:41 -0500
committerSteve Dickson <steved@redhat.com>2008-01-16 11:53:41 -0500
commitabb00ff7cff3c6540978d9b463dee3d4fdda15f4 (patch)
tree6312359365df2d9e808e17c87f1d38ade4c1206b /utils/mount/mount.c
parentfa087f2dece4b1d322d951e9353e8ab93208194d (diff)
downloadnfs-utils-abb00ff7cff3c6540978d9b463dee3d4fdda15f4.tar.gz
nfs-utils-abb00ff7cff3c6540978d9b463dee3d4fdda15f4.tar.xz
nfs-utils-abb00ff7cff3c6540978d9b463dee3d4fdda15f4.zip
Address an inconsistency: the mount.nfs command uses the glibc routines
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>
Diffstat (limited to 'utils/mount/mount.c')
-rw-r--r--utils/mount/mount.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/utils/mount/mount.c b/utils/mount/mount.c
index cc00bf7..ea47cb4 100644
--- a/utils/mount/mount.c
+++ b/utils/mount/mount.c
@@ -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);