|
|
|
@ -96,6 +96,9 @@ size_t mufs_read(struct mufs_file *file, void *data, size_t len) |
|
|
|
|
if (!(file->mode & MUFS_READ)) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
if (file->va >= file->tree->file_size) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
if (!(ret = mufs_tree_read(file->tree, data, file->va, len))) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
@ -122,8 +125,12 @@ size_t mufs_write(struct mufs_file *file, const void *data, size_t len) |
|
|
|
|
|
|
|
|
|
file->va += ret; |
|
|
|
|
|
|
|
|
|
if (file->tree->file_size <= file->va && mufs_sync_tree(file->tree) < 0) |
|
|
|
|
return 0; |
|
|
|
|
if (file->tree->file_size <= file->va) { |
|
|
|
|
file->tree->file_size = file->va; |
|
|
|
|
|
|
|
|
|
if (mufs_sync_tree(file->tree) < 0) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|