diff options
Diffstat (limited to 'fs/buffer.c')
-rw-r--r-- | fs/buffer.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index aed297739eb0..a3ef091a45bd 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
@@ -1085,12 +1085,12 @@ static struct buffer_head * | |||
1085 | __getblk_slow(struct block_device *bdev, sector_t block, int size) | 1085 | __getblk_slow(struct block_device *bdev, sector_t block, int size) |
1086 | { | 1086 | { |
1087 | /* Size must be multiple of hard sectorsize */ | 1087 | /* Size must be multiple of hard sectorsize */ |
1088 | if (unlikely(size & (bdev_hardsect_size(bdev)-1) || | 1088 | if (unlikely(size & (bdev_logical_block_size(bdev)-1) || |
1089 | (size < 512 || size > PAGE_SIZE))) { | 1089 | (size < 512 || size > PAGE_SIZE))) { |
1090 | printk(KERN_ERR "getblk(): invalid block size %d requested\n", | 1090 | printk(KERN_ERR "getblk(): invalid block size %d requested\n", |
1091 | size); | 1091 | size); |
1092 | printk(KERN_ERR "hardsect size: %d\n", | 1092 | printk(KERN_ERR "logical block size: %d\n", |
1093 | bdev_hardsect_size(bdev)); | 1093 | bdev_logical_block_size(bdev)); |
1094 | 1094 | ||
1095 | dump_stack(); | 1095 | dump_stack(); |
1096 | return NULL; | 1096 | return NULL; |
@@ -2736,6 +2736,8 @@ has_buffers: | |||
2736 | pos += blocksize; | 2736 | pos += blocksize; |
2737 | } | 2737 | } |
2738 | 2738 | ||
2739 | map_bh.b_size = blocksize; | ||
2740 | map_bh.b_state = 0; | ||
2739 | err = get_block(inode, iblock, &map_bh, 0); | 2741 | err = get_block(inode, iblock, &map_bh, 0); |
2740 | if (err) | 2742 | if (err) |
2741 | goto unlock; | 2743 | goto unlock; |
@@ -2933,6 +2935,8 @@ int submit_bh(int rw, struct buffer_head * bh) | |||
2933 | BUG_ON(!buffer_locked(bh)); | 2935 | BUG_ON(!buffer_locked(bh)); |
2934 | BUG_ON(!buffer_mapped(bh)); | 2936 | BUG_ON(!buffer_mapped(bh)); |
2935 | BUG_ON(!bh->b_end_io); | 2937 | BUG_ON(!bh->b_end_io); |
2938 | BUG_ON(buffer_delay(bh)); | ||
2939 | BUG_ON(buffer_unwritten(bh)); | ||
2936 | 2940 | ||
2937 | /* | 2941 | /* |
2938 | * Mask in barrier bit for a write (could be either a WRITE or a | 2942 | * Mask in barrier bit for a write (could be either a WRITE or a |