]> git.proxmox.com Git - mirror_ubuntu-kernels.git/log
mirror_ubuntu-kernels.git
13 months agobcachefs: add bcachefs_effective xattrs
Kent Overstreet [Mon, 17 Dec 2018 10:31:09 +0000 (05:31 -0500)]
bcachefs: add bcachefs_effective xattrs

Allows seeing xattrs that were inherited, not explicitly set

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Add flags to indicate if inode opts were inherited or explicitly set
Kent Overstreet [Thu, 13 Dec 2018 13:32:11 +0000 (08:32 -0500)]
bcachefs: Add flags to indicate if inode opts were inherited or explicitly set

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: bch2_fs_quota_transfer
Kent Overstreet [Mon, 17 Dec 2018 10:43:00 +0000 (05:43 -0500)]
bcachefs: bch2_fs_quota_transfer

improve quota transfer locking & make ei_qid usage more consistent

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: merge BCH_INODE_FIELDS_INHERIT/BCH_INODE_OPTS
Kent Overstreet [Thu, 13 Dec 2018 13:24:21 +0000 (08:24 -0500)]
bcachefs: merge BCH_INODE_FIELDS_INHERIT/BCH_INODE_OPTS

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: use x-macros more consistently
Kent Overstreet [Thu, 13 Dec 2018 11:01:30 +0000 (06:01 -0500)]
bcachefs: use x-macros more consistently

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix for building in userspace
Kent Overstreet [Wed, 12 Dec 2018 11:23:25 +0000 (06:23 -0500)]
bcachefs: Fix for building in userspace

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix bkey_method compilation on gcc 7.3.0
Tim Schlueter [Sun, 9 Dec 2018 21:20:52 +0000 (13:20 -0800)]
bcachefs: Fix bkey_method compilation on gcc 7.3.0

Signed-off-by: Tim Schlueter <schlueter.tim@linux.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Include summarized counts in fs_usage
Kent Overstreet [Sat, 1 Dec 2018 16:32:12 +0000 (11:32 -0500)]
bcachefs: Include summarized counts in fs_usage

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: refactor bch_fs_usage
Kent Overstreet [Tue, 27 Nov 2018 13:23:22 +0000 (08:23 -0500)]
bcachefs: refactor bch_fs_usage

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Switch replicas to mark_lock
Kent Overstreet [Sat, 1 Dec 2018 15:32:48 +0000 (10:32 -0500)]
bcachefs: Switch replicas to mark_lock

Prep work for upcoming disk accounting changes

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix an incorrect bkey_debugcheck() call
Kent Overstreet [Thu, 6 Dec 2018 17:01:29 +0000 (12:01 -0500)]
bcachefs: fix an incorrect bkey_debugcheck() call

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: improve extent debugcheck fn
Kent Overstreet [Thu, 6 Dec 2018 15:24:22 +0000 (10:24 -0500)]
bcachefs: improve extent debugcheck fn

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: improve/clarify ptr_disk_sectors()
Kent Overstreet [Thu, 6 Dec 2018 16:52:58 +0000 (11:52 -0500)]
bcachefs: improve/clarify ptr_disk_sectors()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix for running in degraded mode
Kent Overstreet [Thu, 6 Dec 2018 14:58:03 +0000 (09:58 -0500)]
bcachefs: Fix for running in degraded mode

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Compression fixes
Kent Overstreet [Wed, 5 Dec 2018 17:30:02 +0000 (12:30 -0500)]
bcachefs: Compression fixes

regressions from switching disk space accounting to be in compressed
sectors

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: propagate BCH_WRITE_CACHED
Kent Overstreet [Wed, 5 Dec 2018 17:28:35 +0000 (12:28 -0500)]
bcachefs: propagate BCH_WRITE_CACHED

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: s/usage_lock/mark_lock
Kent Overstreet [Mon, 26 Nov 2018 05:13:33 +0000 (00:13 -0500)]
bcachefs: s/usage_lock/mark_lock

