On Mon, Feb 18, 2019 at 01:27:51PM +0800, Qu Wenruo wrote: > Signed-off-by: Qu Wenruo <w...@suse.com> > Reviewed-by: Johannes Thumshirn <jthumsh...@suse.de> > --- > fs/btrfs/extent_io.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c > index 1572e892ec7b..480e138051f0 100644 > --- a/fs/btrfs/extent_io.c > +++ b/fs/btrfs/extent_io.c > @@ -3998,7 +3998,10 @@ static int extent_write_cache_pages(struct > address_space *mapping, > */ > if (!trylock_page(page)) { > ret = flush_write_bio(epd); > - BUG_ON(ret < 0); > + if (ret < 0) {
This needs some more explanation why it's correct, there's conditional locking and writeback status manipulation. Thanks.