This is an update an repost of the start of a series I posted back in December. It has been rebased on top of Christoph's ilock hold reduction and xfsbufd removal patch series, as well as all the outstanding patches I've sent out recently, so I guarantee it won't apply to a dev tree cleanly. Basically this series cleans up the buffer cache API to use daddr formats for block numbers and basic blocks for lengths when trying to get or read a buffer and from there cleans up the internal usage of the same thing. Essentially we end up with tracking buffers by their daddr blkno, and BB based length, including the length of the IO needed to do out of the buffer. The b_offset field is still in bytes, as that is mostly used as a byte offset into the allocated memory that the buffer holds, rather than a disk based offset. Ther's nothing controversial here (at least, not from the raction to the first posting). It lays the groundwork for introducing compound buffers, and those are needed to be able to remove the intermediate xfs_dabuf that the directory code uses for discontiguous large directory blocks. This will then allow all metadata types to use the the buffer cache to trigger CRC calculations on immediately after read (validation) and prior to write (calculation). The compound buffer patches will follow soon - i'm trying to break this up into bite-sized chunks so that reviewers have a chance to keep up with the rate can test them and I post them... _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs