mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 15:30:14 +00:00
Windows: buf_CleanAsyncLocked dirty range only
buf_CleanAsyncLocked() should not instruct cm_BufWrite() to write a full chunk if the current buffer is the only one that is dirty. cm_BufWrite() will determine if it is appropriate to fill a full chunk when storing. Instructing it to check a full chunk forces it to do more work than necessary. Change-Id: Ie140d405147d700196532b72f04885a301a2550f Reviewed-on: http://gerrit.openafs.org/6054 Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com> Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
This commit is contained in:
parent
55f5f356af
commit
fd42e08bf1
@ -863,15 +863,14 @@ afs_uint32 buf_CleanAsyncLocked(cm_scache_t *scp, cm_buf_t *bp, cm_req_t *reqp,
|
||||
|
||||
offset = bp->offset;
|
||||
LargeIntegerAdd(offset, ConvertLongToLargeInteger(bp->dirty_offset));
|
||||
/*
|
||||
* Only specify the dirty length of the current buffer in the call
|
||||
* to cm_BufWrite(). It is the responsibility of cm_BufWrite()
|
||||
* to determine if it is appropriate to fill a full chunk of data
|
||||
* when storing to the file server.
|
||||
*/
|
||||
code = (*cm_buf_opsp->Writep)(scp, &offset,
|
||||
#if 1
|
||||
/* we might as well try to write all of the contiguous
|
||||
* dirty buffers in one RPC
|
||||
*/
|
||||
cm_chunkSize,
|
||||
#else
|
||||
bp->dirty_length,
|
||||
#endif
|
||||
flags, bp->userp, reqp);
|
||||
osi_Log3(buf_logp, "buf_CleanAsyncLocked I/O on scp 0x%p buf 0x%p, done=%d", scp, bp, code);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user