<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/bcachefs/btree_cache.h, branch linux-6.10.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.10.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.10.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2024-05-09T20:24:29Z</updated>
<entry>
<title>bcachefs: add counters for failed shrinker reclaim</title>
<updated>2024-05-09T20:24:29Z</updated>
<author>
<name>Daniel Hill</name>
</author>
<published>2022-09-30T03:37:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bceacfa97ec8b67a76efad2f95899434230b317c'/>
<id>urn:sha1:bceacfa97ec8b67a76efad2f95899434230b317c</id>
<content type='text'>
This adds distinct counters for every reason the btree node shrinker can
fail to free an object - if our shrinker isn't making progress, this
will tell us why.

Signed-off-by: Daniel Hill &lt;daniel@gluo.nz&gt;
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Run bch2_check_fix_ptrs() via triggers</title>
<updated>2024-05-08T21:29:20Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2024-04-07T23:07:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f40d13f94df744185f99732e89bc8d085729ecc9'/>
<id>urn:sha1:f40d13f94df744185f99732e89bc8d085729ecc9</id>
<content type='text'>
Currently, the reflink_p gc trigger does repair as well - turning a
reflink_p key into an error key if the reflink_v it points to doesn't
exist.

This won't work with online check/repair, because the repair path once
online will be subject to transaction restarts, but BTREE_TRIGGER_gc is
not idempotant - we can't run it multiple times if we get a transaction
restart.

So we need to split these paths; to do so this patch calls
check_fix_ptrs() by a new general path - a new trigger type,
BTREE_TRIGGER_check_repair.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Prep work for variable size btree node buffers</title>
<updated>2024-01-21T18:27:10Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2024-01-16T18:29:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec4edd7b9d2038a97e0ba3fad8fc8492b0d12d35'/>
<id>urn:sha1:ec4edd7b9d2038a97e0ba3fad8fc8492b0d12d35</id>
<content type='text'>
bcachefs btree nodes are big - typically 256k - and btree roots are
pinned in memory. As we're now up to 18 btrees, we now have significant
memory overhead in mostly empty btree roots.

And in the future we're going to start enforcing that certain btree node
boundaries exist, to solve lock contention issues - analagous to XFS's
AGIs.

Thus, we need to start allocating smaller btree node buffers when we
can. This patch changes code that refers to the filesystem constant
c-&gt;opts.btree_node_size to refer to the btree node buffer size -
btree_buf_bytes() - where appropriate.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Include btree_trans in more tracepoints</title>
<updated>2024-01-01T16:47:40Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-12-02T08:36:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a564c9fad581972a4bf02d598ec3ad3f53dcbae2'/>
<id>urn:sha1:a564c9fad581972a4bf02d598ec3ad3f53dcbae2</id>
<content type='text'>
This gives us more context information - e.g. which codepath is invoking
btree node reads.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: bch2_btree_id_str()</title>
<updated>2023-10-31T16:18:37Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-10-20T02:49:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=88dfe193bd2abd08926c1a0d48b770bb68ac8ccb'/>
<id>urn:sha1:88dfe193bd2abd08926c1a0d48b770bb68ac8ccb</id>
<content type='text'>
Since we can run with unknown btree IDs, we can't directly index btree
IDs into fixed size arrays.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Assorted sparse fixes</title>
<updated>2023-10-22T21:10:06Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-07-07T02:47:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=73bd774d28d2b2e6a05c31bf7afb9247e02a8e49'/>
<id>urn:sha1:73bd774d28d2b2e6a05c31bf7afb9247e02a8e49</id>
<content type='text'>
 - endianness fixes
 - mark some things static
 - fix a few __percpu annotations
 - fix silent enum conversions

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Allow for unknown btree IDs</title>
<updated>2023-10-22T21:10:05Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-06-29T02:09:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=faa6cb6c13c7223240366ebbf0217a6191fbfc32'/>
<id>urn:sha1:faa6cb6c13c7223240366ebbf0217a6191fbfc32</id>
<content type='text'>
We need to allow filesystems with metadata from newer versions to be
mountable and usable by older versions.

This patch enables us to roll out new btrees without a new major version
number; we can now handle btree roots for unknown btree types.

The unknown btree roots will be retained, and fsck (including
backpointers) will check them, the same as other btree types.

We add a dynamic array for the extra, unknown btree roots, in addition
to the fixed size btree root array, and add new helpers for looking up
btree roots.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: bch2_btree_node_to_text() const correctness</title>
<updated>2023-10-22T21:09:56Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-03-06T07:34:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a345b0f393da49be9d1110ec9e43066191f0e466'/>
<id>urn:sha1:a345b0f393da49be9d1110ec9e43066191f0e466</id>
<content type='text'>
This is for the Rust interface - Rust cares more about const than C
does.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Plumb btree_trans through btree cache code</title>
<updated>2023-10-22T21:09:55Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-03-02T07:12:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1306f87de399a0c791f03d68b50e03bdb3f409ae'/>
<id>urn:sha1:1306f87de399a0c791f03d68b50e03bdb3f409ae</id>
<content type='text'>
Soon, __bch2_btree_node_write() is going to require a btree_trans: zoned
device support is going to require a new allocation for every btree node
write. This is a bit of prep work.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Move bkey bkey_unpack_key() to bkey.h</title>
<updated>2023-10-22T21:09:45Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2022-10-21T23:15:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=77671e8fffdd09f37de2ed0cdcdc92069f3597e8'/>
<id>urn:sha1:77671e8fffdd09f37de2ed0cdcdc92069f3597e8</id>
<content type='text'>
Long ago, bkey_unpack_key() was added to bset.h instead of bkey.h
because bkey.h didn't include btree_types.h, which it needs for the
compiled unpack function.

This patch finally moves it to the proper location.

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