@@ -23,6 +23,8 @@
#include "init.h"
#include "io.h"
+#define EXTENT_BATCH 32
+
static cmdinfo_t fiemap_cmd;
static int max_extents = 0;
@@ -195,7 +197,6 @@ fiemap_f(
char **argv)
{
struct fiemap *fiemap;
- int num_extents = 32;
int last = 0;
int lflag = 0;
int vflag = 0;
@@ -231,10 +232,8 @@ fiemap_f(
}
}
- if (max_extents)
- num_extents = min(num_extents, max_extents);
map_size = sizeof(struct fiemap) +
- (num_extents * sizeof(struct fiemap_extent));
+ (EXTENT_BATCH * sizeof(struct fiemap_extent));
fiemap = malloc(map_size);
if (!fiemap) {
fprintf(stderr, _("%s: malloc of %d bytes failed.\n"),
@@ -246,15 +245,12 @@ fiemap_f(
printf("%s:\n", file->name);
while (!last && ((cur_extent + 1) != max_extents)) {
- if (max_extents)
- num_extents = min(num_extents,
- max_extents - (cur_extent + 1));
memset(fiemap, 0, map_size);
fiemap->fm_flags = fiemap_flags;
fiemap->fm_start = last_logical;
fiemap->fm_length = -1LL;
- fiemap->fm_extent_count = num_extents;
+ fiemap->fm_extent_count = EXTENT_BATCH;
ret = ioctl(file->fd, FS_IOC_FIEMAP, (unsigned long)fiemap);
if (ret < 0) {
Fiemap has this rather convoluted logic to calculate the number of extents to query. This introduces needless complexity with no real benefit. Remove num_extents and instead hardcode the number of extents we query for in a single go to 32. No functional changes Signed-off-by: Nikolay Borisov <nborisov@suse.com> --- io/fiemap.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-)