better describes what it's for, and we're going to call a new lock
usage_lock

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: New blockcount field for bch_stripe
Kent Overstreet [Sun, 25 Nov 2018 00:01:45 +0000 (19:01 -0500)]
bcachefs: New blockcount field for bch_stripe

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: move dirty into bucket_mark
Kent Overstreet [Mon, 19 Nov 2018 06:16:07 +0000 (01:16 -0500)]
bcachefs: move dirty into bucket_mark

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Add new alloc fields
Kent Overstreet [Sun, 22 Jul 2018 03:36:11 +0000 (23:36 -0400)]
bcachefs: Add new alloc fields

prep work for persistent alloc info

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Deferred btree updates
Kent Overstreet [Tue, 17 Jul 2018 17:50:15 +0000 (13:50 -0400)]
bcachefs: Deferred btree updates

Will be used in the future for inode updates, which will be very helpful
for multithreaded workloads that have to update the inode with every
extent update (appends, or updates that change i_sectors)

Also will be used eventually for fully persistent alloc info

However - we still need a mechanism for reserving space in the journal
prior to getting a journal reservation, so it's not technically safe to
make use of this just yet, we could deadlock with the journal full
(although not likely to be an issue in practice)

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: drop bogus percpu_ref_tryget
Kent Overstreet [Sat, 24 Nov 2018 23:27:16 +0000 (18:27 -0500)]
bcachefs: drop bogus percpu_ref_tryget

caller should already be guarding against rw, and checking here breaks
when caller needs to finish updates for going RO

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Track nr_inodes with the key marking machinery
Kent Overstreet [Thu, 29 Nov 2018 07:14:31 +0000 (02:14 -0500)]
bcachefs: Track nr_inodes with the key marking machinery

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Make bkey types globally unique
Kent Overstreet [Thu, 1 Nov 2018 19:10:01 +0000 (15:10 -0400)]
bcachefs: Make bkey types globally unique

this lets us get rid of a lot of extra switch statements - in a lot of
places we dispatch on the btree node type, and then the key type, so
this is a nice cleanup across a lot of code.

Also improve the on disk format versioning stuff.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix a btree iter usage error
Kent Overstreet [Thu, 29 Nov 2018 08:24:06 +0000 (03:24 -0500)]
bcachefs: Fix a btree iter usage error

previously, if the code traversed to the next btree node, that could
return an error (due to lock restarts) - which was not being checked
for.

fix is to rework it so it never iterates past the current leaf node, and
pops an assertion if it ever sees an error.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Split out bkey_sort.c
Kent Overstreet [Tue, 27 Nov 2018 23:30:56 +0000 (18:30 -0500)]
bcachefs: Split out bkey_sort.c

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix waiting on an open journal entry
Kent Overstreet [Tue, 27 Nov 2018 15:06:18 +0000 (10:06 -0500)]
bcachefs: fix waiting on an open journal entry

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: return errors correctly from gc
Kent Overstreet [Tue, 27 Nov 2018 13:14:51 +0000 (08:14 -0500)]
bcachefs: return errors correctly from gc

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Hold usage_lock over mark_key and fs_usage_apply
Kent Overstreet [Fri, 23 Nov 2018 03:50:35 +0000 (22:50 -0500)]
bcachefs: Hold usage_lock over mark_key and fs_usage_apply

Fixes an inconsistency at the end of gc

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Stripes now properly subject to gc
Kent Overstreet [Sat, 24 Nov 2018 22:09:44 +0000 (17:09 -0500)]
bcachefs: Stripes now properly subject to gc

gc now verifies the contents of the stripes radix tree, important for
persistent alloc info

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Btree locking fix, refactoring
Kent Overstreet [Fri, 23 Nov 2018 10:19:25 +0000 (05:19 -0500)]
bcachefs: Btree locking fix, refactoring

Hit an assertion, probably spurious, indicating an iterator was unlocked
when it shouldn't have been (spurious because it wasn't locked at all
when the caller called btree_insert_at()).

