<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/next/linux-next.git/fs/ext2, branch master</title>
<subtitle>The linux-next integration testing tree</subtitle>
<id>https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master</id>
<link rel='self' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/'/>
<updated>2026-09-07T11:42:04+00:00</updated>
<entry>
<title>Merge branch 'vfs.all' of https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git</title>
<updated>2026-09-07T11:42:04+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2026-09-07T11:42:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=de752211a5c8184592ce38febdb4f71d1799f2e1'/>
<id>urn:sha1:de752211a5c8184592ce38febdb4f71d1799f2e1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ext2: enable context analysis support for ext2 filesystem</title>
<updated>2026-09-03T12:41:32+00:00</updated>
<author>
<name>Timothy Day</name>
<email>timday@thelustrecollective.com</email>
</author>
<published>2026-08-11T16:03:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=9708538ba204d20aa9a5936530862254dcbc6f70'/>
<id>urn:sha1:9708538ba204d20aa9a5936530862254dcbc6f70</id>
<content type='text'>
Update ext2 Makefile to support context analysis [1].

[1] https://docs.kernel.org/dev-tools/context-analysis.html

Signed-off-by: Timothy Day &lt;timday@thelustrecollective.com&gt;
Acked-by: Marco Elver &lt;elver@google.com&gt;
Link: https://patch.msgid.link/20260811160336.782342-9-timday@thelustrecollective.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext2: annotate s_rsv_window_root as requiring s_rsv_window_lock</title>
<updated>2026-09-03T12:41:32+00:00</updated>
<author>
<name>Timothy Day</name>
<email>timday@thelustrecollective.com</email>
</author>
<published>2026-08-11T16:03:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=c23746524fafe992e594d84f432534dabf4daf20'/>
<id>urn:sha1:c23746524fafe992e594d84f432534dabf4daf20</id>
<content type='text'>
The per-filesystem reservation window rb-tree (s_rsv_window_root) is
protected by s_rsv_window_lock. Mark the s_rsv_window_root field
with __guarded_by() for Clang's context analysis.

The helpers (ext2_rsv_window_add, rsv_window_remove, and
find_next_reservable_window) that mutate or walk the tree are all
called with the s_rsv_window_lock held. Annotate these helpers
with __must_hold().

The accesses in ext2_fill_super() are before the superblock is live.
Since no concurrent access should be possible, s_rsv_window_lock
is not taken. Convert the spinlock initialization to use
scoped_guard(spinlock_init, ...) and place the writes under the
guard to prevent warnings.

Signed-off-by: Timothy Day &lt;timday@thelustrecollective.com&gt;
Acked-by: Marco Elver &lt;elver@google.com&gt;
Link: https://patch.msgid.link/20260811160336.782342-8-timday@thelustrecollective.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext2: annotate block-mapping helpers as requiring truncate_mutex</title>
<updated>2026-09-01T13:40:36+00:00</updated>
<author>
<name>Timothy Day</name>
<email>timday@thelustrecollective.com</email>
</author>
<published>2026-08-11T16:03:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=d8c906454fde090a45edaf136f93aa2af720e5fa'/>
<id>urn:sha1:d8c906454fde090a45edaf136f93aa2af720e5fa</id>
<content type='text'>
The indirect-block mapping helpers in inode.c all run under the
inode's truncate_mutex.

ext2_find_goal(), ext2_alloc_blocks(), ext2_alloc_branch() and
ext2_splice_branch() are reached only from ext2_get_blocks() while
it holds the mutex. ext2_find_shared(), ext2_free_data() and
ext2_free_branches() are called from __ext2_truncate_blocks() while
it holds the mutex.

Add __must_hold() annotations for the Clang's context analysis to reflect
this.

Signed-off-by: Timothy Day &lt;timday@thelustrecollective.com&gt;
Acked-by: Marco Elver &lt;elver@google.com&gt;
Link: https://patch.msgid.link/20260811160336.782342-7-timday@thelustrecollective.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext2: annotate ext2_init_block_alloc_info() as requiring truncate_mutex</title>
<updated>2026-09-01T13:40:36+00:00</updated>
<author>
<name>Timothy Day</name>
<email>timday@thelustrecollective.com</email>
</author>
<published>2026-08-11T16:03:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=7aa90b3c8ef8f936f7db310bc9ec60eba26cd726'/>
<id>urn:sha1:7aa90b3c8ef8f936f7db310bc9ec60eba26cd726</id>
<content type='text'>
ext2_init_block_alloc_info() sets up the inode's block reservation info
and is already documented as needing truncate_mutex protection. Express
that with __must_hold() for Clang's context analysis.

Both callers (ext2_get_blocks() and ext2_ioctl()) already hold
truncate_mutex.

Signed-off-by: Timothy Day &lt;timday@thelustrecollective.com&gt;
Acked-by: Marco Elver &lt;elver@google.com&gt;
Link: https://patch.msgid.link/20260811160336.782342-6-timday@thelustrecollective.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext2: mark s_mount_state as guarded by s_lock</title>
<updated>2026-09-01T13:40:36+00:00</updated>
<author>
<name>Timothy Day</name>
<email>timday@thelustrecollective.com</email>
</author>
<published>2026-08-11T16:03:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=023051c2d0f1d782da1bd0b09092f31592b46f3a'/>
<id>urn:sha1:023051c2d0f1d782da1bd0b09092f31592b46f3a</id>
<content type='text'>
s_mount_state tracks the filesystem's mount/error state and is protected
by s_lock everywhere it is accessed. Annotate it with __guarded_by() for
Clang's context analysis.

