+static int lfs_getstripe(int argc, char **argv)
+{
+ struct find_param param = { 0 };
+ return lfs_getstripe_internal(argc, argv, ¶m);
+}
+
+/* functions */
+static int lfs_getdirstripe(int argc, char **argv)
+{
+ struct find_param param = { 0 };
+
+ param.get_lmv = 1;
+ return lfs_getstripe_internal(argc, argv, ¶m);
+}
+
+/* functions */
+static int lfs_setdirstripe(int argc, char **argv)
+{
+ char *dname;
+ int result;
+ int st_offset, st_count;
+ char *end;
+ int c;
+ char *stripe_off_arg = NULL;
+ int flags = 0;
+
+ struct option long_opts[] = {
+ {"index", required_argument, 0, 'i'},
+ {0, 0, 0, 0}
+ };
+
+ st_offset = -1;
+ st_count = 1;
+ optind = 0;
+ while ((c = getopt_long(argc, argv, "i:o",
+ long_opts, NULL)) >= 0) {
+ switch (c) {
+ case 0:
+ /* Long options. */
+ break;
+ case 'i':
+ stripe_off_arg = optarg;
+ break;
+ default:
+ fprintf(stderr, "error: %s: option '%s' "
+ "unrecognized\n",
+ argv[0], argv[optind - 1]);
+ return CMD_HELP;
+ }
+ }
+
+ if (optind == argc) {
+ fprintf(stderr, "error: %s: missing dirname\n",
+ argv[0]);
+ return CMD_HELP;
+ }
+
+ dname = argv[optind];
+ if (stripe_off_arg == NULL) {
+ fprintf(stderr, "error: %s: missing stripe_off.\n",
+ argv[0]);
+ return CMD_HELP;
+ }
+ /* get the stripe offset */
+ st_offset = strtoul(stripe_off_arg, &end, 0);
+ if (*end != '\0') {
+ fprintf(stderr, "error: %s: bad stripe offset '%s'\n",
+ argv[0], stripe_off_arg);
+ return CMD_HELP;
+ }
+ do {
+ result = llapi_dir_create_pool(dname, flags, st_offset,
+ st_count, 0, NULL);
+ if (result) {
+ fprintf(stderr, "error: %s: create stripe dir '%s' "
+ "failed\n", argv[0], dname);
+ break;
+ }
+ dname = argv[++optind];
+ } while (dname != NULL);
+
+ return result;
+}
+
+/* functions */
+static int lfs_rmentry(int argc, char **argv)
+{
+ char *dname;
+ int index;
+ int result = 0;
+
+ if (argc <= 1) {
+ fprintf(stderr, "error: %s: missing dirname\n",
+ argv[0]);
+ return CMD_HELP;
+ }
+
+ index = 1;
+ dname = argv[index];
+ while (dname != NULL) {
+ result = llapi_direntry_remove(dname);
+ if (result) {
+ fprintf(stderr, "error: %s: remove dir entry '%s' "
+ "failed\n", argv[0], dname);
+ break;
+ }
+ dname = argv[++index];
+ }
+ return result;
+}
+