• Bob Peterson's avatar
    gfs2: Only do glock put in gfs2_create_inode for free inodes · 1a0b00d1
    Bob Peterson authored
    Before this patch, the error path of function gfs2_create_inode would
    always calls gfs2_glock_put for the inode glock. That's good for inodes
    that are free. But after they've been added to the vfs inodes, errors
    will cause the inode to be evicted, and the evict will do the glock
    put for us. If we do a glock put again, we can try to free the glock
    while there are still references to it, e.g. revokes pending for
    the transaction that created it.
    
    This patch adds a check: if (free_vfs_inode) before the put, thus
    solving the problem.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    1a0b00d1
inode.c 49.3 KB