aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/swap_pager.c
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2003-09-02 05:53:44 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2003-09-02 05:53:44 +0000
commitafeb65e61d62cd7cc3ea83391996baa974760b20 (patch)
tree88c2c0dcd05aafe968bcb2bbfacdf887295f6f77 /sys/vm/swap_pager.c
parent7d43c8c902ab0bdcaf7ecf52e9acabc370fb6df8 (diff)
downloadsrc-afeb65e61d62cd7cc3ea83391996baa974760b20.tar.gz
src-afeb65e61d62cd7cc3ea83391996baa974760b20.zip
Don't open with exclusive bit, swapon(8) wants to trash our swapdev.
Add XXX comment with a rating of this concept.
Notes
Notes: svn path=/head/; revision=119663
Diffstat (limited to 'sys/vm/swap_pager.c')
-rw-r--r--sys/vm/swap_pager.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index aa9cdb4d282f..749855d77b84 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -2411,7 +2411,7 @@ swapgeom_close_ev(void *arg, int flags)
struct g_consumer *cp;
cp = arg;
- g_access_rel(cp, -1, -1, -1);
+ g_access_rel(cp, -1, -1, 0);
g_detach(cp);
g_destroy_consumer(cp);
}
@@ -2465,7 +2465,13 @@ swapongeom_ev(void *arg, int flags)
}
cp = g_new_consumer(gp);
g_attach(cp, pp);
- error = g_access_rel(cp, 1, 1, 1);
+ /*
+ * XXX: Everytime you think you can improve the margin for
+ * footshooting, somebody depends on the ability to do so:
+ * savecore(8) wants to write to our swapdev so we cannot
+ * set an exclusive count :-(
+ */
+ error = g_access_rel(cp, 1, 1, 0);
if (error) {
g_detach(cp);
g_destroy_consumer(cp);