• Bob Peterson's avatar
    gfs2: clean up iopen glock mess in gfs2_create_inode · 2c47c1be
    Bob Peterson authored
    Before this patch, gfs2_create_inode had a use-after-free for the
    iopen glock in some error paths because it did this:
    
    	gfs2_glock_put(io_gl);
    fail_gunlock2:
    	if (io_gl)
    		clear_bit(GLF_INODE_CREATING, &io_gl->gl_flags);
    
    In some cases, the io_gl was used for create and only had one
    reference, so the glock might be freed before the clear_bit().
    This patch tries to straighten it out by only jumping to the
    error paths where iopen is properly set, and moving the
    gfs2_glock_put after the clear_bit.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    2c47c1be
inode.c 49.3 KB