Lines Matching refs:inode

29 static void extent_trunc(struct inode *inode, struct extent_position *epos,  in extent_trunc()  argument
34 int last_block = (elen + inode->i_sb->s_blocksize - 1) >> in extent_trunc()
35 inode->i_sb->s_blocksize_bits; in extent_trunc()
36 int first_block = (nelen + inode->i_sb->s_blocksize - 1) >> in extent_trunc()
37 inode->i_sb->s_blocksize_bits; in extent_trunc()
41 udf_free_blocks(inode->i_sb, inode, eloc, 0, in extent_trunc()
50 udf_write_aext(inode, epos, &neloc, nelen, 0); in extent_trunc()
53 mark_inode_dirty(inode); in extent_trunc()
56 udf_free_blocks(inode->i_sb, inode, eloc, in extent_trunc()
67 void udf_truncate_tail_extent(struct inode *inode) in udf_truncate_tail_extent() argument
75 struct udf_inode_info *iinfo = UDF_I(inode); in udf_truncate_tail_extent()
78 inode->i_size == iinfo->i_lenExtents) in udf_truncate_tail_extent()
81 if (inode->i_nlink == 0) in udf_truncate_tail_extent()
92 while ((netype = udf_next_aext(inode, &epos, &eloc, &elen, 1)) != -1) { in udf_truncate_tail_extent()
95 if (lbcount > inode->i_size) { in udf_truncate_tail_extent()
96 if (lbcount - inode->i_size >= inode->i_sb->s_blocksize) in udf_truncate_tail_extent()
97 udf_warn(inode->i_sb, in udf_truncate_tail_extent()
99 (unsigned)inode->i_ino, in udf_truncate_tail_extent()
100 (long long)inode->i_size, in udf_truncate_tail_extent()
104 nelen = elen - (lbcount - inode->i_size); in udf_truncate_tail_extent()
106 extent_trunc(inode, &epos, &eloc, etype, elen, nelen); in udf_truncate_tail_extent()
108 if (udf_next_aext(inode, &epos, &eloc, &elen, 1) != -1) in udf_truncate_tail_extent()
109 udf_err(inode->i_sb, in udf_truncate_tail_extent()
111 (unsigned)inode->i_ino); in udf_truncate_tail_extent()
117 iinfo->i_lenExtents = inode->i_size; in udf_truncate_tail_extent()
121 void udf_discard_prealloc(struct inode *inode) in udf_discard_prealloc() argument
129 struct udf_inode_info *iinfo = UDF_I(inode); in udf_discard_prealloc()
132 inode->i_size == iinfo->i_lenExtents) in udf_discard_prealloc()
145 while ((netype = udf_next_aext(inode, &epos, &eloc, &elen, 1)) != -1) { in udf_discard_prealloc()
152 extent_trunc(inode, &epos, &eloc, etype, elen, 0); in udf_discard_prealloc()
156 udf_file_entry_alloc_offset(inode); in udf_discard_prealloc()
157 mark_inode_dirty(inode); in udf_discard_prealloc()
164 if (!UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_STRICT) || in udf_discard_prealloc()
165 UDF_SB(inode->i_sb)->s_udfrev >= 0x0201) in udf_discard_prealloc()
170 mark_buffer_dirty_inode(epos.bh, inode); in udf_discard_prealloc()
179 static void udf_update_alloc_ext_desc(struct inode *inode, in udf_update_alloc_ext_desc() argument
183 struct super_block *sb = inode->i_sb; in udf_update_alloc_ext_desc()
194 mark_buffer_dirty_inode(epos->bh, inode); in udf_update_alloc_ext_desc()
202 void udf_truncate_extents(struct inode *inode) in udf_truncate_extents() argument
208 struct super_block *sb = inode->i_sb; in udf_truncate_extents()
209 sector_t first_block = inode->i_size >> sb->s_blocksize_bits, offset; in udf_truncate_extents()
212 struct udf_inode_info *iinfo = UDF_I(inode); in udf_truncate_extents()
221 etype = inode_bmap(inode, first_block, &epos, &eloc, &elen, &offset); in udf_truncate_extents()
223 (inode->i_size & (sb->s_blocksize - 1)); in udf_truncate_extents()
230 extent_trunc(inode, &epos, &eloc, etype, elen, byte_offset); in udf_truncate_extents()
238 lenalloc -= udf_file_entry_alloc_offset(inode); in udf_truncate_extents()
242 while ((etype = udf_current_aext(inode, &epos, &eloc, in udf_truncate_extents()
245 udf_write_aext(inode, &epos, &neloc, nelen, 0); in udf_truncate_extents()
254 mark_inode_dirty(inode); in udf_truncate_extents()
256 udf_update_alloc_ext_desc(inode, in udf_truncate_extents()
270 extent_trunc(inode, &epos, &eloc, etype, elen, 0); in udf_truncate_extents()
280 mark_inode_dirty(inode); in udf_truncate_extents()
282 udf_update_alloc_ext_desc(inode, &epos, lenalloc); in udf_truncate_extents()
283 iinfo->i_lenExtents = inode->i_size; in udf_truncate_extents()