X-Git-Url: https://bbs.cooldavid.org/git/?a=blobdiff_plain;f=tools%2Fperf%2Futil%2Fthread.c;h=9a448b47400c8ec2305c4d0153d885fe4962a612;hb=c214909b36efec632432acdcbfacdd46a6e11370;hp=1f7ecd47f49942809d19b0be3f65d9fb1f904ebc;hpb=5bfec46baa3a752393433b8d89d3b2c70820f61d;p=net-next-2.6.git diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c index 1f7ecd47f49..9a448b47400 100644 --- a/tools/perf/util/thread.c +++ b/tools/perf/util/thread.c @@ -7,6 +7,15 @@ #include "util.h" #include "debug.h" +/* Skip "." and ".." directories */ +static int filter(const struct dirent *dir) +{ + if (dir->d_name[0] == '.') + return 0; + else + return 1; +} + int find_all_tid(int pid, pid_t ** all_tid) { char name[256]; @@ -16,7 +25,7 @@ int find_all_tid(int pid, pid_t ** all_tid) int i; sprintf(name, "/proc/%d/task", pid); - items = scandir(name, &namelist, NULL, NULL); + items = scandir(name, &namelist, filter, NULL); if (items <= 0) return -ENOENT; *all_tid = malloc(sizeof(pid_t) * items);