diff --git a/man/man5/zfs-module-parameters.5 b/man/man5/zfs-module-parameters.5 index de3f35bbb..35ea9d9f6 100644 --- a/man/man5/zfs-module-parameters.5 +++ b/man/man5/zfs-module-parameters.5 @@ -301,6 +301,22 @@ rewind" (\fB-X\fR) pool import. Default value: 10000 .RE +.sp +.ne 2 +.na +\fBspa_slop_shift\fR (int) +.ad +.RS 12n +Normally, we don't allow the last 3.2% (1/(2^spa_slop_shift)) of space +in the pool to be consumed. This ensures that we don't run the pool +completely out of space, due to unaccounted changes (e.g. to the MOS). +It also limits the worst-case time to allocate space. If we have +less than this amount of free space, most ZPL operations (e.g. write, +create) will return ENOSPC. +.sp +Default value: 5 +.RE + .sp .ne 2 .na diff --git a/module/zfs/spa_misc.c b/module/zfs/spa_misc.c index ad9f9fe28..409dce121 100644 --- a/module/zfs/spa_misc.c +++ b/module/zfs/spa_misc.c @@ -2094,4 +2094,7 @@ MODULE_PARM_DESC(zfs_deadman_enabled, "Enable deadman timer"); module_param(spa_asize_inflation, int, 0644); MODULE_PARM_DESC(spa_asize_inflation, "SPA size estimate multiplication factor"); + +module_param(spa_slop_shift, int, 0644); +MODULE_PARM_DESC(spa_slop_shift, "Reserved free space in pool"); #endif