diff --git a/src/task_find.bpf.c b/src/task_find.bpf.c
index e1f395ad18760fc02b499822039f7fc07ede8b8c..d81e6f6d4a4219e54986accf79600e2150252cb3 100644
--- a/src/task_find.bpf.c
+++ b/src/task_find.bpf.c
@@ -16,9 +16,8 @@ struct {
 } state_map SEC(".maps");
 
 int pdpf;
-unsigned long curr_depth = 0;
 unsigned long disk_usage = 0;
-int dfd[MAX_DEPTH*2];
+int dfd[1];
 
 void *u_descend;
 void *u_ascend;
@@ -38,15 +37,8 @@ static long iter_dir(uint32_t d_type, size_t namelen, bool match) {
 		goto end;
 	}
 
-	unsigned long depth = curr_depth;
-	if (depth >= MAX_DEPTH) {
-		bpf_printk("Error: max_depth exceeded");
-		err = -1;
-		goto end;
-	}
 	int parent_dfd = dfd[0];
 
-	/* void *name_user = u_iterdents64_buf + depth * PATHLEN; */
 	void *name_user = u_iterdents64_buf;
 	if (match) {
 		if (flags & PRINT_MATCHES) {
@@ -84,21 +76,15 @@ static long iter_dir(uint32_t d_type, size_t namelen, bool match) {
 		write(STDOUT_FILENO, u_descend, 2);
 	}
 
-	unsigned long child_depth = depth + 1;
-	/* void *child_name_user = u_iterdents64_buf + child_depth * PATHLEN; */
 	void *child_name_user = name_user;
 
-	curr_depth = child_depth;
 	dfd[0] = child_dfd;
 	err = bpf_task_iterdents64(child_dfd, pdpf, child_name_user, PATHLEN);
 	dfd[0] = parent_dfd;
 	if (err) {
 		bpf_printk("Error: iterdents64(%d, %d) = %d", child_dfd, pdpf, err);
-		goto reset_depth;
 	}
 
-reset_depth:
-	curr_depth = depth;
 close:
 	if (flags & PRINT_MATCHES) {
 		write(STDOUT_FILENO, u_ascend, 3);
diff --git a/src/task_find.h b/src/task_find.h
index 67e9314449ccf5f69bf5939d5843763d9fbd5205..548c32c55a6a0619e4cd23c4f7c6509b8b52e044 100644
--- a/src/task_find.h
+++ b/src/task_find.h
@@ -1,7 +1,9 @@
 #ifndef __TASK_H_
 #define __TASK_H_
 
-#define MAX_DEPTH 16
+/* legacy */
+#define MAX_DEPTH 1
+
 #define UBUF_SIZE 1024
 #define PATHLEN 512