diff options
author | vikram <none@none> | 2006-09-05 15:37:39 -0700 |
---|---|---|
committer | vikram <none@none> | 2006-09-05 15:37:39 -0700 |
commit | 7469ad704c89eba7390bd61b6b456f6bffdf21d1 (patch) | |
tree | 94ca76bc1c0b7640dd0e0c3d3ddb45dff964b11a /usr/src | |
parent | 824c205f0f8b4a6b02f9096e50cb9e298ddcc0a5 (diff) | |
download | illumos-gate-7469ad704c89eba7390bd61b6b456f6bffdf21d1.tar.gz |
6467069 devfs doesn't clean up pts (and possible other devices)
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/fs/namefs/namevfs.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/namefs/namevfs.c b/usr/src/uts/common/fs/namefs/namevfs.c index 5d4b270661..c54254070f 100644 --- a/usr/src/uts/common/fs/namefs/namevfs.c +++ b/usr/src/uts/common/fs/namefs/namevfs.c @@ -309,6 +309,7 @@ nm_mount(vfs_t *vfsp, vnode_t *mvp, struct mounta *uap, cred_t *crp) struct vnode *filevp; /* file descriptor vnode */ struct file *fp; struct vnode *newvp; /* vnode representing this mount */ + struct vnode *rvp; /* realvp (if any) for the mountpt */ struct namenode *nodep; /* namenode for this mount */ struct vattr filevattr; /* attributes of file dec. */ struct vattr *vattrp; /* attributes of this mount */ @@ -353,7 +354,10 @@ nm_mount(vfs_t *vfsp, vnode_t *mvp, struct mounta *uap, cred_t *crp) * we cannot allow arbitrary users to park on a * /dev/pts node. */ - if (vn_matchops(mvp, devpts_getvnodeops())) { + rvp = NULLVP; + if (vn_matchops(mvp, spec_getvnodeops()) && + VOP_REALVP(mvp, &rvp) == 0 && rvp && + vn_matchops(rvp, devpts_getvnodeops())) { releasef(namefdp.fd); return (ENOTSUP); } |