[Ocfs2-devel] [PATCH] Treat writes as new when holes span across page boundaries

Joel Becker jlbec at evilplan.org
Wed Feb 23 13:21:12 PST 2011


On Wed, Feb 23, 2011 at 03:09:22PM -0600, Goldwyn Rodrigues wrote:
> Are you sure that block_write_full_page_endio() will be called before
> the next system call on this file comes in and moves I_size beyond end
> of this page?

	Nope, and that's why I'm talking about things like fsync(), etc.
I'm pretty sure we're racing this sort of thing, because we should have
zeroed it ourselves.
	This comes back to block-based vs page-based zeroing.  The
kernel code should really handle blocks outside of our i_size (this is
what the block_write_full_page_endio() stuff is aimed for).  readpage,
writepage, etc just handle it.  However, the kernel is not responsible
for zeros in blocks we claim to be controlling, and it also doesn't
claim responsibility for blocks we're extending past.

Joel

-- 

Life's Little Instruction Book #24

	"Drink champagne for no reason at all."

			http://www.jlbec.org/
			jlbec at evilplan.org



More information about the Ocfs2-devel mailing list