Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88b428d6 authored by Al Viro's avatar Al Viro
Browse files

switch infinibarf users of fget() to fget_light()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 1d3653a7
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1186,13 +1186,13 @@ static ssize_t ucma_migrate_id(struct ucma_file *new_file,
	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 @@ static ssize_t ucma_migrate_id(struct ucma_file *new_file,

	ucma_put_ctx(ctx);
file_put:
	fput(filp);
	fput_light(filp, fput_needed);
	return ret;
}

+4 −9
Original line number Diff line number Diff line
@@ -707,7 +707,7 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file,
	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 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file,

	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 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file,
	}

	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 @@ ssize_t ib_uverbs_open_xrcd(struct ib_uverbs_file *file,

err_tree_mutex_unlock:
	if (f)
		fput(f);
		fput_light(f, fput_needed);

	mutex_unlock(&file->device->xrcd_tree_mutex);

+3 −2
Original line number Diff line number Diff line
@@ -542,8 +542,9 @@ struct ib_uverbs_event_file *ib_uverbs_lookup_comp_file(int fd)
{
	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 @@ struct ib_uverbs_event_file *ib_uverbs_lookup_comp_file(int fd)
	kref_get(&ev_file->ref);

out:
	fput(filp);
	fput_light(filp, fput_needed);
	return ev_file;
}