Re: [PATCH] gfs2: add missing __rcu annotation to i_gl in incore.h
Andreas Gruenbacher <[email protected]> Fri, 24 Jul 2026 18:17:37 +0200
| Newsgroups | dev.linux.lists.gfs2,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAHc6FU4X1DM5oKqmQ3FRKumNTvAmfqGgFdwx_m5u7xSg3UubBw@mail.gmail.com> |
On Fri, Jul 24, 2026 at 6:05=E2=80=AFPM Adri=C3=A1n Garc=C3=ADa Casado <[email protected]> wrote: > Hi Andreas, > > Thanks for applying the patch! No, I'm not applying that patch. As I said, it's not really fixing anything, it's only trading two errors against 200 warnings. > For the record, I have successfully boot-tested the patched v7.2-rc4+ > kernel on bare-metal x86_64 (Debian 13 native on an ASUS Vivobook). > > To stress-test the kernel stability under load, I ran some heavy workload= s: > - A standalone loopback mount of GFS2 (using lock_nolock) with I/O stress > tests (100+ concurrent files). > - A full multi-threaded compilation of the PCSX2 emulator (using CMake > and Ninja) with all CPU cores sustained at 100% load. > > The system behaved completely stable with no deadlocks, hangs, or OOM. > > Tested-by: Adrian Garcia Casado <[email protected]> > > Best regards, > Adrian Andreas > El vie, 24 jul 2026, 17:33, Andreas Gruenbacher <[email protected]> esc= ribi=C3=B3: >> >> On Tue, Jun 30, 2026 at 12:03=E2=80=AFPM Adrian Garcia Casado >> <[email protected]> wrote: >> > In gfs2_inode_lookup() and other parts of the GFS2 filesystem, >> > ip->i_gl is accessed and dereferenced via RCU helpers like >> > rcu_dereference_check() and rcu_access_pointer(). However, the >> > actual i_gl pointer in struct gfs2_inode was never annotated >> > with __rcu in incore.h. >> > >> > This missing annotation causes Sparse to throw multiple >> > "incompatible types in comparison expression (different address spaces= )" >> > warnings and compilation-blocking errors under strict static analysis = builds. >> >> Indeed, there are two sparse errors related to i_gl. >> >> > Fix this by adding the __rcu annotation to i_gl in struct gfs2_inode. >> >> With this fix, I get about 200 sparse warnings instead of the two >> errors. So thanks for pointing out that there are errors, but without >> fixing any of the underlying problems, this patch isn't very useful. >> >> Andreas >> >> > Signed-off-by: Adrian Garcia Casado <[email protected]> >> > Tested-by: Adrian Garcia Casado <[email protected]> >> > --- >> > >> > diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h >> > index 6146577..16df753 100644 >> > --- a/fs/gfs2/incore.h >> > +++ b/fs/gfs2/incore.h >> > @@ -392,7 +392,7 @@ struct gfs2_inode { >> > u64 i_generation; >> > u64 i_eattr; >> > unsigned long i_flags; /* GIF_... */ >> > - struct gfs2_glock *i_gl; >> > + struct gfs2_glock __rcu *i_gl; >> > struct gfs2_holder i_iopen_gh; >> > struct gfs2_qadata *i_qadata; /* quota allocation data */ >> > struct gfs2_holder i_rgd_gh; >> >> Applied, thanks. >> >> >> >> Andreas >>