Christoph Hellwig wrote:
On Sat, Jun 23, 2007 at 11:07:54PM -0400, Jeff Garzik wrote:
- In line with the above item, filesystem block allocation is performed
before a page is dirtied. In the buffer layer, mmap writes can dirty a
page with no backing blocks which is a problem if the filesystem is
ENOSPC (patches exist for buffer.c for this).
This raises an eyebrow... The handling of ENOSPC prior to mmap write is
more an ABI behavior, so I don't see how this can be fixed with internal
changes, yet without changing behavior currently exported to userland
(and thus affecting code based on such assumptions).
Not really, the current behaviour is a bug. And it's not actually buffer
layer specific - XFS now has a fix for that bug and it's generic enough
that everyone could use it.
I'm not sure I follow. If you require block allocation at mmap(2) time,
rather than when a page is actually dirtied, you are denying userspace
the ability to do sparse files with mmap.
A quick Google readily turns up people who have built upon the
mmap-sparse-file assumption, and I don't think we want to break those
assumptions as a "bug fix."
Where is the bug?
Jeff
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html