]> git.baikalelectronics.ru Git - kernel.git/commit
SELINUX: Make selinux cache VFS RCU walks safe
authorEric Paris <eparis@redhat.com>
Mon, 25 Apr 2011 20:26:29 +0000 (16:26 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Apr 2011 01:16:32 +0000 (18:16 -0700)
commitf08627cb81556c697198c9feb80532f91dd1260f
tree17a06970af5a26cd340b785a894f20f262335575
parentfa3adf6a7ec608d46b92fc7ab5a17997d8b9794c
SELINUX: Make selinux cache VFS RCU walks safe

Now that the security modules can decide whether they support the
dcache RCU walk or not it's possible to make selinux a bit more
RCU friendly.  The SELinux AVC and security server access decision
code is RCU safe.  A specific piece of the LSM audit code may not
be RCU safe.

This patch makes the VFS RCU walk retry if it would hit the non RCU
safe chunk of code.  It will normally just work under RCU.  This is
done simply by passing the VFS RCU state as a flag down into the
avc_audit() code and returning ECHILD there if it would have an issue.

Based-on-patch-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
security/selinux/avc.c
security/selinux/hooks.c
security/selinux/include/avc.h