Subject: Re: bug#23283: 'tail -f' reports "unrecognized file system" for Plexistor's M1FS
From: Bernhard Voelker <[email-masked]>
To: Yigal Korman <[email-masked]>, [email-masked]
Date: Thu, 14 Apr 2016 10:20:21 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

On 04/13/2016 10:22 PM, Yigal Korman wrote:
> Hi,
> We (Plexistor Ltd.) are offering the first file-system to support
> persistent memory.
> You can download the community edition from our website:
> http://www.plexistor.com/download/
> Our customers are reporting the issue mentioned in the title for our FS,
> this is a common output:
> 
>> $ tail -f file
>> tail: unrecognized file system type 0x5346314d for ‘file’. please report
> this to [email-masked]. reverting to polling
> 
> Our FS is local and supports inotify.
> If it's all possible, please add us to the list of known FSs.
> See proposed (trivial) patch below.
> 
> Thank you,
> Yigal
> 
> From 9d4a87fa71e7c854adec41c5ad9eebd2ad51d5b6 Mon Sep 17 00:00:00 2001
> From: Yigal Korman <[email-masked]>
> Date: Wed, 13 Apr 2016 16:15:20 +0300
> Subject: [PATCH] stat,tail: Add support for M1FS filesystem
> 
> * src/stat.c (human_fstype): Add M1FS ID definition.
> ---
> src/stat.c | 2 ++
> 1 file changed, 2 insertions(+)
> 
> diff --git a/src/stat.c b/src/stat.c
> index 4d7ead3..a71d6af 100644
> --- a/src/stat.c
> +++ b/src/stat.c
> @@ -364,6 +364,8 @@ human_fstype (STRUCT_STATVFS const *statfsbuf)
> return "logfs";
> case S_MAGIC_LUSTRE: /* 0x0BD00BD0 remote */
> return "lustre";
> + case S_MAGIC_M1FS: /* 0x5346314d local */
> + return "m1fs";
> case S_MAGIC_MINIX: /* 0x137F local */
> return "minix";
> case S_MAGIC_MINIX_30: /* 0x138F local */
> --
> 1.9.3

Thanks for the report and the patch.
Somehow, the indentation in the email got lost.
I also added a NEWS entry, tweaked the commit message a bit to adhere
to our standards and made the ID definition upper-case to avoid the
following "make syntax-check" failure:

  $ make syntax-check
  ...
  0x5346314d
  maint.mk: Constants in src/stat.c should be 4 or 8 upper-case chars
  cfg.mk:737: recipe for target 'sc_fs-magic-compare' failed
  make: *** [sc_fs-magic-compare] Error 1

Pushed the attached at:
http://git.sv.gnu.org/cgit/coreutils.git/commit/?id=8faf269250

I'm hereby marking this bug as done.

Have a nice day,
Berny
From 8faf269250e8eff5f5dd164dfa1d661c34f52ade Mon Sep 17 00:00:00 2001
From: Yigal Korman <[email-masked]>
Date: Wed, 13 Apr 2016 16:15:20 +0300
Subject: [PATCH] stat,tail: add support for M1FS

* src/stat.c (human_fstype): Add file system ID definition.
* NEWS (Improvements): Mention the change, moving the previously added
"prl_fs" change note from "Changes in behavior" to here.
Fixes http://bugs.gnu.org/23283
---
 NEWS       | 9 +++++++--
 src/stat.c | 2 ++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index dd3ee9c..9445977 100644
--- a/NEWS
+++ b/NEWS
@@ -20,13 +20,18 @@ 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
    like '+2' must be treated as file names.
 
+** Improvements
+
+   stat and tail now know about "prl_fs" (a parallels file system), and
+   "m1fs" (a Plexistor file system).  stat -f --format=%T now reports the
+   file system type, and tail -f uses the more conservative polling for
+   "prl_fs", and inotify for "m1fs" file systems.
+
 
 * Noteworthy changes in release 8.25 (2016-01-20) [stable]
 
diff --git a/src/stat.c b/src/stat.c
index 4d7ead3..ab69fbe 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -364,6 +364,8 @@ human_fstype (STRUCT_STATVFS const *statfsbuf)
       return "logfs";
     case S_MAGIC_LUSTRE: /* 0x0BD00BD0 remote */
       return "lustre";
+    case S_MAGIC_M1FS: /* 0x5346314D local */
+      return "m1fs";
     case S_MAGIC_MINIX: /* 0x137F local */
       return "minix";
     case S_MAGIC_MINIX_30: /* 0x138F local */
-- 
2.1.4