VxFS quota not working on Solaris
gdoucet at csc.com
gdoucet at csc.com
Tue Jan 15 10:16:05 GMT 2002
I try to use quota on a VxFS filesystem and Solaris 7 and does not work.
I check the log with debug = 5 and I check the code:
It check for mount option dev= with the devive number in /etc/mnttab:
[2002/01/15 09:57:44, 5] smbd/quotas.c:disk_quotas(511)
disk_quotas: looking for path "." devno=249e463
After checking /etc/mnttab, VxFS filesystem don't have that option. Other
Solaris Filesystem do:
.
.
.
/dev/vx/dsk/jumpstartdg/vxfs_quota_test /export/_quota_test vxfs
rw,log,suid,quota 1011029439
zbans00h:/export/global/tools /opt/corp/tools nfs
rw,intr,suid,dev=2e800af 1011106087
.
.
.
So I produce this little patch that use stat to found out the device number
of the mont point:
diff -u --recursive --new-file samba-2.2.2.orig/source/smbd/quotas.c
samba-2.2.2/source/smbd/quotas.c
--- samba-2.2.2.orig/source/smbd/quotas.c Sat Oct 13 17:09:41 2001
+++ samba-2.2.2/source/smbd/quotas.c Tue Jan 15 10:16:44 2002
@@ -498,6 +498,7 @@
#endif
FILE *fd;
SMB_STRUCT_STAT sbuf;
+ SMB_STRUCT_STAT sbuf_mntpnt;
SMB_DEV_T devno ;
static SMB_DEV_T devno_cached = 0 ;
static int found ;
@@ -518,7 +519,9 @@
found = False ;
slprintf(devopt, sizeof(devopt) - 1, "dev=%x", (unsigned
int)devno);
while (getmntent(fd, &mnt) == 0) {
- if( !hasmntopt(&mnt, devopt) )
+ if( sys_stat(mnt.mnt_mountp, &sbuf_mntpnt) == -1 )
+ return(False);
+ if( devno != sbuf_mntpnt.st_dev )
continue;
DEBUG(5,("disk_quotas: testing \"%s\" %s\n",
mnt.mnt_mountp,devopt));
Also, I had to force to define VXFS_QUOTA:
CFLAGS="-DVXFS_QUOTA" ./configure --with-quotas
Is theire an other way?
- -
Geoffroy Doucet
More information about the samba-technical
mailing list