* Re: FAILED: patch "[PATCH] Btrfs: fix early ENOSPC due to delalloc" failed to apply to 4.12-stable tree [not found] <15015495878144@kroah.com> @ 2017-08-04 19:29 ` Christoph Anton Mitterer 2017-08-11 14:43 ` Chris Mason 0 siblings, 1 reply; 2+ messages in thread From: Christoph Anton Mitterer @ 2017-08-04 19:29 UTC (permalink / raw) To: linux-btrfs; +Cc: osandov [-- Attachment #1: Type: text/plain, Size: 2634 bytes --] Hey. Could someone of the devs put some attention on this...? Thanks, Chris :-) On Mon, 2017-07-31 at 18:06 -0700, gregkh@linuxfoundation.org wrote: > The patch below does not apply to the 4.12-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 17024ad0a0fdfcfe53043afb969b813d3e020c21 Mon Sep 17 00:00:00 > 2001 > From: Omar Sandoval <osandov@fb.com> > Date: Thu, 20 Jul 2017 15:10:35 -0700 > Subject: [PATCH] Btrfs: fix early ENOSPC due to delalloc > > If a lot of metadata is reserved for outstanding delayed allocations, > we > rely on shrink_delalloc() to reclaim metadata space in order to > fulfill > reservation tickets. However, shrink_delalloc() has a shortcut where > if > it determines that space can be overcommitted, it will stop early. > This > made sense before the ticketed enospc system, but now it means that > shrink_delalloc() will often not reclaim enough space to fulfill any > tickets, leading to an early ENOSPC. (Reservation tickets don't care > about being able to overcommit, they need every byte accounted for.) > > Fix it by getting rid of the shortcut so that shrink_delalloc() > reclaims > all of the metadata it is supposed to. This fixes early ENOSPCs we > were > seeing when doing a btrfs receive to populate a new filesystem, as > well > as early ENOSPCs Christoph saw when doing a big cp -r onto Btrfs. > > Fixes: 957780eb2788 ("Btrfs: introduce ticketed enospc > infrastructure") > Tested-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.na > me> > Cc: stable@vger.kernel.org > Reviewed-by: Josef Bacik <jbacik@fb.com> > Signed-off-by: Omar Sandoval <osandov@fb.com> > Signed-off-by: David Sterba <dsterba@suse.com> > > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c > index a6635f07b8f1..e3b0b4196d3d 100644 > --- a/fs/btrfs/extent-tree.c > +++ b/fs/btrfs/extent-tree.c > @@ -4825,10 +4825,6 @@ static void shrink_delalloc(struct > btrfs_fs_info *fs_info, u64 to_reclaim, > else > flush = BTRFS_RESERVE_NO_FLUSH; > spin_lock(&space_info->lock); > - if (can_overcommit(fs_info, space_info, orig, flush, > false)) { > - spin_unlock(&space_info->lock); > - break; > - } > if (list_empty(&space_info->tickets) && > list_empty(&space_info->priority_tickets)) { > spin_unlock(&space_info->lock); > [-- Attachment #2: smime.p7s --] [-- Type: application/x-pkcs7-signature, Size: 5984 bytes --] ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: FAILED: patch "[PATCH] Btrfs: fix early ENOSPC due to delalloc" failed to apply to 4.12-stable tree 2017-08-04 19:29 ` FAILED: patch "[PATCH] Btrfs: fix early ENOSPC due to delalloc" failed to apply to 4.12-stable tree Christoph Anton Mitterer @ 2017-08-11 14:43 ` Chris Mason 0 siblings, 0 replies; 2+ messages in thread From: Chris Mason @ 2017-08-11 14:43 UTC (permalink / raw) To: Christoph Anton Mitterer, linux-btrfs; +Cc: osandov On 08/04/2017 03:29 PM, Christoph Anton Mitterer wrote: > Hey. > > Could someone of the devs put some attention on this...? > > Thanks, > Chris :-) Done, you can also grab it here: https://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git/commit/?h=for-stable-4.12&id=354850ad1948af13248031e5180d495044d05aa5 -chris > > > On Mon, 2017-07-31 at 18:06 -0700, gregkh@linuxfoundation.org wrote: >> The patch below does not apply to the 4.12-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 17024ad0a0fdfcfe53043afb969b813d3e020c21 Mon Sep 17 00:00:00 >> 2001 >> From: Omar Sandoval <osandov@fb.com> >> Date: Thu, 20 Jul 2017 15:10:35 -0700 >> Subject: [PATCH] Btrfs: fix early ENOSPC due to delalloc >> >> If a lot of metadata is reserved for outstanding delayed allocations, >> we >> rely on shrink_delalloc() to reclaim metadata space in order to >> fulfill >> reservation tickets. However, shrink_delalloc() has a shortcut where >> if >> it determines that space can be overcommitted, it will stop early. >> This >> made sense before the ticketed enospc system, but now it means that >> shrink_delalloc() will often not reclaim enough space to fulfill any >> tickets, leading to an early ENOSPC. (Reservation tickets don't care >> about being able to overcommit, they need every byte accounted for.) >> >> Fix it by getting rid of the shortcut so that shrink_delalloc() >> reclaims >> all of the metadata it is supposed to. This fixes early ENOSPCs we >> were >> seeing when doing a btrfs receive to populate a new filesystem, as >> well >> as early ENOSPCs Christoph saw when doing a big cp -r onto Btrfs. >> >> Fixes: 957780eb2788 ("Btrfs: introduce ticketed enospc >> infrastructure") >> Tested-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.na >> me> >> Cc: stable@vger.kernel.org >> Reviewed-by: Josef Bacik <jbacik@fb.com> >> Signed-off-by: Omar Sandoval <osandov@fb.com> >> Signed-off-by: David Sterba <dsterba@suse.com> >> >> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c >> index a6635f07b8f1..e3b0b4196d3d 100644 >> --- a/fs/btrfs/extent-tree.c >> +++ b/fs/btrfs/extent-tree.c >> @@ -4825,10 +4825,6 @@ static void shrink_delalloc(struct >> btrfs_fs_info *fs_info, u64 to_reclaim, >> else >> flush = BTRFS_RESERVE_NO_FLUSH; >> spin_lock(&space_info->lock); >> - if (can_overcommit(fs_info, space_info, orig, flush, >> false)) { >> - spin_unlock(&space_info->lock); >> - break; >> - } >> if (list_empty(&space_info->tickets) && >> list_empty(&space_info->priority_tickets)) { >> spin_unlock(&space_info->lock); ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-08-11 14:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <15015495878144@kroah.com>
2017-08-04 19:29 ` FAILED: patch "[PATCH] Btrfs: fix early ENOSPC due to delalloc" failed to apply to 4.12-stable tree Christoph Anton Mitterer
2017-08-11 14:43 ` Chris Mason
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).