Changeset 9a0be34 in mainline for uspace/srv/fs/minixfs/mfs_rw.c
- Timestamp:
- 2011-09-06T19:47:51Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7a46bfe
- Parents:
- 5e0427e8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fs/minixfs/mfs_rw.c
r5e0427e8 r9a0be34 83 83 const struct mfs_sb_info *sbi = mnode->instance->sbi; 84 84 85 if (pos >= sbi->max_file_size) { 86 /*Can't write beyond the maximum file size*/ 87 return EINVAL; 88 } 89 85 90 /*Compute the relative block number in file*/ 86 91 int rblock = pos / sbi->block_size; … … 97 102 uint32_t *ind_zone, *ind2_zone; 98 103 99 assert(mnode);100 104 struct mfs_ino_info *ino_i = mnode->ino_i; 101 102 assert(ino_i);103 assert(mnode->instance);104 105 105 struct mfs_instance *inst = mnode->instance; 106 106 struct mfs_sb_info *sbi = inst->sbi; 107 assert(sbi);108 107 109 108 const mfs_version_t fs_version = sbi->fs_version; 109 const bool deleting = write_mode && (w_block == 0); 110 110 111 111 if (fs_version == MFS_VERSION_V1) { … … 132 132 /*The wanted block is in the single indirect zone chain*/ 133 133 if (ino_i->i_izone[0] == 0) { 134 if (write_mode ) {134 if (write_mode && !deleting) { 135 135 uint32_t zone; 136 136 r = alloc_zone_and_clear(inst, &zone); … … 166 166 /*read the first indirect zone of the chain*/ 167 167 if (ino_i->i_izone[1] == 0) { 168 if (write_mode ) {168 if (write_mode && !deleting) { 169 169 uint32_t zone; 170 170 r = alloc_zone_and_clear(inst, &zone); … … 193 193 /*read the second indirect zone of the chain*/ 194 194 if (ind_zone[ind2_off] == 0) { 195 if (write_mode ) {195 if (write_mode && !deleting) { 196 196 uint32_t zone; 197 197 r = alloc_zone_and_clear(inst, &zone);
Note:
See TracChangeset
for help on using the changeset viewer.