nfs4: Fix amount of data written when using AIO
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user