<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/bcachefs/btree_cache.h, 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>2023-10-31T16:18:37Z</updated>
<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>
<entry>
<title>bcachefs: New locking functions</title>
<updated>2023-10-22T21:09:40Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2022-08-21T18:29:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ca7d8fcabf29fae627babb72bda9b51763f9a145'/>
<id>urn:sha1:ca7d8fcabf29fae627babb72bda9b51763f9a145</id>
<content type='text'>
In the future, with the new deadlock cycle detector, we won't be using
bare six_lock_* anymore: lock wait entries will all be embedded in
btree_trans, and we will need a btree_trans context whenever locking a
btree node.

This patch plumbs a btree_trans to the few places that need it, and adds
two new locking functions
 - btree_node_lock_nopath, which may fail returning a transaction
   restart, and
 - btree_node_lock_nopath_nofail, to be used in places where we know we
   cannot deadlock (i.e. because we're holding no other locks).

Signed-off-by: Kent Overstreet &lt;kent.overstreet@gmail.com&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix usage of six lock's percpu mode</title>
<updated>2023-10-22T21:09:26Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2022-03-05T00:16:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3098553776a16c08446c408005090423d62e6b54'/>
<id>urn:sha1:3098553776a16c08446c408005090423d62e6b54</id>
<content type='text'>
Six locks have a percpu mode, which we use for interior btree nodes, as
well as btree key cache keys for the subvolumes btree. We've been
switching locks back and forth between percpu and non percpu mode as
needed, but it turns out this is racy - when we're reusing an existing
node, other threads could be attempting to lock it while we're switching
it between modes.

This patch fixes this by never switching 'struct btree' between the two
modes, and instead segragating them between two different freed lists.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@gmail.com&gt;
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Use x-macros for btree node flags</title>
<updated>2023-10-22T21:09:26Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2022-02-26T16:10:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de517c95513d420d465ca26d354a56d9e6ed6e17'/>
<id>urn:sha1:de517c95513d420d465ca26d354a56d9e6ed6e17</id>
<content type='text'>
This is for adding an array of strings for btree node flag names.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@gmail.com&gt;
</content>
</entry>
<entry>
<title>bcachefs: Option improvements</title>
<updated>2023-10-22T21:09:19Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2021-12-14T19:24:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8244f3209b5b49a6bde9921d7825af9f57161b23'/>
<id>urn:sha1:8244f3209b5b49a6bde9921d7825af9f57161b23</id>
<content type='text'>
This adds flags for options that must be a power of two (block size and
btree node size), and options that are stored in the superblock as a
power of two (encoded extent max).

Also: options are now stored in memory in the same units they're
displayed in (bytes): we now convert when getting and setting from the
superblock.

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