diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 70d4a8a7f21c..fdd6e4f8be39 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -437,6 +437,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) { @@ -445,7 +446,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);