All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Enhancement for block group/chunk verification
@ 2018-07-03  9:10 Qu Wenruo
  2018-07-03  9:10 ` [PATCH 1/5] btrfs: tree-checker: Verify block_group_item Qu Wenruo
                   ` (5 more replies)
  0 siblings, 6 replies; 31+ messages in thread
From: Qu Wenruo @ 2018-07-03  9:10 UTC (permalink / raw)
  To: linux-btrfs

Can be fetched from github, which is based on v4.18-rc1 tag:
https://github.com/adam900710/linux/tree/tree_checker_enhance

Reported by Xu Wen <wen.xu@gatech.edu>, some crafted btrfs image can
cause unexpected kernel behavior.

All of them are related to block group and chunk, so this patchset will
enhance block group and chunk verification, so kernel can detect them
and error out gracefully (with user friendly error message showing
what's going wrong)

Obvious corruption (don't need to cross check with chunk/block group),
will be addressed by enhanced tree-checker.
(Most crafted images will be caught by tree-checker)

More complex corruption will be addressed mostly at
btrfs_read_block_groups(), doing extra cross reference check for
chunk<->block group mapping.
It may cause extra mount time, but compared to the existing time
consuming block group items search, all added check is done completely
in memory using rb_tree, so it shouldn't add too much overhead.

Qu Wenruo (5):
  btrfs: tree-checker: Verify block_group_item
  btrfs: tree-checker: Detect invalid empty essential tree
  btrfs: relocation: Only remove reloc rb_trees if reloc control has
    been initialized
  btrfs: Check each block group has corresponding chunk at mount time
  btrfs: Verify every chunk has corresponding block group at mount time

 fs/btrfs/extent-tree.c  | 107 +++++++++++++++++++++++++++++++++++--
 fs/btrfs/relocation.c   |  23 ++++----
 fs/btrfs/tree-checker.c | 113 ++++++++++++++++++++++++++++++++++++++++
 fs/btrfs/volumes.c      |   2 +-
 fs/btrfs/volumes.h      |   2 +
 5 files changed, 232 insertions(+), 15 deletions(-)

-- 
2.18.0


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2018-07-19 15:05 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-03  9:10 [PATCH 0/5] Enhancement for block group/chunk verification Qu Wenruo
2018-07-03  9:10 ` [PATCH 1/5] btrfs: tree-checker: Verify block_group_item Qu Wenruo
2018-07-04  2:20   ` Gu, Jinxiang
2018-07-04  5:54   ` Nikolay Borisov
2018-07-04  7:37   ` Gu, Jinxiang
2018-07-03  9:10 ` [PATCH 2/5] btrfs: tree-checker: Detect invalid empty essential tree Qu Wenruo
2018-07-04  3:42   ` Gu, Jinxiang
2018-07-04  5:56   ` Nikolay Borisov
2018-07-04  7:37   ` Gu, Jinxiang
2018-07-03  9:10 ` [PATCH 3/5] btrfs: relocation: Only remove reloc rb_trees if reloc control has been initialized Qu Wenruo
2018-07-04  5:23   ` Gu, Jinxiang
2018-07-04  7:37   ` Gu, Jinxiang
2018-07-03  9:10 ` [PATCH 4/5] btrfs: Check each block group has corresponding chunk at mount time Qu Wenruo
2018-07-04  5:45   ` Gu, Jinxiang
2018-07-05 23:41     ` Qu Wenruo
2018-07-04  6:02   ` Nikolay Borisov
2018-07-03  9:10 ` [PATCH 5/5] btrfs: Verify every chunk has corresponding block group " Qu Wenruo
2018-07-04  6:09   ` Gu, Jinxiang
2018-07-04  7:08   ` Nikolay Borisov
2018-07-04  9:46     ` Qu Wenruo
2018-07-05 23:49       ` Qu Wenruo
2018-07-05 15:18   ` David Sterba
2018-07-05 23:44     ` Qu Wenruo
2018-07-16 13:16       ` David Sterba
2018-07-16 13:57         ` Qu Wenruo
2018-07-17 12:33           ` David Sterba
2018-07-17 13:32             ` Qu Wenruo
2018-07-19 14:22               ` David Sterba
2018-07-04 13:36 ` [PATCH 0/5] Enhancement for block group/chunk verification David Sterba
2018-07-05  1:36   ` Qu Wenruo
2018-07-05 15:18     ` David Sterba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.