diff --git a/libbpf b/libbpf
index 8f8369223c327743277a8e4fcbf87c5d9d6f3c88..c91f1175e2273825767160fdc54448c19c97ba13 160000
--- a/libbpf
+++ b/libbpf
@@ -1 +1 @@
-Subproject commit 8f8369223c327743277a8e4fcbf87c5d9d6f3c88
+Subproject commit c91f1175e2273825767160fdc54448c19c97ba13
diff --git a/src/task_find.bpf.c b/src/task_find.bpf.c
index 5f84a91552dd5ac9f71d34ce50feeb1e5cb6a7ca..676717e1778fced3c50ef2d6d4ff281424123490 100644
--- a/src/task_find.bpf.c
+++ b/src/task_find.bpf.c
@@ -28,7 +28,7 @@ void *u_newline;
void *u_iterdents64_buf;
size_t root_namelen;
-static long iter_dir(size_t namelen) {
+static long iter_dir(size_t namelen, bool print) {
long err = 0;
if (namelen + 1 > PATHLEN) {
@@ -66,8 +66,10 @@ static long iter_dir(size_t namelen) {
int dfd = openat(*parent_dfd, name_user, O_RDONLY | O_DIRECTORY, 0777);
if (dfd < 0) {
bpf_printk("file, depth = %d", depth);
- write(STDOUT_FILENO, name_user, namelen);
- write(STDOUT_FILENO, u_newline, 1);
+ if (print) {
+ write(STDOUT_FILENO, name_user, namelen);
+ write(STDOUT_FILENO, u_newline, 1);
+ }
/* Not a directory, no need to iterate. */
goto end;
}
@@ -118,7 +120,7 @@ int entry(void *ctx)
{
long err = 0;
- err = iter_dir(root_namelen);
+ err = iter_dir(root_namelen, false);
if (err) {
goto end;
}
@@ -129,12 +131,14 @@ end:
SEC("iterdents64")
int process_dirent(struct bpf_dirent64 *d) {
int err = 0;
+ bool match = false;
/* Skip "." and "..": */
if (!(d->name + 2 > (char *) d->name_end)) {
if (d->name[0] == '.' && d->namelen == 1) {
goto end;
}
+ match = d->name[0] == 'a';
}
if (!(d->name + 3 > (char *) d->name_end)) {
@@ -143,7 +147,7 @@ int process_dirent(struct bpf_dirent64 *d) {
}
}
- err = iter_dir(d->namelen);
+ err = iter_dir(d->namelen, match);
if (err) {
goto end;
}
diff --git a/src/task_lib.bpf.h b/src/task_lib.bpf.h
index e4e17843716b9656d8e890780a9e95ace3edc7e5..84c7af24abbf97a2d84d04e71932f144611f6f33 100644
--- a/src/task_lib.bpf.h
+++ b/src/task_lib.bpf.h
@@ -11,6 +11,7 @@
#define NULL ((void *) 0)
+typedef int bool;
#define false ((bool) 0)
#define true ((bool) 1)