Changeset 9a0be34 in mainline
- Timestamp:
 - 2011-09-06T19:47:51Z (14 years ago)
 - Branches:
 - lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
 - Children:
 - 7a46bfe
 - Parents:
 - 5e0427e8
 - File:
 - 
      
- 1 edited
 
- 
          
  uspace/srv/fs/minixfs/mfs_rw.c (modified) (5 diffs)
 
 
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.
  