diff options
Diffstat (limited to 'fs/buffer.c')
| -rw-r--r-- | fs/buffer.c | 17 | 
1 files changed, 6 insertions, 11 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index eba6e4f621ce..3588a80854b2 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -61,16 +61,9 @@ inline void touch_buffer(struct buffer_head *bh)  }  EXPORT_SYMBOL(touch_buffer); -static int sleep_on_buffer(void *word) -{ -	io_schedule(); -	return 0; -} -  void __lock_buffer(struct buffer_head *bh)  { -	wait_on_bit_lock(&bh->b_state, BH_Lock, sleep_on_buffer, -							TASK_UNINTERRUPTIBLE); +	wait_on_bit_lock_io(&bh->b_state, BH_Lock, TASK_UNINTERRUPTIBLE);  }  EXPORT_SYMBOL(__lock_buffer); @@ -123,7 +116,7 @@ EXPORT_SYMBOL(buffer_check_dirty_writeback);   */  void __wait_on_buffer(struct buffer_head * bh)  { -	wait_on_bit(&bh->b_state, BH_Lock, sleep_on_buffer, TASK_UNINTERRUPTIBLE); +	wait_on_bit_io(&bh->b_state, BH_Lock, TASK_UNINTERRUPTIBLE);  }  EXPORT_SYMBOL(__wait_on_buffer); @@ -1029,7 +1022,8 @@ grow_dev_page(struct block_device *bdev, sector_t block,  		bh = page_buffers(page);  		if (bh->b_size == size) {  			end_block = init_page_buffers(page, bdev, -						index << sizebits, size); +						(sector_t)index << sizebits, +						size);  			goto done;  		}  		if (!try_to_free_buffers(page)) @@ -1050,7 +1044,8 @@ grow_dev_page(struct block_device *bdev, sector_t block,  	 */  	spin_lock(&inode->i_mapping->private_lock);  	link_dev_buffers(page, bh); -	end_block = init_page_buffers(page, bdev, index << sizebits, size); +	end_block = init_page_buffers(page, bdev, (sector_t)index << sizebits, +			size);  	spin_unlock(&inode->i_mapping->private_lock);  done:  	ret = (block < end_block) ? 1 : -ENXIO;  |