diff options
author | Christoph Hellwig <hch@lst.de> | 2010-06-04 11:29:58 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-08-09 16:47:33 -0400 |
commit | 155130a4f7848b1aac439cab6bda1a175507c71c (patch) | |
tree | 5019b14b0a9221b08959196e01e3f9326957d678 /fs/nilfs2/recovery.c | |
parent | 6e1db88d536adcbbfe562b2d4b7d6425784fff12 (diff) | |
download | op-kernel-dev-155130a4f7848b1aac439cab6bda1a175507c71c.zip op-kernel-dev-155130a4f7848b1aac439cab6bda1a175507c71c.tar.gz |
get rid of block_write_begin_newtrunc
Move the call to vmtruncate to get rid of accessive blocks to the callers
in preparation of the new truncate sequence and rename the non-truncating
version to block_write_begin.
While we're at it also remove several unused arguments to block_write_begin.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/nilfs2/recovery.c')
-rw-r--r-- | fs/nilfs2/recovery.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c index bae2a51..2f11f08 100644 --- a/fs/nilfs2/recovery.c +++ b/fs/nilfs2/recovery.c @@ -505,11 +505,14 @@ static int recover_dsync_blocks(struct nilfs_sb_info *sbi, } pos = rb->blkoff << inode->i_blkbits; - page = NULL; - err = block_write_begin(NULL, inode->i_mapping, pos, blocksize, - 0, &page, NULL, nilfs_get_block); - if (unlikely(err)) + err = block_write_begin(inode->i_mapping, pos, blocksize, + 0, &page, nilfs_get_block); + if (unlikely(err)) { + loff_t isize = inode->i_size; + if (pos + blocksize > isize) + vmtruncate(inode, isize); goto failed_inode; + } err = nilfs_recovery_copy_block(sbi, rb, page); if (unlikely(err)) |