From: Oleg Drokin <green@linuxhacker.ru>
reiserfs shouldn't be holding a ref against a buffer when running
set_blocksize(): it means that truncate_inode_pages() cannot free that page.
Which is not fatal - the page will drift aimlessly down the LRU until the VM
nails it. But it's better this way.
{
struct buffer_head * bh;
struct reiserfs_super_block * rs;
+ int fs_blocksize;
bh = sb_bread (s, offset / s->s_blocksize);
//
// 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) {