On Fri, Sep 21, 2012 at 05:14:28PM +0300, Dmitry Kasatkin wrote: > On some filesystems calling i_op->fiemap() takes the i_mutex, > on others it doesn't. Exactly by design. Many fiesystems don't require the i_mutex for fiemap to be safe. e.g. the extent map is not protected by the i_mutex in XFS or ext4, and so holding the i_mutex over fiemap is incorrect. As a result, extent maps can change even when someone is holding the i_mutex. Any design that requires i_mutex to provide stable, unchanging extent maps is fundamentally broken.... So that's a NACK from me... > This change is needed in preparation for EVM to include a hash of > the extent data to be used in the HMAC calculation. EVM is called > when the i_mutex has already been taken. What's EVM? What's HMAC? and what is it actually checksumming? The extent map, or the data in the file? And if it is the extent map, what's the purpose of using the extent map for this? You need to explain how this is intended to be used, not use TLAs that people unfamiliar with your application will not understand... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html