1 Star 0 Fork 8

wangkang101 / lxcfs

forked from src-openEuler / lxcfs 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0015-lxcfs-adapt-4.18-kernel.patch 3.38 KB
一键复制 编辑 原始数据 按行查看 历史
wangkang101 提交于 2020-08-28 15:17 . update to 4.0.5
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
index 519cda4..96eb9d7 100644
--- a/src/proc_fuse.c
+++ b/src/proc_fuse.c
@@ -608,11 +608,6 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
return read_file_fuse("/proc/diskstats", buf, size, d);
}
- ret = cgroup_ops->get_io_merged(cgroup_ops, cg, &io_merged_str);
- if (ret < 0) {
- if (ret == -EOPNOTSUPP)
- return read_file_fuse("/proc/diskstats", buf, size, d);
- }
ret = cgroup_ops->get_io_service_bytes(cgroup_ops, cg, &io_service_bytes_str);
if (ret < 0) {
@@ -620,17 +615,9 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
return read_file_fuse("/proc/diskstats", buf, size, d);
}
- ret = cgroup_ops->get_io_wait_time(cgroup_ops, cg, &io_wait_time_str);
- if (ret < 0) {
- if (ret == -EOPNOTSUPP)
- return read_file_fuse("/proc/diskstats", buf, size, d);
- }
-
- ret = cgroup_ops->get_io_service_time(cgroup_ops, cg, &io_service_time_str);
- if (ret < 0) {
- if (ret == -EOPNOTSUPP)
- return read_file_fuse("/proc/diskstats", buf, size, d);
- }
+ cgroup_ops->get_io_merged(cgroup_ops, cg, &io_merged_str);
+ cgroup_ops->get_io_wait_time(cgroup_ops, cg, &io_wait_time_str);
+ cgroup_ops->get_io_service_time(cgroup_ops, cg, &io_service_time_str);
f = fopen_cached("/proc/diskstats", "re", &fopen_cache);
if (!f)
@@ -663,26 +650,32 @@ 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;
- read_ticks = rd_svctm + rd_wait;
+ 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);
+ }
- 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;
+ 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;
+ }
- get_blkio_io_value(io_service_time_str, major, minor, "Total", &tot_ticks);
+ read_ticks = rd_svctm + rd_wait;
+ write_ticks = wr_svctm + wr_wait;
tot_ticks = tot_ticks/1000000;
memset(lbuf, 0, 256);
1
https://gitee.com/wangkang101/lxcfs.git
git@gitee.com:wangkang101/lxcfs.git
wangkang101
lxcfs
lxcfs
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891