<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/bcachefs/inode.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>2023-12-08T05:39:56Z</updated>
<entry>
<title>bcachefs: Fix deleted inode check for dirs</title>
<updated>2023-12-08T05:39:56Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-12-07T17:39:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6d1980f0af439b5fd49b1bee2220deff6888792e'/>
<id>urn:sha1:6d1980f0af439b5fd49b1bee2220deff6888792e</id>
<content type='text'>
We could delete directories transactionally on rmdir()/unlink(), but we
don't; instead, like with regular files we wait for the VFS to call
evict().

That means that our check for directories in the deleted inodes btree is
wrong - the check should be for non-empty directories.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix missing transaction commit</title>
<updated>2023-11-15T04:44:43Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-11-12T20:47:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f42fa17883e73d8509fff5925781d4157db82f00'/>
<id>urn:sha1:f42fa17883e73d8509fff5925781d4157db82f00</id>
<content type='text'>
In may_delete_deleted_inode(), there's a corner case when a snapshot was
taken while we had an unlinked inode: we don't want to delete the inode
in the internal (shared) snapshot node, since it might have been
reattached in a descendent snapshot.

Instead we propagate the key to any snapshot leaves it doesn't exist in,
so that it can be deleted there if necessary, and then clear the
unlinked flag in the internal node.

But we forgot to commit after clearing the unlinked flag, causing us to
go into an infinite loop.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix iterator leak in may_delete_deleted_inode()</title>
<updated>2023-11-15T04:44:43Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-11-12T03:15:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=069749688ea4bbaeff0ca3b229b443ea96b03757'/>
<id>urn:sha1:069749688ea4bbaeff0ca3b229b443ea96b03757</id>
<content type='text'>
may_delete_deleted_inode() was returning without exiting a btree
iterator, eventually causing propagate_key_to_snaphot_leaves() to go
into an infinite loop hitting btree_trans_too_many_iters().

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: x-macro-ify inode flags enum</title>
<updated>2023-11-05T18:12:18Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-11-02T15:42:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=103ffe9aaf85660f40c8b68797a374b80b29b91d'/>
<id>urn:sha1:103ffe9aaf85660f40c8b68797a374b80b29b91d</id>
<content type='text'>
This lets us use bch2_prt_bitflags to print them out.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix bch2_delete_dead_inodes()</title>
<updated>2023-11-05T02:19:13Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-11-02T19:28:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4bd156c4b44ef34bd57d20a0a48aad829e1c54c1'/>
<id>urn:sha1:4bd156c4b44ef34bd57d20a0a48aad829e1c54c1</id>
<content type='text'>
 - the fsck_err() check for the filesystem being clean was incorrect,
   causing us to always fail to delete unlinked inodes
 - if a snapshot had been taken, the unlinked inode needs to be
   propagated to snapshot leaves so the unlink can happen there - fixed.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&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: bch2_inum_opts_get()</title>
<updated>2023-10-31T16:18:38Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-10-20T18:05:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=55c11a159d3ca4ca7f9d5c1275d0768474b12195'/>
<id>urn:sha1:55c11a159d3ca4ca7f9d5c1275d0768474b12195</id>
<content type='text'>
New helper for new rebalance code

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Guard against unknown compression options</title>
<updated>2023-10-31T16:18:37Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-10-22T22:29:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ddedca2180b095aacca0f628e0d03a32477f68f'/>
<id>urn:sha1:6ddedca2180b095aacca0f628e0d03a32477f68f</id>
<content type='text'>
Since compression options now include compression level, proper
validation is a bit more involved.

This adds bch2_compression_opt_valid(), and plumbs it around
appropriately.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: Fix bch2_inode_delete_keys()</title>
<updated>2023-10-22T21:10:15Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-09-27T18:44:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4220666398de7f5127bab5437b5276b3eb155282'/>
<id>urn:sha1:4220666398de7f5127bab5437b5276b3eb155282</id>
<content type='text'>
bch2_inode_delete_keys() was using BTREE_ITER_NOT_EXTENTS, on the
assumption that it would never need to split extents.

But that caused a race with extents being split by other threads -
specifically, the data move path. Extents iterators have the iterator
position pointing to the start of the extent, which avoids the race.

Signed-off-by: Kent Overstreet &lt;kent.overstreet@linux.dev&gt;
</content>
</entry>
<entry>
<title>bcachefs: bch_err_msg(), bch_err_fn() now filters out transaction restart errors</title>
<updated>2023-10-22T21:10:15Z</updated>
<author>
<name>Kent Overstreet</name>
</author>
<published>2023-09-26T20:02:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d2a990d1b132c8124a3856706f6b3663b9059bb5'/>
<id>urn:sha1:d2a990d1b132c8124a3856706f6b3663b9059bb5</id>
<content type='text'>
These errors aren't actual errors, and should never be printed - do this
in the common helpers.

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