linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Oleg Drokin <green@linuxhacker.ru>
To: Andrew Morton <akpm@osdl.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>, linux-kernel@vger.kernel.org
Subject: Re: 2.6.0test9 Reiserfs boot time "buffer layer error at fs/buffer.c:431"
Date: Sun, 2 Nov 2003 11:18:47 +0200	[thread overview]
Message-ID: <20031102091847.GO3940@linuxhacker.ru> (raw)
In-Reply-To: <20031101233354.1f566c80.akpm@osdl.org>

Hello!

On Sat, Nov 01, 2003 at 11:33:54PM -0800, Andrew Morton wrote:
> > >> (These buffers are there because reiserfs first reads that offset (in bytes)
> > >> with whatever current blocksize is, except they should have been invalidated of
> > >> course).
> > >> Even if invalidate_bdev() -> invalidate_inode_pages() have not cleaned
> > >> everything, truncate_inode_pages() should have done this.
> > > yup.
> > The person who had the problem is actually using the Debian tree which
> > carried over a patch from 2.4 that removed the truncate_inode_pages
> > call in set_blocksize.  So I appologise for the noise.

Sigh.

> truncate_inode_pages() will unconditionally remove the pages from
> pagecache: they're gone.  So if some poorly behaved piece of code
> (reiserfs's read_super_block()) holds a reference against a buffer, that
> piece of code ends up owning the page - the VFS has lost interest in it.

Here's the patch against reiserfs in 2.6 (2.4 does not need it as this bit
of code is different and correct there).

===== fs/reiserfs/super.c 1.69 vs edited =====
--- 1.69/fs/reiserfs/super.c	Tue Sep 23 07:16:25 2003
+++ edited/fs/reiserfs/super.c	Sun Nov  2 11:11:36 2003
@@ -942,6 +942,7 @@
 {
     struct buffer_head * bh;
     struct reiserfs_super_block * rs;
+    int fs_blocksize;
  
 
     bh = sb_bread (s, offset / s->s_blocksize);
@@ -961,8 +962,9 @@
     //
     // ok, reiserfs signature (old or new) found in at the given offset
     //    
-    sb_set_blocksize (s, sb_blocksize(rs));
+    fs_blocksize = sb_blocksize(rs);
     brelse (bh);
+    sb_set_blocksize (s, fs_blocksize);
     
     bh = sb_bread (s, offset / s->s_blocksize);
     if (!bh) {

Bye,
    Oleg

  reply	other threads:[~2003-11-02  9:24 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-28 15:49 2.6.0test9 Reiserfs boot time "buffer layer error at fs/buffer.c:431" lkml-031028
2003-10-28 18:36 ` Hans Reiser
2003-10-28 20:27 ` Oleg Drokin
2003-10-28 22:13 ` Andrew Morton
2003-10-28 22:15   ` Hans Reiser
2003-10-29  6:56   ` lkml-031028
2003-10-29 17:44   ` lkml-031028
2003-10-29 20:31     ` Andrew Morton
2003-10-29 21:49       ` Oleg Drokin
2003-10-29 22:19         ` Andrew Morton
2003-10-30  6:22           ` lkml-031028
2003-10-30  6:51           ` lkml-031028
2003-11-02  7:17           ` Herbert Xu
2003-11-02  7:33             ` Andrew Morton
2003-11-02  9:18               ` Oleg Drokin [this message]
2003-11-02  9:27               ` Herbert Xu
2003-11-02  9:40                 ` Andrew Morton
2003-11-02  9:54                   ` Herbert Xu
2003-11-02 11:54                     ` Hans Reiser
2003-11-02 21:09                       ` Herbert Xu
2003-11-03 10:20                         ` Stephan von Krawczynski
2003-11-04  8:10                           ` Hans Reiser
2003-11-04 21:03                             ` Debian Kernels was: " Mike Fedyk
2003-11-04  9:54                               ` Hans Reiser
2003-11-04 23:49                               ` Stephan von Krawczynski
2003-11-05  0:05                                 ` Mike Fedyk
2003-11-16 13:05                                 ` Pavel Machek
2003-11-16  3:55                                   ` Hans Reiser
2003-11-16 14:15                                   ` Stephan von Krawczynski
2003-11-16 17:05                                     ` Pavel Machek
2003-11-16 17:27                                       ` Valdis.Kletnieks
2003-11-16 17:40                                         ` Stephan von Krawczynski
2003-11-16 18:38                                           ` Valdis.Kletnieks
2003-11-16 22:54                                             ` Stephan von Krawczynski
2003-11-16 17:30                                       ` Stephan von Krawczynski
2003-11-02 11:50                 ` Hans Reiser
2003-11-02 20:33                   ` Herbert Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031102091847.GO3940@linuxhacker.ru \
    --to=green@linuxhacker.ru \
    --cc=akpm@osdl.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).