diff options
author | hjl <hjl> | 2000-02-03 22:56:36 +0000 |
---|---|---|
committer | hjl <hjl> | 2000-02-03 22:56:36 +0000 |
commit | d6a3885164e3c58e355feb4a7b94176ae127343d (patch) | |
tree | ef2fbf751f57110dde2d4777a1e702a8094261b1 /utils | |
parent | c42934f59eb943f905862f26799cc3b29ed39216 (diff) | |
download | nfs-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.c | 15 |
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, |