]> git.baikalelectronics.ru Git - kernel.git/commit
nfsd/nfsd3_proc_readdir: fix buffer count and page pointers
authorMurphy Zhou <jencce.kernel@gmail.com>
Thu, 4 Apr 2019 06:57:11 +0000 (14:57 +0800)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 5 Apr 2019 23:57:24 +0000 (19:57 -0400)
commitdca57006aa9ff553d57e06a353ca9e505c07db05
tree097ea6e5d63a6fc920c1c0b30f7de874f148b4cf
parenta550ce1d91d21e3984486df96cb01829d4358e8e
nfsd/nfsd3_proc_readdir: fix buffer count and page pointers

After this commit
  93a28a2 nfsd: allow nfsv3 readdir request to be larger.
nfsv3 readdir request size can be larger than PAGE_SIZE. So if the
directory been read is large enough, we can use multiple pages
in rq_respages. Update buffer count and page pointers like we do
in readdirplus to make this happen.

Now listing a directory within 3000 files will panic because we
are counting in a wrong way and would write on random page.

Fixes: 93a28a2 "nfsd: allow nfsv3 readdir request to be larger"
Signed-off-by: Murphy Zhou <jencce.kernel@gmail.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs3proc.c
fs/nfsd/nfs3xdr.c