summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/fsverity.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/fsverity.h b/include/linux/fsverity.h
index 844f7b8b56bb..5bc7280425a7 100644
--- a/include/linux/fsverity.h
+++ b/include/linux/fsverity.h
@@ -190,8 +190,15 @@ void __fsverity_cleanup_inode(struct inode *inode);
*/
static inline void fsverity_cleanup_inode(struct inode *inode)
{
- if (*fsverity_info_addr(inode))
+ /*
+ * Only IS_VERITY() inodes can have verity info, so start by checking
+ * for IS_VERITY() (which is faster than retrieving the pointer to the
+ * verity info). This minimizes overhead for non-verity inodes.
+ */
+ if (IS_VERITY(inode))
__fsverity_cleanup_inode(inode);
+ else
+ VFS_WARN_ON_ONCE(*fsverity_info_addr(inode) != NULL);
}
/* read_metadata.c */