* FAILED: patch "[PATCH] btrfs: handle logged extent failure properly" failed to apply to 5.6-stable tree
@ 2020-04-14 14:21 gregkh
2020-04-16 0:41 ` Sasha Levin
0 siblings, 1 reply; 4+ messages in thread
From: gregkh @ 2020-04-14 14:21 UTC (permalink / raw)
To: josef, dsterba, johannes.thumshirn, nborisov, wqu; +Cc: stable
The patch below does not apply to the 5.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From ab9b2c7b32e6be53cac2e23f5b2db66815a7d972 Mon Sep 17 00:00:00 2001
From: Josef Bacik <josef@toxicpanda.com>
Date: Thu, 13 Feb 2020 10:47:30 -0500
Subject: [PATCH] btrfs: handle logged extent failure properly
If we're allocating a logged extent we attempt to insert an extent
record for the file extent directly. We increase
space_info->bytes_reserved, because the extent entry addition will call
btrfs_update_block_group(), which will convert the ->bytes_reserved to
->bytes_used. However if we fail at any point while inserting the
extent entry we will bail and leave space on ->bytes_reserved, which
will trigger a WARN_ON() on umount. Fix this by pinning the space if we
fail to insert, which is what happens in every other failure case that
involves adding the extent entry.
CC: stable@vger.kernel.org # 5.4+
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 136fffb76428..7eef91d6c2b6 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -4422,7 +4422,7 @@ int btrfs_alloc_logged_file_extent(struct btrfs_trans_handle *trans,
ret = alloc_reserved_file_extent(trans, 0, root_objectid, 0, owner,
offset, ins, 1);
if (ret)
- btrfs_pin_extent(fs_info, ins->objectid, ins->offset, 1);
+ btrfs_pin_extent(trans, ins->objectid, ins->offset, 1);
btrfs_put_block_group(block_group);
return ret;
}
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: FAILED: patch "[PATCH] btrfs: handle logged extent failure properly" failed to apply to 5.6-stable tree
2020-04-14 14:21 FAILED: patch "[PATCH] btrfs: handle logged extent failure properly" failed to apply to 5.6-stable tree gregkh
@ 2020-04-16 0:41 ` Sasha Levin
2020-04-16 7:07 ` Greg KH
0 siblings, 1 reply; 4+ messages in thread
From: Sasha Levin @ 2020-04-16 0:41 UTC (permalink / raw)
To: gregkh; +Cc: josef, dsterba, johannes.thumshirn, nborisov, wqu, stable
On Tue, Apr 14, 2020 at 04:21:45PM +0200, gregkh@linuxfoundation.org wrote:
>
>The patch below does not apply to the 5.6-stable tree.
>If someone wants it applied there, or to any other stable or longterm
>tree, then please email the backport, including the original git commit
>id to <stable@vger.kernel.org>.
>
>thanks,
>
>greg k-h
>
>------------------ original commit in Linus's tree ------------------
>
>From ab9b2c7b32e6be53cac2e23f5b2db66815a7d972 Mon Sep 17 00:00:00 2001
>From: Josef Bacik <josef@toxicpanda.com>
>Date: Thu, 13 Feb 2020 10:47:30 -0500
>Subject: [PATCH] btrfs: handle logged extent failure properly
>
>If we're allocating a logged extent we attempt to insert an extent
>record for the file extent directly. We increase
>space_info->bytes_reserved, because the extent entry addition will call
>btrfs_update_block_group(), which will convert the ->bytes_reserved to
>->bytes_used. However if we fail at any point while inserting the
>extent entry we will bail and leave space on ->bytes_reserved, which
>will trigger a WARN_ON() on umount. Fix this by pinning the space if we
>fail to insert, which is what happens in every other failure case that
>involves adding the extent entry.
>
>CC: stable@vger.kernel.org # 5.4+
>Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
>Reviewed-by: Nikolay Borisov <nborisov@suse.com>
>Reviewed-by: Qu Wenruo <wqu@suse.com>
>Signed-off-by: Josef Bacik <josef@toxicpanda.com>
>Reviewed-by: David Sterba <dsterba@suse.com>
>Signed-off-by: David Sterba <dsterba@suse.com>
Greg, I've noticed that you've fixed it up for 5.5 and 5.4 but no for
5.6? I've queued it up for 5.6 as well.
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: FAILED: patch "[PATCH] btrfs: handle logged extent failure properly" failed to apply to 5.6-stable tree
2020-04-16 0:41 ` Sasha Levin
@ 2020-04-16 7:07 ` Greg KH
2020-04-16 13:05 ` Sasha Levin
0 siblings, 1 reply; 4+ messages in thread
From: Greg KH @ 2020-04-16 7:07 UTC (permalink / raw)
To: Sasha Levin; +Cc: josef, dsterba, johannes.thumshirn, nborisov, wqu, stable
On Wed, Apr 15, 2020 at 08:41:54PM -0400, Sasha Levin wrote:
> On Tue, Apr 14, 2020 at 04:21:45PM +0200, gregkh@linuxfoundation.org wrote:
> >
> > The patch below does not apply to the 5.6-stable tree.
> > If someone wants it applied there, or to any other stable or longterm
> > tree, then please email the backport, including the original git commit
> > id to <stable@vger.kernel.org>.
> >
> > thanks,
> >
> > greg k-h
> >
> > ------------------ original commit in Linus's tree ------------------
> >
> > > From ab9b2c7b32e6be53cac2e23f5b2db66815a7d972 Mon Sep 17 00:00:00 2001
> > From: Josef Bacik <josef@toxicpanda.com>
> > Date: Thu, 13 Feb 2020 10:47:30 -0500
> > Subject: [PATCH] btrfs: handle logged extent failure properly
> >
> > If we're allocating a logged extent we attempt to insert an extent
> > record for the file extent directly. We increase
> > space_info->bytes_reserved, because the extent entry addition will call
> > btrfs_update_block_group(), which will convert the ->bytes_reserved to
> > ->bytes_used. However if we fail at any point while inserting the
> > extent entry we will bail and leave space on ->bytes_reserved, which
> > will trigger a WARN_ON() on umount. Fix this by pinning the space if we
> > fail to insert, which is what happens in every other failure case that
> > involves adding the extent entry.
> >
> > CC: stable@vger.kernel.org # 5.4+
> > Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
> > Reviewed-by: Nikolay Borisov <nborisov@suse.com>
> > Reviewed-by: Qu Wenruo <wqu@suse.com>
> > Signed-off-by: Josef Bacik <josef@toxicpanda.com>
> > Reviewed-by: David Sterba <dsterba@suse.com>
> > Signed-off-by: David Sterba <dsterba@suse.com>
>
> Greg, I've noticed that you've fixed it up for 5.5 and 5.4 but no for
> 5.6? I've queued it up for 5.6 as well.
I didn't include this in 5.5 or 5.4, so please queue it up in those two
trees as well.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: FAILED: patch "[PATCH] btrfs: handle logged extent failure properly" failed to apply to 5.6-stable tree
2020-04-16 7:07 ` Greg KH
@ 2020-04-16 13:05 ` Sasha Levin
0 siblings, 0 replies; 4+ messages in thread
From: Sasha Levin @ 2020-04-16 13:05 UTC (permalink / raw)
To: Greg KH; +Cc: josef, dsterba, johannes.thumshirn, nborisov, wqu, stable
On Thu, Apr 16, 2020 at 09:07:20AM +0200, Greg KH wrote:
>On Wed, Apr 15, 2020 at 08:41:54PM -0400, Sasha Levin wrote:
>> On Tue, Apr 14, 2020 at 04:21:45PM +0200, gregkh@linuxfoundation.org wrote:
>> >
>> > The patch below does not apply to the 5.6-stable tree.
>> > If someone wants it applied there, or to any other stable or longterm
>> > tree, then please email the backport, including the original git commit
>> > id to <stable@vger.kernel.org>.
>> >
>> > thanks,
>> >
>> > greg k-h
>> >
>> > ------------------ original commit in Linus's tree ------------------
>> >
>> > > From ab9b2c7b32e6be53cac2e23f5b2db66815a7d972 Mon Sep 17 00:00:00 2001
>> > From: Josef Bacik <josef@toxicpanda.com>
>> > Date: Thu, 13 Feb 2020 10:47:30 -0500
>> > Subject: [PATCH] btrfs: handle logged extent failure properly
>> >
>> > If we're allocating a logged extent we attempt to insert an extent
>> > record for the file extent directly. We increase
>> > space_info->bytes_reserved, because the extent entry addition will call
>> > btrfs_update_block_group(), which will convert the ->bytes_reserved to
>> > ->bytes_used. However if we fail at any point while inserting the
>> > extent entry we will bail and leave space on ->bytes_reserved, which
>> > will trigger a WARN_ON() on umount. Fix this by pinning the space if we
>> > fail to insert, which is what happens in every other failure case that
>> > involves adding the extent entry.
>> >
>> > CC: stable@vger.kernel.org # 5.4+
>> > Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
>> > Reviewed-by: Nikolay Borisov <nborisov@suse.com>
>> > Reviewed-by: Qu Wenruo <wqu@suse.com>
>> > Signed-off-by: Josef Bacik <josef@toxicpanda.com>
>> > Reviewed-by: David Sterba <dsterba@suse.com>
>> > Signed-off-by: David Sterba <dsterba@suse.com>
>>
>> Greg, I've noticed that you've fixed it up for 5.5 and 5.4 but no for
>> 5.6? I've queued it up for 5.6 as well.
>
>I didn't include this in 5.5 or 5.4, so please queue it up in those two
>trees as well.
Hm, looking at the patch:
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index a7bc66121330e..219ac9990513e 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -4431,7 +4431,7 @@ int btrfs_alloc_logged_file_extent(struct btrfs_trans_handle *trans,
ret = alloc_reserved_file_extent(trans, 0, root_objectid, 0, owner,
offset, ins, 1);
if (ret)
- btrfs_pin_extent(fs_info, ins->objectid, ins->offset, 1);
+ btrfs_pin_extent(trans, ins->objectid, ins->offset, 1);
btrfs_put_block_group(block_group);
return ret;
}
It changes the var and type used to call btrfs_pin_extent() without
changing the declaration of btrfs_pin_extent() itself - which is weird.
The change to btrfs_pin_extent() was done in b25c36f84b59 ("btrfs: Make
btrfs_pin_extent take trans handle"), but then I'm confused how this
patch on it's own fixes anything but a build issue - which makes the
commit message confusing :)
Maybe one of the btrfs folks could clarify?
--
Thanks,
Sasha
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-04-16 13:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-14 14:21 FAILED: patch "[PATCH] btrfs: handle logged extent failure properly" failed to apply to 5.6-stable tree gregkh
2020-04-16 0:41 ` Sasha Levin
2020-04-16 7:07 ` Greg KH
2020-04-16 13:05 ` Sasha Levin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).