Add a flag, BTREE_ITER_NOUNLOCK, and tighten up the assertions

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: shim for userspace raid library
Kent Overstreet [Fri, 23 Nov 2018 07:06:18 +0000 (02:06 -0500)]
bcachefs: shim for userspace raid library

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agoRevert "bcachefs: start erasure coding after journal replay"
Kent Overstreet [Fri, 23 Nov 2018 07:50:33 +0000 (02:50 -0500)]
Revert "bcachefs: start erasure coding after journal replay"

This reverts commit 36f389604294dfc953e6f5624ceb683818d32f28.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Allow for new alloc fields
Kent Overstreet [Fri, 23 Nov 2018 04:05:13 +0000 (23:05 -0500)]
bcachefs: Allow for new alloc fields

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: gc now operates on second set of bucket marks
Kent Overstreet [Mon, 23 Jul 2018 09:32:01 +0000 (05:32 -0400)]
bcachefs: gc now operates on second set of bucket marks

This means we can now use gc to verify the allocation information -
important for testing persistant alloc info

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix mempool double initialization
Kent Overstreet [Wed, 21 Nov 2018 12:16:28 +0000 (07:16 -0500)]
bcachefs: fix mempool double initialization

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix btree iterator bug when using depth > 0
Kent Overstreet [Wed, 21 Nov 2018 07:59:07 +0000 (02:59 -0500)]
bcachefs: fix btree iterator bug when using depth > 0

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Allocator startup improvements
Kent Overstreet [Mon, 19 Nov 2018 04:20:21 +0000 (23:20 -0500)]
bcachefs: Allocator startup improvements

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Journal refactoring
Kent Overstreet [Sun, 18 Nov 2018 23:32:16 +0000 (18:32 -0500)]
bcachefs: Journal refactoring

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Don't block on journal reservation with btree locks held
Kent Overstreet [Mon, 19 Nov 2018 02:35:59 +0000 (21:35 -0500)]
bcachefs: Don't block on journal reservation with btree locks held

Fixes a deadlock between the allocator thread, when it first starts up,
and journal replay

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: start erasure coding after journal replay
Kent Overstreet [Mon, 19 Nov 2018 01:42:02 +0000 (20:42 -0500)]
bcachefs: start erasure coding after journal replay

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Clean up, possixly fix page disk reservation accounting
Kent Overstreet [Thu, 15 Nov 2018 02:53:40 +0000 (21:53 -0500)]
bcachefs: Clean up, possixly fix page disk reservation accounting

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix an error path
Kent Overstreet [Thu, 15 Nov 2018 02:53:25 +0000 (21:53 -0500)]
bcachefs: Fix an error path

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix typo when picking read method
Kent Overstreet [Wed, 14 Nov 2018 03:10:27 +0000 (22:10 -0500)]
bcachefs: fix typo when picking read method

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Erasure coding
Kent Overstreet [Thu, 1 Nov 2018 19:13:19 +0000 (15:13 -0400)]
bcachefs: Erasure coding

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: More btree gc refactorings
Kent Overstreet [Mon, 12 Nov 2018 22:26:36 +0000 (17:26 -0500)]
bcachefs: More btree gc refactorings

