Re: [PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-18 Thread Nikolay Borisov
On 18.05.2018 17:06, David Sterba wrote: > On Fri, May 18, 2018 at 09:15:16PM +0800, Liu Bo wrote: Doesn't this warrant a stable tag and Fixes: 5bdd3536cbbe ("Btrfs: Fix block generation verification race") >>> >>> The patch will not apply to < 4.16 as it depends on the addition of >>>

Re: [PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-18 Thread David Sterba
On Fri, May 18, 2018 at 09:15:16PM +0800, Liu Bo wrote: > > > Doesn't this warrant a stable tag and > > > Fixes: 5bdd3536cbbe ("Btrfs: Fix block generation verification race") > > > > The patch will not apply to < 4.16 as it depends on the addition of > > _key check from 581c1760415c4, but yes we

Re: [PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-18 Thread Liu Bo
On Wed, May 16, 2018 at 04:12:21PM +0200, David Sterba wrote: > On Wed, May 16, 2018 at 11:00:14AM +0300, Nikolay Borisov wrote: > > > > > > On 15.05.2018 20:37, Liu Bo wrote: > > > If a btree block, aka. extent buffer, is not available in the extent > > > buffer cache, it'll be read out from

Re: [PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-16 Thread David Sterba
On Wed, May 16, 2018 at 11:00:14AM +0300, Nikolay Borisov wrote: > > > On 15.05.2018 20:37, Liu Bo wrote: > > If a btree block, aka. extent buffer, is not available in the extent > > buffer cache, it'll be read out from the disk instead, i.e. > > > > btrfs_search_slot() > >

Re: [PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-16 Thread Anand Jain
On 05/16/2018 01:37 AM, Liu Bo wrote: If a btree block, aka. extent buffer, is not available in the extent buffer cache, it'll be read out from the disk instead, i.e. btrfs_search_slot() read_block_for_search() # hold parent and its lock, go to read child btrfs_release_path()

Re: [PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-16 Thread Nikolay Borisov
On 15.05.2018 20:37, Liu Bo wrote: > If a btree block, aka. extent buffer, is not available in the extent > buffer cache, it'll be read out from the disk instead, i.e. > > btrfs_search_slot() > read_block_for_search() # hold parent and its lock, go to read child > btrfs_release_path() >

Re: [PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-15 Thread Qu Wenruo
On 2018年05月16日 01:37, Liu Bo wrote: > If a btree block, aka. extent buffer, is not available in the extent > buffer cache, it'll be read out from the disk instead, i.e. > > btrfs_search_slot() > read_block_for_search() # hold parent and its lock, go to read child > btrfs_release_path() >

Re: [PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-15 Thread Filipe Manana
On Tue, May 15, 2018 at 6:37 PM, Liu Bo wrote: > If a btree block, aka. extent buffer, is not available in the extent > buffer cache, it'll be read out from the disk instead, i.e. > > btrfs_search_slot() > read_block_for_search() # hold parent and its lock, go to read

[PATCH] Btrfs: fix the corruption by reading stale btree blocks

2018-05-15 Thread Liu Bo
If a btree block, aka. extent buffer, is not available in the extent buffer cache, it'll be read out from the disk instead, i.e. btrfs_search_slot() read_block_for_search() # hold parent and its lock, go to read child btrfs_release_path() read_tree_block() # read child Unfortunately,