From b5f4715038ac5236a31e396208d33a5e600f9f4c Mon Sep 17 00:00:00 2001 From: jkar8572 Date: Thu, 23 Aug 2007 19:58:14 +0000 Subject: Added options to enable pathname mangling for NFSv4 (Jan Kara) --- rquota_server.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'rquota_server.c') 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 * @@ -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); -- cgit v1.2.3