- ll_inode_fill_obdo(inode, rw == WRITE ? OBD_BRW_WRITE : OBD_BRW_READ, &oa);
-
- if (rw == WRITE) {
- lprocfs_counter_add(ll_i2sbi(inode)->ll_stats,
- LPROC_LL_DIRECT_WRITE, size);
- opc = CAPA_OPC_OSS_WRITE;
- llap_write_pending(inode, NULL);
- } else {
- lprocfs_counter_add(ll_i2sbi(inode)->ll_stats,
- LPROC_LL_DIRECT_READ, size);
- opc = CAPA_OPC_OSS_RW;
- }
- ocapa = ll_osscapa_get(inode, opc);
- rc = obd_brw_rqset(rw == WRITE ? OBD_BRW_WRITE : OBD_BRW_READ,
- ll_i2dtexp(inode), &oa, lsm, page_count, pga, NULL,
- ocapa);
- capa_put(ocapa);
- if ((rc > 0) && (rw == WRITE)) {
- lov_stripe_lock(lsm);
- obd_adjust_kms(ll_i2dtexp(inode), lsm, file_offset_orig + rc, 0);
- lov_stripe_unlock(lsm);
- }
+ rc = obd_brw_async(rw == WRITE ? OBD_BRW_WRITE : OBD_BRW_READ,
+ ll_i2dtexp(inode), oinfo, page_count,
+ pga, NULL, set);
+ if (rc == 0)
+ rc = size;