Hello

Linux Tard wrote:
> Hi Vladimar,
> 
> Thank you again.  
> 
> --- "Vladimir V. Saveliev" <[EMAIL PROTECTED]> wrote:
>>I do not think that this is  a good way.
>>
> 
> Why is this?  

reiserfs used to increment mount id on each mount. Not updating it might confuse
code which relays on that fact: journal replay and/or reiserfsck.

> Is there something else other than
> preventing journal increment this would do?  Again, we
> use this kernel only in certain situations.
> 
>>I would propose the following patch.
>> 
>> fs/reiserfs/journal.c |    1 +
>> 1 files changed, 1 insertion(+)
>>
>>diff -puN
>>
> fs/reiserfs/journal.c~reiserfs-dont-update-journla-header-mounting-readonly
>>fs/reiserfs/journal.c
>>---
>>
> linux-2.6.15-rc5-mm3/fs/reiserfs/journal.c~reiserfs-dont-update-journla-header-mounting-readonly
>>2005-12-20 13:09:28.000000000 +0300
>>+++ linux-2.6.15-rc5-mm3-vs/fs/reiserfs/journal.c
>>2005-12-20 13:10:51.000000000 +0300
>>@@ -2458,6 +2458,7 @@ static int journal_read(struct
>>super_blo
>>                            replay_count, get_seconds() - start);
>>      }
>>      if (!bdev_read_only(p_s_sb->s_bdev) &&
>>+         !(p_s_sb->s_flags & MS_RDONLY) &&
>>          _update_journal_header_block(p_s_sb,
>>journal->j_start,
>>                                       journal->j_last_flush_trans_id)) {
>>              /* replay failed, caller must call
>>free_journal_ram and abort
> 
> We not able to test this patch.  We're using 2.4.32
> kernel.  Output of patch;
> 
> [EMAIL PROTECTED] linux-2.4.32]# patch -p1 <
> reiserfs_dont_update_journla_header_mounting_readonly.patch
>  --dry-run
> patching file fs/reiserfs/journal.c
> Hunk #1 FAILED at 2458.
> 1 out of 1 hunk FAILED -- saving rejects to file
> fs/reiserfs/journal.c.rej
> [EMAIL PROTECTED] linux-2.4.32]#
> 
> And the REJ file;
> 
> [EMAIL PROTECTED] reiserfs]# more journal.c.rej 
> ***************
> *** 2458,2463 ****
>                               replay_count,
> get_seconds() - start);
>         }
>         if (!bdev_read_only(p_s_sb->s_bdev) &&
>             _update_journal_header_block(p_s_sb,
> journal->j_start,
>                                         
> journal->j_last_flush_trans_id)) {
>                 /* replay failed, caller must call
> free_journal_ram and abort
> --- 2458,2464 ----
>                               replay_count,
> get_seconds() - start);
>         }
>         if (!bdev_read_only(p_s_sb->s_bdev) &&
> +           !(p_s_sb->s_flags & MS_RDONLY) &&
>             _update_journal_header_block(p_s_sb,
> journal->j_start,
>                                         
> journal->j_last_flush_trans_id)) {
>                 /* replay failed, caller must call
> free_journal_ram and abort
> [EMAIL PROTECTED] reiserfs]#
> 
> 
> 
> 
> 
> I'm guessing you made patch for 2.6 kernel?  Or
> failure for some other reason?  

yes, it was for 2.6. Please try the attached, it is for 2.4.32.

> We have to use 2.4 series kernel now.  Would you be
> able to write this patch for 2.4 kernel if it was for
> 2.6?
> 
> kind regards,
> -lt
> 
> 
> 
>       
>               
> __________________________________ 
> Yahoo! for Good - Make a difference this year. 
> http://brand.yahoo.com/cybergivingweek2005/
> 
> 

This patch makes reiserfs to avoid journal header update when filesystem is 
being mounted readonly.

diff -puN 
fs/reiserfs/journal.c~reiserfs-dont-update-journla-header-mounting-readonly 
fs/reiserfs/journal.c


 fs/reiserfs/journal.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN 
fs/reiserfs/journal.c~reiserfs-dont-update-journla-header-mounting-readonly 
fs/reiserfs/journal.c
--- 
linux-2.4.32/fs/reiserfs/journal.c~reiserfs-dont-update-journla-header-mounting-readonly
    2005-12-23 17:54:14.222498915 +0300
+++ linux-2.4.32-vs/fs/reiserfs/journal.c       2005-12-23 17:57:46.063947196 
+0300
@@ -1804,7 +1804,8 @@ start_log_replay:
     printk("reiserfs: replayed %d transactions in %lu seconds\n", 
replay_count, 
            CURRENT_TIME - start) ;
   }
-  if (!is_read_only(p_s_sb->s_dev) && 
+  if (!is_read_only(p_s_sb->s_dev) &&
+      !(p_s_sb->s_flags & MS_RDONLY) &&
        _update_journal_header_block(p_s_sb, SB_JOURNAL(p_s_sb)->j_start, 
                                    SB_JOURNAL(p_s_sb)->j_last_flush_trans_id))
   {

_

Reply via email to