diff options
Diffstat (limited to 'fs/reiserfs/file.c')
-rw-r--r-- | fs/reiserfs/file.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c index f3473176c83a..be12879bb179 100644 --- a/fs/reiserfs/file.c +++ b/fs/reiserfs/file.c | |||
@@ -1464,13 +1464,11 @@ static ssize_t reiserfs_file_write(struct file *file, /* the file we are going t | |||
1464 | partially overwritten pages, if needed. And lock the pages, | 1464 | partially overwritten pages, if needed. And lock the pages, |
1465 | so that nobody else can access these until we are done. | 1465 | so that nobody else can access these until we are done. |
1466 | We get number of actual blocks needed as a result. */ | 1466 | We get number of actual blocks needed as a result. */ |
1467 | blocks_to_allocate = | 1467 | res = reiserfs_prepare_file_region_for_write(inode, pos, |
1468 | reiserfs_prepare_file_region_for_write(inode, pos, | 1468 | num_pages, |
1469 | num_pages, | 1469 | write_bytes, |
1470 | write_bytes, | 1470 | prepared_pages); |
1471 | prepared_pages); | 1471 | if (res < 0) { |
1472 | if (blocks_to_allocate < 0) { | ||
1473 | res = blocks_to_allocate; | ||
1474 | reiserfs_release_claimed_blocks(inode->i_sb, | 1472 | reiserfs_release_claimed_blocks(inode->i_sb, |
1475 | num_pages << | 1473 | num_pages << |
1476 | (PAGE_CACHE_SHIFT - | 1474 | (PAGE_CACHE_SHIFT - |
@@ -1478,6 +1476,8 @@ static ssize_t reiserfs_file_write(struct file *file, /* the file we are going t | |||
1478 | break; | 1476 | break; |
1479 | } | 1477 | } |
1480 | 1478 | ||
1479 | blocks_to_allocate = res; | ||
1480 | |||
1481 | /* First we correct our estimate of how many blocks we need */ | 1481 | /* First we correct our estimate of how many blocks we need */ |
1482 | reiserfs_release_claimed_blocks(inode->i_sb, | 1482 | reiserfs_release_claimed_blocks(inode->i_sb, |
1483 | (num_pages << | 1483 | (num_pages << |