From 854c90ecc031232a3bd6d94b149f84d5c2e1ab11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= Date: Thu, 13 Apr 2023 13:15:31 +0100 Subject: copy: --debug: indicate if NUL detection is used with SEEK_HOLE * src/copy.c (sparse_copy): With --sparse=always we also detect NULs in extents we're copying, so indicate this with --debug. --- src/copy.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/copy.c b/src/copy.c index 0476d95ca..13d93324f 100644 --- a/src/copy.c +++ b/src/copy.c @@ -146,6 +146,7 @@ enum copy_debug_val COPY_DEBUG_NO, COPY_DEBUG_YES, COPY_DEBUG_EXTERNAL, + COPY_DEBUG_EXTERNAL_INTERNAL, COPY_DEBUG_AVOIDED, COPY_DEBUG_UNSUPPORTED, }; @@ -179,6 +180,7 @@ copy_debug_sparse_string (enum copy_debug_val debug_val) case COPY_DEBUG_NO: return "no"; case COPY_DEBUG_YES: return "zeros"; case COPY_DEBUG_EXTERNAL: return "SEEK_HOLE"; + case COPY_DEBUG_EXTERNAL_INTERNAL: return "SEEK_HOLE + zeros"; default: return "unknown"; } } @@ -325,6 +327,8 @@ sparse_copy (int src_fd, int dest_fd, char **abuf, size_t buf_size, if (copy_debug.sparse_detection == COPY_DEBUG_UNKNOWN) copy_debug.sparse_detection = hole_size ? COPY_DEBUG_YES : COPY_DEBUG_NO; + else if (hole_size && copy_debug.sparse_detection == COPY_DEBUG_EXTERNAL) + copy_debug.sparse_detection = COPY_DEBUG_EXTERNAL_INTERNAL; /* If not looking for holes, use copy_file_range if functional, but don't use if reflink disallowed as that may be implicit. */ -- cgit v1.2.1