summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
diff options
context:
space:
mode:
authorBryan Cantrill <bryan@joyent.com>2013-03-11 18:02:14 +0000
committerBryan Cantrill <bryan@joyent.com>2013-03-11 18:46:31 +0000
commiteddec1f8e073d28091aae9c7be37f7c6e433cfb0 (patch)
tree87f96226a6b3d91364255d657cad6b033359c904 /usr/src/uts/common/fs/tmpfs/tmp_vnops.c
parent077880e88374f944d97873eb2b40105b7a775345 (diff)
downloadillumos-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.c9
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)