X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fosd-zfs%2Fosd_internal.h;h=e3daa1fe756ad205a5a00637999a08a83e8f2a3f;hp=a59ff873ba0d5e7a7f27273bcc5d37c34923f0e3;hb=9765c6174ef580fb4deef4e7faea6d5ed634b00f;hpb=f56b701235674c8661691d73f55570c161fa13cb diff --git a/lustre/osd-zfs/osd_internal.h b/lustre/osd-zfs/osd_internal.h index a59ff87..e3daa1fe 100644 --- a/lustre/osd-zfs/osd_internal.h +++ b/lustre/osd-zfs/osd_internal.h @@ -595,4 +595,49 @@ osd_zio_buf_free(void *buf, size_t size) #define osd_zio_buf_free(buf, size) zio_buf_free(buf, size) #endif +#ifdef HAVE_DMU_OBJECT_ALLOC_DNSIZE +static inline uint64_t +osd_dmu_object_alloc(objset_t *os, dmu_object_type_t objtype, int blocksize, + int dnodesize, dmu_tx_t *tx) +{ + if (dnodesize == 0) + dnodesize = MAX(dmu_objset_dnodesize(os), DNODE_MIN_SIZE); + + return dmu_object_alloc_dnsize(os, objtype, blocksize, DMU_OT_SA, + DN_BONUS_SIZE(dnodesize), dnodesize, tx); +} + +static inline uint64_t +osd_zap_create_flags(objset_t *os, int normflags, zap_flags_t flags, + dmu_object_type_t ot, int leaf_blockshift, + int indirect_blockshift, int dnodesize, dmu_tx_t *tx) +{ + if (dnodesize == 0) + dnodesize = MAX(dmu_objset_dnodesize(os), DNODE_MIN_SIZE); + + return zap_create_flags_dnsize(os, normflags, flags, ot, + leaf_blockshift, indirect_blockshift, + DMU_OT_SA, DN_BONUS_SIZE(dnodesize), + dnodesize, tx); +} +#else +static inline uint64_t +osd_dmu_object_alloc(objset_t *os, dmu_object_type_t objtype, int blocksize, + int dnodesize, dmu_tx_t *tx) +{ + return dmu_object_alloc(os, objtype, blocksize, DMU_OT_SA, + DN_MAX_BONUSLEN, tx); +} + +static inline uint64_t +osd_zap_create_flags(objset_t *os, int normflags, zap_flags_t flags, + dmu_object_type_t ot, int leaf_blockshift, + int indirect_blockshift, int dnodesize, dmu_tx_t *tx) +{ + return zap_create_flags(os, normflags, flags, ot, leaf_blockshift, + indirect_blockshift, DMU_OT_SA, + DN_MAX_BONUSLEN, tx); +} +#endif /* HAVE_DMU_OBJECT_ALLOC_DNSIZE */ + #endif /* _OSD_INTERNAL_H */