Print this page
7378 exported_lock held during nfs4 compound processing

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/nfs/nfs_srv.c
          +++ new/usr/src/uts/common/fs/nfs/nfs_srv.c
↓ open down ↓ 2042 lines elided ↑ open up ↑
2043 2043          vnode_t *targvp;
2044 2044          int in_crit = 0;
2045 2045  
2046 2046          fromvp = nfs_fhtovp(args->rna_from.da_fhandle, exi);
2047 2047          if (fromvp == NULL) {
2048 2048                  *status = NFSERR_STALE;
2049 2049                  return;
2050 2050          }
2051 2051  
2052 2052          fh = args->rna_to.da_fhandle;
2053      -        to_exi = checkexport(&fh->fh_fsid, (fid_t *)&fh->fh_xlen);
     2053 +        to_exi = checkexport(&fh->fh_fsid, (fid_t *)&fh->fh_xlen, NULL);
2054 2054          if (to_exi == NULL) {
2055 2055                  VN_RELE(fromvp);
2056 2056                  *status = NFSERR_ACCES;
2057 2057                  return;
2058 2058          }
2059 2059          exi_rele(to_exi);
2060 2060  
2061 2061          if (to_exi != exi) {
2062 2062                  VN_RELE(fromvp);
2063 2063                  *status = NFSERR_XDEV;
↓ open down ↓ 125 lines elided ↑ open up ↑
2189 2189          struct exportinfo *to_exi;
2190 2190          fhandle_t *fh;
2191 2191  
2192 2192          fromvp = nfs_fhtovp(args->la_from, exi);
2193 2193          if (fromvp == NULL) {
2194 2194                  *status = NFSERR_STALE;
2195 2195                  return;
2196 2196          }
2197 2197  
2198 2198          fh = args->la_to.da_fhandle;
2199      -        to_exi = checkexport(&fh->fh_fsid, (fid_t *)&fh->fh_xlen);
     2199 +        to_exi = checkexport(&fh->fh_fsid, (fid_t *)&fh->fh_xlen, NULL);
2200 2200          if (to_exi == NULL) {
2201 2201                  VN_RELE(fromvp);
2202 2202                  *status = NFSERR_ACCES;
2203 2203                  return;
2204 2204          }
2205 2205          exi_rele(to_exi);
2206 2206  
2207 2207          if (to_exi != exi) {
2208 2208                  VN_RELE(fromvp);
2209 2209                  *status = NFSERR_XDEV;
↓ open down ↓ 803 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX