* 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).