Lines Matching refs:ki
29 static inline void cachefiles_put_kiocb(struct cachefiles_kiocb *ki) in cachefiles_put_kiocb() argument
31 if (refcount_dec_and_test(&ki->ki_refcnt)) { in cachefiles_put_kiocb()
32 fput(ki->iocb.ki_filp); in cachefiles_put_kiocb()
33 kfree(ki); in cachefiles_put_kiocb()
42 struct cachefiles_kiocb *ki = container_of(iocb, struct cachefiles_kiocb, iocb); in cachefiles_read_complete() local
46 if (ki->term_func) { in cachefiles_read_complete()
48 ret += ki->skipped; in cachefiles_read_complete()
49 ki->term_func(ki->term_func_priv, ret, ki->was_async); in cachefiles_read_complete()
52 cachefiles_put_kiocb(ki); in cachefiles_read_complete()
65 struct cachefiles_kiocb *ki; in cachefiles_read() local
104 ki = kzalloc(sizeof(struct cachefiles_kiocb), GFP_KERNEL); in cachefiles_read()
105 if (!ki) in cachefiles_read()
108 refcount_set(&ki->ki_refcnt, 2); in cachefiles_read()
109 ki->iocb.ki_filp = file; in cachefiles_read()
110 ki->iocb.ki_pos = start_pos + skipped; in cachefiles_read()
111 ki->iocb.ki_flags = IOCB_DIRECT; in cachefiles_read()
112 ki->iocb.ki_hint = ki_hint_validate(file_write_hint(file)); in cachefiles_read()
113 ki->iocb.ki_ioprio = get_current_ioprio(); in cachefiles_read()
114 ki->skipped = skipped; in cachefiles_read()
115 ki->term_func = term_func; in cachefiles_read()
116 ki->term_func_priv = term_func_priv; in cachefiles_read()
117 ki->was_async = true; in cachefiles_read()
119 if (ki->term_func) in cachefiles_read()
120 ki->iocb.ki_complete = cachefiles_read_complete; in cachefiles_read()
122 get_file(ki->iocb.ki_filp); in cachefiles_read()
125 ret = vfs_iocb_iter_read(file, &ki->iocb, iter); in cachefiles_read()
141 ki->was_async = false; in cachefiles_read()
142 cachefiles_read_complete(&ki->iocb, ret); in cachefiles_read()
149 cachefiles_put_kiocb(ki); in cachefiles_read()
164 struct cachefiles_kiocb *ki = container_of(iocb, struct cachefiles_kiocb, iocb); in cachefiles_write_complete() local
165 struct inode *inode = file_inode(ki->iocb.ki_filp); in cachefiles_write_complete()
173 if (ki->term_func) in cachefiles_write_complete()
174 ki->term_func(ki->term_func_priv, ret, ki->was_async); in cachefiles_write_complete()
176 cachefiles_put_kiocb(ki); in cachefiles_write_complete()
188 struct cachefiles_kiocb *ki; in cachefiles_write() local
199 ki = kzalloc(sizeof(struct cachefiles_kiocb), GFP_KERNEL); in cachefiles_write()
200 if (!ki) in cachefiles_write()
203 refcount_set(&ki->ki_refcnt, 2); in cachefiles_write()
204 ki->iocb.ki_filp = file; in cachefiles_write()
205 ki->iocb.ki_pos = start_pos; in cachefiles_write()
206 ki->iocb.ki_flags = IOCB_DIRECT | IOCB_WRITE; in cachefiles_write()
207 ki->iocb.ki_hint = ki_hint_validate(file_write_hint(file)); in cachefiles_write()
208 ki->iocb.ki_ioprio = get_current_ioprio(); in cachefiles_write()
209 ki->start = start_pos; in cachefiles_write()
210 ki->len = len; in cachefiles_write()
211 ki->term_func = term_func; in cachefiles_write()
212 ki->term_func_priv = term_func_priv; in cachefiles_write()
213 ki->was_async = true; in cachefiles_write()
215 if (ki->term_func) in cachefiles_write()
216 ki->iocb.ki_complete = cachefiles_write_complete; in cachefiles_write()
227 get_file(ki->iocb.ki_filp); in cachefiles_write()
230 ret = vfs_iocb_iter_write(file, &ki->iocb, iter); in cachefiles_write()
246 ki->was_async = false; in cachefiles_write()
247 cachefiles_write_complete(&ki->iocb, ret); in cachefiles_write()
254 cachefiles_put_kiocb(ki); in cachefiles_write()