On Fri, 25 Sep 2009, Dr. David Alan Gilbert wrote: > * Miklos Szeredi (miklos@xxxxxxxxxx) wrote: > > On Fri, 25 Sep 2009, Andreas Gruenbacher wrote: > > > On Thursday, 24 September 2009 16:51:58 Miklos Szeredi wrote: > > > > This patch adds a new open flag, O_NODE. This flag means: open just > > > > the filesystem node instead of the object referenced by the node. > > > > > > What is the intended use for O_NODE? > > > > It lets userspace file descriptors reference a inode without actually > > "dereferencing" it to get the underlying object. This allows for a > > couple of new things: > > > > - opening a special file (device/socket/fifo) without side effects > > > > - opening a symlink > > > > - opening any type of file without any permission is also possible > > (of course the resuling file descriptor may not be read or written) > > > > The above allows fstat(), fchmod(), ioctl(), etc to be used for files > > previously not possible. > > Given an fd opened in this way is it possible to reopen it normally and > be guarenteed to get the same object? For directories it should be possible with: fd = open(path, O_NOACCESS | O_NODE); fd2 = openat(fd, ".", O_RDWR); We could implement something similar for non-directories as well, by treating a NULL path parameter to openat() to mean - reopen: fd2 = openat(fd, NULL, O_RDWR); Comments? Thanks, Miklos -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html