diff options
author | Robert Watson <rwatson@FreeBSD.org> | 2003-03-05 23:50:15 +0000 |
---|---|---|
committer | Robert Watson <rwatson@FreeBSD.org> | 2003-03-05 23:50:15 +0000 |
commit | 1b2c2ab29ad1b40d549adb90d6b08c3367bc6284 (patch) | |
tree | a528f54ce13be77b6cce282371e23bf45a6d45ad /sys/vm/vm_swap.c | |
parent | a184d471e2a37d715d6bd607a38bc0badc44c39f (diff) |
Provide a mac_check_system_swapoff() entry point, which permits MAC
modules to authorize disabling of swap against a particular vnode.
Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories
Notes
Notes:
svn path=/head/; revision=111936
Diffstat (limited to 'sys/vm/vm_swap.c')
-rw-r--r-- | sys/vm/vm_swap.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/vm/vm_swap.c b/sys/vm/vm_swap.c index f968838ca2c7..057a85d89a3b 100644 --- a/sys/vm/vm_swap.c +++ b/sys/vm/vm_swap.c @@ -433,6 +433,14 @@ swapoff(td, uap) error = EINVAL; goto done; found: +#ifdef MAC + (void) vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); + error = mac_check_system_swapoff(td->td_ucred, vp); + (void) VOP_UNLOCK(vp, 0, td); + if (error != 0) + goto done; +#endif + nblks = sp->sw_nblks; /* |