diff options
Diffstat (limited to 'fs/udf/truncate.c')
| -rw-r--r-- | fs/udf/truncate.c | 37 | 
1 files changed, 20 insertions, 17 deletions
diff --git a/fs/udf/truncate.c b/fs/udf/truncate.c index 8eb1d24ce5c..fe61be17cda 100644 --- a/fs/udf/truncate.c +++ b/fs/udf/truncate.c @@ -74,17 +74,18 @@ void udf_truncate_tail_extent(struct inode *inode)  	uint64_t lbcount = 0;  	int8_t etype = -1, netype;  	int adsize; +	struct udf_inode_info *iinfo = UDF_I(inode); -	if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB || -	    inode->i_size == UDF_I(inode)->i_lenExtents) +	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB || +	    inode->i_size == iinfo->i_lenExtents)  		return;  	/* Are we going to delete the file anyway? */  	if (inode->i_nlink == 0)  		return; -	if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_SHORT) +	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT)  		adsize = sizeof(short_ad); -	else if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_LONG) +	else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG)  		adsize = sizeof(long_ad);  	else  		BUG(); @@ -117,7 +118,7 @@ void udf_truncate_tail_extent(struct inode *inode)  	}  	/* This inode entry is in-memory only and thus we don't have to mark  	 * the inode dirty */ -	UDF_I(inode)->i_lenExtents = inode->i_size; +	iinfo->i_lenExtents = inode->i_size;  	brelse(epos.bh);  } @@ -129,19 +130,20 @@ void udf_discard_prealloc(struct inode *inode)  	uint64_t lbcount = 0;  	int8_t etype = -1, netype;  	int adsize; +	struct udf_inode_info *iinfo = UDF_I(inode); -	if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB || -	    inode->i_size == UDF_I(inode)->i_lenExtents) +	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB || +	    inode->i_size == iinfo->i_lenExtents)  		return; -	if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_SHORT) +	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT)  		adsize = sizeof(short_ad); -	else if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_LONG) +	else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG)  		adsize = sizeof(long_ad);  	else  		adsize = 0; -	epos.block = UDF_I(inode)->i_location; +	epos.block = iinfo->i_location;  	/* Find the last extent in the file */  	while ((netype = udf_next_aext(inode, &epos, &eloc, &elen, 1)) != -1) { @@ -153,7 +155,7 @@ void udf_discard_prealloc(struct inode *inode)  		lbcount -= elen;  		extent_trunc(inode, &epos, eloc, etype, elen, 0);  		if (!epos.bh) { -			UDF_I(inode)->i_lenAlloc = +			iinfo->i_lenAlloc =  				epos.offset -  				udf_file_entry_alloc_offset(inode);  			mark_inode_dirty(inode); @@ -174,7 +176,7 @@ void udf_discard_prealloc(struct inode *inode)  	}  	/* This inode entry is in-memory only and thus we don't have to mark  	 * the inode dirty */ -	UDF_I(inode)->i_lenExtents = lbcount; +	iinfo->i_lenExtents = lbcount;  	brelse(epos.bh);  } @@ -189,10 +191,11 @@ void udf_truncate_extents(struct inode *inode)  	sector_t first_block = inode->i_size >> sb->s_blocksize_bits, offset;  	loff_t byte_offset;  	int adsize; +	struct udf_inode_info *iinfo = UDF_I(inode); -	if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_SHORT) +	if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT)  		adsize = sizeof(short_ad); -	else if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_LONG) +	else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG)  		adsize = sizeof(long_ad);  	else  		BUG(); @@ -227,7 +230,7 @@ void udf_truncate_extents(struct inode *inode)  							0, indirect_ext_len);  				} else {  					if (!epos.bh) { -						UDF_I(inode)->i_lenAlloc = +						iinfo->i_lenAlloc =  								lenalloc;  						mark_inode_dirty(inode);  					} else { @@ -275,7 +278,7 @@ void udf_truncate_extents(struct inode *inode)  					indirect_ext_len);  		} else {  			if (!epos.bh) { -				UDF_I(inode)->i_lenAlloc = lenalloc; +				iinfo->i_lenAlloc = lenalloc;  				mark_inode_dirty(inode);  			} else {  				struct allocExtDesc *aed = @@ -325,7 +328,7 @@ void udf_truncate_extents(struct inode *inode)  						(sb->s_blocksize - 1)) != 0));  		}  	} -	UDF_I(inode)->i_lenExtents = inode->i_size; +	iinfo->i_lenExtents = inode->i_size;  	brelse(epos.bh);  }  |