diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-14 09:30:54 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-14 09:30:54 -0700 | 
| commit | b973425cbb51e08301b34fecdfd476a44507d8cf (patch) | |
| tree | 689cfb1e5bb3064f4fad6b381bb208c3ed54cf64 /fs/ext4/extents.c | |
| parent | 7fb30d2b606beb78cda805647faf4d3cdfb39c42 (diff) | |
| parent | e2555fde4159467fb579e6ae3c0a8fc33015d0f5 (diff) | |
| download | olio-linux-3.10-b973425cbb51e08301b34fecdfd476a44507d8cf.tar.xz olio-linux-3.10-b973425cbb51e08301b34fecdfd476a44507d8cf.zip  | |
Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 update from Ted Ts'o:
 "Fixed regressions (two stability regressions and a performance
  regression) introduced during the 3.10-rc1 merge window.
  Also included is a bug fix relating to allocating blocks after
  resizing an ext3 file system when using the ext4 file system driver"
* tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
  jbd,jbd2: fix oops in jbd2_journal_put_journal_head()
  ext4: revert "ext4: use io_end for multiple bios"
  ext4: limit group search loop for non-extent files
  ext4: fix fio regression
Diffstat (limited to 'fs/ext4/extents.c')
| -rw-r--r-- | fs/ext4/extents.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 107936db244..bc0f1910b9c 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -3642,7 +3642,7 @@ int ext4_find_delalloc_range(struct inode *inode,  {  	struct extent_status es; -	ext4_es_find_delayed_extent(inode, lblk_start, &es); +	ext4_es_find_delayed_extent_range(inode, lblk_start, lblk_end, &es);  	if (es.es_len == 0)  		return 0; /* there is no delay extent in this tree */  	else if (es.es_lblk <= lblk_start && @@ -4608,9 +4608,10 @@ static int ext4_find_delayed_extent(struct inode *inode,  	struct extent_status es;  	ext4_lblk_t block, next_del; -	ext4_es_find_delayed_extent(inode, newes->es_lblk, &es); -  	if (newes->es_pblk == 0) { +		ext4_es_find_delayed_extent_range(inode, newes->es_lblk, +				newes->es_lblk + newes->es_len - 1, &es); +  		/*  		 * No extent in extent-tree contains block @newes->es_pblk,  		 * then the block may stay in 1)a hole or 2)delayed-extent. @@ -4630,7 +4631,7 @@ static int ext4_find_delayed_extent(struct inode *inode,  	}  	block = newes->es_lblk + newes->es_len; -	ext4_es_find_delayed_extent(inode, block, &es); +	ext4_es_find_delayed_extent_range(inode, block, EXT_MAX_BLOCKS, &es);  	if (es.es_len == 0)  		next_del = EXT_MAX_BLOCKS;  	else  |