X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=Documentation%2Fbtrfs-rescue.asciidoc;h=f94a0ff2b45ef504455d773957aaab0f3a415841;hb=4affb865422b0df3687b96a67d148a916545d6b4;hp=32d8a927970453376bca8ad062f82bf22ea5f7be;hpb=49eab991720a1dbeaffade98fb946f6a22848867;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/Documentation/btrfs-rescue.asciidoc b/Documentation/btrfs-rescue.asciidoc index 32d8a92..f94a0ff 100644 --- a/Documentation/btrfs-rescue.asciidoc +++ b/Documentation/btrfs-rescue.asciidoc @@ -1,5 +1,5 @@ -btrfs-check(8) -============== +btrfs-rescue(8) +=============== NAME ---- @@ -15,6 +15,7 @@ DESCRIPTION SUBCOMMAND ---------- + *chunk-recover* [options] :: Recover the chunk tree by scanning the devices + @@ -30,6 +31,25 @@ help. NOTE: Since *chunk-recover* will scan the whole device, it will be *VERY* slow especially executed on a large device. +*fix-device-size* :: +fix device size and super block total bytes values that are do not match ++ +Kernel 4.11 starts to check the device size more strictly and this might +mismatch the stored value of total bytes. See the exact error message below. +Newer kernel will refuse to mount the filesystem where the values do not match. +This error is not fatal and can be fixed. This command will fix the device +size values if possible. ++ +---- +BTRFS error (device sdb): super_total_bytes 92017859088384 mismatch with fs_devices total_rw_bytes 92017859094528 +---- ++ +The mismatch may also exhibit as a kernel warning: ++ +---- +WARNING: CPU: 3 PID: 439 at fs/btrfs/ctree.h:1559 btrfs_update_device+0x1c5/0x1d0 [btrfs] +---- + *super-recover* [options] :: Recover bad superblocks from good copies. + @@ -41,16 +61,23 @@ assume an answer of 'yes' to all questions. verbose mode. *zero-log* :: -clear out log tree - -*btrfs rescue zero-log* will remove the log tree if log tree is corrupt, which -will allow you to mount the filesystem again. - -The common case where this happens has been fixed a long time ago, -so it is unlikely that you will see this particular problem. - -One can determine whether *btrfs-zero-log* is needed according to the kernel +clear the filesystem log tree ++ +This command will clear the filesystem log tree. This may fix a specific +set of problem when the filesystem mount fails due to the log replay. See below +for sample stacktraces that may show up in system log. ++ +The common case where this happens was fixed a long time ago, +so it is unlikely that you will see this particular problem, but the command is +kept around. ++ +NOTE: clearing the log may lead to loss of changes that were made since the +last transaction commit. This may be up to 30 seconds (default commit period) +or less if the commit was implied by other filesystem activity. ++ +One can determine whether *zero-log* is needed according to the kernel backtrace: ++ ---- ? replay_one_dir_item+0xb5/0xb5 [btrfs] ? walk_log_tree+0x9c/0x19d [btrfs] @@ -60,9 +87,11 @@ backtrace: ? btree_read_extent_buffer_pages+0x76/0xbc [btrfs] ? open_ctree+0xff6/0x132c [btrfs] ---- - -If the errors are like above, then *zero-log* could be used to clear -the log and the filesystem may be mounted normally again. ++ +If the errors are like above, then *zero-log* should be used to clear +the log and the filesystem may be mounted normally again. The keywords to look +for are 'open_ctree' which says that it's during mount and function names +that contain 'replay', 'recover' or 'log_tree'. EXIT STATUS -----------