• Tao Ma's avatar
    ocfs2: Try to free truncate log when meeting ENOSPC in write. · 50308d81
    Tao Ma authored
    Recently, one of our colleagues meet with a problem that if we
    write/delete a 32mb files repeatly, we will get an ENOSPC in
    the end. And the corresponding bug is 1288.
    http://oss.oracle.com/bugzilla/show_bug.cgi?id=1288
    
    The real problem is that although we have freed the clusters,
    they are in truncate log and they will be summed up so that
    we can free them once in a whole.
    
    So this patch just try to resolve it. In case we see -ENOSPC
    in ocfs2_write_begin_no_lock, we will check whether the truncate
    log has enough clusters for our need, if yes, we will try to
    flush the truncate log at that point and try again. This method
    is inspired by Mark Fasheh <mfasheh@suse.com>. Thanks.
    
    Cc: Mark Fasheh <mfasheh@suse.com>
    Signed-off-by: default avatarTao Ma <tao.ma@oracle.com>
    Signed-off-by: default avatarJoel Becker <joel.becker@oracle.com>
    50308d81
ocfs2.h 22.7 KB