Re: [GIT PULL] Security subsystem updates for 4.14

From: Christoph Hellwig
Date: Fri Sep 08 2017 - 03:09:52 EST


The reason why I send out the original version of this patch
is because IMA used to call ->read under i_rwsem, and that deadlocked
on XFS and NFS, or ext3/4 with DAX. The call path for that is

process_measurement (takes i_rwsem)
-> ima_collect_measurement
-> ima_calc_file_hash
-> ima_calc_file_ahash / ima_calc_file_shash
-> ima_calc_file_hash_atfm / ima_calc_file_hash_tfm
-> integrity_kernel_read

ima_check_last_writer (takes i_rwsem)
-> ima_update_xattr
-> ima_collect_measurement
-> (as above)

But yes, for the init-time integrity_read_file this is incorrect.
It never tripped up, and I explicitly added the lockdep annotations
so that anything would show up, and it's been half a year since
I sent that first RFC patch..