{ .name     = "recvmsg",
          .arg = { [2] = { .scnprintf = SCA_MSG_FLAGS, /* flags */ }, }, },
        { .name     = "renameat",
+         .bpf_prog_name = { .sys_enter = "!syscalls:sys_enter_renameat", },
          .arg = { [0] = { .scnprintf = SCA_FDAT, /* olddirfd */ },
                   [2] = { .scnprintf = SCA_FDAT, /* newdirfd */ }, }, },
        { .name     = "renameat2",
+         .bpf_prog_name = { .sys_enter = "!syscalls:sys_enter_renameat", },
          .arg = { [0] = { .scnprintf = SCA_FDAT, /* olddirfd */ },
                   [2] = { .scnprintf = SCA_FDAT, /* newdirfd */ },
                   [4] = { .scnprintf = SCA_RENAMEAT2_FLAGS, /* flags */ }, }, },
 
 struct augmented_args_filename {
        struct syscall_enter_args args;
        struct augmented_filename filename;
+       struct augmented_filename filename2;
 };
 
 bpf_map(augmented_filename_map, PERCPU_ARRAY, int, struct augmented_args_filename, 1);
        return perf_event_output(args, &__augmented_syscalls__, BPF_F_CURRENT_CPU, augmented_args, len);
 }
 
+SEC("!syscalls:sys_enter_renameat")
+int sys_enter_renameat(struct syscall_enter_args *args)
+{
+       int key = 0;
+       struct augmented_args_filename *augmented_args = bpf_map_lookup_elem(&augmented_filename_map, &key);
+       const void *oldpath_arg = (const void *)args->args[1],
+                  *newpath_arg = (const void *)args->args[3];
+       unsigned int len = sizeof(augmented_args->args), oldpath_len;
+
+        if (augmented_args == NULL)
+                return 1; /* Failure: don't filter */
+
+       oldpath_len = augmented_filename__read(&augmented_args->filename, oldpath_arg, sizeof(augmented_args->filename.value));
+       len += oldpath_len + augmented_filename__read((void *)(&augmented_args->filename) + oldpath_len, newpath_arg, sizeof(augmented_args->filename.value));
+
+       /* If perf_event_output fails, return non-zero so that it gets recorded unaugmented */
+       return perf_event_output(args, &__augmented_syscalls__, BPF_F_CURRENT_CPU, augmented_args, len);
+}
+
 SEC("raw_syscalls:sys_enter")
 int sys_enter(struct syscall_enter_args *args)
 {