src/filemanager/mountlist.c: recognize more file system types as remote.

Sync with gnulib dd1fc46be12d671c1a9d9dc5a6fa8c766e99aa2f.

Sync "remote" file systems from stat.c in coreutils.
Note we only consider file systems that do not use host:resource
mount source.  I.e. those that don't generally use a colon when
mounting, as that case is already considered.  Searching for
"<fstype> /etc/fstab" was informative for identifying these.
The full list of "remote" file systems in coreutils is currently:
  acfs afs ceph cifs coda fhgfs fuseblk fusectl
  gfs gfs2 gpfs ibrix k-afs lustre novell nfs nfsd
  ocfs2 panfs prl_fs smb smb2 snfs vboxsf vmhgfs vxfs
Note also we do not include virtual machine file systems,
as even though they're remote to the current kernel,
they are generally not distributed to separate hosts.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
Andrew Borodin 2020-11-08 11:38:22 +03:00
parent 4fd2706f47
commit a358c8037d

View File

@ -257,8 +257,9 @@ me_remote (char const *fs_name, char const *fs_type)
#ifndef ME_REMOTE
/* A file system is 'remote' if its Fs_name contains a ':'
or if (it is of type (smbfs or smb3 or cifs) and its Fs_name starts with '//')
or if it is of type (afs or auristorfs)
or Fs_name is equal to "-hosts" (used by autofs to mount remote fs). */
or if it is of any other of the listed types
or Fs_name is equal to "-hosts" (used by autofs to mount remote fs).
"VM" file systems like prl_fs or vboxsf are not considered remote here. */
#define ME_REMOTE(Fs_name, Fs_type) \
(strchr (Fs_name, ':') != NULL \
|| ((Fs_name)[0] == '/' \
@ -266,8 +267,15 @@ me_remote (char const *fs_name, char const *fs_type)
&& (strcmp (Fs_type, "smbfs") == 0 \
|| strcmp (Fs_type, "smb3") == 0 \
|| strcmp (Fs_type, "cifs") == 0)) \
|| strcmp (Fs_type, "acfs") == 0 \
|| strcmp (Fs_type, "afs") == 0 \
|| strcmp (Fs_type, "coda") == 0 \
|| strcmp (Fs_type, "auristorfs") == 0 \
|| strcmp (Fs_type, "fhgfs") == 0 \
|| strcmp (Fs_type, "gpfs") == 0 \
|| strcmp (Fs_type, "ibrix") == 0 \
|| strcmp (Fs_type, "ocfs2") == 0 \
|| strcmp (Fs_type, "vxfs") == 0 \
|| strcmp ("-hosts", Fs_name) == 0)
#endif