diff options
author | Steve French <sfrench@us.ibm.com> | 2006-02-28 04:45:48 +0100 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-02-28 04:45:48 +0100 |
commit | d47d7c1a850b867047fe17140fabd0376894e849 (patch) | |
tree | 267b5a68a3182c937a9958ea507712f2d78db7bf /fs/cifs/cifssmb.c | |
parent | [CIFS] Free small buffers earlier so we exceed the cifs (diff) | |
download | linux-d47d7c1a850b867047fe17140fabd0376894e849.tar.xz linux-d47d7c1a850b867047fe17140fabd0376894e849.zip |
[CIFS] CIFS readdir perf optimizations part 1
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifssmb.c')
-rw-r--r-- | fs/cifs/cifssmb.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c index e567f4e6196a..0ddd97b1d87d 100644 --- a/fs/cifs/cifssmb.c +++ b/fs/cifs/cifssmb.c @@ -3026,6 +3026,7 @@ findFirstRetry: psrch_inf->unicode = FALSE; psrch_inf->ntwrk_buf_start = (char *)pSMBr; + psrch_inf->smallBuf = 0; psrch_inf->srch_entries_start = (char *) &pSMBr->hdr.Protocol + le16_to_cpu(pSMBr->t2.DataOffset); @@ -3146,9 +3147,14 @@ int CIFSFindNext(const int xid, struct cifsTconInfo *tcon, parms = (T2_FNEXT_RSP_PARMS *)response_data; response_data = (char *)&pSMBr->hdr.Protocol + le16_to_cpu(pSMBr->t2.DataOffset); - cifs_buf_release(psrch_inf->ntwrk_buf_start); + if(psrch_inf->smallBuf) + cifs_small_buf_release( + psrch_inf->ntwrk_buf_start); + else + cifs_buf_release(psrch_inf->ntwrk_buf_start); psrch_inf->srch_entries_start = response_data; psrch_inf->ntwrk_buf_start = (char *)pSMB; + psrch_inf->smallBuf = 0; if(parms->EndofSearch) psrch_inf->endOfSearch = TRUE; else |