diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/reiserfs/journal.c | 23 | ||||
-rw-r--r-- | fs/reiserfs/prints.c | 2 |
2 files changed, 5 insertions, 20 deletions
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c index 774f3ba37409..db91754cfb83 100644 --- a/fs/reiserfs/journal.c +++ b/fs/reiserfs/journal.c | |||
@@ -4295,14 +4295,15 @@ static int do_journal_end(struct reiserfs_transaction_handle *th, | |||
4295 | return journal->j_errno; | 4295 | return journal->j_errno; |
4296 | } | 4296 | } |
4297 | 4297 | ||
4298 | static void __reiserfs_journal_abort_hard(struct super_block *sb) | 4298 | /* Send the file system read only and refuse new transactions */ |
4299 | void reiserfs_abort_journal(struct super_block *sb, int errno) | ||
4299 | { | 4300 | { |
4300 | struct reiserfs_journal *journal = SB_JOURNAL(sb); | 4301 | struct reiserfs_journal *journal = SB_JOURNAL(sb); |
4301 | if (test_bit(J_ABORTED, &journal->j_state)) | 4302 | if (test_bit(J_ABORTED, &journal->j_state)) |
4302 | return; | 4303 | return; |
4303 | 4304 | ||
4304 | printk(KERN_CRIT "REISERFS: Aborting journal for filesystem on %s\n", | 4305 | if (!journal->j_errno) |
4305 | reiserfs_bdevname(sb)); | 4306 | journal->j_errno = errno; |
4306 | 4307 | ||
4307 | sb->s_flags |= MS_RDONLY; | 4308 | sb->s_flags |= MS_RDONLY; |
4308 | set_bit(J_ABORTED, &journal->j_state); | 4309 | set_bit(J_ABORTED, &journal->j_state); |
@@ -4312,19 +4313,3 @@ static void __reiserfs_journal_abort_hard(struct super_block *sb) | |||
4312 | #endif | 4313 | #endif |
4313 | } | 4314 | } |
4314 | 4315 | ||
4315 | static void __reiserfs_journal_abort_soft(struct super_block *sb, int errno) | ||
4316 | { | ||
4317 | struct reiserfs_journal *journal = SB_JOURNAL(sb); | ||
4318 | if (test_bit(J_ABORTED, &journal->j_state)) | ||
4319 | return; | ||
4320 | |||
4321 | if (!journal->j_errno) | ||
4322 | journal->j_errno = errno; | ||
4323 | |||
4324 | __reiserfs_journal_abort_hard(sb); | ||
4325 | } | ||
4326 | |||
4327 | void reiserfs_journal_abort(struct super_block *sb, int errno) | ||
4328 | { | ||
4329 | __reiserfs_journal_abort_soft(sb, errno); | ||
4330 | } | ||
diff --git a/fs/reiserfs/prints.c b/fs/reiserfs/prints.c index 1964acb6eb17..84f3f69652e3 100644 --- a/fs/reiserfs/prints.c +++ b/fs/reiserfs/prints.c | |||
@@ -386,7 +386,7 @@ void reiserfs_abort(struct super_block *sb, int errno, const char *fmt, ...) | |||
386 | error_buf); | 386 | error_buf); |
387 | 387 | ||
388 | sb->s_flags |= MS_RDONLY; | 388 | sb->s_flags |= MS_RDONLY; |
389 | reiserfs_journal_abort(sb, errno); | 389 | reiserfs_abort_journal(sb, errno); |
390 | } | 390 | } |
391 | 391 | ||
392 | /* this prints internal nodes (4 keys/items in line) (dc_number, | 392 | /* this prints internal nodes (4 keys/items in line) (dc_number, |