* [PATCH]: reiserfs: A-panic-in-reiserfs_read_super.patch
@ 2001-08-02 14:08 Nikita Danilov
0 siblings, 0 replies; 2+ messages in thread
From: Nikita Danilov @ 2001-08-02 14:08 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Reiserfs developers mail-list, linux-kernel
Hello, Linus,
some bug-fixes for reiserfs missed 2.4.8-pre kernels. I am resending
them.
this patch allows reiserfs to cope with an attempt to mount file-system
with corrupted super-block: reiserfs stores both version-dependent magic
and version itself in a super-block. This patch just returns error
rather than panics if they don't match. Please apply.
[lkml: please CC me, I am not subscribed.]
Nikita.
diff -rup linux-2.4.8-pre3/fs/reiserfs/super.c linux-2.4.8-pre3.patched/fs/reiserfs/super.c
--- linux-2.4.8-pre3/fs/reiserfs/super.c Wed Jul 4 13:45:55 2001
+++ linux-2.4.8-pre3.patched/fs/reiserfs/super.c Wed Aug 1 21:08:16 2001
@@ -779,16 +779,23 @@ struct super_block * reiserfs_read_super
if (!(s->s_flags & MS_RDONLY)) {
struct reiserfs_super_block * rs = SB_DISK_SUPER_BLOCK (s);
+ int old_magic;
+
+ old_magic = strncmp (rs->s_magic, REISER2FS_SUPER_MAGIC_STRING,
+ strlen ( REISER2FS_SUPER_MAGIC_STRING));
+ if( old_magic && le16_to_cpu(rs->s_version) != 0 ) {
+ dput(s->s_root) ;
+ s->s_root = NULL ;
+ reiserfs_warning("reiserfs: wrong version/magic combination in the super-block\n") ;
+ goto error ;
+ }
journal_begin(&th, s, 1) ;
reiserfs_prepare_for_journal(s, SB_BUFFER_WITH_SB(s), 1) ;
rs->s_state = cpu_to_le16 (REISERFS_ERROR_FS);
- if (strncmp (rs->s_magic, REISER2FS_SUPER_MAGIC_STRING,
- strlen ( REISER2FS_SUPER_MAGIC_STRING))) {
- if (le16_to_cpu(rs->s_version) != 0)
- BUG ();
+ if ( old_magic ) {
// filesystem created under 3.5.x found
if (!old_format_only (s)) {
reiserfs_warning("reiserfs: converting 3.5.x filesystem to the new format\n") ;
^ permalink raw reply [flat|nested] 2+ messages in thread* [PATCH]: reiserfs: A-panic-in-reiserfs_read_super.patch
@ 2001-08-30 14:21 Nikita Danilov
0 siblings, 0 replies; 2+ messages in thread
From: Nikita Danilov @ 2001-08-30 14:21 UTC (permalink / raw)
To: Linus Torvalds
Cc: Reiserfs developers mail-list,
Linux kernel developer's mailing list
Hello, Linus,
This patch allows reiserfs to cope with an attempt to mount file-system
with corrupted super-block: reiserfs stores both version-dependent magic
and version itself in a super-block. This patch just returns error
rather than panics if they don't match.
(This patch is bug fix just like most other patches I'll send today.
Linus, I sent them several (four, I guess) times already, but they
didn't get in. Can you please clarify on this, because we are so
confused.)
This patch is against 2.4.10-pre2.
Please apply.
Nikita.
diff -rup linux/fs/reiserfs/super.c linux.patched/fs/reiserfs/super.c
--- linux/fs/reiserfs/super.c Wed Jul 4 13:45:55 2001
+++ linux.patched/fs/reiserfs/super.c Wed Aug 1 21:08:16 2001
@@ -779,16 +779,23 @@ struct super_block * reiserfs_read_super
if (!(s->s_flags & MS_RDONLY)) {
struct reiserfs_super_block * rs = SB_DISK_SUPER_BLOCK (s);
+ int old_magic;
+
+ old_magic = strncmp (rs->s_magic, REISER2FS_SUPER_MAGIC_STRING,
+ strlen ( REISER2FS_SUPER_MAGIC_STRING));
+ if( old_magic && le16_to_cpu(rs->s_version) != 0 ) {
+ dput(s->s_root) ;
+ s->s_root = NULL ;
+ reiserfs_warning("reiserfs: wrong version/magic combination in the super-block\n") ;
+ goto error ;
+ }
journal_begin(&th, s, 1) ;
reiserfs_prepare_for_journal(s, SB_BUFFER_WITH_SB(s), 1) ;
rs->s_state = cpu_to_le16 (REISERFS_ERROR_FS);
- if (strncmp (rs->s_magic, REISER2FS_SUPER_MAGIC_STRING,
- strlen ( REISER2FS_SUPER_MAGIC_STRING))) {
- if (le16_to_cpu(rs->s_version) != 0)
- BUG ();
+ if ( old_magic ) {
// filesystem created under 3.5.x found
if (!old_format_only (s)) {
reiserfs_warning("reiserfs: converting 3.5.x filesystem to the new format\n") ;
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2001-08-30 14:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-08-02 14:08 [PATCH]: reiserfs: A-panic-in-reiserfs_read_super.patch Nikita Danilov
-- strict thread matches above, loose matches on Subject: below --
2001-08-30 14:21 Nikita Danilov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox