mufs: properly sync file size and check file size in mufs_write() and mufs_read() respectively

tags/0.1.0
S.J.R. van Schaik 8 years ago
parent 496b2182e3
commit ab233bfd33
  1. 11
      source/fs/mufs/file.c

@ -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;
}

Loading…
Cancel
Save