/* Returns 0 if current can write the floor of the filesystem being unmounted, an error code otherwise.  */
static int smack_sb_umount(struct vfsmount *mnt, int flags)
/* Returns 0 if current can write the floor of the filesystem being unmounted, an error code otherwise.  */
static int smack_sb_umount(struct vfsmount *mnt, int flags)
{
	struct superblock_smack *sbp;
	struct smk_audit_info ad;
	smk_ad_init(&ad, __func__, LSM_AUDIT_DATA_FS);
	smk_ad_setfield_u_fs_path_dentry(&ad, mnt->mnt_mountpoint);
	smk_ad_setfield_u_fs_path_mnt(&ad, mnt);
	sbp = mnt->mnt_sb->s_security;
	return smk_curacc(sbp->smk_floor, MAY_WRITE, &ad);
}