<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/bcachefs/subvolume.c, branch linux-6.7.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.7.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.7.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2024-01-01T16:47:07Z</updated>
<entry>
<title>bcachefs: make RO snapshots actually RO</title>
<updated>2024-01-01T16:47:07Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-12-30T02:16:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0d72ab35a925d66b044cb62b709e53141c3f0143'/>
<id>urn:sha1:0d72ab35a925d66b044cb62b709e53141c3f0143</id>
<content type='text'>
Add checks to all the VFS paths for "are we in a RO snapshot?".

Note - we don't check this when setting inode options via our xattr
interface, since those generally only affect data placement, not
contents of data.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
Reported-by: "Carl E. Thompson" &lt;list-bcachefs@carlthompson.net&gt;
</content>
</entry>
<entry>
<title>bcachefs: Enumerate fsck errors</title>
<updated>2023-11-02T01:11:08Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-10-25T00:44:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b65db750e2bb9252321fd54c284edd73c1595a09'/>
<id>urn:sha1:b65db750e2bb9252321fd54c284edd73c1595a09</id>
<content type='text'>
This patch adds a superblock error counter for every distinct fsck
error; this means that when analyzing filesystems out in the wild we'll
be able to see what sorts of inconsistencies are being found and repair,
and hence what bugs to look for.

Errors validating bkeys are not yet considered distinct fsck errors, but
this patch adds a new helper, bkey_fsck_err(), in order to add distinct
error types for them as well.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Don't run bch2_delete_dead_snapshots() unnecessarily</title>
<updated>2023-10-31T16:18:37Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-10-20T01:25:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b0b5bbf99fc269e10d01c2a9873de5a042bdc7f5'/>
<id>urn:sha1:b0b5bbf99fc269e10d01c2a9873de5a042bdc7f5</id>
<content type='text'>
Be a bit more careful about when bch2_delete_dead_snapshots needs to
run: it only needs to run synchronously if we're running fsck, and it
only needs to run at all if we have snapshot nodes to delete or if fsck
has noticed that it needs to run.

Also:
  Rename BCH_FS_HAVE_DELETED_SNAPSHOTS -&gt; BCH_FS_NEED_DELETE_DEAD_SNAPSHOTS

  Kill bch2_delete_dead_snapshots_hook(), move functionality to
  bch2_mark_snapshot()

  Factor out bch2_check_snapshot_needs_deletion(), to explicitly check
  if we need to be running snapshot deletion.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Heap allocate btree_trans</title>
<updated>2023-10-22T21:10:13Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-09-12T21:16:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6bd68ec266ad71827ef940151067b67b62fb8fed'/>
<id>urn:sha1:6bd68ec266ad71827ef940151067b67b62fb8fed</id>
<content type='text'>
We're using more stack than we'd like in a number of functions, and
btree_trans is the biggest object that we stack allocate.

But we have to do a heap allocatation to initialize it anyways, so
there's no real downside to heap allocating the entire thing.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix -Wincompatible-function-pointer-types-strict from key_invalid callbacks</title>
<updated>2023-10-22T21:10:13Z</updated>
<author>
<name>Nathan Chancellor</name>
</author>
<published>2023-09-12T19:15:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f70225d7791e67084073e54489440d7cf8017e0'/>
<id>urn:sha1:1f70225d7791e67084073e54489440d7cf8017e0</id>
<content type='text'>
When building bcachefs with -Wincompatible-function-pointer-types-strict,
a clang warning designed to catch issues with mismatched function
pointer types, which will be fatal at runtime due to kernel Control Flow
Integrity (kCFI), there are several instances along the lines of:

  fs/bcachefs/bkey_methods.c:118:2: error: incompatible function pointer types initializing 'int (*)(const struct bch_fs *, struct bkey_s_c, enum bkey_invalid_flags, struct printbuf *)' with an expression of type 'int (const struct bch_fs *, struct bkey_s_c, unsigned int, struct printbuf *)' [-Werror,-Wincompatible-function-pointer-types-strict]
    118 |         BCH_BKEY_TYPES()
        |         ^~~~~~~~~~~~~~~~
  fs/bcachefs/bcachefs_format.h:342:2: note: expanded from macro 'BCH_BKEY_TYPES'
    342 |         x(deleted,              0)                      \
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
  fs/bcachefs/bkey_methods.c:117:41: note: expanded from macro 'x'
    117 | #define x(name, nr) [KEY_TYPE_##name]   = bch2_bkey_ops_##name,
        |                                           ^~~~~~~~~~~~~~~~~~~~
  &lt;scratch space&gt;:206:1: note: expanded from here
    206 | bch2_bkey_ops_deleted
        | ^~~~~~~~~~~~~~~~~~~~~
  fs/bcachefs/bkey_methods.c:34:17: note: expanded from macro 'bch2_bkey_ops_deleted'
     34 |         .key_invalid = deleted_key_invalid,             \
        |                        ^~~~~~~~~~~~~~~~~~~

The flags parameter should be of type 'enum bkey_invalid_flags', not
'unsigned int'. Adjust the type everywhere so that there is no more
warning.

Signed-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Convert more code to bch_err_msg()</title>
<updated>2023-10-22T21:10:12Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-09-11T05:37:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e46c181af9e230c4c5dbc701fdadc295d6191eec'/>
<id>urn:sha1:e46c181af9e230c4c5dbc701fdadc295d6191eec</id>
<content type='text'>
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Split out snapshot.c</title>
<updated>2023-10-22T21:10:11Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-08-16T20:54:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8e877caaad818595ecb6754355cea2058fd9848e'/>
<id>urn:sha1:8e877caaad818595ecb6754355cea2058fd9848e</id>
<content type='text'>
subvolume.c has gotten a bit large, this splits out a separate file just
for managing snapshot trees - BTREE_ID_snapshots.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: bch2_run_explicit_recovery_pass()</title>
<updated>2023-10-22T21:10:08Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-07-17T03:21:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ae2e13d7809d79ea4d7c0cd8ee060b7911012e37'/>
<id>urn:sha1:ae2e13d7809d79ea4d7c0cd8ee060b7911012e37</id>
<content type='text'>
This introduces bch2_run_explicit_recovery_pass() and uses it for when
fsck detects that we need to re-run dead snaphots cleanup, and makes
dead snapshot cleanup more like a normal recovery pass.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Inline bch2_snapshot_is_ancestor() fast path</title>
<updated>2023-10-22T21:10:07Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-07-16T19:59:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=93de9e92c32c73d25bccbd82b1dabff3e3c2b7d2'/>
<id>urn:sha1:93de9e92c32c73d25bccbd82b1dabff3e3c2b7d2</id>
<content type='text'>
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: is_ancestor bitmap</title>
<updated>2023-10-22T21:10:07Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-07-13T06:43:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6132c84cacbff39e7b060abffc4175244347885d'/>
<id>urn:sha1:6132c84cacbff39e7b060abffc4175244347885d</id>
<content type='text'>
Further optimization for bch2_snapshot_is_ancestor(). We add a small
inline bitmap to snapshot_t, which indicates which of the next 128
snapshot IDs are ancestors of the current id - eliminating the last few
iterations of the loop in bch2_snapshot_is_ancestor().

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
</feed>
