lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 13 Feb 2020 20:19:56 -0500
From:   Sasha Levin <sashal@...nel.org>
To:     dsterba@...e.cz, Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        linux-kernel@...r.kernel.org, stable@...r.kernel.org,
        Filipe Manana <fdmanana@...e.com>,
        Josef Bacik <josef@...icpanda.com>,
        David Sterba <dsterba@...e.com>
Subject: Re: [PATCH 4.9 089/116] btrfs: flush write bio if we loop in
 extent_write_cache_pages

On Thu, Feb 13, 2020 at 10:01:09PM +0100, David Sterba wrote:
>On Thu, Feb 13, 2020 at 07:20:33AM -0800, Greg Kroah-Hartman wrote:
>> From: Josef Bacik <josef@...icpanda.com>
>>
>> [ Upstream commit 96bf313ecb33567af4cb53928b0c951254a02759 ]
>
>This commit does not exist in my tree, the correct upstream commit of
>the backported patch should be 42ffb0bf584ae5b6b38f72259af1e0ee417ac77f.
>
>> --- a/fs/btrfs/extent_io.c
>> +++ b/fs/btrfs/extent_io.c
>> @@ -4060,6 +4060,14 @@ static int extent_write_cache_pages(struct extent_io_tree *tree,
>>  		 */
>>  		scanned = 1;
>>  		index = 0;
>> +
>> +		/*
>> +		 * If we're looping we could run into a page that is locked by a
>> +		 * writer and that writer could be waiting on writeback for a
>> +		 * page in our current bio, and thus deadlock, so flush the
>> +		 * write bio here.
>> +		 */
>> +		flush_write_bio(data);
>
>This has been modified to apply, flush_write_bio does not return a value
>in 4.9, perhaps this led to the different commit id.

Ah yes. This patch was tricky because there were two "big" things that
broke on the backport:

1. flush_write_bio() returning a value.
2. The 'data' -> 'epd' rename.

96bf313ecb3 comes from when both of the above conditions overlapped, and
I forgot that I'm basing my second backport change on something that was
already modified.

-- 
Thanks,
Sasha

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