summaryrefslogtreecommitdiffstats
path: root/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1997-08-04 05:10:31 +0000
committerdyson <dyson@FreeBSD.org>1997-08-04 05:10:31 +0000
commitec0474c458fa4162bdea016821c68694840ce909 (patch)
tree460f71c900f27e7ad0d39327671ffc14c15b95cf /sys/gnu/fs/ext2fs/ext2_linux_ialloc.c
parent17f776e5506226b7d23df2e9e363af9203813a2c (diff)
downloadFreeBSD-src-ec0474c458fa4162bdea016821c68694840ce909.zip
FreeBSD-src-ec0474c458fa4162bdea016821c68694840ce909.tar.gz
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 <dk@panda.rhein-main.de>
Diffstat (limited to 'sys/gnu/fs/ext2fs/ext2_linux_ialloc.c')
-rw-r--r--sys/gnu/fs/ext2fs/ext2_linux_ialloc.c3
1 files changed, 2 insertions, 1 deletions
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];
OpenPOWER on IntegriCloud