[Ocfs2-devel] [PATCH 0/3] ocfs2: Resolve the problem of truncate log flush.

Tao Ma tao.ma at oracle.com
Wed Sep 15 23:19:51 PDT 2010


Hi all,
	Recently, one of our colleagues meet with a problem that if we 
write/delete a 32mb files repeatly, we will get a ENOSPC in the end. And 
the corresponding bug is 1288.
http://oss.oracle.com/bugzilla/show_bug.cgi?id=1288

So this patch set just tries to resolve it. It includes 3 patches:
0001 is a separate one. It just adds a new watermark for truncate log, 
FLUSH_TRUNCATE_LOG_RATIO. So if the truncate log has collected too much 
clusters, ocfs2_truncate_log_needs_flush will tell the caller to flush 
immediately.

0002-0003 are a little complicate here.
So in general, even we have freed the clusters to the global bitmap(by 
the above flush), we can't use them because they haven't been committed 
to the disk(check the comments above ocfs2_test_bg_bit_allocatable for 
details). So we have to tell jbd2 to flush immediately.
0002 reverts some change in commit c271c5c so that now even in local 
mode we can force jbd2 to flush immediately.
0003 add the 'checkpoint' to ocfs2_truncate_log_needs_flush, so that the 
callers know that we need to checkpoint after the flush.

Actually 0003 can work without 0002 since in cluster env, 
ocfs2_start_checkpoint will work and 0002 is just used for a local mode. 
So feel free to drop 0002 if we decide to still keep ocfs2cmt out of 
local mode.

Regards,
Tao



More information about the Ocfs2-devel mailing list