On Fri, Dec 11, 2015 at 2:18 PM, H. Peter Anvin <h...@zytor.com> wrote: > On 12/11/15 14:12, Andy Lutomirski wrote: >>> >>> For the newinstance case st_dev should match between the master and the >>> slave. Unfortunately this is not the case for a legacy ptmx, as a >>> stat() on the master descriptor still returns the st_dev, st_rdev, and >>> st_ino for the ptmx device node. >> >> Sure, but I'm not talking about stat. I'm saying that we could add a >> new ioctl that works on any ptmx fd (/dev/ptmx or /dev/pts/ptmx) that >> answers the question "does this ptmx logically belong to the given >> devpts filesystem". >> >> Since it's not stat, we can make it do whatever we want, including >> following a link to the devpts instance that isn't f_path or f_inode. >> > > Sure. My thinking, though, was whether or not we can do something that > works on legacy kernels, and/or is less intrusive than new ioctls. > > What is the actual operation we need?
To do the whole shebang at once: ioctl(ptmx_fd, TIOCWHATEVER, fd_to_devpts_mount); returns the slave number if fd_to_devpts_mount points to the right place or an error if not. ptsname(fd) logically does: fd_to_devpts_mount = open("/dev/pts", O_RDONLY | O_DIRECTORY); int n = ioctl(fd, TIOCWHATEVER, fd_to_devpts_mount); close(fd_to_devpts_mount); if (n < 0) return some error; return "/dev/pts/" + n; I think that all kinds of variants are possible. --Andy > > -hpa > -- Andy Lutomirski AMA Capital Management, LLC -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/