Print this page
10262 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>
*** 22,31 ****
--- 22,32 ----
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
*
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2016 Andrey Sokolov
* Copyright 2016 Toomas Soome <tsoome@me.com>
+ * Copyright 2019 Joyent, Inc.
*/
/*
* lofi (loopback file) driver - allows you to attach a file to a device,
* which can then be accessed through that device. The simple model is that
*** 551,561 ****
kmem_free(lsp->ls_comp_bufs,
sizeof (struct compbuf) * lofi_taskq_nthreads);
}
if (lsp->ls_vp != NULL) {
! (void) VOP_PUTPAGE(lsp->ls_vp, 0, 0, B_INVAL, credp, NULL);
(void) VOP_CLOSE(lsp->ls_vp, lsp->ls_openflag,
1, 0, credp, NULL);
VN_RELE(lsp->ls_vp);
}
if (lsp->ls_stacked_vp != lsp->ls_vp)
--- 552,562 ----
kmem_free(lsp->ls_comp_bufs,
sizeof (struct compbuf) * lofi_taskq_nthreads);
}
if (lsp->ls_vp != 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);
}
if (lsp->ls_stacked_vp != lsp->ls_vp)
*** 2932,2942 ****
err:
if (lsp != NULL) {
lofi_destroy(lsp, credp);
} else {
if (vp != NULL) {
! (void) VOP_PUTPAGE(vp, 0, 0, B_INVAL, credp, NULL);
(void) VOP_CLOSE(vp, flag, 1, 0, credp, NULL);
VN_RELE(vp);
}
}
--- 2933,2943 ----
err:
if (lsp != NULL) {
lofi_destroy(lsp, credp);
} else {
if (vp != NULL) {
! (void) VOP_PUTPAGE(vp, 0, 0, B_FREE, credp, NULL);
(void) VOP_CLOSE(vp, flag, 1, 0, credp, NULL);
VN_RELE(vp);
}
}