diff --git a/include/sys/zvol.h b/include/sys/zvol.h index 00ed220d3b..2fb20fbf94 100644 --- a/include/sys/zvol.h +++ b/include/sys/zvol.h @@ -32,6 +32,9 @@ #define ZVOL_OBJ 1ULL #define ZVOL_ZAP_OBJ 2ULL +#define SPEC_MAXOFFSET_T ((1LL << ((NBBY * sizeof (daddr32_t)) + \ + DEV_BSHIFT - 1)) - 1) + extern void *zvol_tag; extern void zvol_create_minors(spa_t *spa, const char *name, boolean_t async); diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c index b5169baf48..ea6997b5b9 100644 --- a/module/zfs/zvol.c +++ b/module/zfs/zvol.c @@ -281,7 +281,7 @@ zvol_check_volsize(uint64_t volsize, uint64_t blocksize) return (SET_ERROR(EINVAL)); #ifdef _ILP32 - if (volsize - 1 > MAXOFFSET_T) + if (volsize - 1 > SPEC_MAXOFFSET_T) return (SET_ERROR(EOVERFLOW)); #endif return (0);