]> Pileus Git - ~andy/linux/blobdiff - drivers/infiniband/core/uverbs_cmd.c
Merge tag 'mfd-3.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
[~andy/linux] / drivers / infiniband / core / uverbs_cmd.c
index 402679bd30a3be6aae739932bc7df9db8fffa09a..0cb0007724a2d70611b7b1c7e3119dbf90d5d765 100644 (file)
@@ -705,9 +705,9 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file,
        struct ib_udata                 udata;
        struct ib_uxrcd_object         *obj;
        struct ib_xrcd                 *xrcd = NULL;
-       struct file                    *f = NULL;
+       struct fd                       f = {NULL, 0};
        struct inode                   *inode = NULL;
-       int                             ret = 0, fput_needed;
+       int                             ret = 0;
        int                             new_xrcd = 0;
 
        if (out_len < sizeof resp)
@@ -724,13 +724,13 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file,
 
        if (cmd.fd != -1) {
                /* search for file descriptor */
-               f = fget_light(cmd.fd, &fput_needed);
-               if (!f) {
+               f = fdget(cmd.fd);
+               if (!f.file) {
                        ret = -EBADF;
                        goto err_tree_mutex_unlock;
                }
 
-               inode = f->f_dentry->d_inode;
+               inode = f.file->f_path.dentry->d_inode;
                xrcd = find_xrcd(file->device, inode);
                if (!xrcd && !(cmd.oflags & O_CREAT)) {
                        /* no file descriptor. Need CREATE flag */
@@ -795,8 +795,8 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file,
                goto err_copy;
        }
 
-       if (f)
-               fput_light(f, fput_needed);
+       if (f.file)
+               fdput(f);
 
        mutex_lock(&file->mutex);
        list_add_tail(&obj->uobject.list, &file->ucontext->xrcd_list);
@@ -825,8 +825,8 @@ err:
        put_uobj_write(&obj->uobject);
 
 err_tree_mutex_unlock:
-       if (f)
-               fput_light(f, fput_needed);
+       if (f.file)
+               fdput(f);
 
        mutex_unlock(&file->device->xrcd_tree_mutex);