<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/bcachefs/io_write.c, branch linux-6.15.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.15.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.15.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-05-01T10:19:58Z</updated>
<entry>
<title>bcachefs: check for inode.bi_sectors underflow</title>
<updated>2025-05-01T10:19:58Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-05-01T03:56:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a72e369412d6bf7f6a8af410ac4bdd7d48deb62'/>
<id>urn:sha1:3a72e369412d6bf7f6a8af410ac4bdd7d48deb62</id>
<content type='text'>
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Kill btree_iter.trans</title>
<updated>2025-04-02T14:24:34Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-21T19:18:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9180ad2e161b7030e0af78fd2266cbcefe81e652'/>
<id>urn:sha1:9180ad2e161b7030e0af78fd2266cbcefe81e652</id>
<content type='text'>
This was planned to be done ages ago, now finally completed; there are
places where we have quite a few btree_trans objects on the stack, so
this reduces stack usage somewhat.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Split up bch_dev.io_ref</title>
<updated>2025-04-02T14:24:34Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-30T03:11:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dcffc3b1ae3251d796a25c673f614e3099ca83d3'/>
<id>urn:sha1:dcffc3b1ae3251d796a25c673f614e3099ca83d3</id>
<content type='text'>
We now have separate per device io_refs for read and write access.

This fixes a device removal bug where the discard workers were still
running while we're removing alloc info for that device.

It's also a bit of hardening; we no longer allow writes to devices that
are read-only.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix null ptr deref in bch2_write_endio()</title>
<updated>2025-03-31T21:39:27Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-31T20:19:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de399658588931506e1b3f4cc63cb3c9134a692e'/>
<id>urn:sha1:de399658588931506e1b3f4cc63cb3c9134a692e</id>
<content type='text'>
This was previously hard to hit since it requires racing with device
removal, but splitting up io_ref uncovered it.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Don't unnecessarily decrypt data when moving</title>
<updated>2025-03-26T20:26:35Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-24T20:25:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=19ff84b20d62e62ff527a384b35102bf745a70d1'/>
<id>urn:sha1:19ff84b20d62e62ff527a384b35102bf745a70d1</id>
<content type='text'>
There's various checks for "are we going to compress this" - but we're
not going to compress if we know it's incompressible.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix duplicate checksum error messages in write path</title>
<updated>2025-03-25T15:49:43Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-24T20:40:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a76db26a96982857a306d3e9dbc7f44d5ae45d9d'/>
<id>urn:sha1:a76db26a96982857a306d3e9dbc7f44d5ae45d9d</id>
<content type='text'>
Also, improve the message in prep_encoded_data() - it now prints
good/bad checksums, and checksum type.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix nonce inconsistency in bch2_write_prep_encoded_data()</title>
<updated>2025-03-25T15:40:35Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-25T15:40:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5af61dbd96275e184adcfe615507b0f04ed7b328'/>
<id>urn:sha1:5af61dbd96275e184adcfe615507b0f04ed7b328</id>
<content type='text'>
If we're moving an extent that was partially overwritten,
bch2_write_rechecksum() will trim it to the currenty live range.

If we then also want to compress it, it'll be decrypted - but the nonce
has been advanced for the overwritten start of the extent that we
dropped, and we were using the nonce we calculated before rechecksum().

Reported-by: Gabriel de Perthuis &lt;g2p.code@gmail.com&gt;
Fixes: 127d90d2823e ("bcachefs: bch2_write_prep_encoded_data() now returns errcode")
Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: EIO cleanup</title>
<updated>2025-03-24T13:50:36Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-20T14:16:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8a9f3d058279ed0f99114e0449d129fb5abc5eca'/>
<id>urn:sha1:8a9f3d058279ed0f99114e0449d129fb5abc5eca</id>
<content type='text'>
Replace these with proper private error codes, so that when we get an
error message we're not sifting through the entire codebase to see where
it came from.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: bch2_write_prep_encoded_data() now returns errcode</title>
<updated>2025-03-24T13:50:36Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-20T14:30:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=127d90d2823ef45dd37246aaf7bb0392e6231c38'/>
<id>urn:sha1:127d90d2823ef45dd37246aaf7bb0392e6231c38</id>
<content type='text'>
Prep work for killing off EIO and replacing them with proper private
error codes.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Simplify bch2_write_op_error()</title>
<updated>2025-03-24T13:50:36Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2025-03-20T14:25:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2fe208303a114012d7ca035dcb37edcee93b64f6'/>
<id>urn:sha1:2fe208303a114012d7ca035dcb37edcee93b64f6</id>
<content type='text'>
There's no reason for the caller to do the actual logging, it's all done
the same.

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