summaryrefslogtreecommitdiff
path: root/src/tail.c
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2013-12-09 01:58:25 +0000
committerPádraig Brady <P@draigBrady.com>2013-12-09 09:26:17 +0000
commit402e8ecbc4bf3b3fe866338e77e21feceac910f0 (patch)
tree9c5c044a7ce40819c646001d46514a7871f7165e /src/tail.c
parent4a6189a0ea0e49b542eb10ff3c9032145683ed63 (diff)
downloadcoreutils-402e8ecbc4bf3b3fe866338e77e21feceac910f0.tar.xz
tail: use consistent diagnostics with and without inotify
* src/tail.c: With inotify, when a file is initially absent, we fstat(-1) for that file spec, thus recording an errnum of EBADF, which caused the "has become accessible" diagnostic to be issued, when the file first appears. Instead we avoid the fstat(-1) and thus emit the more natural and consistent "has appeared" diagnostic. * tests/tail-2/retry.sh: Use the new diagnostic which also causes this test to pass on systems without inotify.
Diffstat (limited to 'src/tail.c')
-rw-r--r--src/tail.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/tail.c b/src/tail.c
index c781dc2fa..dc4e10df0 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -1315,7 +1315,12 @@ static void
check_fspec (struct File_spec *fspec, int wd, int *prev_wd)
{
struct stat stats;
- char const *name = pretty_name (fspec);
+ char const *name;
+
+ if (fspec->fd == -1)
+ return;
+
+ name = pretty_name (fspec);
if (fstat (fspec->fd, &stats) != 0)
{