- etype = udf_next_aext(inode, &epos, &eloc, &elen, 1);
-
- if (etype == (EXT_NOT_RECORDED_NOT_ALLOCATED >> 30))
- {
- epos.offset -= adsize;
- elen = EXT_NOT_RECORDED_NOT_ALLOCATED | (elen + byte_offset);
- udf_write_aext(inode, &epos, eloc, elen, 0);
- }
- else if (etype == (EXT_NOT_RECORDED_ALLOCATED >> 30))
- {
- kernel_lb_addr neloc = { 0, 0 };
- epos.offset -= adsize;
- nelen = EXT_NOT_RECORDED_NOT_ALLOCATED |
- ((elen + byte_offset + inode->i_sb->s_blocksize - 1) &
- ~(inode->i_sb->s_blocksize - 1));
- udf_write_aext(inode, &epos, neloc, nelen, 1);
- udf_add_aext(inode, &epos, eloc, (etype << 30) | elen, 1);
- }
- else
- {
- if (elen & (inode->i_sb->s_blocksize - 1))
- {
- epos.offset -= adsize;
- elen = EXT_RECORDED_ALLOCATED |
- ((elen + inode->i_sb->s_blocksize - 1) &
- ~(inode->i_sb->s_blocksize - 1));
- udf_write_aext(inode, &epos, eloc, elen, 1);
- }
- memset(&eloc, 0x00, sizeof(kernel_lb_addr));
- elen = EXT_NOT_RECORDED_NOT_ALLOCATED | byte_offset;
- udf_add_aext(inode, &epos, eloc, elen, 1);
- }