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);
                  }
          }