bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] remove "dev=" mount option special processing for df


From: Paul A. Clarke
Subject: Re: [PATCH] remove "dev=" mount option special processing for df
Date: Wed, 19 Oct 2005 14:35:43 -0500

On Tue, 2005-10-18 at 13:47, Paul Eggert wrote:
> "Paul A. Clarke" <address@hidden> writes:
> > Indeed, the above referenced code from mountlist.c will accidentally
> > trip over the "logdev=" and "rtdev=" options for XFS, as well as the
> > "dev=" option used by IBM's GPFS.
> 
> Thanks for your detailed analysis.  The former should be easy to fix,
> but what's the latter?  I couldn't find documentation about GPFS and
> mnttab with a quick Google search.

I don't think the GPFS use of "dev=" is documented.  But, let me pose
the question a different way:  why is the "df" command looking for
"dev=" in the mount options of filesystems which don't even support it? 
Is there a documented standard to which this conforms?  If not, it would
seem like this obscure special procesing in df is sort of an obscure
miniature time bomb.  :)

Unless a standard is at play, I propose removing the special processing
_except_ for filesystems which support it.  (Unfortunately, I'm not
familiar with all filesystems ;-), but none of the filesystems I'm
familiar with on Linux support it, thus my original patch.)

> > Attached is a trivial and minimal patch which removes the code which
> > does the "dev=" special processing, although only for Linux.
> 
> How about the following fancier patch.  Does it treat GPFS correctly?
...
>      (strcmp (Fs_type, "autofs") == 0         \
> +     || strcmp (Fs_type, "none") == 0                \
> +     || strcmp (Fs_type, "proc") == 0                \
>       || strcmp (Fs_type, "subfs") == 0               \
>       /* for Irix 6.5 */                              \
>       || strcmp (Fs_type, "ignore") == 0)

It's interesting to see there's a precedent for filesystem-specific
processing, and even operating system-specific processing.  Not to stray
too far, but shouldn't the "Irix 6.5" code be conditionally compiled
only for Irix 6.5?

> -     devopt = strstr (mnt->mnt_opts, "dev=");
> +     me->me_dev = (dev_t) -1;        /* Magic; means not known yet. */
> +     devopt = strstr (mnt->mnt_opts, ",dev=");

This won't work if "dev=" is the first option.  (Although it looks like,
at least on my Linux system, the options are reordered such that ro/rw
is always the first one...can one depend on that behavior?)

Regards,
PC





reply via email to

[Prev in Thread] Current Thread [Next in Thread]