Subject: Re: bug#23143: tail: unrecognized file system type 0x7c7c6673
From: Pádraig Brady <[email-masked]>
To: Mikhail Emelchenkov <[email-masked]>
Cc: [email-masked]
Date: Thu, 31 Mar 2016 16:41:06 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

On 30/03/16 21:15, Mikhail Emelchenkov wrote:
> Hello Pádraig,
>
>> Heh 0x7C7C6673 is ||fs in ASCII. I like it :)
>
> Me too :)
>
>> Could you install inotify-tools and use inotifywait to see if inotify is supported on prl_fs?
>> That will let us tag it appropriately.
>
> I did it. Mixed picture:
> 1. Run `inotifywait -e modify /vagrant/out/1.txt` and run `echo 123 >> /vagrant/out/1.txt` both from inside VM (in different shell sessions).
> Setting up watches.
> Watches established.
> /vagrant/out/1.txt MODIFY
> 2. Run `inotifywait -e modify /vagrant/out/1.txt` from inside VM and run `echo 123 >> /vagrant/out/1.txt` from outside VM.
> Setting up watches.
> Watches established.
> (just waiting, nothing fired)
>
> I use native Parallels Tools installed inside VM.
>
> FS mounted as (it is mounted automatically by Vagrant and Parallels):
> vagrant on /vagrant type prl_fs (rw,uid=1000,gid=1000)

Excellent.
I'll push the attached later.

thanks,
Pádraig

From d33f1fbd671c58df453ce24446174d8c5ce4a355 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <[email-masked]>
Date: Thu, 31 Mar 2016 16:34:28 +0100
Subject: [PATCH] stat: report type for "prl_fs" file systems

* src/stat.c (human_fstype): Identify the parallels file system.
Also tag as remote so that tail(1) doesn't use inotify, which
fails to detect changes made outside a VM.
Fixes http://bugs.gnu.org/23143
---
 NEWS       | 2 ++
 src/stat.c | 6 ++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index d3597d0..dd3ee9c 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,8 @@ GNU coreutils NEWS                                    -*- outline -*-
    stat now outputs nanosecond information for time stamps even if
    they are out of localtime range.
 
+   stat -f --format=%T now reports "prl_fs" for a parallels file system.
+
    sort, tail, and uniq now support traditional usage like 'sort +2'
    and 'tail +10' on systems conforming to POSIX 1003.1-2008 and later.
    The 2008 edition of POSIX dropped the requirement that arguments
diff --git a/src/stat.c b/src/stat.c
index 1742ff1..4d7ead3 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -403,9 +403,11 @@ human_fstype (STRUCT_STATVFS const *statfsbuf)
       return "panfs";
     case S_MAGIC_PIPEFS: /* 0x50495045 remote */
       /* FIXME: change syntax or add an optional attribute like "inotify:no".
-         The above is labeled as "remote" so that tail always uses polling,
-         but this isn't really a remote file system type.  */
+         pipefs and prlfs are labeled as "remote" so that tail always polls,
+         but these aren't really remote file system types.  */
       return "pipefs";
+    case S_MAGIC_PRL_FS: /* 0x7C7C6673 remote */
+      return "prl_fs";
     case S_MAGIC_PROC: /* 0x9FA0 local */
       return "proc";
     case S_MAGIC_PSTOREFS: /* 0x6165676C local */
-- 
2.5.5