more prep work for erasure coding

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Centralize marking of replicas in btree update path
Kent Overstreet [Wed, 7 Nov 2018 22:48:32 +0000 (17:48 -0500)]
bcachefs: Centralize marking of replicas in btree update path

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Move key marking out of extents.c
Kent Overstreet [Mon, 5 Nov 2018 07:31:48 +0000 (02:31 -0500)]
bcachefs: Move key marking out of extents.c

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: stripe support for replicas tracking
Kent Overstreet [Tue, 30 Oct 2018 18:32:47 +0000 (14:32 -0400)]
bcachefs: stripe support for replicas tracking

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Check for unsupported features
Kent Overstreet [Mon, 12 Nov 2018 23:30:55 +0000 (18:30 -0500)]
bcachefs: Check for unsupported features

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: revamp to_text methods
Kent Overstreet [Fri, 9 Nov 2018 06:24:07 +0000 (01:24 -0500)]
bcachefs: revamp to_text methods

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: delete some dead code
Kent Overstreet [Fri, 9 Nov 2018 06:42:49 +0000 (01:42 -0500)]
bcachefs: delete some dead code

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix a replicas bug
Kent Overstreet [Fri, 9 Nov 2018 05:55:20 +0000 (00:55 -0500)]
bcachefs: fix a replicas bug

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Set the last mount time using the realtime clock
Tim Schlueter [Mon, 5 Nov 2018 04:14:46 +0000 (20:14 -0800)]
bcachefs: Set the last mount time using the realtime clock

This way the last mount time is actually meaningful instead of just being
various times from 1970 (which happens with the monotonic clock).

Also, roundup_pow_of_two() is undefined when passed in 0, so check before
calling it.

Signed-off-by: Tim Schlueter <schlueter.tim@linux.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Disk usage in compressed sectors, not uncompressed
Kent Overstreet [Mon, 5 Nov 2018 04:10:09 +0000 (23:10 -0500)]
bcachefs: Disk usage in compressed sectors, not uncompressed

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Assorted fixes for running on very small devices
Kent Overstreet [Mon, 5 Nov 2018 03:09:51 +0000 (22:09 -0500)]
bcachefs: Assorted fixes for running on very small devices

It's now possible to create and use a filesystem on a 512k device with
4k buckets (though at that size we still waste almost half to internal
reserves)

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Scale down number of writepoints when low on space
Kent Overstreet [Mon, 5 Nov 2018 02:55:35 +0000 (21:55 -0500)]
bcachefs: Scale down number of writepoints when low on space

this means we don't have to reserve space for them when calculating
filesystem capacity

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix an assertion when rebuilding replicas
Kent Overstreet [Sun, 4 Nov 2018 02:00:50 +0000 (22:00 -0400)]
bcachefs: Fix an assertion when rebuilding replicas

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Rename nofsck opt to fsck
Kent Overstreet [Sun, 4 Nov 2018 01:52:52 +0000 (21:52 -0400)]
bcachefs: Rename nofsck opt to fsck

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix journal replay when replicas sb section missing
Kent Overstreet [Sun, 4 Nov 2018 01:51:31 +0000 (21:51 -0400)]
bcachefs: Fix journal replay when replicas sb section missing

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix bounds checks in bch2_bio_map()
Kent Overstreet [Sun, 4 Nov 2018 00:19:04 +0000 (20:19 -0400)]
bcachefs: fix bounds checks in bch2_bio_map()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Some fixes for building in userspace
Kent Overstreet [Sun, 4 Nov 2018 00:04:54 +0000 (20:04 -0400)]
bcachefs: Some fixes for building in userspace

userspace allocators don't align allocations as nicely as kernel
allocators, which meant that in some cases we weren't allocating big
enough bvec arrays - just make the calculations more rigorous and
explicit to fix it.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix bch2_bkey_print_bfloat
Kent Overstreet [Thu, 1 Nov 2018 20:02:02 +0000 (16:02 -0400)]
bcachefs: fix bch2_bkey_print_bfloat

was popping an assertion in the eytzinger code

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: new avoid mechanism for io retries
Kent Overstreet [Thu, 1 Nov 2018 19:28:45 +0000 (15:28 -0400)]
bcachefs: new avoid mechanism for io retries

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: more key marking refactoring
Kent Overstreet [Thu, 1 Nov 2018 19:21:48 +0000 (15:21 -0400)]
bcachefs: more key marking refactoring

