]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/fstab.c
exportfs: Use xlog() for error reporting
[nfs-utils.git] / support / nfs / fstab.c
index ba7e580eb08f97978bee156a9e81ecc6dc4b0120..b4f8710ba2d3a5c75f286af4ee0c7320a17009ea 100644 (file)
@@ -87,20 +87,21 @@ static void read_mounttable(void);
 static void read_fstab(void);
 
 static struct mntentchn *
-mtab_head() {
+mtab_head(void) {
        if (!got_mtab)
                read_mounttable();
        return &mounttable;
 }
 
 static struct mntentchn *
-fstab_head()
+fstab_head(void)
 {
        if (!got_fstab)
                read_fstab();
        return &fstab;
 }
 
+#if 0
 static void
 my_free(const void *s) {
        if (s)
@@ -120,11 +121,12 @@ discard_mntentchn(struct mntentchn *mc0) {
                free(mc);
        }
 }
+#endif
 
 static void
 read_mntentchn(mntFILE *mfp, const char *fnam, struct mntentchn *mc0) {
        struct mntentchn *mc = mc0;
-       nfs_mntent_t *mnt;
+       struct mntent *mnt;
 
        while ((mnt = nfs_getmntent(mfp)) != NULL) {
                if (!streq(mnt->mnt_type, MNTTYPE_IGNORE)) {
@@ -192,8 +194,8 @@ read_fstab()
        mfp = nfs_setmntent (fnam, "r");
        if (mfp == NULL || mfp->mntent_fp == NULL) {
                int errsv = errno;
-               error(_("warning: can't open %s: %s"),
-                       _PATH_FSTAB, strerror (errsv));
+               nfs_error(_("warning: can't open %s: %s"),
+                         _PATH_FSTAB, strerror (errsv));
                return;
        }
        read_mntentchn(mfp, fnam, mc);
@@ -444,7 +446,8 @@ lock_mtab (void) {
  */
 
 void
-update_mtab (const char *dir, nfs_mntent_t *instead) {
+update_mtab (const char *dir, struct mntent *instead)
+{
        mntFILE *mfp, *mftmp;
        const char *fnam = MOUNTED;
        struct mntentchn mtabhead;      /* dummy */
@@ -513,8 +516,14 @@ update_mtab (const char *dir, nfs_mntent_t *instead) {
                }
        }
 
+#if 0
+       /* the chain might have strings copied from 'instead',
+        * so we cannot safely free it.
+        * And there is no need anyway because we are going to exit
+        * shortly.  So just don't call discard_mntentchn....
+        */
        discard_mntentchn(mc0);
-
+#endif
        if (fchmod (fileno (mftmp->mntent_fp),
                    S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH) < 0) {
                int errsv = errno;