Description
As part of Lustre Metadata Redundancy, the directory entries on the MDT should enhance the dir_data feature to allow multiple FIDs to be stored in a single dirent.
Currently on the MDT each dirent stores 17 bytes (1-byte size + 16-byte FID) after the name. For LMR, each directory should be able to reference 2 or more FIDs on different MDTs that reference mirror copies of the same file or directory. It is likely that 3 FIDs (mirrors) would be enough for most redundancy needs, but if more can be stored easily then having a higher limit (e.g. 8 or 16) would provide more flexibility in the future.
It would be prudent to enhance ext4-data-in-dirent.patch to allow multiple FIDs to be stored in a single dirent (1 + 16 x N bytes). Similarly, e2fsck should consider dir_data entries of (1 + 16 x N bytes) to be valid. debugfs stat should also be modified to print multiple dirdata FIDs if present.
I believe ZFS already allows N x 8-byte entries in the ZAP (8-byte inode number + 2x8-byte FID), and it may be that there is no need to change anything to allow multiple FIDs to be stored there.