Loading fs/nfsd/nfsproc.c +1 −1 Original line number Diff line number Diff line Loading @@ -602,7 +602,7 @@ nfsd_proc_readdir(struct svc_rqst *rqstp) resp->cookie_offset = 0; offset = argp->cookie; resp->status = nfsd_readdir(rqstp, &argp->fh, &offset, &resp->common, nfs2svc_encode_entry); &resp->common, nfssvc_encode_entry); nfssvc_encode_nfscookie(resp, offset); fh_put(&argp->fh); Loading fs/nfsd/nfsxdr.c +3 −48 Original line number Diff line number Diff line Loading @@ -663,7 +663,7 @@ svcxdr_encode_entry_common(struct nfsd_readdirres *resp, const char *name, } /** * nfs2svc_encode_entry - encode one NFSv2 READDIR entry * nfssvc_encode_entry - encode one NFSv2 READDIR entry * @data: directory context * @name: name of the object to be encoded * @namlen: length of that name, in bytes Loading @@ -680,7 +680,7 @@ svcxdr_encode_entry_common(struct nfsd_readdirres *resp, const char *name, * - resp->common.err * - resp->cookie_offset */ int nfs2svc_encode_entry(void *data, const char *name, int namlen, int nfssvc_encode_entry(void *data, const char *name, int namlen, loff_t offset, u64 ino, unsigned int d_type) { struct readdir_cd *ccd = data; Loading @@ -706,51 +706,6 @@ int nfs2svc_encode_entry(void *data, const char *name, int namlen, return -EINVAL; } int nfssvc_encode_entry(void *ccdv, const char *name, int namlen, loff_t offset, u64 ino, unsigned int d_type) { struct readdir_cd *ccd = ccdv; struct nfsd_readdirres *cd = container_of(ccd, struct nfsd_readdirres, common); __be32 *p = cd->buffer; int buflen, slen; /* dprintk("nfsd: entry(%.*s off %ld ino %ld)\n", namlen, name, offset, ino); */ if (offset > ~((u32) 0)) { cd->common.err = nfserr_fbig; return -EINVAL; } nfssvc_encode_nfscookie(cd, offset); /* truncate filename */ namlen = min(namlen, NFS2_MAXNAMLEN); slen = XDR_QUADLEN(namlen); if ((buflen = cd->buflen - slen - 4) < 0) { cd->common.err = nfserr_toosmall; return -EINVAL; } if (ino > ~((u32) 0)) { cd->common.err = nfserr_fbig; return -EINVAL; } *p++ = xdr_one; /* mark entry present */ *p++ = htonl((u32) ino); /* file id */ p = xdr_encode_array(p, name, namlen);/* name length & name */ cd->offset = p; /* remember pointer */ *p++ = htonl(~0U); /* offset of next entry */ cd->count += p - cd->buffer; cd->buflen = buflen; cd->buffer = p; cd->common.err = nfs_ok; return 0; } /* * XDR release functions */ Loading fs/nfsd/xdr.h +2 −8 Original line number Diff line number Diff line Loading @@ -115,10 +115,6 @@ struct nfsd_readdirres { struct xdr_stream xdr; struct xdr_buf dirlist; struct readdir_cd common; __be32 * buffer; int buflen; __be32 * offset; struct page *page; unsigned int cookie_offset; }; Loading Loading @@ -164,10 +160,8 @@ int nfssvc_encode_statfsres(struct svc_rqst *, __be32 *); int nfssvc_encode_readdirres(struct svc_rqst *, __be32 *); void nfssvc_encode_nfscookie(struct nfsd_readdirres *resp, u32 offset); int nfs2svc_encode_entry(void *data, const char *name, int namlen, int nfssvc_encode_entry(void *data, const char *name, int namlen, loff_t offset, u64 ino, unsigned int d_type); int nfssvc_encode_entry(void *, const char *name, int namlen, loff_t offset, u64 ino, unsigned int); void nfssvc_release_attrstat(struct svc_rqst *rqstp); void nfssvc_release_diropres(struct svc_rqst *rqstp); Loading Loading
fs/nfsd/nfsproc.c +1 −1 Original line number Diff line number Diff line Loading @@ -602,7 +602,7 @@ nfsd_proc_readdir(struct svc_rqst *rqstp) resp->cookie_offset = 0; offset = argp->cookie; resp->status = nfsd_readdir(rqstp, &argp->fh, &offset, &resp->common, nfs2svc_encode_entry); &resp->common, nfssvc_encode_entry); nfssvc_encode_nfscookie(resp, offset); fh_put(&argp->fh); Loading
fs/nfsd/nfsxdr.c +3 −48 Original line number Diff line number Diff line Loading @@ -663,7 +663,7 @@ svcxdr_encode_entry_common(struct nfsd_readdirres *resp, const char *name, } /** * nfs2svc_encode_entry - encode one NFSv2 READDIR entry * nfssvc_encode_entry - encode one NFSv2 READDIR entry * @data: directory context * @name: name of the object to be encoded * @namlen: length of that name, in bytes Loading @@ -680,7 +680,7 @@ svcxdr_encode_entry_common(struct nfsd_readdirres *resp, const char *name, * - resp->common.err * - resp->cookie_offset */ int nfs2svc_encode_entry(void *data, const char *name, int namlen, int nfssvc_encode_entry(void *data, const char *name, int namlen, loff_t offset, u64 ino, unsigned int d_type) { struct readdir_cd *ccd = data; Loading @@ -706,51 +706,6 @@ int nfs2svc_encode_entry(void *data, const char *name, int namlen, return -EINVAL; } int nfssvc_encode_entry(void *ccdv, const char *name, int namlen, loff_t offset, u64 ino, unsigned int d_type) { struct readdir_cd *ccd = ccdv; struct nfsd_readdirres *cd = container_of(ccd, struct nfsd_readdirres, common); __be32 *p = cd->buffer; int buflen, slen; /* dprintk("nfsd: entry(%.*s off %ld ino %ld)\n", namlen, name, offset, ino); */ if (offset > ~((u32) 0)) { cd->common.err = nfserr_fbig; return -EINVAL; } nfssvc_encode_nfscookie(cd, offset); /* truncate filename */ namlen = min(namlen, NFS2_MAXNAMLEN); slen = XDR_QUADLEN(namlen); if ((buflen = cd->buflen - slen - 4) < 0) { cd->common.err = nfserr_toosmall; return -EINVAL; } if (ino > ~((u32) 0)) { cd->common.err = nfserr_fbig; return -EINVAL; } *p++ = xdr_one; /* mark entry present */ *p++ = htonl((u32) ino); /* file id */ p = xdr_encode_array(p, name, namlen);/* name length & name */ cd->offset = p; /* remember pointer */ *p++ = htonl(~0U); /* offset of next entry */ cd->count += p - cd->buffer; cd->buflen = buflen; cd->buffer = p; cd->common.err = nfs_ok; return 0; } /* * XDR release functions */ Loading
fs/nfsd/xdr.h +2 −8 Original line number Diff line number Diff line Loading @@ -115,10 +115,6 @@ struct nfsd_readdirres { struct xdr_stream xdr; struct xdr_buf dirlist; struct readdir_cd common; __be32 * buffer; int buflen; __be32 * offset; struct page *page; unsigned int cookie_offset; }; Loading Loading @@ -164,10 +160,8 @@ int nfssvc_encode_statfsres(struct svc_rqst *, __be32 *); int nfssvc_encode_readdirres(struct svc_rqst *, __be32 *); void nfssvc_encode_nfscookie(struct nfsd_readdirres *resp, u32 offset); int nfs2svc_encode_entry(void *data, const char *name, int namlen, int nfssvc_encode_entry(void *data, const char *name, int namlen, loff_t offset, u64 ino, unsigned int d_type); int nfssvc_encode_entry(void *, const char *name, int namlen, loff_t offset, u64 ino, unsigned int); void nfssvc_release_attrstat(struct svc_rqst *rqstp); void nfssvc_release_diropres(struct svc_rqst *rqstp); Loading