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>