Lines Matching refs:aio_req

1015 			      struct ceph_aio_request *aio_req)
1020 if (!atomic_dec_and_test(&aio_req->pending_reqs))
1023 if (aio_req->iocb->ki_flags & IOCB_DIRECT)
1026 ret = aio_req->error;
1028 ret = aio_req->total_len;
1032 if (ret >= 0 && aio_req->write) {
1035 loff_t endoff = aio_req->iocb->ki_pos + aio_req->total_len;
1044 &aio_req->prealloc_cf);
1051 ceph_put_cap_refs(ci, (aio_req->write ? CEPH_CAP_FILE_WR :
1054 aio_req->iocb->ki_complete(aio_req->iocb, ret, 0);
1056 ceph_free_cap_flush(aio_req->prealloc_cf);
1057 kfree(aio_req);
1064 struct ceph_aio_request *aio_req = req->r_priv;
1076 if (aio_req->write)
1086 BUG_ON(!aio_req->write);
1097 } else if (!aio_req->write) {
1109 if (aio_req->num_reqs == 1) {
1111 loff_t endoff = aio_req->iocb->ki_pos + rc;
1115 aio_req->total_len = rc + zlen;
1127 aio_req->should_dirty);
1131 cmpxchg(&aio_req->error, 0, rc);
1133 ceph_aio_complete(inode, aio_req);
1142 struct ceph_aio_request *aio_req = orig_req->r_priv;
1176 req->r_mtime = aio_req->mtime;
1190 req->r_priv = aio_req;
1216 struct ceph_aio_request *aio_req = NULL;
1284 aio_req = kzalloc(sizeof(*aio_req), GFP_KERNEL);
1285 if (aio_req) {
1286 aio_req->iocb = iocb;
1287 aio_req->write = write;
1288 aio_req->should_dirty = should_dirty;
1289 INIT_LIST_HEAD(&aio_req->osd_reqs);
1291 aio_req->mtime = mtime;
1292 swap(aio_req->prealloc_cf, *pcf);
1311 if (aio_req) {
1312 aio_req->total_len += len;
1313 aio_req->num_reqs++;
1314 atomic_inc(&aio_req->pending_reqs);
1318 req->r_priv = aio_req;
1319 list_add_tail(&req->r_private_item, &aio_req->osd_reqs);
1371 if (aio_req) {
1374 if (aio_req->num_reqs == 0) {
1375 kfree(aio_req);
1382 list_splice(&aio_req->osd_reqs, &osd_reqs);