#include <sys/stat.h>
#include <sys/param.h>
#include <sys/quota.h>
-#include <sys/vfs.h>
+#include <sys/mount.h>
#include <dirent.h>
#include <paths.h>
#include <stdio.h>
#define MNTTYPE_AUTOFS "autofs"
#endif
+#ifndef BLOCK_SIZE
+#define BLOCK_SIZE 1024
+#endif
+
/*
* Global unix authentication credentials.
*/
char *pathname, *qfpathname;
int fd, err, id, type;
struct stat stm, stn;
- struct statfs stf;
/*
* First check authentication.
fp = setmntent(MNTTAB, "r");
while ((mnt = getmntent(fp)) != (struct mntent *)0) {
- if (stat(mnt->mnt_dir, &stm) == -1
- || stat(pathname, &stn) == -1)
+ if (stat(mnt->mnt_dir, &stm) == -1)
+ continue;
+
+ if (stat(pathname, &stn) == -1)
break;
else if (stm.st_dev != stn.st_dev)
continue;
|| strcasecmp (mnt->mnt_type, MNTTYPE_IGNORE) == 0)
break;
- if (statfs(pathname, &stf) == -1) {
- result.status = Q_EPERM;
- return (&result);
- }
- result.getquota_rslt_u.gqr_rquota.rq_bsize = stf.f_bsize;
+ /* All blocks reported are in BLOCK_SIZE. */
+ result.getquota_rslt_u.gqr_rquota.rq_bsize = BLOCK_SIZE;
if (hasquota(mnt, type, &qfpathname)) {
if ((err = quotactl(QCMD(Q_GETQUOTA, type), mnt->mnt_fsname,