Re: GPF in read_extent_buffer while scrubbing on 3.7.0-rc8-00014-g27d7c2a

From: Jan Schmidt
Date: Thu Jan 03 2013 - 12:35:54 EST


Hi Mathieu,

Sorry for the late reply. I had quite a good reproducer once for what I suspect
may be your problem here - but it suddenly stopped reproducing the problem and I
still haven't figured out why. (see https://patchwork.kernel.org/patch/1773611/
if you're interested)

Can you please give the following patch a try and report back if it helps you
(apply on top of cmason/for-linus, 57ba86c)? If it doesn't, you've got three
choices:

a) forget about the problem
b) send me a dump of your whole file system (space can be provided)
c) receive debug patches, apply them and send me the output

Thanks,
-Jan

------>8---------
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 65f0367..d51185e 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -3324,8 +3324,6 @@ int close_ctree(struct btrfs_root *root)

btrfs_dev_replace_suspend_for_unmount(fs_info);

- btrfs_scrub_cancel(fs_info);
-
/* wait for any defraggers to finish */
wait_event(fs_info->transaction_wait,
(atomic_read(&fs_info->defrag_running) == 0));
@@ -3392,6 +3390,7 @@ int close_ctree(struct btrfs_root *root)
btrfs_stop_workers(&fs_info->caching_workers);
btrfs_stop_workers(&fs_info->readahead_workers);
btrfs_stop_workers(&fs_info->flush_workers);
+ btrfs_scrub_cancel(fs_info);

#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
if (btrfs_test_opt(root, CHECK_INTEGRITY))
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/