" format Format a new filesystem\n"
" show-super Dump superblock information to stdout\n"
" set-option Set a filesystem option\n"
+ " reset-counters Reset all counters on an unmounted device\n"
"\n"
#ifndef BCACHEFS_NO_RUST
"Mount:\n"
" version Display the version of the invoked bcachefs tool\n");
}
-static char *full_cmd;
-
static char *pop_cmd(int *argc, char *argv[])
{
char *cmd = argv[1];
if (!(*argc < 2))
- memmove(&argv[1], &argv[2], *argc * sizeof(argv[0]));
+ memmove(&argv[1], &argv[2], (*argc - 2) * sizeof(argv[0]));
(*argc)--;
+ argv[*argc] = NULL;
- full_cmd = mprintf("%s %s", full_cmd, cmd);
return cmd;
}
{
raid_init();
- full_cmd = argv[0];
+ char *full_cmd = argv[0];
/* Are we being called via a symlink? */
#ifndef BCACHEFS_NO_RUST
if (strstr(full_cmd, "mount"))
- return cmd_mount(argc, argv);
+ return rust_main(argc, argv, "mount");
#endif
setvbuf(stdout, NULL, _IOLBF, 0);
return cmd_show_super(argc, argv);
if (!strcmp(cmd, "set-option"))
return cmd_set_option(argc, argv);
+ if (!strcmp(cmd, "reset-counters"))
+ return cmd_reset_counters(argc, argv);
#if 0
if (!strcmp(cmd, "assemble"))
if (!strcmp(cmd, "dump"))
return cmd_dump(argc, argv);
-#ifndef BCACHEFS_NO_RUST
- if (!strcmp(cmd, "list"))
- return cmd_list(argc, argv);
-#endif
if (!strcmp(cmd, "list_journal"))
return cmd_list_journal(argc, argv);
if (!strcmp(cmd, "kill_btree_node"))
if (!strcmp(cmd, "setattr"))
return cmd_setattr(argc, argv);
#ifndef BCACHEFS_NO_RUST
- if (!strcmp(cmd, "mount"))
- return cmd_mount(argc, argv);
- if (strstr(cmd, "completions"))
- return cmd_completions(argc, argv);
+ if (!strcmp(cmd, "list") ||
+ !strcmp(cmd, "mount") ||
+ !strcmp(cmd, "completions"))
+ return rust_main(argc, argv, cmd);
#endif
#ifdef BCACHEFS_FUSE