[Cluster-devel] [PATCH] gfs2: Initialize iopen glock holder for new inodes

Bob Peterson rpeterso at redhat.com
Fri Jun 17 13:41:48 UTC 2016


----- Original Message -----
| 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
| 
| 
Hi,

Thanks. This is now applied to the for-next branch of the linux-gfs2 tree:
https://git.kernel.org/cgit/linux/kernel/git/gfs2/linux-gfs2.git/commit/fs/gfs2?h=for-next&id=1e875f5a95a28b5286165db9fa832b0773657ddb

Regards,

Bob Peterson
Red Hat File Systems




More information about the Cluster-devel mailing list