btrfs-progs: commands added
authorJan Schmidt <list.btrfs@jan-o-sch.net>
Mon, 18 Jul 2011 12:37:21 +0000 (14:37 +0200)
committerChris Mason <chris.mason@oracle.com>
Tue, 25 Oct 2011 13:18:59 +0000 (09:18 -0400)
- scrub commands added
- open_file_or_dir no longer static (needed by scrub.c)

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
Makefile
btrfs.c
btrfs_cmds.c
btrfs_cmds.h

index 22bae25..edee1a0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -35,8 +35,8 @@ all: version $(progs) manpages
 version:
        bash version.sh
 
-btrfs: $(objects) btrfs.o btrfs_cmds.o
-       $(CC) -lpthread $(CFLAGS) -o btrfs btrfs.o btrfs_cmds.o \
+btrfs: $(objects) btrfs.o btrfs_cmds.o scrub.o
+       $(CC) -lpthread $(CFLAGS) -o btrfs btrfs.o btrfs_cmds.o scrub.o \
                $(objects) $(LDFLAGS) $(LIBS)
 
 btrfsctl: $(objects) btrfsctl.o
diff --git a/btrfs.c b/btrfs.c
index a855364..a3f9a01 100644 (file)
--- a/btrfs.c
+++ b/btrfs.c
@@ -127,6 +127,29 @@ static struct Command commands[] = {
          "If <newlabel> is passed, set the filesystem label to <newlabel>.\n"
          "The filesystem must be unmounted.\n"
        },
+       { do_scrub_start, -1,
+         "scrub start", "[-Bdqr] <path>|<device>\n"
+               "Start a new scrub.",
+               "\n-B  do not background\n"
+               "-d  stats per device (-B only)\n"
+               "-q  quiet\n"
+               "-r  read only mode\n"
+       },
+       { do_scrub_cancel, 1,
+         "scrub cancel", "<path>|<device>\n"
+               "Cancel a running scrub.",
+         NULL
+       },
+       { do_scrub_resume, -1,
+         "scrub resume", "[-Bdqr] <path>|<device>\n"
+               "Resume previously canceled or interrupted scrub.",
+         NULL
+       },
+       { do_scrub_status, -1,
+         "scrub status", "[-d] <path>|<device>\n"
+               "Show status of running or finished scrub.",
+         NULL
+       },
        { do_scan, 999, 
          "device scan", "[<device>...]\n"
                "Scan all device for or the passed device for a btrfs\n"
index 72129d9..d91bccd 100644 (file)
@@ -91,7 +91,7 @@ static int test_isdir(char *path)
 
 }
 
-static int open_file_or_dir(const char *fname)
+int open_file_or_dir(const char *fname)
 {
        int ret;
        struct stat st;
index 12902d8..3e171da 100644 (file)
@@ -23,6 +23,10 @@ int do_defrag(int argc, char **argv);
 int do_show_filesystem(int nargs, char **argv);
 int do_add_volume(int nargs, char **args);
 int do_balance(int nargs, char **argv);
+int do_scrub_start(int nargs, char **argv);
+int do_scrub_status(int argc, char **argv);
+int do_scrub_resume(int argc, char **argv);
+int do_scrub_cancel(int nargs, char **argv);
 int do_remove_volume(int nargs, char **args);
 int do_scan(int nargs, char **argv);
 int do_resize(int nargs, char **argv);
@@ -33,3 +37,4 @@ int do_df_filesystem(int nargs, char **argv);
 int find_updated_files(int fd, u64 root_id, u64 oldest_gen);
 int do_find_newer(int argc, char **argv);
 int do_change_label(int argc, char **argv);
+int open_file_or_dir(const char *fname);