From 5882a762e984ec0091658f458758c44fc63bb9cf Mon Sep 17 00:00:00 2001 From: zhangsong Date: Tue, 23 Jun 2020 07:43:33 +0800 Subject: [PATCH] lxcfs: adapt 4.18 kernel Signed-off-by: zhangsong --- bindings.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/bindings.c b/bindings.c index b2043ec..e3fbf29 100644 --- a/bindings.c +++ b/bindings.c @@ -4226,15 +4226,12 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset, if (!(io_serviced_str = cgfs_get_value("blkio", cg, "blkio.throttle.io_serviced_recursive")) && !(io_serviced_str = cgfs_get_value("blkio", cg, "blkio.throttle.io_serviced"))) goto err; - if (!(io_merged_str = cgfs_get_value("blkio", cg, "blkio.io_merged_recursive"))) - goto err; if (!(io_service_bytes_str = cgfs_get_value("blkio", cg, "blkio.throttle.io_service_bytes_recursive")) && !(io_service_bytes_str = cgfs_get_value("blkio", cg, "blkio.throttle.io_service_bytes"))) goto err; - if (!(io_wait_time_str = cgfs_get_value("blkio", cg, "blkio.io_wait_time_recursive"))) - goto err; - if (!(io_service_time_str = cgfs_get_value("blkio", cg, "blkio.io_service_time_recursive"))) - goto err; + io_merged_str = cgfs_get_value("blkio", cg, "blkio.io_merged_recursive"); + io_wait_time_str = cgfs_get_value("blkio", cg, "blkio.io_wait_time_recursive"); + io_service_time_str = cgfs_get_value("blkio", cg, "blkio.io_service_time_recursive"); f = fopen("/proc/diskstats", "r"); @@ -4268,26 +4265,30 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset, get_blkio_io_value(io_serviced_str, major, minor, "Read", &read); get_blkio_io_value(io_serviced_str, major, minor, "Write", &write); - get_blkio_io_value(io_merged_str, major, minor, "Read", &read_merged); - get_blkio_io_value(io_merged_str, major, minor, "Write", &write_merged); + if (io_merged_str != NULL) { + get_blkio_io_value(io_merged_str, major, minor, "Read", &read_merged); + get_blkio_io_value(io_merged_str, major, minor, "Write", &write_merged); + } get_blkio_io_value(io_service_bytes_str, major, minor, "Read", &read_sectors); read_sectors = read_sectors/512; get_blkio_io_value(io_service_bytes_str, major, minor, "Write", &write_sectors); write_sectors = write_sectors/512; - get_blkio_io_value(io_service_time_str, major, minor, "Read", &rd_svctm); - rd_svctm = rd_svctm/1000000; - get_blkio_io_value(io_wait_time_str, major, minor, "Read", &rd_wait); - rd_wait = rd_wait/1000000; + if (io_service_time_str != NULL) { + get_blkio_io_value(io_service_time_str, major, minor, "Read", &rd_svctm); + rd_svctm = rd_svctm/1000000; + get_blkio_io_value(io_service_time_str, major, minor, "Write", &wr_svctm); + wr_svctm = wr_svctm/1000000; + get_blkio_io_value(io_service_time_str, major, minor, "Total", &tot_ticks); + } + if (io_wait_time_str != NULL) { + get_blkio_io_value(io_wait_time_str, major, minor, "Read", &rd_wait); + rd_wait = rd_wait/1000000; + get_blkio_io_value(io_wait_time_str, major, minor, "Write", &wr_wait); + wr_wait = wr_wait/1000000; + } read_ticks = rd_svctm + rd_wait; - - get_blkio_io_value(io_service_time_str, major, minor, "Write", &wr_svctm); - wr_svctm = wr_svctm/1000000; - get_blkio_io_value(io_wait_time_str, major, minor, "Write", &wr_wait); - wr_wait = wr_wait/1000000; write_ticks = wr_svctm + wr_wait; - - get_blkio_io_value(io_service_time_str, major, minor, "Total", &tot_ticks); tot_ticks = tot_ticks/1000000; memset(lbuf, 0, 256); -- 2.21.0