diff options
author | neilbrown <neilbrown> | 2005-09-02 06:29:07 +0000 |
---|---|---|
committer | neilbrown <neilbrown> | 2005-09-02 06:29:07 +0000 |
commit | 878fca79480f4e249329e1136edd720e94d112ca (patch) | |
tree | e52e12498e46a236fd3af44376fb065cbd7a6cab | |
parent | df47655388aee02a7bbdcc6e66918a309df8b27f (diff) | |
download | nfs-utils-878fca79480f4e249329e1136edd720e94d112ca.tar.gz nfs-utils-878fca79480f4e249329e1136edd720e94d112ca.tar.xz nfs-utils-878fca79480f4e249329e1136edd720e94d112ca.zip |
Copy dq_dqb into rquota structure more carefully
-rw-r--r-- | utils/rquotad/rquota_server.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/utils/rquotad/rquota_server.c b/utils/rquotad/rquota_server.c index 2832974..27a206c 100644 --- a/utils/rquotad/rquota_server.c +++ b/utils/rquotad/rquota_server.c @@ -76,6 +76,7 @@ getquota_rslt *getquotainfo(int flags, caddr_t *argp, struct svc_req *rqstp) char *pathname, *qfpathname; int fd, err, id, type; struct stat stm, stn; + struct rquota *rquota; /* * First check authentication. @@ -166,10 +167,18 @@ getquota_rslt *getquotainfo(int flags, caddr_t *argp, struct svc_req *rqstp) result.getquota_rslt_u.gqr_rquota.rq_active = (err == 0) ? TRUE : FALSE; /* * Make a copy of the info into the last part of the remote quota - * struct which is exactly the same. + * struct might not be exactly the same on all architectures... */ - memcpy((caddr_t *)&result.getquota_rslt_u.gqr_rquota.rq_bhardlimit, - (caddr_t *)&dq_dqb, sizeof(struct dqblk)); + + rquota = &result.getquota_rslt_u.gqr_rquota; + rquota->rq_bhardlimit = dq_dqb.dqb_bhardlimit; + rquota->rq_bsoftlimit = dq_dqb.dqb_bsoftlimit;; + rquota->rq_curblocks = dq_dqb.dqb_curblocks; + rquota->rq_fhardlimit = dq_dqb.dqb_ihardlimit; + rquota->rq_fsoftlimit = dq_dqb.dqb_isoftlimit; + rquota->rq_curfiles = dq_dqb.dqb_curinodes; + rquota->rq_btimeleft = dq_dqb.dqb_btime; + rquota->rq_ftimeleft = dq_dqb.dqb_itime; return(&result); } |