prep work for erasure coding

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: replicas: prep work for stripes
Kent Overstreet [Tue, 30 Oct 2018 18:32:21 +0000 (14:32 -0400)]
bcachefs: replicas: prep work for stripes

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: kill struct bch_replicas_cpu_entry
Kent Overstreet [Tue, 30 Oct 2018 18:14:19 +0000 (14:14 -0400)]
bcachefs: kill struct bch_replicas_cpu_entry

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: add functionality for heaps to update backpointers
Kent Overstreet [Sun, 21 Oct 2018 20:32:51 +0000 (16:32 -0400)]
bcachefs: add functionality for heaps to update backpointers

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: btree gc refactoring
Kent Overstreet [Sun, 21 Oct 2018 14:56:11 +0000 (10:56 -0400)]
bcachefs: btree gc refactoring

prep work for erasure coding

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: BCH_EXTENT_ENTRY_TYPES()
Kent Overstreet [Sun, 30 Sep 2018 22:39:20 +0000 (18:39 -0400)]
bcachefs: BCH_EXTENT_ENTRY_TYPES()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: bch2_extent_ptr_decoded_append()
Kent Overstreet [Fri, 28 Sep 2018 01:08:39 +0000 (21:08 -0400)]
bcachefs: bch2_extent_ptr_decoded_append()

This new helper for the move path avoids creating a new CRC entry when
we already have one that matches the pointer being added.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: bch2_extent_drop_ptrs()
Kent Overstreet [Sun, 30 Sep 2018 22:28:23 +0000 (18:28 -0400)]
bcachefs: bch2_extent_drop_ptrs()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: extent_for_each_ptr_decode()
Kent Overstreet [Fri, 28 Sep 2018 01:08:39 +0000 (21:08 -0400)]
bcachefs: extent_for_each_ptr_decode()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: kill bch_extent_crc_type
Kent Overstreet [Tue, 2 Oct 2018 20:40:12 +0000 (16:40 -0400)]
bcachefs: kill bch_extent_crc_type

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: extent_ptr_decoded
Kent Overstreet [Tue, 2 Oct 2018 15:03:39 +0000 (11:03 -0400)]
bcachefs: extent_ptr_decoded

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix missing include
Kent Overstreet [Fri, 12 Oct 2018 18:57:57 +0000 (14:57 -0400)]
bcachefs: fix missing include

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix a spurious gcc warning
Kent Overstreet [Fri, 12 Oct 2018 18:53:25 +0000 (14:53 -0400)]
bcachefs: fix a spurious gcc warning

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Allocation code refactoring
Kent Overstreet [Sat, 6 Oct 2018 08:12:42 +0000 (04:12 -0400)]
bcachefs: Allocation code refactoring

bch2_alloc_sectors_start() was a nightmare to work with - it's got some
tricky stuff to do, since it wants to use the buckets the writepoint
already has, unless they're not in the target it wants to write to,
unless it can't allocate from any other devices in which case it will
use those buckets if it has to - et cetera.

This restructures the code to start with a new empty list of open
buckets we're going to use for the new allocation, pulling buckets from
the write point's list as we decide that we really are going to use
them - making the code somewhat more functional and drastically easier
to understand.

Also fixes a bug where we could end up waiting on c->freelist_wait
(because allocating from one device failed) but return success from
bch2_bucket_alloc(), because allocating from a different device
succeeded.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Split out alloc_background.c
Kent Overstreet [Sat, 6 Oct 2018 04:46:55 +0000 (00:46 -0400)]
bcachefs: Split out alloc_background.c

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix failure to suspend
Kent Overstreet [Mon, 1 Oct 2018 04:33:42 +0000 (00:33 -0400)]
bcachefs: Fix failure to suspend

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix suspend when moving data faster than ratelimit
Kent Overstreet [Wed, 26 Sep 2018 03:27:57 +0000 (23:27 -0400)]
bcachefs: Fix suspend when moving data faster than ratelimit

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix bch2_acl_chmod()
Kent Overstreet [Fri, 21 Sep 2018 21:37:13 +0000 (17:37 -0400)]
bcachefs: fix bch2_acl_chmod()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix a deadlock
Kent Overstreet [Sat, 15 Sep 2018 21:57:22 +0000 (17:57 -0400)]
bcachefs: Fix a deadlock

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: fix a divide
Kent Overstreet [Thu, 6 Sep 2018 21:09:07 +0000 (17:09 -0400)]
bcachefs: fix a divide

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: make fsck spew less
Kent Overstreet [Tue, 28 Aug 2018 22:54:42 +0000 (18:54 -0400)]
bcachefs: make fsck spew less

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Dirent repair code
Kent Overstreet [Tue, 21 Aug 2018 23:42:00 +0000 (19:42 -0400)]
bcachefs: Dirent repair code

