#
14b393ee |
| 16-Mar-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Subvolumes, snapshots
This patch adds subvolume.c - support for the subvolumes and snapshots btrees and related data types and on disk data structures. The next patches will start hooking
bcachefs: Subvolumes, snapshots
This patch adds subvolume.c - support for the subvolumes and snapshots btrees and related data types and on disk data structures. The next patches will start hooking up this new code to existing code.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
show more ...
|
#
1865ccff |
| 25-Aug-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Add SPOS_MAX to bpos_to_text()
Better pretty printing ftw
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
|
#
d7b21954 |
| 21-Jul-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Pretty-ify bch2_bkey_val_to_text()
Don't print out the ": " when there isn't a value to print.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
|
#
5db95e50 |
| 29-Apr-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Re-implement extent merging in transaction commit path
We haven't had extent merging in quite some time. It used to be done by the btree code when sorting btree nodes, but that was elimina
bcachefs: Re-implement extent merging in transaction commit path
We haven't had extent merging in quite some time. It used to be done by the btree code when sorting btree nodes, but that was eliminated as part of the work to separate extent handling from core btree code.
This patch re-implements extent merging in the transaction commit path. We don't currently have the ability to merge reflink pointers, we need to do some work on the triggers code to be able to do that without ending up with incorrect refcounts.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
show more ...
|
#
59ba21d9 |
| 29-Apr-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Clean up key merging
This patch simplifies the key merging code by getting rid of partial merges - it's simpler and saner if we just don't merge extents when they'd overflow k->size.
Sign
bcachefs: Clean up key merging
This patch simplifies the key merging code by getting rid of partial merges - it's simpler and saner if we just don't merge extents when they'd overflow k->size.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
show more ...
|
#
27cc532e |
| 18-Apr-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Check that keys are in the correct btrees
We've started seeing bug reports of pointers to btree nodes being detected in leaf nodes. This should catch that before it's happened, and it's so
bcachefs: Check that keys are in the correct btrees
We've started seeing bug reports of pointers to btree nodes being detected in leaf nodes. This should catch that before it's happened, and it's something we should've been checking anyways.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
e751c01a |
| 24-Mar-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Start using bpos.snapshot field
This patch starts treating the bpos.snapshot field like part of the key in the btree code:
* bpos_successor() and bpos_predecessor() now include the snapsh
bcachefs: Start using bpos.snapshot field
This patch starts treating the bpos.snapshot field like part of the key in the btree code:
* bpos_successor() and bpos_predecessor() now include the snapshot field * Keys in btrees that will be using snapshots (extents, inodes, dirents and xattrs) now always have their snapshot field set to U32_MAX
The btree iterator code gets a new flag, BTREE_ITER_ALL_SNAPSHOTS, that determines whether we're iterating over keys in all snapshots or not - internally, this controlls whether bkey_(successor|predecessor) increment/decrement the snapshot field, or only the higher bits of the key.
We add a new member to struct btree_iter, iter->snapshot: when BTREE_ITER_ALL_SNAPSHOTS is not set, iter->pos.snapshot should always equal iter->snapshot, which will be 0 for btrees that don't use snapshots, and alsways U32_MAX for btrees that will use snapshots (until we enable snapshot creation).
This patch also introduces a new metadata version number, and compat code for reading from/writing to older versions - this isn't a forced upgrade (yet).
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
4cf91b02 |
| 04-Mar-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Split out bpos_cmp() and bkey_cmp()
With snapshots, we're going to need to differentiate between comparisons that should and shouldn't include the snapshot field. bpos_cmp is now the compa
bcachefs: Split out bpos_cmp() and bkey_cmp()
With snapshots, we're going to need to differentiate between comparisons that should and shouldn't include the snapshot field. bpos_cmp is now the comparison function that does include the snapshot field, used by core btree code.
Upper level filesystem code generally does _not_ want to compare against the snapshot field - that code wants keys to compare as equal even when one of them is in an ancestor snapshot.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
1fe9b1d3 |
| 22-Mar-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Include snapshot field in bch2_bpos_to_text
More prep work for snapshots.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.
bcachefs: Include snapshot field in bch2_bpos_to_text
More prep work for snapshots.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
7e6dbac9 |
| 20-Mar-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Kill bkey ops->debugcheck method
This code used to be used for running some assertions on alloc info at runtime, but it long predates fsck and hasn't been good for much in ages - we can de
bcachefs: Kill bkey ops->debugcheck method
This code used to be used for running some assertions on alloc info at runtime, but it long predates fsck and hasn't been good for much in ages - we can delete it now.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
41f8b09e |
| 21-Feb-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Rename BTREE_ID enums for consistency with other enums
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
#
79f88eba |
| 21-Feb-2021 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Rename KEY_TYPE_whiteout -> KEY_TYPE_hash_whiteout
Snapshots are going to need a different whiteout key type. Also, switch to using BCH_BKEY_TYPES() to define the bkey value accessors.
Si
bcachefs: Rename KEY_TYPE_whiteout -> KEY_TYPE_hash_whiteout
Snapshots are going to need a different whiteout key type. Also, switch to using BCH_BKEY_TYPES() to define the bkey value accessors.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.11-rc6, v5.11-rc5, v5.11-rc4, v5.11-rc3, v5.11-rc2, v5.11-rc1, v5.10, v5.10-rc7, v5.10-rc6, v5.10-rc5, v5.10-rc4 |
|
#
61501161 |
| 13-Nov-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Be more careful in bch2_bkey_to_text()
This is used to print keys that failed bch2_bkey_invalid(), so be more careful with k->type.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.c
bcachefs: Be more careful in bch2_bkey_to_text()
This is used to print keys that failed bch2_bkey_invalid(), so be more careful with k->type.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.10-rc3 |
|
#
29364f34 |
| 03-Nov-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Drop sysfs interface to debug parameters
It's not used much anymore, the module paramter interface is better.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Ken
bcachefs: Drop sysfs interface to debug parameters
It's not used much anymore, the module paramter interface is better.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.10-rc2, v5.10-rc1 |
|
#
801a3de6 |
| 25-Oct-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Indirect inline data extents
When inline data extents were added, reflink was forgotten about - we need indirect inline data extents for reflink + inline data to work correctly.
This patc
bcachefs: Indirect inline data extents
When inline data extents were added, reflink was forgotten about - we need indirect inline data extents for reflink + inline data to work correctly.
This patch adds them, and a new feature bit that's flipped when they're used.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.9, v5.9-rc8, v5.9-rc7, v5.9-rc6, v5.9-rc5, v5.9-rc4, v5.9-rc3, v5.9-rc2, v5.9-rc1, v5.8, v5.8-rc7, v5.8-rc6, v5.8-rc5, v5.8-rc4, v5.8-rc3, v5.8-rc2, v5.8-rc1, v5.7 |
|
#
dc744b51 |
| 26-May-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Handle printing of null bkeys
This fixes a null ptr deref.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
Revision tags: v5.7-rc7, v5.7-rc6, v5.7-rc5, v5.7-rc4, v5.7-rc3 |
|
#
41697f38 |
| 24-Apr-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Fix for the bkey compat path
In the write path, we were calling bch2_bkey_ops.compat() in the wrong place.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent O
bcachefs: Fix for the bkey compat path
In the write path, we were calling bch2_bkey_ops.compat() in the wrong place.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.7-rc2, v5.7-rc1, v5.6, v5.6-rc7, v5.6-rc6, v5.6-rc5, v5.6-rc4, v5.6-rc3, v5.6-rc2, v5.6-rc1, v5.5, v5.5-rc7, v5.5-rc6 |
|
#
39fb2983 |
| 07-Jan-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Kill bkey_type_successor
Previously, BTREE_ID_INODES was special - inodes were indexed by the inode field, which meant the offset field of struct bpos wasn't used, which led to special cas
bcachefs: Kill bkey_type_successor
Previously, BTREE_ID_INODES was special - inodes were indexed by the inode field, which meant the offset field of struct bpos wasn't used, which led to special cases in e.g. the btree iterator code.
Now, inodes in the inodes btree are indexed by the offset field.
Also: prevously min_key was special for extents btrees, min_key for extents would equal max_key for the previous node. Now, min_key = bkey_successor() of the previous node, same as non extent btrees.
This means we can completely get rid of btree_type_sucessor/predecessor.
Also make some improvements to the metadata IO validate/compat code.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
e62d65f2 |
| 16-Mar-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: trans_commit() path can now insert to interior nodes
This will be needed for the upcoming patches to journal updates to interior btree nodes.
Signed-off-by: Kent Overstreet <kent.overstre
bcachefs: trans_commit() path can now insert to interior nodes
This will be needed for the upcoming patches to journal updates to interior btree nodes.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
#
1f49dafc |
| 07-Feb-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Fix bch2_ptr_swab for indirect extents
bch2_ptr_swab was never updated when the code for generic keys with pointers was added - it assumed the entire val was only used for pointers.
Signe
bcachefs: Fix bch2_ptr_swab for indirect extents
bch2_ptr_swab was never updated when the code for generic keys with pointers was added - it assumed the entire val was only used for pointers.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.5-rc5 |
|
#
e7808eef |
| 04-Jan-2020 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Kill bch2_fs_bug()
These have all been converted to fsck/inconsistent errors
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@lin
bcachefs: Kill bch2_fs_bug()
These have all been converted to fsck/inconsistent errors
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.5-rc4, v5.5-rc3, v5.5-rc2, v5.5-rc1 |
|
#
9ba68f6c |
| 26-Nov-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Switch to macro for bkey_ops
Older versions of gcc refuse to compile it the other way
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overs
bcachefs: Switch to macro for bkey_ops
Older versions of gcc refuse to compile it the other way
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.4, v5.4-rc8, v5.4-rc7 |
|
#
4be1a412 |
| 09-Nov-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Inline data extents
This implements extents that have their data inline, in the value, instead of the bkey value being pointers to the data - and the read and write paths are updated to re
bcachefs: Inline data extents
This implements extents that have their data inline, in the value, instead of the bkey value being pointers to the data - and the read and write paths are updated to read from these new extent types and write them out, when the write size is small enough.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.4-rc6, v5.4-rc5, v5.4-rc4, v5.4-rc3, v5.4-rc2, v5.4-rc1, v5.3 |
|
#
a9d1f910 |
| 14-Sep-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Debug code improvements
.key_debugcheck no longer needs to take a pointer to the btree node
Also, try to make sure wherever we're inserting or modifying keys in the btree.
Signed-off-by:
bcachefs: Debug code improvements
.key_debugcheck no longer needs to take a pointer to the btree node
Also, try to make sure wherever we're inserting or modifying keys in the btree.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
show more ...
|
Revision tags: v5.3-rc8, v5.3-rc7, v5.3-rc6, v5.3-rc5 |
|
#
76426098 |
| 16-Aug-2019 |
Kent Overstreet <kent.overstreet@gmail.com> |
bcachefs: Reflink
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|