2001-10-14 00:19:05

by Adam J. Richter

[permalink] [raw]
Subject: Documentation on address_space_operations?

I would appreciate any specific pointers to documentation
on the exact semantics of the functions declared in struct
address_space_operations. The exact division of labor between
writepage, sync_page, prepare_write, commit_write, and direct_IO
is not obvious to me, to say the least.

This is especially relevant to me because the ramdisk code
was changed to use struct address_space_operations around 2.4.11-pre6,
causing my change that allowed the ramdisk contents to be usable even
if filesystems that had different block sizes were compiled into the
kernel (for example, if you compile in cramfs and romfs with the stock
kernels, you initial ramdisk cannot be in romfs format because the
block size change between cramfs and romfs will cause all data to be lost).
A couple of years ago, I had posted my fix for this to linux-kernel based
on old IO method, but the change was never integrated into the official
kernels. I would like to try to develop and updated fix for the new
ramdisk code. (I would also like to port the change that somebody made
around 2.3.43 to have the ramdisk driver drop pages that consists of all
zeroes, although that is less important.)

Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
[email protected] \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."