Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Oct 1998 01:39:32 +0800
From:      Peter Wemm <peter@netplex.com.au>
To:        Chuck Robey <chuckr@mat.net>
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: mount flags 
Message-ID:  <199810181739.BAA01986@spinner.netplex.com.au>
In-Reply-To: Your message of "Sun, 18 Oct 1998 13:16:28 -0400." <Pine.BSF.4.05.9810181301470.348-100000@picnic.mat.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
Chuck Robey wrote:
> On Mon, 19 Oct 1998, Peter Wemm wrote:
> 
> > Chuck Robey wrote:
> > [..]
> > > I have a very recently broke thing that was happily using a call to
> > > statfs, to tell if it was an NFS filesystem or not.  Last time I had
> > > occasion to take a look at this, there were flags of the sort MOUNT_XXX,
> > > where the XXX could have been UFS, MFS, NFS, etc.  The application is
> > > specifically looking for MOUNT_NFS, and it's just not around anymore,
> > > that I can find.
> > > 
> > > I would be happy to find it, but I suspect that the method for detecting
> > > an NFS mounted FS has changed, so that the app should no longer use
> > > statfs.  That's kind of odd, because this port works on a lot of other
> > > systems which seem to do that fine.
> > 
> > What's wrong with the f_fstypename[] field in struct statfs?  It'll 
> > contain a string "nfs" or "ufs" etc..
> 
> I looked in the statfs man page and couldn't see any kind of definition
> of what went in that field (so as to use it to choose from).  I took a
> quick look at the code, nothing immediately jumps out at me ... for an
> external system interface, it's certainly obscurely set up, isn't it?
> 
> Do you know where the derivation of the f_fstypename values comes from?
> I just can't find it.

Hmm..  Now that you mention it...  I don't see where it's being set 
either.  I'm not sure that it is being set at all... :-(

Short term hack:  look at f_type in the statfs struct, and use the
getvfsent() routines to map that back into a type name.
According to <sys/mount.h>:
/usr/include/sys/mount.h:struct ovfsconf *getvfsbytype __P((int));

This is a bit of a kludge but it should work.  struct ovfsconf has a 
char vfc_name[32] field.  In these instances, the strings come from a 
result of the VFS_SET() macro and the configuration data it creates.

Cheers,
-Peter



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810181739.BAA01986>