[PATCH] reiserfs: do not check if unsigned < 0

This patch fixes bugs in reiserfs where unsigned integers were checked
whether they are less then 0.

Signed-off-by: Vladimir V. Saveliev <vs@namesys.com>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Hans Reiser <reiser@namesys.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Vladimir V. Saveliev and committed by Linus Torvalds c499ec24 a57ebfdb

+10 -15
+7 -7
fs/reiserfs/file.c
··· 1464 partially overwritten pages, if needed. And lock the pages, 1465 so that nobody else can access these until we are done. 1466 We get number of actual blocks needed as a result. */ 1467 - blocks_to_allocate = 1468 - reiserfs_prepare_file_region_for_write(inode, pos, 1469 - num_pages, 1470 - write_bytes, 1471 - prepared_pages); 1472 - if (blocks_to_allocate < 0) { 1473 - res = blocks_to_allocate; 1474 reiserfs_release_claimed_blocks(inode->i_sb, 1475 num_pages << 1476 (PAGE_CACHE_SHIFT - 1477 inode->i_blkbits)); 1478 break; 1479 } 1480 1481 /* First we correct our estimate of how many blocks we need */ 1482 reiserfs_release_claimed_blocks(inode->i_sb,
··· 1464 partially overwritten pages, if needed. And lock the pages, 1465 so that nobody else can access these until we are done. 1466 We get number of actual blocks needed as a result. */ 1467 + res = reiserfs_prepare_file_region_for_write(inode, pos, 1468 + num_pages, 1469 + write_bytes, 1470 + prepared_pages); 1471 + if (res < 0) { 1472 reiserfs_release_claimed_blocks(inode->i_sb, 1473 num_pages << 1474 (PAGE_CACHE_SHIFT - 1475 inode->i_blkbits)); 1476 break; 1477 } 1478 + 1479 + blocks_to_allocate = res; 1480 1481 /* First we correct our estimate of how many blocks we need */ 1482 reiserfs_release_claimed_blocks(inode->i_sb,
+2 -6
fs/reiserfs/inode.c
··· 627 reiserfs_write_lock(inode->i_sb); 628 version = get_inode_item_key_version(inode); 629 630 - if (block < 0) { 631 - reiserfs_write_unlock(inode->i_sb); 632 - return -EIO; 633 - } 634 - 635 if (!file_capable(inode, block)) { 636 reiserfs_write_unlock(inode->i_sb); 637 return -EFBIG; ··· 929 //pos_in_item * inode->i_sb->s_blocksize, 930 TYPE_INDIRECT, 3); // key type is unimportant 931 932 blocks_needed = 933 1 + 934 ((cpu_key_k_offset(&key) - 935 cpu_key_k_offset(&tmp_key)) >> inode->i_sb-> 936 s_blocksize_bits); 937 - RFALSE(blocks_needed < 0, "green-805: invalid offset"); 938 939 if (blocks_needed == 1) { 940 un = &unf_single;
··· 627 reiserfs_write_lock(inode->i_sb); 628 version = get_inode_item_key_version(inode); 629 630 if (!file_capable(inode, block)) { 631 reiserfs_write_unlock(inode->i_sb); 632 return -EFBIG; ··· 934 //pos_in_item * inode->i_sb->s_blocksize, 935 TYPE_INDIRECT, 3); // key type is unimportant 936 937 + RFALSE(cpu_key_k_offset(&tmp_key) > cpu_key_k_offset(&key), 938 + "green-805: invalid offset"); 939 blocks_needed = 940 1 + 941 ((cpu_key_k_offset(&key) - 942 cpu_key_k_offset(&tmp_key)) >> inode->i_sb-> 943 s_blocksize_bits); 944 945 if (blocks_needed == 1) { 946 un = &unf_single;
+1 -2
fs/reiserfs/journal.c
··· 2319 return 1; 2320 } 2321 jh = (struct reiserfs_journal_header *)(journal->j_header_bh->b_data); 2322 - if (le32_to_cpu(jh->j_first_unflushed_offset) >= 0 && 2323 - le32_to_cpu(jh->j_first_unflushed_offset) < 2324 SB_ONDISK_JOURNAL_SIZE(p_s_sb) 2325 && le32_to_cpu(jh->j_last_flush_trans_id) > 0) { 2326 oldest_start =
··· 2319 return 1; 2320 } 2321 jh = (struct reiserfs_journal_header *)(journal->j_header_bh->b_data); 2322 + if (le32_to_cpu(jh->j_first_unflushed_offset) < 2323 SB_ONDISK_JOURNAL_SIZE(p_s_sb) 2324 && le32_to_cpu(jh->j_last_flush_trans_id) > 0) { 2325 oldest_start =