diff options
author | Frank Mayhar <fmayhar@google.com> | 2010-03-02 11:46:09 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2010-03-02 11:46:09 -0500 |
commit | 273df556b6ee2065bfe96edab5888d3dc9b108d8 (patch) | |
tree | 19c73685fce581e4ed85ff845e0b2fc485cedf9c /fs/ext4/inode.c | |
parent | b7adc1f363e72e9131a582cc2cb00eaf83f51a39 (diff) |
ext4: Convert BUG_ON checks to use ext4_error() instead
Convert a bunch of BUG_ONs to emit a ext4_error() message and return
EIO. This is a first pass and most notably does _not_ cover
mballoc.c, which is a morass of void functions.
Signed-off-by: Frank Mayhar <fmayhar@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/inode.c')
-rw-r--r-- | fs/ext4/inode.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 92214d4e5afa..c717a74f2178 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -607,7 +607,14 @@ static int ext4_alloc_blocks(handle_t *handle, struct inode *inode, | |||
607 | if (*err) | 607 | if (*err) |
608 | goto failed_out; | 608 | goto failed_out; |
609 | 609 | ||
610 | BUG_ON(current_block + count > EXT4_MAX_BLOCK_FILE_PHYS); | 610 | if (unlikely(current_block + count > EXT4_MAX_BLOCK_FILE_PHYS)) { |
611 | EXT4_ERROR_INODE(inode, | ||
612 | "current_block %llu + count %lu > %d!", | ||
613 | current_block, count, | ||
614 | EXT4_MAX_BLOCK_FILE_PHYS); | ||
615 | *err = -EIO; | ||
616 | goto failed_out; | ||
617 | } | ||
611 | 618 | ||
612 | target -= count; | 619 | target -= count; |
613 | /* allocate blocks for indirect blocks */ | 620 | /* allocate blocks for indirect blocks */ |
@@ -643,7 +650,14 @@ static int ext4_alloc_blocks(handle_t *handle, struct inode *inode, | |||
643 | ar.flags = EXT4_MB_HINT_DATA; | 650 | ar.flags = EXT4_MB_HINT_DATA; |
644 | 651 | ||
645 | current_block = ext4_mb_new_blocks(handle, &ar, err); | 652 | current_block = ext4_mb_new_blocks(handle, &ar, err); |
646 | BUG_ON(current_block + ar.len > EXT4_MAX_BLOCK_FILE_PHYS); | 653 | if (unlikely(current_block + ar.len > EXT4_MAX_BLOCK_FILE_PHYS)) { |
654 | EXT4_ERROR_INODE(inode, | ||
655 | "current_block %llu + ar.len %d > %d!", | ||
656 | current_block, ar.len, | ||
657 | EXT4_MAX_BLOCK_FILE_PHYS); | ||
658 | *err = -EIO; | ||
659 | goto failed_out; | ||
660 | } | ||
647 | 661 | ||
648 | if (*err && (target == blks)) { | 662 | if (*err && (target == blks)) { |
649 | /* | 663 | /* |