From: Sangyoon Jang Date: Fri, 12 Apr 2019 10:49:59 +0000 (+0900) Subject: Check write lock only when db is busy X-Git-Tag: accepted/tizen/unified/20190419.110525~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git;a=commitdiff_plain;h=3849326e5c927c1346f49a6a39bf7d40a24ade51 Check write lock only when db is busy Change-Id: I6f1048a7fc256223b87bda16d2454e3de84d25f4 Signed-off-by: Sangyoon Jang --- diff --git a/parser/src/pkgmgr_parser_db.c b/parser/src/pkgmgr_parser_db.c index 754b95b..3d79e4c 100644 --- a/parser/src/pkgmgr_parser_db.c +++ b/parser/src/pkgmgr_parser_db.c @@ -433,6 +433,7 @@ static void __check_db_lock(const char *dbpath) FILE *fp; FILE *fp_cmdline; struct stat sb; + char type[BUFSIZE]; int pid; unsigned int maj; unsigned int min; @@ -452,10 +453,11 @@ static void __check_db_lock(const char *dbpath) return; } - while (fscanf(fp, "%*s %*s %*s %*s %d %x:%x:%lu %*s %*s", - &pid, &maj, &min, &ino) != EOF) { + while (fscanf(fp, "%*s %*s %*s %5s %d %x:%x:%lu %*s %*s", + type, &pid, &maj, &min, &ino) != EOF) { if (maj != major(sb.st_dev) || min != minor(sb.st_dev) || - ino != sb.st_ino || pid == getpid()) + ino != sb.st_ino || pid == getpid() || + strcasecmp(type, "WRITE")) continue; snprintf(cmdline, sizeof(cmdline), "/proc/%d/cmdline", pid);