Whamcloud - gitweb
Branch b1_5
authornathan <nathan>
Tue, 27 Jun 2006 22:23:23 +0000 (22:23 +0000)
committernathan <nathan>
Tue, 27 Jun 2006 22:23:23 +0000 (22:23 +0000)
b=8007
-include luster vers in log markers
-fix missing index processing in tunefs.lustre

lustre/include/lustre/lustre_idl.h
lustre/mgs/mgs_llog.c
lustre/utils/llog_reader.c
lustre/utils/mkfs_lustre.c

index ed9b6f4..61d3f64 100644 (file)
@@ -1077,8 +1077,9 @@ extern void lustre_swab_mgs_target_info(struct mgs_target_info *oinfo);
 #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];
index 2294207..7dbf272 100644 (file)
@@ -44,6 +44,7 @@
 #include <lustre_fsfilt.h>
 #include <lustre_disk.h>
 #include <lustre_param.h>
+#include <lustre_ver.h>
 #include "mgs_internal.h"
 
 /********************** Class fns ********************/
@@ -645,6 +646,7 @@ static int record_marker(struct obd_device *obd, struct llog_handle *llh,
                 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);
index 6b5601d..a2c49c2 100644 (file)
@@ -334,8 +334,13 @@ void print_lustre_cfg(struct lustre_cfg *lcfg, int *skip)
                         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) : "");
index 99345b1..45634b4 100644 (file)
@@ -86,7 +86,7 @@ void usage(FILE *out)
                 "\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"
@@ -778,7 +778,6 @@ int read_local_files(struct mkfs_opts *mop)
                         if (ret) 
                                 goto out_close;
                 }
-                ret = 0;
                 vprint("Feature compat=%x, incompat=%x\n",
                        lsd.lsd_feature_compat, lsd.lsd_feature_incompat);
 
@@ -822,11 +821,11 @@ int read_local_files(struct mkfs_opts *mop)
                                         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;
@@ -1161,7 +1160,6 @@ int main(int argc, char *const argv[])
         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;
         }
@@ -1169,7 +1167,15 @@ int main(int argc, char *const argv[])
         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;
         }
@@ -1183,7 +1189,6 @@ int main(int argc, char *const argv[])
         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;
         }