On Wed, Jan 15, 2020 at 09:10:44PM +0800, Qu Wenruo wrote: > > That allows userspace to distinguish fe_physical addresses that may be > > on different devices. This isn't in the kernel yet, since it is mostly > > useful only for Btrfs and nobody has implemented it there. I can give > > you details if working on this for Btrfs is of interest to you. > > IMHO it's not good enough. > > The concern is, one extent can exist on multiple devices (mirrors for > RAID1/RAID10/RAID1C2/RAID1C3, or stripes for RAID5/6). > I didn't see how it can be easily implemented even with extra fields. > > And even we implement it, it can be too complex or bug prune to fill > per-device info. It's also completely bogus for the use cases to start with. fiemap is a debug tool reporting the file system layout. Using it for anything related to actual data storage and data integrity is a receipe for disaster. As said the right thing for the use case would be something like the NFS READ_PLUS operation. If we can't get that easily it can be emulated using lseek SEEK_DATA / SEEK_HOLE assuming no other thread could be writing to the file, or the raciness doesn't matter.