diff options
| author | Bryan Cantrill <bryan@joyent.com> | 2013-03-11 18:02:14 +0000 |
|---|---|---|
| committer | Bryan Cantrill <bryan@joyent.com> | 2013-03-11 18:46:31 +0000 |
| commit | eddec1f8e073d28091aae9c7be37f7c6e433cfb0 (patch) | |
| tree | 87f96226a6b3d91364255d657cad6b033359c904 /usr/src/uts/common/fs/tmpfs/tmp_vnops.c | |
| parent | 077880e88374f944d97873eb2b40105b7a775345 (diff) | |
| download | illumos-joyent-eddec1f8e073d28091aae9c7be37f7c6e433cfb0.tar.gz | |
OS-1882 full tmpfs can cause GZ svc.configd to die and not be restartable
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src/uts/common/fs/tmpfs/tmp_vnops.c')
| -rw-r--r-- | usr/src/uts/common/fs/tmpfs/tmp_vnops.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/usr/src/uts/common/fs/tmpfs/tmp_vnops.c b/usr/src/uts/common/fs/tmpfs/tmp_vnops.c index 91ad4f41dd..a2074f284f 100644 --- a/usr/src/uts/common/fs/tmpfs/tmp_vnops.c +++ b/usr/src/uts/common/fs/tmpfs/tmp_vnops.c @@ -877,8 +877,7 @@ tmp_lookup( return (error); } - xdp = tmp_memalloc(sizeof (struct tmpnode), - TMP_MUSTHAVE); + xdp = kmem_zalloc(sizeof (struct tmpnode), KM_SLEEP); tm = VTOTM(dvp); tmpnode_init(tm, xdp, &tp->tn_attr, NULL); /* @@ -1607,7 +1606,7 @@ tmp_symlink( return (error); } len = strlen(tnm) + 1; - cp = tmp_memalloc(len, 0); + cp = kmem_alloc(len, KM_NOSLEEP | KM_NORMALPRI); if (cp == NULL) { tmpnode_rele(self); return (ENOSPC); @@ -1717,7 +1716,7 @@ top: goto top; } if (tp->tn_type == VLNK) - tmp_memfree(tp->tn_symlink, tp->tn_size + 1); + kmem_free(tp->tn_symlink, tp->tn_size + 1); } /* @@ -1751,7 +1750,7 @@ top: rw_destroy(&tp->tn_rwlock); mutex_destroy(&tp->tn_tlock); vn_free(TNTOV(tp)); - tmp_memfree(tp, sizeof (struct tmpnode)); + kmem_free(tp, sizeof (struct tmpnode)); /* If the filesystem was umounted by force, rele the vfs ref */ if (tm->tm_vfsp->vfs_flag & VFS_UNMOUNTED) |
