#define CM_START_SKIP (CM_START | CM_SKIP)
struct cfg_marker {
- __u32 cm_step; /* aka config version */
+ __u32 cm_step; /* aka config version */
__u32 cm_flags;
+ __u32 cm_vers; /* lustre release version number */
time_t cm_createtime; /*when this record was first created */
time_t cm_canceltime; /*when this record is no longer valid*/
char cm_svname[16];
#include <lustre_fsfilt.h>
#include <lustre_disk.h>
#include <lustre_param.h>
+#include <lustre_ver.h>
#include "mgs_internal.h"
/********************** Class fns ********************/
fsdb->fsdb_gen++;
marker.cm_step = fsdb->fsdb_gen;
marker.cm_flags = flags;
+ marker.cm_vers = LUSTRE_VERSION_CODE;
strncpy(marker.cm_svname, svname, sizeof(marker.cm_svname));
strncpy(marker.cm_comment, comment, sizeof(marker.cm_comment));
do_gettimeofday(&tv);
if (marker->cm_flags & CM_END)
(*skip)--;
}
- printf("marker %d (flags=%#x) %.16s '%s' %s:%s", marker->cm_step,
- marker->cm_flags, marker->cm_svname,
+ printf("marker %d (flags=%#x, v%d.%d.%d.%d) %.16s '%s' %s:%s",
+ marker->cm_step, marker->cm_flags,
+ OBD_OCD_VERSION_MAJOR(marker->cm_vers),
+ OBD_OCD_VERSION_MINOR(marker->cm_vers),
+ OBD_OCD_VERSION_PATCH(marker->cm_vers),
+ OBD_OCD_VERSION_FIX(marker->cm_vers),
+ marker->cm_svname,
marker->cm_comment, ctime(&marker->cm_createtime),
marker->cm_canceltime ?
ctime(&marker->cm_canceltime) : "");
"\t\t--fsname=<filesystem_name> : default is 'lustre'\n"
"\t\t--failnode=<nid>[,<...>] : NID(s) of a failover partner\n"
"\t\t--param <key>=<value> : set a permanent parameter\n"
- "\t\t--index=#N : target index\n"
+ "\t\t--index=#N : target index (i.e. ost index within the lov)\n"
/* FIXME implement 1.6.x
"\t\t--configdev=<altdevice|file>: store configuration info\n"
"\t\t\tfor this device on an alternate device\n"
if (ret)
goto out_close;
}
- ret = 0;
vprint("Feature compat=%x, incompat=%x\n",
lsd.lsd_feature_compat, lsd.lsd_feature_incompat);
mop->mo_ldd.ldd_flags =
LDD_F_SV_TYPE_OST | LDD_F_NEED_INDEX;
verrprint("OST with unknown index\n");
-
}
}
}
-
+
+ ret = 0;
memcpy(mop->mo_ldd.ldd_uuid, lsd.lsd_uuid,
sizeof(mop->mo_ldd.ldd_uuid));
mop->mo_ldd.ldd_flags |= LDD_F_UPGRADE14;
if (!(IS_MDT(ldd) || IS_OST(ldd) || IS_MGS(ldd))) {
fatal();
fprintf(stderr, "must set target type: MDT,OST,MGS\n");
- usage(stderr);
ret = EINVAL;
goto out;
}
if (((IS_MDT(ldd) || IS_MGS(ldd))) && IS_OST(ldd)) {
fatal();
fprintf(stderr, "OST type is exclusive with MDT,MGS\n");
- usage(stderr);
+ ret = EINVAL;
+ goto out;
+ }
+
+ if ((mop.mo_ldd.ldd_flags & (LDD_F_NEED_INDEX | LDD_F_UPGRADE14)) ==
+ (LDD_F_NEED_INDEX | LDD_F_UPGRADE14)) {
+ fatal();
+ fprintf(stderr, "Can't find the target index, "
+ "specify with --index\n");
ret = EINVAL;
goto out;
}
if (!IS_MGS(ldd) && (mop.mo_mgs_failnodes == 0)) {
fatal();
fprintf(stderr, "Must specify either --mgs or --mgsnode\n");
- usage(stderr);
ret = EINVAL;
goto out;
}