diff options
author | Patrick Mooney <patrick.f.mooney@gmail.com> | 2015-09-15 14:26:26 +0000 |
---|---|---|
committer | Patrick Mooney <patrick.f.mooney@gmail.com> | 2015-09-15 14:26:26 +0000 |
commit | a845c808b8c12dd241b837bd48ae775b26d458fe (patch) | |
tree | 370333609e6cb281020e7387c189857ba362b2cc /usr/src | |
parent | ac0b8220e0412dac6c66e93475be7f8702d72dc3 (diff) | |
parent | 7bbfa3ee1f517d6d5762f10047886094cea843a1 (diff) | |
download | illumos-joyent-a845c808b8c12dd241b837bd48ae775b26d458fe.tar.gz |
[illumos-gate merge]
commit 7bbfa3ee1f517d6d5762f10047886094cea843a1
6217 nfsauth_cache_get() should allocate/free maxlen for addr, not len
commit 020c6b3e8852eb03df56f9b3fc96ffdc28975b1f
6227 truss(1M) doesn't show TCP_KEEPIDLE, TCP_KEEPCNT, and TCP_KEEPINTVL
commit c546f36aa898d913ff77674fb5ff97f15b2e08b4
6220 memleak in l2arc on debug build
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/truss/print.c | 3 | ||||
-rw-r--r-- | usr/src/uts/common/fs/nfs/nfs_auth.c | 16 | ||||
-rw-r--r-- | usr/src/uts/common/fs/zfs/arc.c | 7 |
3 files changed, 18 insertions, 8 deletions
diff --git a/usr/src/cmd/truss/print.c b/usr/src/cmd/truss/print.c index 2b59676e30..ff896f5da4 100644 --- a/usr/src/cmd/truss/print.c +++ b/usr/src/cmd/truss/print.c @@ -1948,6 +1948,9 @@ tcp_optname(private_t *pri, long val) case TCP_RTO_MIN: return ("TCP_RTO_MIN"); case TCP_RTO_MAX: return ("TCP_RTO_MAX"); case TCP_LINGER2: return ("TCP_LINGER2"); + case TCP_KEEPIDLE: return ("TCP_KEEPIDLE"); + case TCP_KEEPCNT: return ("TCP_KEEPCNT"); + case TCP_KEEPINTVL: return ("TCP_KEEPINTVL"); default: (void) snprintf(pri->code_buf, sizeof (pri->code_buf), diff --git a/usr/src/uts/common/fs/nfs/nfs_auth.c b/usr/src/uts/common/fs/nfs/nfs_auth.c index a8bcfdf438..570c1d0275 100644 --- a/usr/src/uts/common/fs/nfs/nfs_auth.c +++ b/usr/src/uts/common/fs/nfs/nfs_auth.c @@ -843,7 +843,7 @@ nfsauth_cache_get(struct exportinfo *exi, struct svc_req *req, int flavor, claddr = svc_getrpccaller(req->rq_xprt); addr = *claddr; - addr.buf = kmem_alloc(addr.len, KM_SLEEP); + addr.buf = kmem_alloc(addr.maxlen, KM_SLEEP); bcopy(claddr->buf, addr.buf, claddr->len); SVC_GETADDRMASK(req->rq_xprt, SVC_TATTR_ADDRMASK, (void **)&taddrmask); @@ -874,9 +874,9 @@ nfsauth_cache_get(struct exportinfo *exi, struct svc_req *req, int flavor, * Initialize the new auth_cache_clnt */ nc->authc_addr = addr; - nc->authc_addr.buf = kmem_alloc(addr.len, + nc->authc_addr.buf = kmem_alloc(addr.maxlen, KM_NOSLEEP | KM_NORMALPRI); - if (addr.len != 0 && nc->authc_addr.buf == NULL) { + if (addr.maxlen != 0 && nc->authc_addr.buf == NULL) { kmem_free(nc, sizeof (*nc)); goto retrieve; } @@ -897,7 +897,7 @@ nfsauth_cache_get(struct exportinfo *exi, struct svc_req *req, int flavor, avl_destroy(&nc->authc_tree); rw_destroy(&nc->authc_lock); - kmem_free(nc->authc_addr.buf, nc->authc_addr.len); + kmem_free(nc->authc_addr.buf, nc->authc_addr.maxlen); kmem_free(nc, sizeof (*nc)); } } @@ -1057,7 +1057,7 @@ wait: p->auth_state = NFS_AUTH_WAITING; mutex_exit(&p->auth_lock); - kmem_free(addr.buf, addr.len); + kmem_free(addr.buf, addr.maxlen); addr = p->auth_clnt->authc_addr; atomic_inc_uint(&nfsauth_cache_miss); @@ -1206,7 +1206,7 @@ wait: uint_t, nach, time_t, refresh); - kmem_free(addr.buf, addr.len); + kmem_free(addr.buf, addr.maxlen); } return (access); @@ -1235,7 +1235,7 @@ retrieve: } } - kmem_free(addr.buf, addr.len); + kmem_free(addr.buf, addr.maxlen); return (access); } @@ -1429,7 +1429,7 @@ nfsauth_free_clnt_node(struct auth_cache_clnt *p) nfsauth_free_node(node); avl_destroy(&p->authc_tree); - kmem_free(p->authc_addr.buf, p->authc_addr.len); + kmem_free(p->authc_addr.buf, p->authc_addr.maxlen); rw_destroy(&p->authc_lock); kmem_free(p, sizeof (*p)); diff --git a/usr/src/uts/common/fs/zfs/arc.c b/usr/src/uts/common/fs/zfs/arc.c index 434842e519..b7bf5ad40a 100644 --- a/usr/src/uts/common/fs/zfs/arc.c +++ b/usr/src/uts/common/fs/zfs/arc.c @@ -1306,6 +1306,13 @@ arc_hdr_realloc(arc_buf_hdr_t *hdr, kmem_cache_t *old, kmem_cache_t *new) VERIFY(!HDR_L2_WRITING(hdr)); VERIFY3P(hdr->b_l1hdr.b_tmp_cdata, ==, NULL); +#ifdef ZFS_DEBUG + if (hdr->b_l1hdr.b_thawed != NULL) { + kmem_free(hdr->b_l1hdr.b_thawed, 1); + hdr->b_l1hdr.b_thawed = NULL; + } +#endif + nhdr->b_flags &= ~ARC_FLAG_HAS_L1HDR; } /* |