Don't specifically open /etc/mtab - it is done in libzfs_init()
authorTurbo Fredriksson <turbo@bayour.com>
Tue, 4 Jun 2013 01:54:44 +0000 (03:54 +0200)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 15 Aug 2013 17:19:38 +0000 (10:19 -0700)
a few lines further down and we can share the open file handle.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #1498

cmd/zfs/zfs_main.c

index cb5c871..5753cce 100644 (file)
@@ -66,6 +66,7 @@
 #include "zfs_iter.h"
 #include "zfs_util.h"
 #include "zfs_comutil.h"
+#include "libzfs_impl.h"
 
 libzfs_handle_t *g_zfs;
 
@@ -6343,12 +6344,6 @@ main(int argc, char **argv)
 
        opterr = 0;
 
-       if ((mnttab_file = fopen(MNTTAB, "r")) == NULL) {
-               (void) fprintf(stderr, gettext("internal error: unable to "
-                   "open %s\n"), MNTTAB);
-               return (1);
-       }
-
        /*
         * Make sure the user has specified some command.
         */
@@ -6387,6 +6382,8 @@ main(int argc, char **argv)
        if ((g_zfs = libzfs_init()) == NULL)
                return (1);
 
+       mnttab_file = g_zfs->libzfs_mnttab;
+
        zpool_set_history_str("zfs", argc, argv, history_str);
        verify(zpool_stage_history(g_zfs, history_str) == 0);
 
@@ -6411,8 +6408,6 @@ main(int argc, char **argv)
        }
        libzfs_fini(g_zfs);
 
-       (void) fclose(mnttab_file);
-
        /*
         * The 'ZFS_ABORT' environment variable causes us to dump core on exit
         * for the purposes of running ::findleaks.