gfs2: fix an oops in gfs2_permission
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 2 Oct 2023 02:33:44 +0000 (03:33 +0100)
committerAndreas Gruenbacher <agruenba@redhat.com>
Tue, 3 Oct 2023 14:47:21 +0000 (16:47 +0200)
commit0abd1557e21c617bd13fc18f7725fc6363c05913
tree4d47d283e3c50982341cfcabe05378aa6577b4d8
parent4c6a08125f2249531ec01783a5f4317d7342add5
gfs2: fix an oops in gfs2_permission

In RCU mode, we might race with gfs2_evict_inode(), which zeroes
->i_gl.  Freeing of the object it points to is RCU-delayed, so
if we manage to fetch the pointer before it's been replaced with
NULL, we are fine.  Check if we'd fetched NULL and treat that
as "bail out and tell the caller to get out of RCU mode".

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/inode.c
fs/gfs2/super.c