diff options
author | Liu Bo <bo.liu@linux.alibaba.com> | 2018-05-18 10:59:35 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-05-30 16:46:43 +0200 |
commit | ff76a864cc94d055b4239fb2cd13e8e633dc7aac (patch) | |
tree | 0248b26f1b960a82c18a1f4348124ffa0c9adc3e /fs/btrfs/extent-tree.c | |
parent | 9593bf49675efc5567c9bdb8c51cdb204b6f85b3 (diff) |
Btrfs: add parent_transid parameter to veirfy_level_key
As verify_level_key() is checked after verify_parent_transid(), i.e.
if (verify_parent_transid())
ret = -EIO;
else if (verify_level_key())
ret = -EUCLEAN;
if parent_transid is 0, verify_parent_transid() skips verifying
parent_transid and considers eb as valid, and if verify_level_key()
reports something wrong, we're not going to know if it's caused by
corrupted metadata or non-checkecd eb (e.g. stale eb).
The stale eb can be from an outdated raid1 mirror after a degraded
mount, see eg "btrfs: fix reading stale metadata blocks after degraded
raid1 mounts" (02a3307aa9c20b4f66262) for more details.
@parent_transid is able to tell whether the eb's generation has been
verified by the caller.
Signed-off-by: Liu Bo <bo.liu@linux.alibaba.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/extent-tree.c')
0 files changed, 0 insertions, 0 deletions