summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/lofi.c
diff options
context:
space:
mode:
authorPatrick Mooney <pmooney@pfmooney.com>2019-01-05 00:15:31 +0000
committerPatrick Mooney <pmooney@pfmooney.com>2019-01-08 01:03:07 +0000
commit1681fea05e271e6e0ec1aa68bf37b34cbcf5854e (patch)
tree3a276ed85d5969b77535b9fe5329e27a4852e340 /usr/src/uts/common/io/lofi.c
parent66b9606131b15c87650523d677d70277878480f6 (diff)
downloadillumos-joyent-1681fea05e271e6e0ec1aa68bf37b34cbcf5854e.tar.gz
OS-7483 excessive page destruction caused by 6602
Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Mike Gerdts <mike.gerdts@joyent.com> Reviewed by: Ryan Zezeski <rpz@joyent.com> Reviewed by: Robert Mustacchi <rm@joyent.com> Approved by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src/uts/common/io/lofi.c')
-rw-r--r--usr/src/uts/common/io/lofi.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/usr/src/uts/common/io/lofi.c b/usr/src/uts/common/io/lofi.c
index 95f4cd7254..1169f3fdfc 100644
--- a/usr/src/uts/common/io/lofi.c
+++ b/usr/src/uts/common/io/lofi.c
@@ -24,6 +24,7 @@
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2016 Andrey Sokolov
* Copyright 2016 Toomas Soome <tsoome@me.com>
+ * Copyright 2019 Joyent, Inc.
*/
/*
@@ -173,7 +174,7 @@
#define SIZE_PROP_NAME "Size"
#define ZONE_PROP_NAME "zone"
-#define SETUP_C_DATA(cd, buf, len) \
+#define SETUP_C_DATA(cd, buf, len) \
(cd).cd_format = CRYPTO_DATA_RAW; \
(cd).cd_offset = 0; \
(cd).cd_miscdata = NULL; \
@@ -553,7 +554,7 @@ lofi_destroy(struct lofi_state *lsp, cred_t *credp)
}
if (lsp->ls_vp != NULL) {
- (void) VOP_PUTPAGE(lsp->ls_vp, 0, 0, B_INVAL, credp, NULL);
+ (void) VOP_PUTPAGE(lsp->ls_vp, 0, 0, B_FREE, credp, NULL);
(void) VOP_CLOSE(lsp->ls_vp, lsp->ls_openflag,
1, 0, credp, NULL);
VN_RELE(lsp->ls_vp);
@@ -2934,7 +2935,7 @@ err:
lofi_destroy(lsp, credp);
} else {
if (vp != NULL) {
- (void) VOP_PUTPAGE(vp, 0, 0, B_INVAL, credp, NULL);
+ (void) VOP_PUTPAGE(vp, 0, 0, B_FREE, credp, NULL);
(void) VOP_CLOSE(vp, flag, 1, 0, credp, NULL);
VN_RELE(vp);
}