ext2_setup_super() reads s_mount_state and is called with s_lock held
from the remount path, so annotate it with __must_hold().

There are two accesses (the initial read in ext2_fill_super() and the
setup_super() call) in the mount flow. This is before the superblock
is live, so no concurrent access should be possible. Convert the
spinlock initialization to use guard(spinlock_init) to prevent
warnings on the writes later in initialization.

Signed-off-by: Timothy Day &lt;timday@thelustrecollective.com&gt;
Acked-by: Marco Elver &lt;elver@google.com&gt;
Link: https://patch.msgid.link/20260811160336.782342-5-timday@thelustrecollective.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext2: mark statfs overhead cache as guarded by s_lock</title>
<updated>2026-09-01T13:40:36+00:00</updated>
<author>
<name>Timothy Day</name>
<email>timday@thelustrecollective.com</email>
</author>
<published>2026-08-11T16:03:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3d0c4287b70c880ab15196dfe4e4f9f9eb1dc9b3'/>
<id>urn:sha1:3d0c4287b70c880ab15196dfe4e4f9f9eb1dc9b3</id>
<content type='text'>
s_overhead_last and s_blocks_last cache the filesystem overhead
computation and are only ever accessed in ext2_statfs() under s_lock.
Annotate them with __guarded_by() for Clang's context analysis.

Signed-off-by: Timothy Day &lt;timday@thelustrecollective.com&gt;
Acked-by: Marco Elver &lt;elver@google.com&gt;
Link: https://patch.msgid.link/20260811160336.782342-4-timday@thelustrecollective.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext2: annotate ext2_update_dynamic_rev() as requiring s_lock</title>
<updated>2026-09-01T13:40:36+00:00</updated>
<author>
<name>Timothy Day</name>
<email>timday@thelustrecollective.com</email>
</author>
<published>2026-08-11T16:03:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=eb34d143711ac8607ab6abdc6f0b7f13fd8f8287'/>
<id>urn:sha1:eb34d143711ac8607ab6abdc6f0b7f13fd8f8287</id>
<content type='text'>
ext2_update_dynamic_rev() modifies several fields within
'struct ext2_super_block' and is already documented as requiring
s_lock. Express that with __must_hold() for Clang's context analysis.

Both callers ext2_xattr_update_super_block() and __ext2_write_inode()
already hold s_lock.

Signed-off-by: Timothy Day &lt;timday@thelustrecollective.com&gt;
Acked-by: Marco Elver &lt;elver@google.com&gt;
Link: https://patch.msgid.link/20260811160336.782342-3-timday@thelustrecollective.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext2: mark s_next_generation as guarded by s_next_gen_lock</title>
<updated>2026-09-01T13:40:36+00:00</updated>
<author>
<name>Timothy Day</name>
<email>timday@thelustrecollective.com</email>
</author>
<published>2026-08-11T16:03:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=e76ed86ee88f68f19a3ada75de2192d7fbb3ac99'/>
<id>urn:sha1:e76ed86ee88f68f19a3ada75de2192d7fbb3ac99</id>
<content type='text'>
s_next_generation is only ever modified while holding s_next_gen_lock
(in ext2_new_inode()), so annotate it with __guarded_by() for Clang's
context analysis.

The only other write is the initialisation in ext2_fill_super(), which
runs before the superblock is live. No concurrent access should be
possible. Convert the spinlock initialization to use
scoped_guard(spinlock_init, ...) and place the write under the guard
to prevent a warning.

Signed-off-by: Timothy Day &lt;timday@thelustrecollective.com&gt;
Acked-by: Marco Elver &lt;elver@google.com&gt;
Link: https://patch.msgid.link/20260811160336.782342-2-timday@thelustrecollective.com
Signed-off-by: Jan Kara &lt;jack@suse.cz&gt;
</content>
</entry>
<entry>
<title>ext2: check for an xattr block write error with buffer_write_io_error()</title>
<updated>2026-08-31T08:19:22+00:00</updated>
<author>
<name>Chao Shi</name>
<email>coshi036@gmail.com</email>
</author>
<published>2026-08-06T16:58:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=583913a40f2ea45276b3689e9a1d55754debe5cd'/>
<id>urn:sha1:583913a40f2ea45276b3689e9a1d55754debe5cd</id>
<content type='text'>
ext2_xattr_set2() spots a failed synchronous write by testing BH_Req
together with !BH_Uptodate.  That relies on the write completion handler
clearing BH_Uptodate on error, which this series removes: a buffer whose
write failed still holds the data the filesystem asked to be written, so
declaring it not up to date is wrong and makes callers re-read it.

BH_Write_EIO says exactly what this code wants to know, and it implies
BH_Req, so the pair collapses into one test.

No behaviour change today - a failed write sets BH_Write_EIO and clears
BH_Uptodate together.  It stops being a no-op at the end of the series,
where the new test is the one that still works.

Acked-by: Weidong Zhu &lt;weizhu@fiu.edu&gt;
Signed-off-by: Chao Shi &lt;coshi036@gmail.com&gt;
Reviewed-by: Jan Kara &lt;jack@suse.cz&gt;
Link: https://patch.msgid.link/fcc530fffd0f1e18e8cd1a3974bc0ccc5b4c4b66.1785951556.git.coshi036@gmail.com
Signed-off-by: Christian Brauner (Amutable) &lt;brauner@kernel.org&gt;
</content>
</entry>
</feed>
