diff --git a/doc/man/8/rbd.rst b/doc/man/8/rbd.rst index e1a1e728640..b8fd324804c 100644 --- a/doc/man/8/rbd.rst +++ b/doc/man/8/rbd.rst @@ -747,6 +747,10 @@ Per mapping (block device) `rbd device map` options: requests will fail with -EOPNOTSUPP, write zeroes requests will fall back to manually zeroing. +* abort_on_full - Fail write requests with -ENOSPC when the cluster is full or + the data pool reaches its quota (since 5.0). The default behaviour is to + block until the full condition is cleared. + `rbd device unmap` options: * force - Force the unmapping of a block device that is open (since 4.9). The diff --git a/src/tools/rbd/action/Kernel.cc b/src/tools/rbd/action/Kernel.cc index 2695fb16f3c..f3e18f96a20 100644 --- a/src/tools/rbd/action/Kernel.cc +++ b/src/tools/rbd/action/Kernel.cc @@ -148,6 +148,8 @@ static int parse_map_options(const std::string &options_string) put_map_option("exclusive", this_char); } else if (!strcmp(this_char, "notrim")) { put_map_option("notrim", this_char); + } else if (!strcmp(this_char, "abort_on_full")) { + put_map_option("abort_on_full", this_char); } else { std::cerr << "rbd: unknown map option '" << this_char << "'" << std::endl; return -EINVAL;