Print this page
nfssrv: nfsstat reports zeroed data in zone


 826                 bslabel_t *clabel = req->rq_label;
 827 
 828                 ASSERT(clabel != NULL);
 829                 DTRACE_PROBE2(tx__rfs3__log__info__opreadlink__clabel, char *,
 830                     "got client label from request(1)", struct svc_req *, req);
 831 
 832                 if (!blequal(&l_admin_low->tsl_label, clabel)) {
 833                         if (!do_rfs_label_check(clabel, vp, DOMINANCE_CHECK,
 834                             exi)) {
 835                                 resp->status = NFS3ERR_ACCES;
 836                                 goto out1;
 837                         }
 838                 }
 839         }
 840 
 841         data = kmem_alloc(MAXPATHLEN + 1, KM_SLEEP);
 842 
 843         if (is_referral) {
 844                 char *s;
 845                 size_t strsz;

 846 
 847                 /* Get an artificial symlink based on a referral */
 848                 s = build_symlink(vp, cr, &strsz);
 849                 global_svstat_ptr[3][NFS_REFERLINKS].value.ui64++;
 850                 DTRACE_PROBE2(nfs3serv__func__referral__reflink,
 851                     vnode_t *, vp, char *, s);
 852                 if (s == NULL)
 853                         error = EINVAL;
 854                 else {
 855                         error = 0;
 856                         (void) strlcpy(data, s, MAXPATHLEN + 1);
 857                         kmem_free(s, strsz);
 858                 }
 859 
 860         } else {
 861 
 862                 iov.iov_base = data;
 863                 iov.iov_len = MAXPATHLEN;
 864                 uio.uio_iov = &iov;
 865                 uio.uio_iovcnt = 1;
 866                 uio.uio_segflg = UIO_SYSSPACE;
 867                 uio.uio_extflg = UIO_COPY_CACHED;
 868                 uio.uio_loffset = 0;
 869                 uio.uio_resid = MAXPATHLEN;




 826                 bslabel_t *clabel = req->rq_label;
 827 
 828                 ASSERT(clabel != NULL);
 829                 DTRACE_PROBE2(tx__rfs3__log__info__opreadlink__clabel, char *,
 830                     "got client label from request(1)", struct svc_req *, req);
 831 
 832                 if (!blequal(&l_admin_low->tsl_label, clabel)) {
 833                         if (!do_rfs_label_check(clabel, vp, DOMINANCE_CHECK,
 834                             exi)) {
 835                                 resp->status = NFS3ERR_ACCES;
 836                                 goto out1;
 837                         }
 838                 }
 839         }
 840 
 841         data = kmem_alloc(MAXPATHLEN + 1, KM_SLEEP);
 842 
 843         if (is_referral) {
 844                 char *s;
 845                 size_t strsz;
 846                 kstat_named_t *stat = exi->exi_ne->ne_globals->svstat[NFS_V3];
 847 
 848                 /* Get an artificial symlink based on a referral */
 849                 s = build_symlink(vp, cr, &strsz);
 850                 stat[NFS_REFERLINKS].value.ui64++;
 851                 DTRACE_PROBE2(nfs3serv__func__referral__reflink,
 852                     vnode_t *, vp, char *, s);
 853                 if (s == NULL)
 854                         error = EINVAL;
 855                 else {
 856                         error = 0;
 857                         (void) strlcpy(data, s, MAXPATHLEN + 1);
 858                         kmem_free(s, strsz);
 859                 }
 860 
 861         } else {
 862 
 863                 iov.iov_base = data;
 864                 iov.iov_len = MAXPATHLEN;
 865                 uio.uio_iov = &iov;
 866                 uio.uio_iovcnt = 1;
 867                 uio.uio_segflg = UIO_SYSSPACE;
 868                 uio.uio_extflg = UIO_COPY_CACHED;
 869                 uio.uio_loffset = 0;
 870                 uio.uio_resid = MAXPATHLEN;