• Jan Kara's avatar
    ocfs2: Fix possible deadlock when extending quota file · b409d7a0
    Jan Kara authored
    In OCFS2, allocator locks rank above transaction start. Thus we
    cannot extend quota file from inside a transaction less we could
    deadlock.
    
    We solve the problem by starting transaction not already in
    ocfs2_acquire_dquot() but only in ocfs2_local_read_dquot() and
    ocfs2_global_read_dquot() and we allocate blocks to quota files before starting
    the transaction.  In case we crash, quota files will just have a few blocks
    more but that's no problem since we just use them next time we extend the
    quota file.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
    b409d7a0
quota_global.c 24.7 KB