From ec0474c458fa4162bdea016821c68694840ce909 Mon Sep 17 00:00:00 2001 From: dyson Date: Mon, 4 Aug 1997 05:10:31 +0000 Subject: Fix a problem with ext2fs so that filesystems mounted at reboot don't keep ahold of buffers, and therefore leave filesystems dirty. I haven't been able to test, but the code compiles. Those who run -current, please test and report back!!! (Sorry :-)). PR: kern/3571 Submitted by: Dirk Keunecke --- sys/gnu/fs/ext2fs/ext2_linux_ialloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/gnu/fs/ext2fs/ext2_linux_ialloc.c') diff --git a/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c b/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c index c93c20e..9f2a967 100644 --- a/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c +++ b/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c @@ -127,6 +127,7 @@ static void read_inode_bitmap (struct mount * mp, block_group, (unsigned long) gdp->bg_inode_bitmap); sb->s_inode_bitmap_number[bitmap_nr] = block_group; sb->s_inode_bitmap[bitmap_nr] = bh; + LCK_BUF(bh) } /* @@ -190,7 +191,7 @@ static int load_inode_bitmap (struct mount * mp, if (sb->s_loaded_inode_bitmaps < EXT2_MAX_GROUP_LOADED) sb->s_loaded_inode_bitmaps++; else - brelse (sb->s_inode_bitmap[EXT2_MAX_GROUP_LOADED - 1]); + ULCK_BUF(sb->s_inode_bitmap[EXT2_MAX_GROUP_LOADED - 1]) for (j = sb->s_loaded_inode_bitmaps - 1; j > 0; j--) { sb->s_inode_bitmap_number[j] = sb->s_inode_bitmap_number[j - 1]; -- cgit v1.1