On Wed, Aug 14, 2019 at 01:18:37PM +0200, Christoph Hellwig wrote: > The whole FIEMAP_KERNEL_FIBMAP thing looks very counter productive. > bmap() should be able to make the right decision based on the passed > in flags, no need to have a fake FIEMAP flag for that. Using the FIEMAP_KERNEL_FIBMAP flag, is a way to tell filesystems from where the request came from, so filesystems can handle it differently. For example, we can't allow in XFS a FIBMAP request on a COW/RTIME inode, and we use the FIBMAP flag in such situations. We could maybe check for the callback in fieinfo->fi_cb instead of using the flag, but I don't see how much more productive this could be. Maybe a helper, something like #define is_fibmap(f) ((f->fi_cb) == fiemap_fill_kernel_extent) But again, I don't know how much better this is comparing with a flag Cheers -- Carlos