10 Star 3 Fork 24

src-openEuler / rasdaemon

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
bugfix-rasdaemon-wait-for-file-access.patch 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
hexiaowen 提交于 2019-09-30 11:16 . Package init
From d59e4d224b3271cf7a7fe53cd7c5d539b58eac32 Mon Sep 17 00:00:00 2001
From: lvying <lvying6@huawei.com>
Date: Sat, 26 Jan 2019 15:54:17 +0800
Subject: [PATCH] rasdaemon:fix rasdaemon wait for file access
reason:fix fix rasdaemon wait for file access
--- rasdaemon-0.4.1/ras-events.c 2018-04-08 04:05:18.755000000 -0400
+++ rasdaemon-0.4.1/ras-events.c 2018-04-08 04:05:46.879000000 -0400
@@ -89,15 +89,39 @@
return ENOENT;
}
+static int wait_access(char *path, int ms)
+{
+ int i;
+ for (i = 0; i < ms; i++) {
+ if (access(path, F_OK) == 0)
+ return 0;
+ usleep(1000);
+ }
+
+ log(ALL, LOG_WARNING, "wait_access() failed, %s not created in %d ms\n", path, ms);
+ return -1;
+}
+
static int open_trace(struct ras_events *ras, char *name, int flags)
{
+ int ret = 0;
char fname[MAX_PATH + 1];
strcpy(fname, ras->tracing);
strcat(fname, "/");
strcat(fname, name);
- return open(fname, flags);
+ ret = wait_access(fname, 100);
+ if (ret != 0) {
+ /* use -1 to keep same error value with open() */
+ return -1;
+ }
+
+ ret = open(fname, flags);
+ if (ret == -1)
+ log(ALL, LOG_WARNING, "open_trace()->open() failed, fname=%s ret=%d errno=%d\n", fname, ret, errno);
+
+ return ret;
}
static int get_tracing_dir(struct ras_events *ras)
1
https://gitee.com/src-openeuler/rasdaemon.git
git@gitee.com:src-openeuler/rasdaemon.git
src-openeuler
rasdaemon
rasdaemon
master

搜索帮助