From 5b0c0bef2694766cb7c18d2d57017bf89fc3847d Mon Sep 17 00:00:00 2001 From: YmrDtnJu Date: Sat, 10 Dec 2016 01:30:59 +0100 Subject: [PATCH] zfs_arc: Ignore the first two lines of the statistics file on Linux. The first two lines of the statistics file on Linux contain information about the rest of the file. They do not contain any usable statistics. See module/spl/spl-kstat.c of the spl module of ZFS on Linux for more information. --- src/zfs_arc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/zfs_arc.c b/src/zfs_arc.c index af5130aa..2f8b2f42 100644 --- a/src/zfs_arc.c +++ b/src/zfs_arc.c @@ -212,6 +212,21 @@ static int za_read(void) { return (-1); } + // Ignore the first two lines because they contain information about + // the rest of the file. + // See kstat_seq_show_headers module/spl/spl-kstat.c of the spl kernel + // module. + if (fgets(buffer, sizeof(buffer), fh) == NULL) { + ERROR("zfs_arc plugin: \"%s\" does not contain a single line.", ZOL_ARCSTATS_FILE); + fclose(fh); + return (-1); + } + if (fgets(buffer, sizeof(buffer), fh) == NULL) { + ERROR("zfs_arc plugin: \"%s\" does not contain at least two lines.", ZOL_ARCSTATS_FILE); + fclose(fh); + return (-1); + } + while (fgets(buffer, sizeof(buffer), fh) != NULL) { char *fields[3]; value_t v; -- 2.30.2