Re: [PATCH RFC 1/5] vringfd syscall
- From: Arnd Bergmann <arnd@xxxxxxxx>
- Date: Tue, 8 Apr 2008 04:35:53 +0200
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 <><
- References:
- [PATCH RFC 1/5] vringfd syscall
- From: Rusty Russell
- [PATCH RFC 1/5] vringfd syscall
- Prev by Date: Re: [-mm] Disable the memory controller by default (v2)
- Next by Date: Re: [-mm] Add an owner to the mm_struct (v8)
- Previous by thread: Re: [PATCH RFC 1/5] vringfd syscall
- Next by thread: Re: [PATCH RFC 1/5] vringfd syscall
- Index(es):
Relevant Pages
|