summaryrefslogtreecommitdiff
path: root/rquota_client.c
diff options
context:
space:
mode:
authorjkar8572 <jkar8572>2003-10-18 17:32:49 +0000
committerjkar8572 <jkar8572>2003-10-18 17:32:49 +0000
commit3912b14a2db657893abce87cf9b9a0b2e1df0c5c (patch)
tree1c3ec3157b24a301224999aacc2ed3d04efb30bb /rquota_client.c
parentd0026af1200f5848032ff77605c674a7885e83eb (diff)
Fixed fake error messages from rpc.rquotad
Fixed reporting of quotas on NFS filesystem without quotas
Diffstat (limited to 'rquota_client.c')
-rw-r--r--rquota_client.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/rquota_client.c b/rquota_client.c
index e415bd8..87768eb 100644
--- a/rquota_client.c
+++ b/rquota_client.c
@@ -9,7 +9,7 @@
*
* This part does the rpc-communication with the rquotad.
*
- * Version: $Id: rquota_client.c,v 1.6 2002/06/27 08:14:09 jkar8572 Exp $
+ * Version: $Id: rquota_client.c,v 1.7 2003/10/18 17:32:49 jkar8572 Exp $
*
* Author: Marco van Wieringen <mvw@planets.elm.net>
*
@@ -109,6 +109,7 @@ int rquota_err(int stat)
case 0:
return -ENOSYS;
case Q_NOQUOTA:
+ return -ENOENT;
case Q_OK:
return 0;
case Q_EPERM:
@@ -124,7 +125,7 @@ int rquota_err(int stat)
int rpc_rquota_get(struct dquot *dquot)
{
CLIENT *clnt;
- getquota_rslt *result;
+ getquota_rslt *result = NULL;
union {
getquota_args arg;
ext_getquota_args ext_arg;
@@ -180,17 +181,13 @@ int rpc_rquota_get(struct dquot *dquot)
result = rquotaproc_getquota_2(&args.ext_arg, clnt);
if (result != NULL && result->status == Q_OK)
clinet2utildqblk(&dquot->dq_dqb, &result->getquota_rslt_u.gqr_rquota);
-
/*
* Destroy unix authentication and RPC client structure.
*/
auth_destroy(clnt->cl_auth);
clnt_destroy(clnt);
}
- else
- result = NULL;
-
- if (result == NULL || !result->status) {
+ else {
if (dquot->dq_h->qh_type == USRQUOTA) {
/*
* Try RQUOTAPROG because server doesn't seem to understand EXT_RQUOTAPROG. (NON-LINUX servers.)
@@ -229,7 +226,7 @@ int rpc_rquota_get(struct dquot *dquot)
}
}
free(fsname_tmp);
- return rquota_err(result?result->status:-1);
+ return rquota_err(result?result->status:-ENOENT);
}
/*
@@ -296,10 +293,7 @@ int rpc_rquota_set(int qcmd, struct dquot *dquot)
auth_destroy(clnt->cl_auth);
clnt_destroy(clnt);
}
- else
- result = NULL;
-
- if (result == NULL || !result->status) {
+ else {
if (dquot->dq_h->qh_type == USRQUOTA) {
/*
* Try RQUOTAPROG because server doesn't seem to understand EXT_RQUOTAPROG. (NON-LINUX servers.)
@@ -340,7 +334,7 @@ int rpc_rquota_set(int qcmd, struct dquot *dquot)
}
}
free(fsname_tmp);
- return rquota_err(result?result->status:-1);
+ return rquota_err(result?result->status:-ENOENT);
#endif
return -1;
}