Dirk De Wachter
Dirk.DeWachter at rug.ac.be
Thu Aug 26 09:38:30 GMT 1999
Dear David et al.
I checked some more things and will report on my findings below.
On 26 Aug 99, at 2:34, David Lee wrote about Re: VxFS quotas (Was: Where to subm:
> On Wed, 25 Aug 1999, Dirk De Wachter wrote:
> > just to remind you all that HP-UX 10.20 seems to work perfectly with
> > quotas on a VxFS file system and may not need any patches. Yet,
> > depending on the OS installation a file
> > /usr/include/sys/fs/vx_ioctl.h may exist (as does a file
> > /usr/include/sys/fs/vx_bsdquota.h).
> > The patch submitted by David Lee, assumes that the VxFS should be
> > handled different if this file exists, but I believe it may only do
> > this based on both OS and the presence of this file. (I refer to the
> > patched lines 673-678 of include/includes.h). Or perhaps, it should
> > check the vx_quota.h file instead of vx_ioctl.h.
> For "configure.in" and its dependent "include/includes.h", I picked
> "vx_ioctl.h" almost at random from the list of vx_*.h files that Veritas
> adds into a Solaris2 machine. These files are:
> /usr/include/sys/fs/vx_aioctl.h /usr/include/sys/fs/vx_machdep.h
> /usr/include/sys/fs/vx_const.h /usr/include/sys/fs/vx_mlink.h
> /usr/include/sys/fs/vx_disklog.h /usr/include/sys/fs/vx_param.h
> /usr/include/sys/fs/vx_ext.h /usr/include/sys/fs/vx_param.h
> /usr/include/sys/fs/vx_ext.h /usr/include/sys/fs/vx_quota.h
> /usr/include/sys/fs/vx_inode.h /usr/include/sys/fs/vx_solaris.h
> /usr/include/sys/fs/vx_ioctl.h /usr/include/sys/fs/vx_sysmacros.h
> /usr/include/sys/fs/vx_layout.h /usr/include/sys/fs/vxio.h
The following 4 of these are found on HPUX 10.20 along with 11 others
> Let's try to summarise:
> 1. Solaris 2: VXFS is an add-on product. The C code Veritas and native
> filesystems is different.
True. But it seems the API is also different on different OS.
> At compile-time, the existence of a file in the list above (currently
> "vx_ioctl.h", but any would do) is used to include a Veritas-specific
> subroutine, and some code to call it.
> At run-time, the mount table is examined: a type of "ufs" invokes the
> code for native filesystem, a type of "vxfs" invokes my new subroutine.
> 2. HPUX 10: Apparently requires no change at all, if I correctly
> understand Dirk.
Others may correct me here, but I don't see any problem.
> My patch was simply a first attempt. The only Veritas system I have
> available is Solaris 2.
> I tried to keep the Veritas/quota code in "quotas.c" separate, guessing
> that, for those OSs like Solaris above, it would probably be common.
> I had assumed, perhaps erroneously, that most OSs would require something,
> not nothing.
I haven't gone so deep, but it might be that to CHANGE quotas on HPUX
10.20 we will need a special interface. READing on the other hand
works perfectly with the native interface.
> Perhaps the "include/includes.h" variable VXFS (or VXFS_QUOTA as below)
> should be dependent on "vx_solaris.h" and similar variables for analogous
> OSs. For HPUX 10, it would carefully *not* be defined. Indeed, it would
> only ever be defined on systems for which a port had been done and tested.
Agree. In fact on HPUX you will find a file vx_hpux.h to check for if
> > I would suggest that not VXFS should be defined (as yet) in
> > include/includes.h but VXFS_QUOTA to reflect that only quotas may be
> > handled differently on VxFS and not other aspects of SAMBA. That is,
> > VXFS may defined also, but should be used in a more general way, e.g.
> > if also locking or syncing would be handled in a special way by
> > SAMBA.
> I agree that VXFS_QUOTA might be a better thing to define than VXFS.
> > Several of the includes mentioned in the patch for smbd/quotas.c
> > (lines 725 and up) are not present on HPUX systems and the patch may
> > therefore break quotas on this OS.
> Hmmm... So my first approximation was not as portable as I hoped.
> (But wait a minute... for HPUX, you require no change to previous
> quotas, therefore this is irrelevant.)
> So the entire list of includes needs to be in system-specific ifdefs?
> 1. Change the "#define" from "VXFS" to "VXFS_QUOTA"
> 2. Make the "include/includes.h" stuff dependent on ths OS-specific file
> (e.g. "vx_solaris.h") for those systems that need it (e.g Solaris 2
> and NOT HPUX 10.)
> 3. "#includes ..." (quotas.c line 725) need checking on other OSs
> (how relevant is HPUX here?)
Certainly true. But also, the code that you wrote may work only on
SunOS, as many of the defines and struct I cannot find in the HPUX
include files. So I would suggest to integrate your code either in
the SUNOS part of quotas.c (no influence to other OS) or - for the
moment - only activate VXFS(_QUOTA) for SUNOS.
> Does that seem reasonable?
> Shall I produce a revised patch, in accordance with the above summary?
Dirk De Wachter, MScEE, MScBME, PhD mailto:Dirk.DeWachter at rug.ac.be
scientific researcher, systems administrator http://navier.rug.ac.be
Hydraulics Laboratory, Ibitech, University of Gent voice:+32 9 264 3281
Sint-Pietersnieuwstraat 41, B-9000 Gent Belgium faxto:+32 9 264 3595
More information about the samba-technical