aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vm_swap.c
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2003-03-05 23:50:15 +0000
committerRobert Watson <rwatson@FreeBSD.org>2003-03-05 23:50:15 +0000
commit1b2c2ab29ad1b40d549adb90d6b08c3367bc6284 (patch)
treea528f54ce13be77b6cce282371e23bf45a6d45ad /sys/vm/vm_swap.c
parenta184d471e2a37d715d6bd607a38bc0badc44c39f (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.c8
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;
/*