* whose dnodes are in the same block.
*/
static int
- dmu_buf_hold_array_by_dnode(dnode_t *dn, uint64_t offset,
- uint64_t length, int rd, void *tag, int *numbufsp, dmu_buf_t ***dbpp)
+ dmu_buf_hold_array_by_dnode(dnode_t *dn, uint64_t offset, uint64_t length,
- int read, void *tag, int *numbufsp, dmu_buf_t ***dbpp, uint32_t flags)
++ int rd, void *tag, int *numbufsp, dmu_buf_t ***dbpp, uint32_t flags)
{
dsl_pool_t *dp = NULL;
dmu_buf_t **dbp;
return (EIO);
}
/* initiate async i/o */
- if (read) {
+ if (rd) {
rw_exit(&dn->dn_struct_rwlock);
- (void) dbuf_read(db, zio, flags);
+ (void) dbuf_read(db, zio, dbuf_flags);
rw_enter(&dn->dn_struct_rwlock, RW_READER);
}
dbp[i] = &db->db;
if (err)
return (err);
- err = dmu_buf_hold_array_by_dnode(dn, offset, length, read, tag,
+ err = dmu_buf_hold_array_by_dnode(dn, offset, length, rd, tag,
- numbufsp, dbpp);
+ numbufsp, dbpp, DMU_READ_PREFETCH);
dnode_rele(dn, FTAG);
dnode_t *dn = ((dmu_buf_impl_t *)db)->db_dnode;
int err;
- err = dmu_buf_hold_array_by_dnode(dn, offset, length, read, tag,
+ err = dmu_buf_hold_array_by_dnode(dn, offset, length, rd, tag,
- numbufsp, dbpp);
+ numbufsp, dbpp, DMU_READ_PREFETCH);
return (err);
}