Messages in this thread | | | Subject | Re: [PATCH] devpts: Sensible /dev/ptmx & force newinstance | From | "H. Peter Anvin" <> | Date | Fri, 11 Dec 2015 14:07:45 -0800 |
| |
On 12/11/15 13:48, Andy Lutomirski wrote: > On Fri, Dec 11, 2015 at 1:11 PM, Eric W. Biederman > <ebiederm@xmission.com> wrote: >> Al Viro <viro@ZenIV.linux.org.uk> writes: >> >>> On Fri, Dec 11, 2015 at 01:40:40PM -0600, Eric W. Biederman wrote: >>> >>>> + inode = path.dentry->d_inode; >>>> + filp->f_path = path; >>>> + filp->f_inode = inode; >>>> + filp->f_mapping = inode->i_mapping; >>>> + path_put(&old); >>> >>> Don't. You are creating a fairly subtle constraint on what the code in >>> fs/open.c and fs/namei.c can do, for no good reason. You can bloody >>> well maintain the information you need without that. >> >> There is a good reason. We can not write a race free version of ptsname >> without it. > > As long as this is for new userspace code, would it make sense to just > add a new ioctl to ask "does this ptmx fd match this /dev/pts fd?" >
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.
-hpa
| |