summaryrefslogtreecommitdiffstats
path: root/sys/gnu
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2004-02-13 17:49:03 +0000
committerbde <bde@FreeBSD.org>2004-02-13 17:49:03 +0000
commit082b328bb003bf0d74fb302c96685f4f059175f1 (patch)
tree00bb1b4db42782231795c8b5de101eddb2c958c2 /sys/gnu
parentbd3ac210d05e37f59972ed4c62e3ca5781d42efb (diff)
downloadFreeBSD-src-082b328bb003bf0d74fb302c96685f4f059175f1.zip
FreeBSD-src-082b328bb003bf0d74fb302c96685f4f059175f1.tar.gz
Fixed longstanding brokenness of inode updates. The waitfor flag was
dishonored in rev.1.1 by commenting out the code that honored it. This gave the worst disadvantages of async mounts in an uncontrollable way. Honoring the flag costs about 50% in real time in worst cases on a new but not very fast ATA drive with write caching (probably more on drives without write caching). The old misbehavior can be recovered using async mounts after implementing them in mount_ext2fs(8) (just put the MNT_ASYNC flag in mount_ext2fs's table of supported options like it is in mount's table).
Diffstat (limited to 'sys/gnu')
-rw-r--r--sys/gnu/ext2fs/ext2_inode.c4
-rw-r--r--sys/gnu/fs/ext2fs/ext2_inode.c4
2 files changed, 0 insertions, 8 deletions
diff --git a/sys/gnu/ext2fs/ext2_inode.c b/sys/gnu/ext2fs/ext2_inode.c
index 38c9672..ec7215e 100644
--- a/sys/gnu/ext2fs/ext2_inode.c
+++ b/sys/gnu/ext2fs/ext2_inode.c
@@ -96,16 +96,12 @@ ext2_update(vp, waitfor)
}
ext2_i2ei(ip, (struct ext2_inode *)((char *)bp->b_data +
EXT2_INODE_SIZE * ino_to_fsbo(fs, ip->i_number)));
-/*
if (waitfor && (vp->v_mount->mnt_flag & MNT_ASYNC) == 0)
return (bwrite(bp));
else {
-*/
bdwrite(bp);
return (0);
-/*
}
-*/
}
#define SINGLE 0 /* index of single indirect block */
diff --git a/sys/gnu/fs/ext2fs/ext2_inode.c b/sys/gnu/fs/ext2fs/ext2_inode.c
index 38c9672..ec7215e 100644
--- a/sys/gnu/fs/ext2fs/ext2_inode.c
+++ b/sys/gnu/fs/ext2fs/ext2_inode.c
@@ -96,16 +96,12 @@ ext2_update(vp, waitfor)
}
ext2_i2ei(ip, (struct ext2_inode *)((char *)bp->b_data +
EXT2_INODE_SIZE * ino_to_fsbo(fs, ip->i_number)));
-/*
if (waitfor && (vp->v_mount->mnt_flag & MNT_ASYNC) == 0)
return (bwrite(bp));
else {
-*/
bdwrite(bp);
return (0);
-/*
}
-*/
}
#define SINGLE 0 /* index of single indirect block */
OpenPOWER on IntegriCloud