diff mbox

NFSD: fix bug for readdir of pseudofs

Message ID 539AC53A.9070600@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Kinglong Mee June 13, 2014, 9:32 a.m. UTC
Commit 561f0ed498ca (nfsd4: allow large readdirs) introduces a bug
about readdir the root of pseudofs.

Call xdr_truncate_encode() revert encoded name when skipping.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfsd/nfs4xdr.c | 1 +
 1 file changed, 1 insertion(+)

Comments

J. Bruce Fields June 17, 2014, 8:57 p.m. UTC | #1
On Fri, Jun 13, 2014 at 05:32:42PM +0800, Kinglong Mee wrote:
> Commit 561f0ed498ca (nfsd4: allow large readdirs) introduces a bug
> about readdir the root of pseudofs.
> 
> Call xdr_truncate_encode() revert encoded name when skipping.

Thanks for the fix!  Applying for 3.16.

--b.

> 
> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
> ---
>  fs/nfsd/nfs4xdr.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
> index 53ca43c..30913c8 100644
> --- a/fs/nfsd/nfs4xdr.c
> +++ b/fs/nfsd/nfs4xdr.c
> @@ -2687,6 +2687,7 @@ nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
>  		nfserr = nfserr_toosmall;
>  		goto fail;
>  	case nfserr_noent:
> +		xdr_truncate_encode(xdr, start_offset);
>  		goto skip_entry;
>  	default:
>  		/*
> -- 
> 1.9.3
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 53ca43c..30913c8 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -2687,6 +2687,7 @@  nfsd4_encode_dirent(void *ccdv, const char *name, int namlen,
 		nfserr = nfserr_toosmall;
 		goto fail;
 	case nfserr_noent:
+		xdr_truncate_encode(xdr, start_offset);
 		goto skip_entry;
 	default:
 		/*