Loading fs/nfsd/nfs2acl.c +5 −5 Original line number Diff line number Diff line Loading @@ -188,17 +188,17 @@ static __be32 nfsacld_proc_access(struct svc_rqst *rqstp) static int nfsaclsvc_decode_getaclargs(struct svc_rqst *rqstp, __be32 *p) { struct xdr_stream *xdr = &rqstp->rq_arg_stream; struct nfsd3_getaclargs *argp = rqstp->rq_argp; p = nfs2svc_decode_fh(p, &argp->fh); if (!p) if (!svcxdr_decode_fhandle(xdr, &argp->fh)) return 0; if (xdr_stream_decode_u32(xdr, &argp->mask) < 0) return 0; argp->mask = ntohl(*p); p++; return xdr_argsize_check(rqstp, p); return 1; } static int nfsaclsvc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p) { struct nfsd3_setaclargs *argp = rqstp->rq_argp; Loading fs/nfsd/nfsxdr.c +10 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,16 @@ decode_fh(__be32 *p, struct svc_fh *fhp) return p + (NFS_FHSIZE >> 2); } static bool /** * svcxdr_decode_fhandle - Decode an NFSv2 file handle * @xdr: XDR stream positioned at an encoded NFSv2 FH * @fhp: OUT: filled-in server file handle * * Return values: * %false: The encoded file handle was not valid * %true: @fhp has been initialized */ bool svcxdr_decode_fhandle(struct xdr_stream *xdr, struct svc_fh *fhp) { __be32 *p; Loading fs/nfsd/xdr.h +1 −0 Original line number Diff line number Diff line Loading @@ -165,5 +165,6 @@ void nfssvc_release_readres(struct svc_rqst *rqstp); /* Helper functions for NFSv2 ACL code */ __be32 *nfs2svc_encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp, struct kstat *stat); __be32 *nfs2svc_decode_fh(__be32 *p, struct svc_fh *fhp); bool svcxdr_decode_fhandle(struct xdr_stream *xdr, struct svc_fh *fhp); #endif /* LINUX_NFSD_H */ fs/nfsd/xdr3.h +1 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,7 @@ struct nfsd3_commitargs { struct nfsd3_getaclargs { struct svc_fh fh; int mask; __u32 mask; }; struct posix_acl; Loading Loading
fs/nfsd/nfs2acl.c +5 −5 Original line number Diff line number Diff line Loading @@ -188,17 +188,17 @@ static __be32 nfsacld_proc_access(struct svc_rqst *rqstp) static int nfsaclsvc_decode_getaclargs(struct svc_rqst *rqstp, __be32 *p) { struct xdr_stream *xdr = &rqstp->rq_arg_stream; struct nfsd3_getaclargs *argp = rqstp->rq_argp; p = nfs2svc_decode_fh(p, &argp->fh); if (!p) if (!svcxdr_decode_fhandle(xdr, &argp->fh)) return 0; if (xdr_stream_decode_u32(xdr, &argp->mask) < 0) return 0; argp->mask = ntohl(*p); p++; return xdr_argsize_check(rqstp, p); return 1; } static int nfsaclsvc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p) { struct nfsd3_setaclargs *argp = rqstp->rq_argp; Loading
fs/nfsd/nfsxdr.c +10 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,16 @@ decode_fh(__be32 *p, struct svc_fh *fhp) return p + (NFS_FHSIZE >> 2); } static bool /** * svcxdr_decode_fhandle - Decode an NFSv2 file handle * @xdr: XDR stream positioned at an encoded NFSv2 FH * @fhp: OUT: filled-in server file handle * * Return values: * %false: The encoded file handle was not valid * %true: @fhp has been initialized */ bool svcxdr_decode_fhandle(struct xdr_stream *xdr, struct svc_fh *fhp) { __be32 *p; Loading
fs/nfsd/xdr.h +1 −0 Original line number Diff line number Diff line Loading @@ -165,5 +165,6 @@ void nfssvc_release_readres(struct svc_rqst *rqstp); /* Helper functions for NFSv2 ACL code */ __be32 *nfs2svc_encode_fattr(struct svc_rqst *rqstp, __be32 *p, struct svc_fh *fhp, struct kstat *stat); __be32 *nfs2svc_decode_fh(__be32 *p, struct svc_fh *fhp); bool svcxdr_decode_fhandle(struct xdr_stream *xdr, struct svc_fh *fhp); #endif /* LINUX_NFSD_H */
fs/nfsd/xdr3.h +1 −1 Original line number Diff line number Diff line Loading @@ -102,7 +102,7 @@ struct nfsd3_commitargs { struct nfsd3_getaclargs { struct svc_fh fh; int mask; __u32 mask; }; struct posix_acl; Loading