From 342084b0358f819df09a9f2f1dfa7b590bf9ae04 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 20 Oct 2025 12:59:02 +0200 Subject: [PATCH] loop-util: explain why we propagate discard_max_bytes from backing block device to loopback block device Follow-up for: 29ee9c6fb7c75c421f887c8579c65eb04d4f634d --- src/shared/loop-util.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/shared/loop-util.c b/src/shared/loop-util.c index 690f6aeb2a7..e9064c29105 100644 --- a/src/shared/loop-util.c +++ b/src/shared/loop-util.c @@ -611,6 +611,10 @@ static int loop_device_make_internal( } if (S_ISBLK(st.st_mode)) { + /* Propagate backing device's discard byte limit to our loopback block device. We do this in + * order to avoid that (supposedly quick) discard requests on the loopback device get turned + * into (likely slow) zero-out requests on backing devices that do not support discarding + * natively, but do support zero-out. */ uint64_t discard_max_bytes; r = fd_get_max_discard(fd, &discard_max_bytes); -- 2.47.3