From: Hitoshi Kamei Date: Tue, 27 Mar 2018 06:39:02 +0000 (+0900) Subject: rbd: add notrim option to rbd map X-Git-Tag: v13.1.0~197^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bed9225607883905a20b612fe8906728dd614d80;p=ceph.git rbd: add notrim option to rbd map Add the notrim option to the rbd map command to avoid discarding allocated blocks from a fully provisioned image, and add the description of notrim option to manpage. When enabled, user programs such as mkfs.xfs will receive -EOPNOTSUPP if it sends a discard request for an image with this option. Signed-off-by: Hitoshi Kamei Cc: Mitsuo Hayasaka --- diff --git a/doc/man/8/rbd.rst b/doc/man/8/rbd.rst index fbbbc9aaecda..85875d560501 100644 --- a/doc/man/8/rbd.rst +++ b/doc/man/8/rbd.rst @@ -661,6 +661,11 @@ Per mapping (block device) `rbd device map` options: * exclusive - Disable automatic exclusive lock transitions (since 4.12). +* notrim - Turn off discard and write zeroes offload support to avoid + deprovisioning a fully provisioned image (since 4.17). When enabled, discard + requests will fail with -EOPNOTSUPP, write zeroes requests will fall back to + manually zeroing. + `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 cbcff9c76a34..ae48e1db0860 100644 --- a/src/tools/rbd/action/Kernel.cc +++ b/src/tools/rbd/action/Kernel.cc @@ -143,6 +143,8 @@ static int parse_map_options(const std::string &options_string) put_map_option("lock_on_read", this_char); } else if (!strcmp(this_char, "exclusive")) { put_map_option("exclusive", this_char); + } else if (!strcmp(this_char, "notrim")) { + put_map_option("notrim", this_char); } else { std::cerr << "rbd: unknown map option '" << this_char << "'" << std::endl; return -EINVAL;