btrfs: Fix block generation verification race
PATCH 1/1 btrfs: Fix block generation verification race
After the path is released, the generation number got from block pointer is no long valid. The race may cause disk corruption, because verify_parent_transid() calls clear_extent_buffer_uptodate() when generation numbers mismatch.
Signed-off-by Yan Zheng <[email protected]>
---
fs/btrfs/ctree.c +1 -1
@@ -1589,7 +1589,7 @@ read_block_for_search(struct btrfs_transbtrfs_release_path (NULL , p); ret = -EAGAIN ; - tmp =read_tree_block (root, blocknr, blocksize, gen); + tmp =read_tree_block (root, blocknr, blocksize,0 );if (tmp) {/* * If the read above didn't mark this buffer up to date,