switch infinibarf users of fget() to fget_light()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
1d3653a79c
Коммит
88b428d6e1
|
@ -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 @@ response:
|
|||
|
||||
ucma_put_ctx(ctx);
|
||||
file_put:
|
||||
fput(filp);
|
||||
fput_light(filp, fput_needed);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -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 @@ err:
|
|||
|
||||
err_tree_mutex_unlock:
|
||||
if (f)
|
||||
fput(f);
|
||||
fput_light(f, fput_needed);
|
||||
|
||||
mutex_unlock(&file->device->xrcd_tree_mutex);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче