include/linux/integrity.h

Source file repositories/reference/linux-study-clean/include/linux/integrity.h

File Facts

System
Linux kernel
Corpus path
include/linux/integrity.h
Extension
.h
Size
1498 bytes
Lines
66
Domain
Core OS
Bucket
Core Kernel Interface
Inferred role
Core OS: implementation source
Status
source implementation candidate

Why This File Exists

Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.

Dependency Surface

Detected Declarations

Annotated Snippet

struct integrity_inode_attributes {
	u64 version;		/* track inode changes */
	unsigned long ino;
	dev_t dev;
};

/*
 * On stacked filesystems the i_version alone is not enough to detect file data
 * or metadata change. Additional metadata is required.
 */
static inline void
integrity_inode_attrs_store(struct integrity_inode_attributes *attrs,
			    u64 i_version, const struct inode *inode)
{
	attrs->version = i_version;
	attrs->dev = inode->i_sb->s_dev;
	attrs->ino = inode->i_ino;
}

/*
 * On stacked filesystems detect whether the inode or its content has changed.
 */
static inline bool
integrity_inode_attrs_changed(const struct integrity_inode_attributes *attrs,
			      const struct inode *inode)
{
	return (inode->i_sb->s_dev != attrs->dev ||
		inode->i_ino != attrs->ino ||
		!inode_eq_iversion(inode, attrs->version));
}


#endif /* _LINUX_INTEGRITY_H */

Annotation

Implementation Notes