From 8264fc615a1beb82e062949e5cf17c852fcfaaaf Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Mon, 24 Jan 2011 09:37:10 +0100 Subject: tail: avoid new diagnostic when applying -f to a pipe on linux-2.3.38 * src/tail.c (fremote): Do not print a diagnostic when fstatfs (pipe_FD, &buf) fails, as it now does on linux-2.3.38. This avoids the spurious failure of tests/misc/tail's f-pipe-1 test, when running in input-from-pipe mode. --- src/tail.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/tail.c') diff --git a/src/tail.c b/src/tail.c index 9682a537c..bcd2d9970 100644 --- a/src/tail.c +++ b/src/tail.c @@ -887,8 +887,11 @@ fremote (int fd, const char *name) int err = fstatfs (fd, &buf); if (err != 0) { - error (0, errno, _("cannot determine location of %s. " - "reverting to polling"), quote (name)); + /* On at least linux-2.6.38, fstatfs fails with ENOSYS when FD + is open on a pipe. Treat that like a remote file. */ + if (errno != ENOSYS) + error (0, errno, _("cannot determine location of %s. " + "reverting to polling"), quote (name)); } else { -- cgit v1.2.3-54-g00ecf