Illumos #734: Use taskq_dispatch_ent() interface
[zfs.git] / lib / libzfs / libzfs_diff.c
index 888224f..8140a70 100644 (file)
@@ -90,7 +90,7 @@ static int
 get_stats_for_obj(differ_info_t *di, const char *dsname, uint64_t obj,
     char *pn, int maxlen, zfs_stat_t *sb)
 {
-       zfs_cmd_t zc = { 0 };
+       zfs_cmd_t zc = { "\0", "\0", "\0", "\0", 0 };
        int error;
 
        (void) strlcpy(zc.zc_name, dsname, sizeof (zc.zc_name));
@@ -118,7 +118,7 @@ get_stats_for_obj(differ_info_t *di, const char *dsname, uint64_t obj,
                (void) snprintf(di->errbuf, sizeof (di->errbuf),
                    dgettext(TEXT_DOMAIN,
                    "Unable to determine path or stats for "
-                   "object %lld in %s"), obj, dsname);
+                   "object %lld in %s"), (longlong_t)obj, dsname);
                return (-1);
        }
 }
@@ -160,18 +160,22 @@ print_what(FILE *fp, mode_t what)
        case S_IFDIR:
                symbol = '/';
                break;
+#ifdef S_IFDOOR
        case S_IFDOOR:
                symbol = '>';
                break;
+#endif
        case S_IFIFO:
                symbol = '|';
                break;
        case S_IFLNK:
                symbol = '@';
                break;
+#ifdef S_IFPORT
        case S_IFPORT:
                symbol = 'P';
                break;
+#endif
        case S_IFSOCK:
                symbol = '=';
                break;
@@ -346,7 +350,7 @@ write_inuse_diffs(FILE *fp, differ_info_t *di, dmu_diff_record_t *dr)
        int err;
 
        for (o = dr->ddr_first; o <= dr->ddr_last; o++) {
-               if (err = write_inuse_diffs_one(fp, di, o))
+               if ((err = write_inuse_diffs_one(fp, di, o)))
                        return (err);
        }
        return (0);
@@ -375,7 +379,7 @@ describe_free(FILE *fp, differ_info_t *di, uint64_t object, char *namebuf,
 static int
 write_free_diffs(FILE *fp, differ_info_t *di, dmu_diff_record_t *dr)
 {
-       zfs_cmd_t zc = { 0 };
+       zfs_cmd_t zc = { "\0", "\0", "\0", "\0", 0 };
        libzfs_handle_t *lhdl = di->zhp->zfs_hdl;
        char fobjname[MAXPATHLEN];
 
@@ -406,7 +410,7 @@ write_free_diffs(FILE *fp, differ_info_t *di, dmu_diff_record_t *dr)
                        (void) snprintf(di->errbuf, sizeof (di->errbuf),
                            dgettext(TEXT_DOMAIN,
                            "next allocated object (> %lld) find failure"),
-                           zc.zc_obj);
+                           (longlong_t)zc.zc_obj);
                        di->zerr = errno;
                        break;
                }
@@ -503,7 +507,7 @@ static int
 make_temp_snapshot(differ_info_t *di)
 {
        libzfs_handle_t *hdl = di->zhp->zfs_hdl;
-       zfs_cmd_t zc = { 0 };
+       zfs_cmd_t zc = { "\0", "\0", "\0", "\0", 0 };
 
        (void) snprintf(zc.zc_value, sizeof (zc.zc_value),
            ZDIFF_PREFIX, getpid());
@@ -726,7 +730,7 @@ setup_differ_info(zfs_handle_t *zhp, const char *fromsnap,
 {
        di->zhp = zhp;
 
-       di->cleanupfd = open(ZFS_DEV, O_RDWR|O_EXCL);
+       di->cleanupfd = open(ZFS_DEV, O_RDWR);
        VERIFY(di->cleanupfd >= 0);
 
        if (get_snapshot_names(di, fromsnap, tosnap) != 0)
@@ -745,7 +749,7 @@ int
 zfs_show_diffs(zfs_handle_t *zhp, int outfd, const char *fromsnap,
     const char *tosnap, int flags)
 {
-       zfs_cmd_t zc = { 0 };
+       zfs_cmd_t zc = { "\0", "\0", "\0", "\0", 0 };
        char errbuf[1024];
        differ_info_t di = { 0 };
        pthread_t tid;