diff options
| author | Jan Kara <jack@suse.cz> | 2012-07-09 13:24:21 +0200 | 
|---|---|---|
| committer | Jan Kara <jack@suse.cz> | 2012-07-09 13:24:21 +0200 | 
| commit | 17dc59ba418c3d6b0675d5b74d280acab2d4e369 (patch) | |
| tree | 49e7310921260fc3e1f43e76a052ee6733982f6f | |
| parent | bff943af6fe3af022c1c7a22cdb2e18a242eaf35 (diff) | |
| download | olio-linux-3.10-17dc59ba418c3d6b0675d5b74d280acab2d4e369.tar.xz olio-linux-3.10-17dc59ba418c3d6b0675d5b74d280acab2d4e369.zip  | |
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>
| -rw-r--r-- | fs/udf/truncate.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/udf/truncate.c b/fs/udf/truncate.c index 4b98fee8e16..8a9657d7f7c 100644 --- a/fs/udf/truncate.c +++ b/fs/udf/truncate.c @@ -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);  |