summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorhjl <hjl>2000-02-03 22:56:36 +0000
committerhjl <hjl>2000-02-03 22:56:36 +0000
commitd6a3885164e3c58e355feb4a7b94176ae127343d (patch)
treeef2fbf751f57110dde2d4777a1e702a8094261b1 /utils
parentc42934f59eb943f905862f26799cc3b29ed39216 (diff)
downloadnfs-utils-d6a3885164e3c58e355feb4a7b94176ae127343d.tar.gz
nfs-utils-d6a3885164e3c58e355feb4a7b94176ae127343d.tar.xz
nfs-utils-d6a3885164e3c58e355feb4a7b94176ae127343d.zip
Thu Feb 3 14:55:48 2000 H.J. Lu <hjl@lucon.org>
* COPYING: Added. GPL. Thu Feb 03 14:40:40 2000 Cristian Gafton <gafton@redhat.com> * utils/rquotad/rquota_server.c (getquotainfo): Call statfs () to get the block size.
Diffstat (limited to 'utils')
-rw-r--r--utils/rquotad/rquota_server.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/utils/rquotad/rquota_server.c b/utils/rquotad/rquota_server.c
index e9167ca..bef99c7 100644
--- a/utils/rquotad/rquota_server.c
+++ b/utils/rquotad/rquota_server.c
@@ -26,6 +26,7 @@
#include <sys/stat.h>
#include <sys/param.h>
#include <sys/quota.h>
+#include <sys/vfs.h>
#include <dirent.h>
#include <paths.h>
#include <stdio.h>
@@ -71,7 +72,8 @@ getquota_rslt *getquotainfo(int flags, caddr_t *argp, struct svc_req *rqstp)
char *pathname, *qfpathname;
int fd, err, id, type;
struct stat st;
-
+ struct statfs stf;
+
/*
* First check authentication.
*/
@@ -116,12 +118,11 @@ getquota_rslt *getquotainfo(int flags, caddr_t *argp, struct svc_req *rqstp)
|| stat(pathname, &st) == -1)
break;
-#if 0
- result.getquota_rslt_u.gqr_rquota.rq_bsize = st.st_blksize;
-#else
- /* All blocks reported are 512 Bytes blocks. */
- result.getquota_rslt_u.gqr_rquota.rq_bsize = 512;
-#endif
+ if (statfs(pathname, &stf) == -1) {
+ result.status = Q_EPERM;
+ return (&result);
+ }
+ result.getquota_rslt_u.gqr_rquota.rq_bsize = stf.f_bsize;
if (hasquota(mnt, type, &qfpathname)) {
if ((err = quotactl(QCMD(Q_GETQUOTA, type), mnt->mnt_fsname,