Start the cleaning of the log when still full after last clean. --- fs/xfs/xfs_log.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) Index: b/fs/xfs/xfs_log.c =================================================================== --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -191,8 +191,10 @@ xlog_grant_head_wake( list_for_each_entry(tic, &head->waiters, t_queue) { need_bytes = xlog_ticket_reservation(log, head, tic); - if (*free_bytes < need_bytes) + if (*free_bytes < need_bytes) { + xlog_grant_push_ail(log, need_bytes); return false; + } *free_bytes -= need_bytes; trace_xfs_log_grant_wake_up(log, tic);