Whamcloud - gitweb
LU-1581 utils: add zfs support to wrappers
[fs/lustre-release.git] / lustre / utils / mount_utils.c
index 048aee5..4c570a4 100644 (file)
@@ -387,6 +387,11 @@ int osd_write_ldd(struct mkfs_opts *mop)
        case LDD_MT_LDISKFS2:
                ret = ldiskfs_write_ldd(mop);
                break;
+#ifdef HAVE_ZFS_OSD
+       case LDD_MT_ZFS:
+               ret = zfs_write_ldd(mop);
+               break;
+#endif /* HAVE_ZFS_OSD */
        default:
                fatal();
                fprintf(stderr, "unknown fs type %d '%s'\n",
@@ -408,6 +413,11 @@ int osd_read_ldd(char *dev, struct lustre_disk_data *ldd)
        case LDD_MT_LDISKFS2:
                ret = ldiskfs_read_ldd(dev, ldd);
                break;
+#ifdef HAVE_ZFS_OSD
+       case LDD_MT_ZFS:
+               ret = zfs_read_ldd(dev, ldd);
+               break;
+#endif /* HAVE_ZFS_OSD */
        default:
                fatal();
                fprintf(stderr, "unknown fs type %d '%s'\n",
@@ -428,6 +438,12 @@ int osd_is_lustre(char *dev, unsigned *mount_type)
                vprint("found\n");
                return 1;
        }
+#ifdef HAVE_ZFS_OSD
+       if (zfs_is_lustre(dev, mount_type)) {
+               vprint("found\n");
+               return 1;
+       }
+#endif /* HAVE_ZFS_OSD */
 
        vprint("not found\n");
        return 0;
@@ -444,6 +460,11 @@ int osd_make_lustre(struct mkfs_opts *mop)
        case LDD_MT_LDISKFS2:
                ret = ldiskfs_make_lustre(mop);
                break;
+#ifdef HAVE_ZFS_OSD
+       case LDD_MT_ZFS:
+               ret = zfs_make_lustre(mop);
+               break;
+#endif /* HAVE_ZFS_OSD */
        default:
                fatal();
                fprintf(stderr, "unknown fs type %d '%s'\n",
@@ -469,6 +490,13 @@ int osd_prepare_lustre(struct mkfs_opts *mop,
                                             default_mountopts, default_len,
                                             always_mountopts, always_len);
                break;
+#ifdef HAVE_ZFS_OSD
+       case LDD_MT_ZFS:
+               ret = zfs_prepare_lustre(mop,
+                                        default_mountopts, default_len,
+                                        always_mountopts, always_len);
+               break;
+#endif /* HAVE_ZFS_OSD */
        default:
                fatal();
                fprintf(stderr, "unknown fs type %d '%s'\n",
@@ -487,6 +515,13 @@ int osd_init(void)
        ret = ldiskfs_init();
        if (ret)
                return ret;
+#ifdef HAVE_ZFS_OSD
+       ret = zfs_init();
+       /* we want to be able to set up a ldiskfs-based filesystem w/o
+        * the ZFS modules installed, see ORI-425 */
+       if (ret)
+               ret = 0;
+#endif /* HAVE_ZFS_OSD */
 
        return ret;
 }
@@ -494,6 +529,9 @@ int osd_init(void)
 void osd_fini(void)
 {
        ldiskfs_fini();
+#ifdef HAVE_ZFS_OSD
+       zfs_fini();
+#endif /* HAVE_ZFS_OSD */
 }
 
 __u64 get_device_size(char* device)