Retry removal of busy minors
[zfs.git] / lib / libzfs / libzfs_diff.c
index 9ef6fdc..8140a70 100644 (file)
@@ -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);
@@ -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)