fiemap copy: avoid a performance hit due to very small buffer
authorJim Meyering <meyering@redhat.com>
Thu, 27 Jan 2011 16:30:08 +0000 (17:30 +0100)
committerJim Meyering <meyering@redhat.com>
Sun, 30 Jan 2011 19:44:12 +0000 (20:44 +0100)
* src/copy.c (extent_copy): Don't let what should have been a
temporary reduction of buf_size (to handle a short ext_len) become
permanent and thus impact the performance of all further iterations.

src/copy.c

index ab18a76..9a3a8f7 100644 (file)
@@ -270,9 +270,8 @@ extent_copy (int src_fd, int dest_fd, char *buf, size_t buf_size,
             {
               /* Don't read from a following hole if EXT_LEN
                  is smaller than the buffer size.  */
-              buf_size = MIN (ext_len, buf_size);
-
-              ssize_t n_read = read (src_fd, buf, buf_size);
+              size_t b_size = MIN (ext_len, buf_size);
+              ssize_t n_read = read (src_fd, buf, b_size);
               if (n_read < 0)
                 {
 #ifdef EINTR