This is used in caching and reading block groups, so export it while we
move these chunks independently.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.h | 1 +
fs/btrfs/extent-tree.c | 8
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/fs/btrfs/block-group.h b/fs
These feel more at home in block-group.c.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 100 ++
fs/btrfs/block-group.h | 16 +++
fs/btrfs/ctree.h | 4 --
fs/btrfs/extent-tree.c | 115
This is prep work for moving block_group_cache around. Having this in
the header file makes the header file include need to be in a certain
order, which is awkward, so just move it into free-space-cache.c and
then we can re-arrange later.
Signed-off-by: Josef Bacik
---
fs/btrfs/free-space
This is the series to migrate the block group code out of extent-tree.c. This
is a much larger series than the previous two series because things were much
more intertwined than block_rsv's and space_info. There is one code change
patch in this series, it is
btrfs: make caching_thread use btrfs_
Want to move these functions into block-group.c, so export them.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.h | 6 ++
fs/btrfs/extent-tree.c | 21 ++---
2 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/fs/btrfs/block-group.h b/fs/btrfs/block-group.h
This can now be easily migrated as well.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 140 +
fs/btrfs/block-group.h | 2 +
fs/btrfs/ctree.h | 2 -
fs/btrfs/extent-tree.c | 140
These were renamed and exported to facilitate logical migration of
different code chunks into block-group.c. Now that all the users are in
one file go ahead and rename them back, move the code around, and make
them static.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 140
All of the prep work has been done so we can now cleanly move this chunk
over.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 613 +
fs/btrfs/block-group.h | 5 +
fs/btrfs/ctree.h | 5 -
fs/btrfs/extent-tree.c | 611
This is prep work for moving all of the block group cache code into its
own file.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.h | 156 +
fs/btrfs/ctree.h | 148 +--
fs/btrfs/disk-io.c
This belongs to block-group.c, move it over.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 141 +
fs/btrfs/block-group.h | 1 +
fs/btrfs/ctree.h | 1 -
fs/btrfs/extent-tree.c | 141
This can be easily migrated over now.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 520 +
fs/btrfs/block-group.h | 3 +
fs/btrfs/ctree.h | 3 -
fs/btrfs/extent-tree.c | 518
4
This is the removal code and the unused bgs code.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 509 +
fs/btrfs/block-group.h | 7 +
fs/btrfs/ctree.h | 7 -
fs/btrfs/extent-tree.c | 505
This will make it so we can move them easily.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.h | 14 +++
fs/btrfs/extent-tree.c | 65 ++
2 files changed, 43 insertions(+), 36 deletions(-)
diff --git a/fs/btrfs/block-group.h b/fs
We can now just copy it over to block-group.c.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 463 +
fs/btrfs/block-group.h | 2 +
fs/btrfs/ctree.h | 2 -
fs/btrfs/extent-tree.c | 461
This feels more at home in block-group.c than in extent-tree.c.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c| 247 ++
fs/btrfs/block-group.h| 24 +
fs/btrfs/ctree.h | 24 -
fs/btrfs/delalloc-space.c | 1 +
fs
o fix btrfs_find_next_key to deal with ->skip_locking and then it works
exactly the same as the private find_next_key helper.
Signed-off-by: Josef Bacik
---
fs/btrfs/ctree.c | 4 ++--
fs/btrfs/extent-tree.c | 3 ++-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/fs/btrfs/c
This is used in a few logical parts of the block group code, temporarily
export it so we can move things in pieces.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.h | 2 ++
fs/btrfs/extent-tree.c | 15 ---
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/fs
This gets used directly by a bunch of the block group code, export it to
make it easier to move things around.
Signed-off-by: Josef Bacik
---
fs/btrfs/ctree.h | 1 +
fs/btrfs/extent-tree.c | 16
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/fs/btrfs
On Tue, Jun 25, 2019 at 01:58:43PM +0200, David Sterba wrote:
> On Tue, Jun 18, 2019 at 04:09:19PM -0400, Josef Bacik wrote:
> > --- /dev/null
> > +++ b/fs/btrfs/space-info.c
> > @@ -0,0 +1,177 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +/*
> > + * C
Hello,
I've been seeing a variation of the following splat recently and I have no
earthly idea what it's trying to tell me. I either get this one, or I get one
that tells me the same thing except it's complaining about &cpuctx_mutex instead
of sb_pagefaults. There is no place we take the reloc_m
On Wed, Jul 03, 2019 at 11:12:10PM +0200, Peter Zijlstra wrote:
> On Wed, Jul 03, 2019 at 09:54:06AM -0400, Josef Bacik wrote:
> > Hello,
> >
> > I've been seeing a variation of the following splat recently and I have no
> > earthly idea what it's trying
17 @@ int btrfs_commit_transaction(struct btrfs_trans_handle
> *trans)
> }
> } else {
> spin_unlock(&fs_info->trans_lock);
> + /*
> + * The previous transaction was aborted and was already removed
> + * from the list of transactions at fs_info->trans_list. So we
> + * abort to prevent writing a new superblock that reflects a
> + * corrupt state (pointing to trees with unwritten nodes/leafs).
> + */
> + if (test_bit(BTRFS_FS_STATE_TRANS_ABORTED,
> + &fs_info->fs_state)) {
> + ret = -EROFS;
> + goto cleanup_transaction;
> + }
> }
>
> extwriter_counter_dec(cur_trans, trans->type);
Reviewed-by: Josef Bacik
Thanks,
Josef
s first.
Signed-off-by: Josef Bacik
---
fs/btrfs/ctree.h | 1 +
fs/btrfs/inode.c | 81 +++
fs/btrfs/space-info.c | 27 +--
3 files changed, 62 insertions(+), 47 deletions(-)
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.
This is a set of patches to address how we do space flushing for inode
evictions. Historically we've only been allowed to do a few things to reclaim
space for inode evictions, mostly because we'd deadlock with iput. But we have
delayed iputs in place to make sure we're always doing iput where it'
ction flushing.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 17 +++--
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c
index 71749b355136..03556e411b11 100644
--- a/fs/btrfs/space-info.c
+++ b/fs/btrfs/space-i
Currently we handle the cleanup of errored out tickets in both the
priority flush path and the normal flushing path. This is the same code
in both places, so just refactor so we don't duplicate the cleanup work.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c
Delayed iputs could very well free up enough space without needing to
commit the transaction, so make this step it's own step. This will
allow us to skip the step for evictions in a later patch.
Signed-off-by: Josef Bacik
---
fs/btrfs/ctree.h | 3 ++-
fs/btrfs/space-i
We're going to make this logic a little more complicated for evict, so
factor the ticket flushing/waiting code out of __reserve_metadata_bytes.
This has no functional change.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 64 ---
1 file ch
7;t trip up currently, so this will just keep me
from regressing us. Thanks,
Signed-off-by: Josef Bacik
---
btrfsck.h| 1 +
check/main.c | 52 ++--
2 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/btrfsck.h b/btrfsck.h
index ac7f5d4
On Fri, Aug 02, 2019 at 09:54:12PM +0800, Qu Wenruo wrote:
>
>
> On 2019/8/2 下午9:06, Josef Bacik wrote:
> > Sometimes when messing with the chunk allocator code we can end up
> > over-allocating chunks. Generally speaking I'll notice this when a
> > random x
On Fri, Aug 02, 2019 at 03:56:38PM +0200, David Sterba wrote:
> On Thu, Jun 20, 2019 at 03:37:42PM -0400, Josef Bacik wrote:
> > This is the series to migrate the block group code out of extent-tree.c.
> > This
> > is a much larger series than the previous two serie
7;t trip up currently, so this will just keep me
from regressing us. Thanks,
Signed-off-by: Josef Bacik
---
v1->v2:
- tested with my alloc chunk ioctl, realized the chunk checker removes the bg
recs from the list, so this wasn't actually doing anything. Moved the check
so now it properly
In testing block group removal it's sometimes handy to be able to create
block groups on demand. Add an ioctl to allow us to force allocation
from userspace.
Signed-off-by: Josef Bacik
---
fs/btrfs/ioctl.c | 30 ++
include/uapi/linux/btrfs.h | 1
This is so we can force chunk allocation to test various parts of the
fs. I used this to test my btrfsck patch for checking for empty block
groups, and a weird block group removal issue.
Signed-off-by: Josef Bacik
---
cmds/filesystem.c | 48
In testing block group removal it's sometimes handy to be able to create
block groups on demand. Add an ioctl to allow us to force allocation
from userspace.
Signed-off-by: Josef Bacik
---
v1->v2:
- I noticed last week when backporting this that btrfs_chunk_alloc doesn't
figure
On Mon, Aug 05, 2019 at 10:14:15PM +0800, Qu Wenruo wrote:
>
>
> On 2019/8/5 下午9:19, Josef Bacik wrote:
> > In testing block group removal it's sometimes handy to be able to create
> > block groups on demand. Add an ioctl to allow us to force allocation
> > fro
nable us to add testcases in the future to test these various
features easier.
Signed-off-by: Josef Bacik
---
v2->v3:
- as per Qu's suggestion, moved this to sysfs where it's easier to mess with and
makes more sense.
- added side-effect is mixed bg forced allocation works with thi
We can now just copy it over to block-group.c.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 463 +
fs/btrfs/block-group.h | 2 +
fs/btrfs/ctree.h | 2 -
fs/btrfs/extent-tree.c | 459
4 files
This is the removal code and the unused bgs code.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 541 +
fs/btrfs/block-group.h | 7 +
fs/btrfs/ctree.h | 7 -
fs/btrfs/extent-tree.c | 537
4 files
This is used in a few logical parts of the block group code, temporarily
export it so we can move things in pieces.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.h | 2 ++
fs/btrfs/extent-tree.c | 15 ---
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/fs
Want to move these functions into block-group.c, so export them.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.h | 6 ++
fs/btrfs/extent-tree.c | 21 ++---
2 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/fs/btrfs/block-group.h b/fs/btrfs/block-group.h
This can be easily migrated over now.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 520 +
fs/btrfs/block-group.h | 3 +
fs/btrfs/ctree.h | 3 -
fs/btrfs/extent-tree.c | 518
4 files changed
This gets used by a few different logical chunks of the block group
code, export it while we move things around.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.h | 2 ++
fs/btrfs/extent-tree.c | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/fs/btrfs/block-group.h
This is the rebased set of the much larger group of patches I sent last month.
The first 10 patches are already merged, these just didn't apply cleanly. I
went through and applied each one, deleted and re-copied anything that didn't
merge cleanly, and compiled between each patch to make sure every
Commit "btrfs: convert snapshot/nocow exlcusion to drw lock" removed
this code, but didn't remove the comment or the definitions, do that
now.
Signed-off-by: Josef Bacik
---
fs/btrfs/ctree.h | 3 ---
fs/btrfs/extent-tree.c | 9 -
2 files changed, 12 deletions(-)
This gets used directly by a bunch of the block group code, export it to
make it easier to move things around.
Signed-off-by: Josef Bacik
---
fs/btrfs/ctree.h | 1 +
fs/btrfs/extent-tree.c | 16
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/fs/btrfs
We can now easily migrate this code as well.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 173 +
fs/btrfs/extent-tree.c | 173 -
2 files changed, 173 insertions(+), 173 deletions(-)
diff --git a/fs/btrfs
This can easily be moved now.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 213 +
fs/btrfs/block-group.h | 2 +
fs/btrfs/ctree.h | 2 -
fs/btrfs/extent-tree.c | 213 -
4 files changed, 215
All of the prep work has been done so we can now cleanly move this chunk
over.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 598 +
fs/btrfs/block-group.h | 5 +
fs/btrfs/ctree.h | 5 -
fs/btrfs/extent-tree.c | 596
This can now be easily migrated as well.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 128 +
fs/btrfs/block-group.h | 2 +
fs/btrfs/ctree.h | 2 -
fs/btrfs/extent-tree.c | 128 -
4 files changed
These were renamed and exported to facilitate logical migration of
different code chunks into block-group.c. Now that all the users are in
one file go ahead and rename them back, move the code around, and make
them static.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 176
These feel more at home in block-group.c.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 100 +++
fs/btrfs/block-group.h | 16 ++
fs/btrfs/ctree.h | 4 --
fs/btrfs/extent-tree.c | 115 -
4 files
This feels more at home in block-group.c than in extent-tree.c.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c| 245 ++
fs/btrfs/block-group.h| 24
fs/btrfs/ctree.h | 24
fs/btrfs/delalloc-space.c | 1 +
fs/btrfs/extent
We don't update the inode when evicting it, so the nbytes will be wrong
in between transaction commits. This isn't a problem, stop complaining
about it to make generic/269 stop randomly failing.
Signed-off-by: Josef Bacik
---
check/main.c | 2 +-
1 file changed, 1 insertion(+),
e normal check to see if
we can satisfy the whole reservation. If we can then we wake up the
ticket and carry on.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 43 ---
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/fs/btrfs/space-
on to have the tracepoint there. But now there is
because we always emit the unreserve for the bytes_may_use side, and
this would have broken if compression was on anyway. Add a tracepoint
to cover the bytes_reserved counter so the math still comes out right.
Signed-off-by: Josef Bacik
---
fs/
While cleaning up some things around the global reserve and can_overcommit I
started getting ENOSPC's with plenty of space to make reservations. The root
cause of the problem has to do with how we satisfy ticket reservations.
Previously we would add any space we were returning to the space info t
Now that we do not do partial filling of tickets simply remove
orig_bytes, it is no longer needed.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 15 ---
fs/btrfs/space-info.h | 1 -
2 files changed, 16 deletions(-)
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space
Now that we no longer partially fill tickets we need to rework
wake_all_tickets to call btrfs_try_to_wakeup_tickets() in order to see
if any subsequent tickets are able to be satisfied. If our tickets_id
changes we know something happened and we can keep flushing.
Signed-off-by: Josef Bacik
n call the wakeup helper, and replace all calls to
btrfs_space_info_add_new_bytes() with the wakeup helper.
Signed-off-by: Josef Bacik
---
fs/btrfs/extent-tree.c | 4 ++--
fs/btrfs/space-info.c | 53 +++---
fs/btrfs/space-info.h | 19 ++-
3 files c
If we already have tickets on the list we don't want to steal their
reservations. This is a preparation patch for upcoming changes,
technically this shouldn't happen today because of the way we add bytes
to tickets before adding them to the space_info in most cases.
Signed-off-by: J
We duplicate this tracepoint everywhere we call these helpers, so update
the helper to have the tracepoint as well.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c| 3 ---
fs/btrfs/block-rsv.c | 5 -
fs/btrfs/delalloc-space.c | 4
fs/btrfs/extent-tree.c| 9
On Fri, Aug 09, 2019 at 06:27:14PM +0300, Nikolay Borisov wrote:
>
>
> On 9.08.19 г. 16:18 ч., Josef Bacik wrote:
> > We don't update the inode when evicting it, so the nbytes will be wrong
> > in between transaction commits. This isn't a problem, stop complaini
rovisioned
device is out of space this gives us an EIO, and we flip read only. We
didn't remove the file, so the fstrim doesn't recover space anyway, so
we can't even fstrim and remount.
Make this test for ext4/xfs only, it just simply won't work right for
btrfs in it's
Now that generic/500 is not for all file systems, move it to shared.
Signed-off-by: Josef Bacik
---
tests/generic/group | 1 -
tests/{generic/500 => shared/001} | 0
tests/{generic/500.out => shared/001.out} | 0
tests/shared/group|
On Thu, Aug 15, 2019 at 08:24:25AM -0700, Darrick J. Wong wrote:
> On Thu, Aug 15, 2019 at 11:00:31AM -0400, Josef Bacik wrote:
> > I recently fixed some bugs in btrfs's enospc handling that made it start
> > failing generic/500.
> >
> > The point of this test
skip this test for btrfs.
Signed-off-by: Josef Bacik
---
tests/generic/500 | 6 ++
1 file changed, 6 insertions(+)
diff --git a/tests/generic/500 b/tests/generic/500
index 201d8b9f..5cd7126f 100755
--- a/tests/generic/500
+++ b/tests/generic/500
@@ -49,6 +49,12 @@ _supported_os
Hello,
Just some minor tweaks that needed to be added to fix issues introduced by the
next series of enospc fixes.
v1->v2:
- added "btrfs: fix may_commit_transaction to deal with no partial filling"
- fixed "btrfs: refactor the ticket wakeup code" to return true if we find a
smaller ticket than
n call the wakeup helper, and replace all calls to
btrfs_space_info_add_new_bytes() with the wakeup helper.
Signed-off-by: Josef Bacik
---
fs/btrfs/extent-tree.c | 4 ++--
fs/btrfs/space-info.c | 53 +++---
fs/btrfs/space-info.h | 19 ++-
3 files c
If we already have tickets on the list we don't want to steal their
reservations. This is a preparation patch for upcoming changes,
technically this shouldn't happen today because of the way we add bytes
to tickets before adding them to the space_info in most cases.
Signed-off-by: J
on to have the tracepoint there. But now there is
because we always emit the unreserve for the bytes_may_use side, and
this would have broken if compression was on anyway. Add a tracepoint
to cover the bytes_reserved counter so the math still comes out right.
Signed-off-by: Josef Bacik
---
fs/
space then we are truly out of space.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 19 +++
1 file changed, 19 insertions(+)
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c
index bd485be783b8..f79afdc04925 100644
--- a/fs/btrfs/space-info.c
+++ b/fs/btrfs/
e normal check to see if
we can satisfy the whole reservation. If we can then we wake up the
ticket and carry on.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 43 ---
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/fs/btrfs/space-
is smaller than the first ticket in our
queue then we want to retry the flushing loop again in case
may_commit_transaction() decides we could satisfy the ticket by
committing the transaction.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 34 +++---
1 file
We duplicate this tracepoint everywhere we call these helpers, so update
the helper to have the tracepoint as well.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c| 3 ---
fs/btrfs/block-rsv.c | 5 -
fs/btrfs/delalloc-space.c | 4
fs/btrfs/extent-tree.c| 9
Now that we do not do partial filling of tickets simply remove
orig_bytes, it is no longer needed.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 15 ---
fs/btrfs/space-info.h | 1 -
2 files changed, 16 deletions(-)
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space
We have two worst case calculations for space reservation, one that takes into
account splitting at every level when cow'ing down the btree, and another that
doesn't account for splitting at all. The first is used everywhere, and the
second is used mostly for truncate.
However we also do not spli
. This allows us to always reserve only the
metadata_size amount for inode updates rather than the
insert_metadata_size amount.
Signed-off-by: Josef Bacik
---
fs/btrfs/delalloc-space.c | 15 ---
fs/btrfs/delayed-inode.c | 2 +-
2 files changed, 13 insertions(+), 4 deletions(-)
diff
We only use the global reserve fallback for truncates, so use
calc_metadata_size instead of calc_insert_metadata_size.
Signed-off-by: Josef Bacik
---
fs/btrfs/transaction.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index
_size. Also btrfs_calc_trans_metadata_size is purely
for inserting items, so rename this to btrfs_calc_insert_metadata_size.
Making these clearer will help when I start using them differently in
upcoming patches.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-group.c | 4 ++--
fs/btrfs/ct
_can_ be using
overcommitted space, but the add_old_bytes checks this and won't add the
reservation if we're still overcommitted, so we are safe in this regard.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-rsv.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git
We hit a pretty crappy corner case in production that resulted in boxes slowing
down to a crawl.
can_overcommit() will not allow us to overcommit if there is not enough "real"
space to satisfy the global reserve. This is for hysterical raisins, we used to
not be able to allocate block groups a tr
When debugging weird enospc problems it's handy to be able to dump the
space info when we wake up all tickets, and see what the ticket values
are. This helped me figure out cases where we were enospc'ing when we
shouldn't have been.
Signed-off-by: Josef Bacik
---
fs/btrfs/sp
by always
taking our full reservation amount for the global reserve.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-rsv.c | 13 -
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/fs/btrfs/block-rsv.c b/fs/btrfs/block-rsv.c
index 657675eef443..18a0af20ee5a 100644
--- a/fs/btrfs/b
This solves the problem we were seeing in
production and keeps us from flushing as aggressively as we approach our
actual metadata size usage.
Signed-off-by: Josef Bacik
---
fs/btrfs/space-info.c | 19 +--
1 file changed, 1 insertion(+), 18 deletions(-)
diff --git a/fs/btrf
this doesn't affect normal file systems, but for xfstests
where we do things like fill up a fs and then rm * it can fall over in
weird ways. This enables us for more sane behavior at extremely small
file system sizes.
Signed-off-by: Josef Bacik
---
fs/btrfs/block-rsv.c | 22
On Fri, Aug 16, 2019 at 04:35:42PM +0100, Filipe Manana wrote:
> On Fri, Aug 16, 2019 at 4:08 PM Josef Bacik wrote:
> >
> > We only use the global reserve fallback for truncates, so use
>
> For truncates?
> I would say only for unlinks, rmdir and removing empty block
before something more
> important trips on it.
>
> Fixes: edf064e7c6fe ("btrfs: nowait aio support")
> Signed-off-by: Omar Sandoval
Reviewed-by: Josef Bacik
Thanks,
Josef
the file isn't by
> default. Make sure we bump the sync_writers counter in that case, too,
> so that we'll do the CRCs synchronously.
>
> Signed-off-by: Omar Sandoval
Reviewed-by: Josef Bacik
Thanks,
Josef
clear it.
>
> Signed-off-by: Omar Sandoval
Ship this, dear lord,
Reviewed-by: Josef Bacik
Thanks,
Josef
On Thu, Aug 15, 2019 at 02:04:05PM -0700, Omar Sandoval wrote:
> From: Omar Sandoval
>
> I'm adding a Btrfs ioctl to write compressed data, and rather than
> duplicating the checks in rw_verify_area(), let's just export it.
>
> Signed-off-by: Omar Sandoval
Revie
On Mon, Aug 19, 2019 at 11:30:16AM +0300, Nikolay Borisov wrote:
>
>
> On 16.08.19 г. 18:05 ч., Josef Bacik wrote:
> > btrfs_calc_trunc_metadata_size differs from trans_metadata_size in that
> > it doesn't take into account any splitting at the levels, because
> >
On Mon, Aug 19, 2019 at 12:17:07PM +0300, Nikolay Borisov wrote:
>
>
> On 16.08.19 г. 18:05 ч., Josef Bacik wrote:
> > Historically we reserved worst case for every btree operation, and
> > generally speaking we want to do that in cases where it could be the
> > worst
On Mon, Aug 19, 2019 at 03:54:29PM +0300, Nikolay Borisov wrote:
>
>
> On 16.08.19 г. 17:19 ч., Josef Bacik wrote:
> > If we already have tickets on the list we don't want to steal their
> > reservations. This is a preparation patch for upcoming changes,
> > t
On Mon, Aug 19, 2019 at 05:49:45PM +0300, Nikolay Borisov wrote:
>
>
> On 16.08.19 г. 17:19 ч., Josef Bacik wrote:
> > Now that we no longer partially fill tickets we need to rework
> > wake_all_tickets to call btrfs_try_to_wakeup_tickets() in order to see
> > if any
On Tue, Aug 20, 2019 at 04:45:15PM +0300, Nikolay Borisov wrote:
>
>
> On 16.08.19 г. 18:20 ч., Josef Bacik wrote:
> > It made sense to have the global reserve set at 16M in the past, but
> > since it is used less nowadays set the minimum size to the number of
> > ite
On Tue, Aug 20, 2019 at 05:23:29PM +0300, Nikolay Borisov wrote:
>
>
> On 16.08.19 г. 18:20 ч., Josef Bacik wrote:
> > While messing with the overcommit logic I noticed that sometimes we'd
> > ENOSPC out when really we should have run out of space much earlier. It
On Wed, Aug 21, 2019 at 04:14:53PM +0200, David Sterba wrote:
> On Wed, Aug 21, 2019 at 03:24:46PM +0200, David Sterba wrote:
> > On Wed, Aug 21, 2019 at 03:20:21PM +0200, David Sterba wrote:
> > > On Tue, Aug 13, 2019 at 10:33:42AM -0700, Omar Sandoval wrote:
> > > > From: Omar Sandoval
> > > >
nable us to add testcases in the future to test these various
features easier.
Signed-off-by: Josef Bacik
---
fs/btrfs/sysfs.c | 64
1 file changed, 64 insertions(+)
diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
index f6d3c80f2e28..c290a0c
Now that we do not do partial filling of tickets simply remove
orig_bytes, it is no longer needed.
Signed-off-by: Josef Bacik
Reviewed-by: Nikolay Borisov
---
fs/btrfs/space-info.c | 8
fs/btrfs/space-info.h | 1 -
2 files changed, 9 deletions(-)
diff --git a/fs/btrfs/space-info.c b
401 - 500 of 4464 matches
Mail list logo