switch infinibarf users of fget() to fget_light()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c
index 055ed59..6b2ae72 100644
--- a/drivers/infiniband/core/ucma.c
+++ b/drivers/infiniband/core/ucma.c
@@ -1186,13 +1186,13 @@
 	struct ucma_context *ctx;
 	struct file *filp;
 	struct ucma_file *cur_file;
-	int ret = 0;
+	int ret = 0, fput_needed;
 
 	if (copy_from_user(&cmd, inbuf, sizeof(cmd)))
 		return -EFAULT;
 
 	/* Get current fd to protect against it being closed */
-	filp = fget(cmd.fd);
+	filp = fget_light(cmd.fd, &fput_needed);
 	if (!filp)
 		return -ENOENT;
 
@@ -1231,7 +1231,7 @@
 
 	ucma_put_ctx(ctx);
 file_put:
-	fput(filp);
+	fput_light(filp, fput_needed);
 	return ret;
 }
 
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index f9d0d7c..402679b 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -707,7 +707,7 @@
 	struct ib_xrcd                 *xrcd = NULL;
 	struct file                    *f = NULL;
 	struct inode                   *inode = NULL;
-	int				ret = 0;
+	int				ret = 0, fput_needed;
 	int				new_xrcd = 0;
 
 	if (out_len < sizeof resp)
@@ -724,18 +724,13 @@
 
 	if (cmd.fd != -1) {
 		/* search for file descriptor */
-		f = fget(cmd.fd);
+		f = fget_light(cmd.fd, &fput_needed);
 		if (!f) {
 			ret = -EBADF;
 			goto err_tree_mutex_unlock;
 		}
 
 		inode = f->f_dentry->d_inode;
-		if (!inode) {
-			ret = -EBADF;
-			goto err_tree_mutex_unlock;
-		}
-
 		xrcd = find_xrcd(file->device, inode);
 		if (!xrcd && !(cmd.oflags & O_CREAT)) {
 			/* no file descriptor. Need CREATE flag */
@@ -801,7 +796,7 @@
 	}
 
 	if (f)
-		fput(f);
+		fput_light(f, fput_needed);
 
 	mutex_lock(&file->mutex);
 	list_add_tail(&obj->uobject.list, &file->ucontext->xrcd_list);
@@ -831,7 +826,7 @@
 
 err_tree_mutex_unlock:
 	if (f)
-		fput(f);
+		fput_light(f, fput_needed);
 
 	mutex_unlock(&file->device->xrcd_tree_mutex);
 
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index 604556d..acf75c2 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -542,8 +542,9 @@
 {
 	struct ib_uverbs_event_file *ev_file = NULL;
 	struct file *filp;
+	int fput_needed;
 
-	filp = fget(fd);
+	filp = fget_light(fd, &fput_needed);
 	if (!filp)
 		return NULL;
 
@@ -559,7 +560,7 @@
 	kref_get(&ev_file->ref);
 
 out:
-	fput(filp);
+	fput_light(filp, fput_needed);
 	return ev_file;
 }