/* Returns 0 if access is permitted, an error code otherwise  */
static int smack_inode_setattr(struct dentry *dentry, struct iattr *iattr)
/* Returns 0 if access is permitted, an error code otherwise  */
static int smack_inode_setattr(struct dentry *dentry, struct iattr *iattr)
{
	struct smk_audit_info ad;
	if (iattr->ia_valid & ATTR_FORCE)
		return 0;
	smk_ad_init(&ad, __func__, LSM_AUDIT_DATA_FS);
	smk_ad_setfield_u_fs_path_dentry(&ad, dentry);
	return smk_curacc(smk_of_inode(dentry->d_inode), MAY_WRITE, &ad);
}