From 71be8dbbf03ccf9f8b727b0104dabd93f9a55311 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.11.0