diff options
author | Eric Sandeen <esandeen@redhat.com> | 2006-09-27 04:49:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-27 11:26:09 -0400 |
commit | 37ed322290eb6d5cf2ab33915793ed4219eae1d6 (patch) | |
tree | bd6e122b7af0b4c6a71bca21972cea3d124262b4 | |
parent | eee194e76c681dbdbf5024b889fda1181b66ef57 (diff) |
[PATCH] JBD: 16T fixes
These are a few places I've found in jbd that look like they may not be
16T-safe, or consistent with the use of unsigned longs for block
containers. Problems here would be somewhat hard to hit, would require
journal blocks past the 8T boundary, which would not be terribly common.
Still, should fix.
(some of these have come from the ext4 work on jbd as well).
I think there's one more possibility that the wrap() function may not be
safe IF your last block in the journal butts right up against the 232 block
boundary, but that seems like a VERY remote possibility, and I'm not
worrying about it at this point.
Signed-off-by: Eric Sandeen <esandeen@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | fs/jbd/journal.c | 6 | ||||
-rw-r--r-- | include/linux/jbd.h | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c index 2613fca92740..88d970e09ce6 100644 --- a/fs/jbd/journal.c +++ b/fs/jbd/journal.c | |||
@@ -271,7 +271,7 @@ static void journal_kill_thread(journal_t *journal) | |||
271 | int journal_write_metadata_buffer(transaction_t *transaction, | 271 | int journal_write_metadata_buffer(transaction_t *transaction, |
272 | struct journal_head *jh_in, | 272 | struct journal_head *jh_in, |
273 | struct journal_head **jh_out, | 273 | struct journal_head **jh_out, |
274 | int blocknr) | 274 | unsigned long blocknr) |
275 | { | 275 | { |
276 | int need_copy_out = 0; | 276 | int need_copy_out = 0; |
277 | int done_copy_out = 0; | 277 | int done_copy_out = 0; |
@@ -696,7 +696,7 @@ fail: | |||
696 | * @bdev: Block device on which to create the journal | 696 | * @bdev: Block device on which to create the journal |
697 | * @fs_dev: Device which hold journalled filesystem for this journal. | 697 | * @fs_dev: Device which hold journalled filesystem for this journal. |
698 | * @start: Block nr Start of journal. | 698 | * @start: Block nr Start of journal. |
699 | * @len: Lenght of the journal in blocks. | 699 | * @len: Length of the journal in blocks. |
700 | * @blocksize: blocksize of journalling device | 700 | * @blocksize: blocksize of journalling device |
701 | * @returns: a newly created journal_t * | 701 | * @returns: a newly created journal_t * |
702 | * | 702 | * |
@@ -820,7 +820,7 @@ static void journal_fail_superblock (journal_t *journal) | |||
820 | static int journal_reset(journal_t *journal) | 820 | static int journal_reset(journal_t *journal) |
821 | { | 821 | { |
822 | journal_superblock_t *sb = journal->j_superblock; | 822 | journal_superblock_t *sb = journal->j_superblock; |
823 | unsigned int first, last; | 823 | unsigned long first, last; |
824 | 824 | ||
825 | first = be32_to_cpu(sb->s_first); | 825 | first = be32_to_cpu(sb->s_first); |
826 | last = be32_to_cpu(sb->s_maxlen); | 826 | last = be32_to_cpu(sb->s_maxlen); |
diff --git a/include/linux/jbd.h b/include/linux/jbd.h index 7d847931ee5a..dc262624efa5 100644 --- a/include/linux/jbd.h +++ b/include/linux/jbd.h | |||
@@ -732,7 +732,7 @@ struct journal_s | |||
732 | */ | 732 | */ |
733 | struct block_device *j_dev; | 733 | struct block_device *j_dev; |
734 | int j_blocksize; | 734 | int j_blocksize; |
735 | unsigned int j_blk_offset; | 735 | unsigned long j_blk_offset; |
736 | 736 | ||
737 | /* | 737 | /* |
738 | * Device which holds the client fs. For internal journal this will be | 738 | * Device which holds the client fs. For internal journal this will be |
@@ -866,7 +866,7 @@ extern int | |||
866 | journal_write_metadata_buffer(transaction_t *transaction, | 866 | journal_write_metadata_buffer(transaction_t *transaction, |
867 | struct journal_head *jh_in, | 867 | struct journal_head *jh_in, |
868 | struct journal_head **jh_out, | 868 | struct journal_head **jh_out, |
869 | int blocknr); | 869 | unsigned long blocknr); |
870 | 870 | ||
871 | /* Transaction locking */ | 871 | /* Transaction locking */ |
872 | extern void __wait_on_journal (journal_t *); | 872 | extern void __wait_on_journal (journal_t *); |