[Cluster-devel] [PATCH] gfs2: Initialize iopen glock holder for new inodes
Andreas Gruenbacher
agruenba at redhat.com
Fri Jun 17 09:40:41 UTC 2016
From: Bob Peterson <rpeterso at redhat.com>
In gfs2_init_inode_once, initialize inode->i_iopen_gh.gh_gl to NULL:
otherwise, when gfs2_inode_lookup fails, the iopen glock holder can
remain unset and iget_failed can end up accessing random memory.
It turned out that patch "gfs2: Fix gfs2_lookup_by_inum lock inversion" made
gfs2_inode_lookup fail in this way more often, and we started to see this kind
of failure.
Signed-off-by: Andreas Gruenbacher <agruenba at redhat.com>
---
fs/gfs2/main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/gfs2/main.c b/fs/gfs2/main.c
index f99f8e9..615f675 100644
--- a/fs/gfs2/main.c
+++ b/fs/gfs2/main.c
@@ -45,6 +45,7 @@ static void gfs2_init_inode_once(void *foo)
memset(&ip->i_res, 0, sizeof(ip->i_res));
RB_CLEAR_NODE(&ip->i_res.rs_node);
ip->i_hash_cache = NULL;
+ ip->i_iopen_gh.gh_gl = NULL;
}
static void gfs2_init_glock_once(void *foo)
--
2.5.5
More information about the Cluster-devel
mailing list