- if (indirect_ext_len)
- {
- if (!epos.bh)
- BUG();
- udf_free_blocks(sb, inode, epos.block, 0, indirect_ext_len);
- }
- else
- {
- if (!epos.bh)
- {
- UDF_I_LENALLOC(inode) = lenalloc;
- mark_inode_dirty(inode);
- }
- else
- {
- struct allocExtDesc *aed = (struct allocExtDesc *)(epos.bh->b_data);
- aed->lengthAllocDescs = cpu_to_le32(lenalloc);
- if (!UDF_QUERY_FLAG(sb, UDF_FLAG_STRICT) || UDF_SB_UDFREV(sb) >= 0x0201)
- udf_update_tag(epos.bh->b_data, lenalloc +
- sizeof(struct allocExtDesc));
- else
- udf_update_tag(epos.bh->b_data, sizeof(struct allocExtDesc));
- mark_buffer_dirty_inode(epos.bh, inode);
- }
- }
- }
- else if (inode->i_size)
- {
- if (byte_offset)
- {
+ if (indirect_ext_len) {
+ BUG_ON(!epos.bh);
+ udf_free_blocks(sb, inode, epos.block, 0,
+ indirect_ext_len);
+ } else if (!epos.bh) {
+ iinfo->i_lenAlloc = lenalloc;
+ mark_inode_dirty(inode);
+ } else
+ udf_update_alloc_ext_desc(inode, &epos, lenalloc);
+ } else if (inode->i_size) {
+ if (byte_offset) {