Struct pnfs_layout_segment is the generic part of the pnfs-getlayout (segment) operation and should not hold any layout specific part. So what is the struct nfs4_deviceid *deviceid; member doing there. This is a files only useful member that has no meaning in objects and blocks. (The later have multiple devices per layout) I've hacked up a possible fix. Please review. These will need more work done: - Actual testing. They are compiled only. - Adjusted to multiple pending changes from the changes to the layout segment allocation to all these latest Fred changes. - I wish the relevant parts get into the first batch of submission in the final form presented here, instead of changing later. Note the cleanup it gives to the files layout driver. Which can even be driven deeper. So they'll need to be integrated down deeper. (And code rebased above it) - So I've actually attempted using the generic cache in the objects driver. And it should be usable once all the code changes settle down, and I fix that FIXME: which is there now (See [RFC 3/3]) Andy? (Fred)? would you want to take the generic and file-layout parts out of my hands and see them through. For one they need testing which I don't have readily available. That is if you like them and they make any sense. [RFC 1/3] SQUASHME: Generalize the device cache so it can be used by all layouts [RFC 2/3] SQUASHME: fileslayout: Adjust to device_cache API changes [RFC 3/3] SQUASHME: pnfs-obj: Use the generic device cache Thanks Boaz -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html