There was a bug for awhile in previous kernels where we weren't
computing dirent name lengths correctly and we weren't zeroing out
padding at the end of dirents (due to struct bch_dirent changing size by
adding __attribute__((aligned)), and not updating other code to use
offsetof).

This patch fixes dirents with junk at the end, by going off of the
dirent's hash.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Fix a btree iter bug when iter pos == POS_MAX
Kent Overstreet [Tue, 21 Aug 2018 21:38:41 +0000 (17:38 -0400)]
bcachefs: Fix a btree iter bug when iter pos == POS_MAX

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Comparison function cleanups
Kent Overstreet [Tue, 21 Aug 2018 20:30:14 +0000 (16:30 -0400)]
bcachefs: Comparison function cleanups

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Prioritize fragmentation in bucket allocator
Kent Overstreet [Tue, 21 Aug 2018 19:19:33 +0000 (15:19 -0400)]
bcachefs: Prioritize fragmentation in bucket allocator

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: Pass around bset_tree less
Kent Overstreet [Sat, 11 Aug 2018 23:12:05 +0000 (19:12 -0400)]
bcachefs: Pass around bset_tree less

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: kill extent_insert_hook
Kent Overstreet [Wed, 8 Aug 2018 23:53:30 +0000 (19:53 -0400)]
bcachefs: kill extent_insert_hook

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: kill i_sectors_hook
Kent Overstreet [Sun, 5 Aug 2018 21:48:00 +0000 (17:48 -0400)]
bcachefs: kill i_sectors_hook

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: convert fcollapse to bch2_extent_update()
Kent Overstreet [Sat, 11 Aug 2018 21:26:11 +0000 (17:26 -0400)]
bcachefs: convert fcollapse to bch2_extent_update()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: convert fpunch to bch2_extent_update()
Kent Overstreet [Thu, 9 Aug 2018 01:11:43 +0000 (21:11 -0400)]
bcachefs: convert fpunch to bch2_extent_update()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: convert truncate to bch2_extent_update()
Kent Overstreet [Thu, 9 Aug 2018 01:09:31 +0000 (21:09 -0400)]
bcachefs: convert truncate to bch2_extent_update()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: convert bchfs_write_index_update() to bch2_extent_update()
Kent Overstreet [Wed, 8 Aug 2018 22:42:04 +0000 (18:42 -0400)]
bcachefs: convert bchfs_write_index_update() to bch2_extent_update()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: bch2_extent_trim_atomic()
Kent Overstreet [Sun, 5 Aug 2018 21:46:41 +0000 (17:46 -0400)]
bcachefs: bch2_extent_trim_atomic()

Prep work for extents insert hook removal

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: mempoolify btree_trans
Kent Overstreet [Thu, 9 Aug 2018 01:22:46 +0000 (21:22 -0400)]
bcachefs: mempoolify btree_trans

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: BTREE_INSERT_JOURNAL_RES_FULL is no longer possible
Kent Overstreet [Sun, 5 Aug 2018 19:21:52 +0000 (15:21 -0400)]
bcachefs: BTREE_INSERT_JOURNAL_RES_FULL is no longer possible

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
13 months agobcachefs: extent_squash() can no longer fail
Kent Overstreet [Sun, 5 Aug 2018 19:28:29 +0000 (15:28 -0400)]
bcachefs: extent_squash() can no longer fail

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>