On Thu, Jun 05, 2008 at 02:22:57PM +0300, Dmitri Vorobiev wrote: > > It looks like the discussion related to this issue has faded out. Ralf > seemed to have some objections to using ZERO_PAGE() outside of the > context of getting a user-mapped page, but I think that ext4 driver is > still doing that. > I thought I had sent a reply indicating that yes, we are using ZERO_PAGE outside of getting a user-mapped page, because this is happening when we need to write zero's to directly to a filesystem block. This case arises when we have a file which contains preallocated space that has not yet been initialized, and the user program seeks into the middle of the unitialized extent range, and writes into the middle of that space. In some cases, it is more efficient to zero out a small range of blocks on disk rather than splitting the extent in the middle. We could explicitly allocate a page, and zero it out, and use it to write zeros from the ext4 filesystem, code, but that seems silly, given that ZERO_PAGE exists and is available on all other architectures. Cristoph Hellwig had complained about the use of ZERO_PAGE, but when I gave him the above explanation, he agreed that this was indeed probably the best way to do things. If you really insist I suppose we could have a MIPS specific patch where we allocate a 4k page and zero it, so we can use it from our kernel code because you don't want to export and make available the ZERO_PAGE that gets used by the rest of the kernel, but that seems awfully silly, and would be a waste of 4k of memory..... Someone from MIPS land would have to test it, as well, as I dont think any of the ext4 developers have access to a MIPS platform. - Ted