[Ocfs2-devel] [patch 2/5] ocfs2: retry on ENOSPC if sufficient space in truncate log
Mark Fasheh
mfasheh at suse.de
Thu Jul 28 14:39:51 PDT 2016
On Thu, Jul 28, 2016 at 02:05:59PM -0700, Andrew Morton wrote:
> From: Eric Ren <zren at suse.com>
> Subject: ocfs2: retry on ENOSPC if sufficient space in truncate log
>
> The testcase "mmaptruncate" in ocfs2 test suite always fails with ENOSPC
> error on small volume (say less than 10G). This testcase repeatedly
> performs "extend" and "truncate" on a file. Continuously, it truncates
> the file to 1/2 of the size, and then extends to 100% of the size. The
> main bitmap will quickly run out of space because the "truncate" code
> prevent truncate log from being flushed by
> ocfs2_schedule_truncate_log_flush(osb, 1), while truncate log may have
> cached lots of clusters.
>
> So retry to allocate after flushing truncate log when ENOSPC is returned.
> And we cannot reuse the deleted blocks before the transaction committed.
> Fortunately, we already have a function to do this -
> ocfs2_try_to_free_truncate_log(). Just need to remove the "static"
> modifier and put it into the right place.
>
> The "unlock"/"lock" code isn't elegant, but there seems to be no better
> option.
>
> [zren at suse.com: locking fix]
> Link: http://lkml.kernel.org/r/1468031546-4797-1-git-send-email-zren@suse.com
> Link: http://lkml.kernel.org/r/1466586469-5541-1-git-send-email-zren@suse.com
> Signed-off-by: Eric Ren <zren at suse.com>
> Reviewed-by: Gang He <ghe at suse.com>
> Reviewed-by: Joseph Qi <joseph.qi at huawei.com>
Thanks for this Eric.
Reviewed-by: Mark Fasheh <mfasheh at suse.de>
--Mark
--
Mark Fasheh
More information about the Ocfs2-devel
mailing list