diff options
Diffstat (limited to 'fs/jfs/inode.c')
-rw-r--r-- | fs/jfs/inode.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c index 51a5fed90cca..04eb78f1252e 100644 --- a/fs/jfs/inode.c +++ b/fs/jfs/inode.c | |||
@@ -258,7 +258,8 @@ jfs_get_blocks(struct inode *ip, sector_t lblock, unsigned long max_blocks, | |||
258 | static int jfs_get_block(struct inode *ip, sector_t lblock, | 258 | static int jfs_get_block(struct inode *ip, sector_t lblock, |
259 | struct buffer_head *bh_result, int create) | 259 | struct buffer_head *bh_result, int create) |
260 | { | 260 | { |
261 | return jfs_get_blocks(ip, lblock, 1, bh_result, create); | 261 | return jfs_get_blocks(ip, lblock, bh_result->b_size >> ip->i_blkbits, |
262 | bh_result, create); | ||
262 | } | 263 | } |
263 | 264 | ||
264 | static int jfs_writepage(struct page *page, struct writeback_control *wbc) | 265 | static int jfs_writepage(struct page *page, struct writeback_control *wbc) |
@@ -301,7 +302,7 @@ static ssize_t jfs_direct_IO(int rw, struct kiocb *iocb, | |||
301 | struct inode *inode = file->f_mapping->host; | 302 | struct inode *inode = file->f_mapping->host; |
302 | 303 | ||
303 | return blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev, iov, | 304 | return blockdev_direct_IO(rw, iocb, inode, inode->i_sb->s_bdev, iov, |
304 | offset, nr_segs, jfs_get_blocks, NULL); | 305 | offset, nr_segs, jfs_get_block, NULL); |
305 | } | 306 | } |
306 | 307 | ||
307 | struct address_space_operations jfs_aops = { | 308 | struct address_space_operations jfs_aops = { |