diff options
author | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-09-02 05:53:44 +0000 |
---|---|---|
committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-09-02 05:53:44 +0000 |
commit | afeb65e61d62cd7cc3ea83391996baa974760b20 (patch) | |
tree | 88c2c0dcd05aafe968bcb2bbfacdf887295f6f77 /sys/vm/swap_pager.c | |
parent | 7d43c8c902ab0bdcaf7ecf52e9acabc370fb6df8 (diff) | |
download | src-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.c | 10 |
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); |