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..

Reply via email to