tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Enhance ptyfs to handle multiple instances.
> | On 27.03.2014 12:51, Ilya Zykov wrote:
> | > Hello!
> | > Maybe you skipped:
> | > Minor corrections readdir and lookup for multi-mountpoint use.
> | >
> | > ptyfs_vnops.c | 6 ++++--
> | > 1 file changed, 4 insertions(+), 2 deletions(-)
Please, don't forget this, otherwise readdir returns released(free), but still
hashed inode numbers.
Ilya.
Index: fs/ptyfs/ptyfs_vnops.c
===================================================================
RCS file: /cvsil/nbcur/src/sys/fs/ptyfs/ptyfs_vnops.c,v
retrieving revision 1.3
diff -u -p -r1.3 ptyfs_vnops.c
--- fs/ptyfs/ptyfs_vnops.c 24 Mar 2014 20:48:09 -0000 1.3
+++ fs/ptyfs/ptyfs_vnops.c 26 Mar 2014 08:49:47 -0000
@@ -616,7 +616,8 @@ ptyfs_lookup(void *v)
pty = atoi(pname, cnp->cn_namelen);
- if (pty < 0 || pty >= npty || pty_isfree(pty, 1))
+ if (pty < 0 || pty >= npty || pty_isfree(pty, 1) ||
+ ptyfs_used_get(PTYFSptc, pty, dvp->v_mount, 0) == NULL)
break;
error = ptyfs_allocvp(dvp->v_mount, vpp, PTYFSpts, pty,
@@ -711,7 +712,8 @@ ptyfs_readdir(void *v)
}
for (; uio->uio_resid >= UIO_MX && i < npty; i++) {
/* check for used ptys */
- if (ptyfs_used_get(PTYFSptc, i - 2, vp->v_mount, 0) == NULL)
+ if (pty_isfree(i - 2, 1) ||
+ ptyfs_used_get(PTYFSptc, i - 2, vp->v_mount, 0) == NULL)
continue;
dp->d_fileno = PTYFS_FILENO(i - 2, PTYFSpts);
Home |
Main Index |
Thread Index |
Old Index