Commit 008574b1 authored by Eric Paris's avatar Eric Paris Committed by James Morris

SELinux: seperate avc_cache flushing

Move the avc_cache flushing into it's own function so it can be reused when
disabling SELinux.
Signed-off-by: default avatarEric Paris <eparis@redhat.com>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent ed868a56
...@@ -709,18 +709,16 @@ static int avc_update_node(u32 event, u32 perms, u32 ssid, u32 tsid, u16 tclass, ...@@ -709,18 +709,16 @@ static int avc_update_node(u32 event, u32 perms, u32 ssid, u32 tsid, u16 tclass,
} }
/** /**
* avc_ss_reset - Flush the cache and revalidate migrated permissions. * avc_flush - Flush the cache
* @seqno: policy sequence number
*/ */
int avc_ss_reset(u32 seqno) static void avc_flush(void)
{ {
struct avc_callback_node *c;
int i, rc = 0, tmprc;
unsigned long flag;
struct avc_node *node;
struct hlist_head *head; struct hlist_head *head;
struct hlist_node *next; struct hlist_node *next;
struct avc_node *node;
spinlock_t *lock; spinlock_t *lock;
unsigned long flag;
int i;
for (i = 0; i < AVC_CACHE_SLOTS; i++) { for (i = 0; i < AVC_CACHE_SLOTS; i++) {
head = &avc_cache.slots[i]; head = &avc_cache.slots[i];
...@@ -737,6 +735,18 @@ int avc_ss_reset(u32 seqno) ...@@ -737,6 +735,18 @@ int avc_ss_reset(u32 seqno)
rcu_read_unlock(); rcu_read_unlock();
spin_unlock_irqrestore(lock, flag); spin_unlock_irqrestore(lock, flag);
} }
}
/**
* avc_ss_reset - Flush the cache and revalidate migrated permissions.
* @seqno: policy sequence number
*/
int avc_ss_reset(u32 seqno)
{
struct avc_callback_node *c;
int rc = 0, tmprc;
avc_flush();
for (c = avc_callbacks; c; c = c->next) { for (c = avc_callbacks; c; c = c->next) {
if (c->events & AVC_CALLBACK_RESET) { if (c->events & AVC_CALLBACK_RESET) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment