From: Andrew Morton Fix in-flight collision. selinux_netlbl_inode_permission() is way too big to inline. selinux_netlabel.h doesn't include semaphore.h, muex.h or lots of other things it uses. Cc: Paul Moore Cc: Eric Paris Cc: Stephen Smalley Cc: James Morris Signed-off-by: Andrew Morton --- security/selinux/include/selinux_netlabel.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN security/selinux/include/selinux_netlabel.h~selinux-2-3-change-isec-semaphore-to-a-mutex-vs-git-net security/selinux/include/selinux_netlabel.h --- a/security/selinux/include/selinux_netlabel.h~selinux-2-3-change-isec-semaphore-to-a-mutex-vs-git-net +++ a/security/selinux/include/selinux_netlabel.h @@ -65,11 +65,11 @@ static inline int selinux_netlbl_inode_p isec = inode->i_security; sksec = SOCKET_I(inode)->sk->sk_security; - down(&isec->sem); + mutex_lock(&isec->lock); if (unlikely(sksec->nlbl_state == NLBL_REQUIRE && (mask & (MAY_WRITE | MAY_APPEND)))) rc = __selinux_netlbl_inode_permission(inode, mask); - up(&isec->sem); + mutex_unlock(&isec->lock); return rc; } _