mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
udf: Do not decrement i_blocks when freeing indirect extent block
Indirect extent block is not accounted in i_blocks during allocation thus we should not decrement i_blocks when we are freeing such block during truncation. Reported-by: Steve Nickel <snickel58@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
bff943af6f
commit
17dc59ba41
1 changed files with 2 additions and 2 deletions
|
@ -248,7 +248,7 @@ void udf_truncate_extents(struct inode *inode)
|
|||
/* We managed to free all extents in the
|
||||
* indirect extent - free it too */
|
||||
BUG_ON(!epos.bh);
|
||||
udf_free_blocks(sb, inode, &epos.block,
|
||||
udf_free_blocks(sb, NULL, &epos.block,
|
||||
0, indirect_ext_len);
|
||||
} else if (!epos.bh) {
|
||||
iinfo->i_lenAlloc = lenalloc;
|
||||
|
@ -275,7 +275,7 @@ void udf_truncate_extents(struct inode *inode)
|
|||
|
||||
if (indirect_ext_len) {
|
||||
BUG_ON(!epos.bh);
|
||||
udf_free_blocks(sb, inode, &epos.block, 0, indirect_ext_len);
|
||||
udf_free_blocks(sb, NULL, &epos.block, 0, indirect_ext_len);
|
||||
} else if (!epos.bh) {
|
||||
iinfo->i_lenAlloc = lenalloc;
|
||||
mark_inode_dirty(inode);
|
||||
|
|
Loading…
Reference in a new issue