On Tue, Jul 03, 2012 at 04:22:08PM +0100, Hugo Mills wrote:
> Correct, by default it just checks the filesystem. Just to be sure:
> the filesystems in question weren't mounted, were they?
fsck will refuse to run on a mounted filesystem, though in case of a
read-only mount it might be useful during debugging, I'm using this
patch
--- a/btrfsck.c
+++ b/btrfsck.c
@@ -3474,6 +3474,7 @@ static struct option long_options[] = {
{ "repair", 0, NULL, 0 },
{ "init-csum-tree", 0, NULL, 0 },
{ "init-extent-tree", 0, NULL, 0 },
+ { "force", 0, NULL, 0 },
{ 0, 0, 0, 0}
};
@@ -3484,12 +3485,13 @@ int main(int ac, char **av)
struct btrfs_fs_info *info;
struct btrfs_trans_handle *trans = NULL;
u64 bytenr = 0;
- int ret;
+ int ret = 0;
int num;
int repair = 0;
int option_index = 0;
int init_csum_tree = 0;
int rw = 0;
+ int force = 0;
while(1) {
int c;
@@ -3516,6 +3518,9 @@ int main(int ac, char **av)
printf("Creating a new CRC tree\n");
init_csum_tree = 1;
rw = 1;
+ } else if (option_index == 4) {
+ printf("Skip mount checks\n");
+ force = 1;
}
}
@@ -3527,7 +3532,7 @@ int main(int ac, char **av)
radix_tree_init();
cache_tree_init(&root_cache);
- if((ret = check_mounted(av[optind])) < 0) {
+ if(!force && (ret = check_mounted(av[optind])) < 0) {
fprintf(stderr, "Could not check mount status: %s\n", strerror(-ret));
return ret;
} else if(ret) {
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html