On June 21, 2019 3:12:43 PM GMT+02:00, David Howells <dhowells@xxxxxxxxxx> wrote: >Christian Brauner <christian@xxxxxxxxxx> wrote: > >> > static int vfs_fsinfo_fd(unsigned int fd, struct fsinfo_kparams >*params) >> > { >> > struct fd f = fdget_raw(fd); >> >> You're using fdget_raw() which means you want to allow O_PATH fds but >> below you're checking whether the f_ops correspond to >> fscontext_fops. If it's an O_PATH > >It can't be. The only way to get an fs_context fd is from fsopen() or >fspick() - neither of which allow O_PATH to be specified. > >If you tried to go through /proc/pid/fd with open(O_PATH), I think >you'd get >the symlink, not the target. Then you should use fdget(), no? :) Christian