summaryrefslogtreecommitdiff
path: root/rquota_server.c
diff options
context:
space:
mode:
authorjkar8572 <jkar8572>2007-08-23 19:58:14 +0000
committerjkar8572 <jkar8572>2007-08-23 19:58:14 +0000
commitb5f4715038ac5236a31e396208d33a5e600f9f4c (patch)
tree45bd7fca50d54646a91a3762c5f27a40c05d5d24 /rquota_server.c
parent690f9c08922da8d625732259c5db5f67a17ed4e0 (diff)
Added options to enable pathname mangling for NFSv4 (Jan Kara)
Diffstat (limited to 'rquota_server.c')
-rw-r--r--rquota_server.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/rquota_server.c b/rquota_server.c
index e734ef5..8494336 100644
--- a/rquota_server.c
+++ b/rquota_server.c
@@ -9,7 +9,7 @@
*
* This part does the lookup of the info.
*
- * Version: $Id: rquota_server.c,v 1.17 2007/08/23 18:55:28 jkar8572 Exp $
+ * Version: $Id: rquota_server.c,v 1.18 2007/08/23 19:58:14 jkar8572 Exp $
*
* Author: Marco van Wieringen <mvw@planets.elm.net>
*
@@ -49,6 +49,7 @@
/* Options from rquota_svc.c */
#define FL_AUTOFS 4
+#define FL_MIXED_PATHS 8
extern int flags;
extern char nfs_pseudoroot[PATH_MAX];
@@ -142,7 +143,7 @@ setquota_rslt *setquotainfo(int lflags, caddr_t * argp, struct svc_req *rqstp)
qcmd = arguments.ext_args->sqa_qcmd;
type = arguments.ext_args->sqa_type;
- if (arguments.ext_args->sqa_pathp[0] != '/')
+ if (!(flags & FL_MIXED_PATHS) || arguments.ext_args->sqa_pathp[0] != '/')
sstrncpy(pathname, nfs_pseudoroot, PATH_MAX);
sstrncat(pathname, arguments.ext_args->sqa_pathp, PATH_MAX);
servnet2utildqblk(&dqblk, &arguments.ext_args->sqa_dqblk);
@@ -158,7 +159,7 @@ setquota_rslt *setquotainfo(int lflags, caddr_t * argp, struct svc_req *rqstp)
qcmd = arguments.args->sqa_qcmd;
type = USRQUOTA;
- if (arguments.args->sqa_pathp[0] != '/')
+ if (!(flags & FL_MIXED_PATHS) || arguments.args->sqa_pathp[0] != '/')
sstrncpy(pathname, nfs_pseudoroot, PATH_MAX);
sstrncat(pathname, arguments.args->sqa_pathp, PATH_MAX);
servnet2utildqblk(&dqblk, &arguments.args->sqa_dqblk);
@@ -227,7 +228,7 @@ getquota_rslt *getquotainfo(int lflags, caddr_t * argp, struct svc_req * rqstp)
arguments.ext_args = (ext_getquota_args *) argp;
id = arguments.ext_args->gqa_id;
type = arguments.ext_args->gqa_type;
- if (arguments.ext_args->gqa_pathp[0] != '/')
+ if (!(flags & FL_MIXED_PATHS) || arguments.ext_args->gqa_pathp[0] != '/')
sstrncpy(pathname, nfs_pseudoroot, PATH_MAX);
sstrncat(pathname, arguments.ext_args->gqa_pathp, PATH_MAX);
@@ -246,7 +247,7 @@ getquota_rslt *getquotainfo(int lflags, caddr_t * argp, struct svc_req * rqstp)
arguments.args = (getquota_args *) argp;
id = arguments.args->gqa_uid;
type = USRQUOTA;
- if (arguments.ext_args->gqa_pathp[0] != '/')
+ if (!(flags & FL_MIXED_PATHS) || arguments.ext_args->gqa_pathp[0] != '/')
sstrncpy(pathname, nfs_pseudoroot, PATH_MAX);
sstrncat(pathname, arguments.args->gqa_pathp, PATH_MAX);