mount_lustre_SOURCES += mount_utils_ldiskfs.c
mount_lustre_LDADD := $(LIBPTLCTL)
mount_lustre_DEPENDENCIES := $(LIBPTLCTL)
+if ZFS_ENABLED
+mount_lustre_SOURCES += mount_utils_zfs.c
+mount_lustre_CPPFLAGS = -DHAVE_IOCTL_IN_UNISTD_H
+mount_lustre_CPPFLAGS += -I /usr/include/libspl -I /usr/include/libzfs
+mount_lustre_LDFLAGS = -pthread -rdynamic -ldl
+endif
mkfs_lustre_SOURCES = mkfs_lustre.c mount_utils.c mount_utils.h
mkfs_lustre_SOURCES += mount_utils_ldiskfs.c
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",
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",
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;
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",
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",
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;
}
void osd_fini(void)
{
ldiskfs_fini();
+#ifdef HAVE_ZFS_OSD
+ zfs_fini();
+#endif /* HAVE_ZFS_OSD */
}
__u64 get_device_size(char* device)
int ldiskfs_init(void);
void ldiskfs_fini(void);
+#ifdef HAVE_ZFS_OSD
+int zfs_write_ldd(struct mkfs_opts *mop);
+int zfs_read_ldd(char *ds, struct lustre_disk_data *ldd);
+int zfs_is_lustre(char *dev, unsigned *mount_type);
+int zfs_make_lustre(struct mkfs_opts *mop);
+int zfs_prepare_lustre(struct mkfs_opts *mop,
+ char *default_mountopts, int default_len,
+ char *always_mountopts, int always_len);
+int zfs_init(void);
+void zfs_fini(void);
+#endif
+
#endif