diff options
| author | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
|---|---|---|
| committer | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
| commit | 79828b4fa835f73cdaf4bffa48696abdcbea9d02 (patch) | |
| tree | 5e0fa7156acb75ba603022bc807df8f2fedb97a8 /fs/hpfs/file.c | |
| parent | 721b51fcf91898299d96f4b72cb9434cda29dce6 (diff) | |
| parent | 8c1a9d6323abf0fb1e5dad96cf3f1c783505ea5a (diff) | |
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-fix-rt5645
Diffstat (limited to 'fs/hpfs/file.c')
| -rw-r--r-- | fs/hpfs/file.c | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/hpfs/file.c b/fs/hpfs/file.c index 7ca28d604bf7..d3bcdd975700 100644 --- a/fs/hpfs/file.c +++ b/fs/hpfs/file.c @@ -83,6 +83,11 @@ static int hpfs_get_block(struct inode *inode, sector_t iblock, struct buffer_he  	if (s) {  		if (bh_result->b_size >> 9 < n_secs)  			n_secs = bh_result->b_size >> 9; +		n_secs = hpfs_search_hotfix_map_for_range(inode->i_sb, s, n_secs); +		if (unlikely(!n_secs)) { +			s = hpfs_search_hotfix_map(inode->i_sb, s); +			n_secs = 1; +		}  		map_bh(bh_result, inode->i_sb, s);  		bh_result->b_size = n_secs << 9;  		goto ret_0; @@ -101,7 +106,7 @@ static int hpfs_get_block(struct inode *inode, sector_t iblock, struct buffer_he  	inode->i_blocks++;  	hpfs_i(inode)->mmu_private += 512;  	set_buffer_new(bh_result); -	map_bh(bh_result, inode->i_sb, s); +	map_bh(bh_result, inode->i_sb, hpfs_search_hotfix_map(inode->i_sb, s));  	ret_0:  	r = 0;  	ret_r: @@ -181,7 +186,7 @@ static int hpfs_write_end(struct file *file, struct address_space *mapping,  static sector_t _hpfs_bmap(struct address_space *mapping, sector_t block)  { -	return generic_block_bmap(mapping,block,hpfs_get_block); +	return generic_block_bmap(mapping, block, hpfs_get_block);  }  const struct address_space_operations hpfs_aops = {  |