From: Jim Meyering Date: Mon, 29 Jun 2009 18:43:26 +0000 (+0200) Subject: tail: add comments noting potential inotify-related problems X-Git-Tag: v7.5~75 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6d0d1c47b28ea4989a6608e9f7d51218ee0c89ef;p=thirdparty%2Fcoreutils.git tail: add comments noting potential inotify-related problems * src/tail.c (tail_forever_inotify): Add two FIXME comments. --- diff --git a/src/tail.c b/src/tail.c index 059ee82459..89c43b8273 100644 --- a/src/tail.c +++ b/src/tail.c @@ -1258,6 +1258,8 @@ tail_forever_inotify (int wd, struct File_spec *f, int n_files) len = safe_read (wd, evbuf, evlen); evbuf_off = 0; + /* For kernels prior to 2.6.21, read returns 0 when the buffer + is too small. FIXME: handle that. */ if (len == SAFE_READ_ERROR && errno == EINVAL && max_realloc--) { len = 0; @@ -1277,8 +1279,10 @@ tail_forever_inotify (int wd, struct File_spec *f, int n_files) { for (i = 0; i < n_files; i++) { - if (f[i].parent_wd == ev->wd && - STREQ (ev->name, f[i].name + f[i].basename_start)) + /* With N=hundreds of frequently-changing files, this O(N^2) + process might be a problem. FIXME: use a hash table? */ + if (f[i].parent_wd == ev->wd + && STREQ (ev->name, f[i].name + f[i].basename_start)) break; }