Locking rules for fscrypt_operations->set_context()

From: Richard Weinberger
Date: Tue Sep 20 2016 - 10:31:09 EST


To my understanding ->setxattr() is always being called with i_mutex held.
->set_context() in ext4 stores the security context using ext4_xattr_set(),
but the fs crypto framework does not lock the inode itself.
So, depending on the call path, ext4_xattr_set() is sometimes being
called with i_mutex held and some times not.

What are the locking rules for fscrypt_operations and especially ->set_context()?