On Saturday 05 April 2008, Rusty Russell wrote: > +asmlinkage long sys_vringfd(void __user *addr, > + unsigned num_descs, > + u16 __user *last_used) > +{ > + int fd, err; > + struct file *filp; > + struct vring_info *vr; > + > + /* Must be a power of two, and representable by u16 */ > + if (!num_descs || (num_descs & (num_descs-1)) || num_descs > 65536) { > + err = -EINVAL; > + goto out; > + } > + > + fd = get_unused_fd(); > + if (fd < 0) { > + err = fd; > + goto out; > + } > + > + filp = alloc_file(vring_mnt, dget(vring_mnt->mnt_root), FMODE_WRITE, > + &vring_fops); > + if (!filp) { > + err = -ENFILE; > + goto put_fd; > + } This looks like a candidate for anon_inode_getfd(), which would let you get rid of the code for registering your own file system. Arnd <>< _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization