diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 0436fe9bbe0e..68ae54b0616c 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -450,6 +450,7 @@ static int sb_finish_set_opts(struct super_block *sb) list_entry(sbsec->isec_head.next, struct inode_security_struct, list); struct inode *inode = isec->inode; + list_del_init(&isec->list); spin_unlock(&sbsec->isec_lock); inode = igrab(inode); if (inode) { @@ -458,7 +459,6 @@ static int sb_finish_set_opts(struct super_block *sb) iput(inode); } spin_lock(&sbsec->isec_lock); - list_del_init(&isec->list); goto next_inode; } spin_unlock(&sbsec->isec_lock);