diff options
author | Matthew Macy <[email protected]> | 2019-10-11 10:06:18 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2019-10-11 10:06:18 -0700 |
commit | af1698f59b79eff7e96332518512069ce5824b31 (patch) | |
tree | 2c2a241164b88721f2c1cbf4a98255ee9cf552a8 | |
parent | 803884217f9b9b5fb235d7c5e78a809d271f6387 (diff) |
Expose dmu_buf_hold_array_by_dnode to platform code
FreeBSD uses this in its pager ops routines
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Ryan Moeller <[email protected]>
Signed-off-by: Matt Macy <[email protected]>
Closes #9431
-rw-r--r-- | include/sys/dmu.h | 4 | ||||
-rw-r--r-- | module/zfs/dmu.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/include/sys/dmu.h b/include/sys/dmu.h index 236b90141..33a7667df 100644 --- a/include/sys/dmu.h +++ b/include/sys/dmu.h @@ -564,7 +564,9 @@ int dmu_buf_hold(objset_t *os, uint64_t object, uint64_t offset, void *tag, dmu_buf_t **, int flags); int dmu_buf_hold_by_dnode(dnode_t *dn, uint64_t offset, void *tag, dmu_buf_t **dbp, int flags); - +int dmu_buf_hold_array_by_dnode(dnode_t *dn, uint64_t offset, + uint64_t length, boolean_t read, void *tag, int *numbufsp, + dmu_buf_t ***dbpp, uint32_t flags); /* * Add a reference to a dmu buffer that has already been held via * dmu_buf_hold() in the current context. diff --git a/module/zfs/dmu.c b/module/zfs/dmu.c index 895cac58e..78c673433 100644 --- a/module/zfs/dmu.c +++ b/module/zfs/dmu.c @@ -489,7 +489,7 @@ dmu_spill_hold_by_bonus(dmu_buf_t *bonus, uint32_t flags, void *tag, * and can induce severe lock contention when writing to several files * whose dnodes are in the same block. */ -static int +int dmu_buf_hold_array_by_dnode(dnode_t *dn, uint64_t offset, uint64_t length, boolean_t read, void *tag, int *numbufsp, dmu_buf_t ***dbpp, uint32_t flags) { |