nfs4: Fix amount of data written when using AIO

This commit is contained in:
Pawel Dziepak
2012-08-16 01:30:24 +02:00
parent c0344ea198
commit 45cd64efd9
2 changed files with 5 additions and 3 deletions
@@ -353,8 +353,8 @@ Inode::WriteDirect(OpenStateCookie* cookie, off_t pos, const void* _buffer,
while (size < *_length) {
uint32 len = *_length - size;
status_t result = WriteFile(cookie, state, pos + size,
&len, buffer + size, attribute);
status_t result = WriteFile(cookie, state, pos + size, &len,
buffer + size, attribute);
if (result != B_OK) {
if (size == 0)
return result;
@@ -153,8 +153,10 @@ WorkQueue::JobIO(IORequestArgs* args)
uint64 size = 0;
status_t result;
if (io_request_is_write(args->fRequest)) {
result = read_from_io_request(args->fRequest, buffer, length);
if (offset + length > args->fInode->MaxFileSize())
length = args->fInode->MaxFileSize() - offset;
result = read_from_io_request(args->fRequest, buffer, length);
do {
size_t bytesWritten = length - size;
result = args->fInode->WriteDirect(NULL, offset + size,