"abort recovery on a restarting MDT or OST device\n"},
{"set_timeout", jt_lcfg_set_timeout, 0,
"usage: conf_param obd_timeout=<secs>\n"},
- {"conf_param", jt_lcfg_mgsparam, 0, "set a permanent config param. "
+ {"conf_param", jt_lcfg_mgsparam, 0,"set a permanent config parameter.\n"
"This command must be run on the MGS node\n"
- "usage: conf_param <target.keyword=val> ...\n"},
+ "usage: conf_param [-d] <target.keyword=val>\n"
+ " -d Remove the permanent setting."},
{"local_param", jt_lcfg_param, 0, "set a temporary, local param\n"
- "usage: local_param <target.keyword=val> ...\n"},
+ "usage: local_param <target.keyword=val>\n"},
{"get_param", jt_lcfg_getparam, 0, "get the Lustre or LNET parameter\n"
- "usage: get_param [-n|-N] name.of.param\n"
- "Get the value of Lustre or LNET parameter from the specified path\n"
- "Use '-n' to disable printing of parameter name when printing value\n"
- "Use '-N' to print only parameter names and not the values."},
+ "usage: get_param [-n|-N|-F] <param_path1 param_path2 ...>\n"
+ "Get the value of Lustre or LNET parameter from the specified path.\n"
+ "The path can contain shell-style filename patterns.\n"
+ " -n Print only the value and not parameter name.\n"
+ " -N Print only matched parameter names and not the values.\n"
+ " (Especially useful when using patterns.)\n"
+ " -F When -N specified, add '/', '@' or '=' for directories,\n"
+ " symlinks and writeable files, respectively."},
{"set_param", jt_lcfg_setparam, 0, "set the Lustre or LNET parameter\n"
- "usage: set_param [-n] name.of.param=value\n"
+ "usage: set_param [-n] <param_path1=value1 param_path2=value2 ...>\n"
"Set the value of the Lustre or LNET parameter at the specified path\n"
- "Use '-n' to disable printing of parameter name when setting value\n"},
+ " -n Disable printing of the key name when printing values."},
+ {"list_param", jt_lcfg_listparam, 0,
+ "list the Lustre or LNET parameter name\n"
+ "usage: list_param [-F] <param_path1 param_path2 ...>\n"
+ "List the name of Lustre or LNET parameter from the specified path.\n"
+ " -F Add '/', '@' or '=' for dirs, symlinks and writeable files,\n"
+ "respectively.\n"
+ " -R Recursively list all parameters under the specified path.\n"},
/* Debug commands */
{"==== debugging control ====", jt_noop, 0, "debug"},
{"memhog", jt_ptl_memhog, 0,
"memory pressure testing\n"
"usage: memhog <page count> [<gfp flags>]"},
+ {"getobjversion", jt_get_obj_version, 0,
+ "get the version of an object on servers\n"
+ "usage: getobjversion <fid>"},
{"==== obsolete (DANGEROUS) ====", jt_noop, 0, "obsolete (DANGEROUS)"},
/* some test scripts still use these */
}
obd_finalize(argc, argv);
- return rc;
+ return rc < 0 ? -rc : rc;
}
#ifndef LIBLUSTRE_TEST