diff --git a/src/readahead-collect.c b/src/readahead-collect.c index 5ff3711068..3699c3db81 100644 --- a/src/readahead-collect.c +++ b/src/readahead-collect.c @@ -255,6 +255,9 @@ static int collect(const char *root) { ssize_t n; struct fanotify_event_metadata *m; + if (hashmap_size(files) > READAHEAD_FILES_MAX) + break; + if (poll(pollfd, _FD_MAX, -1) < 0) { if (errno == EINTR) diff --git a/src/readahead-common.h b/src/readahead-common.h index da6a74ea03..5d8f1a34fa 100644 --- a/src/readahead-common.h +++ b/src/readahead-common.h @@ -25,6 +25,7 @@ #include #define READAHEAD_FILE_SIZE_MAX (128*1024*1024) +#define READAHEAD_FILES_MAX (16*1024) int file_verify(int fd, const char *fn, struct stat *st);