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).
This commit is contained in:
bde 2004-02-13 17:49:03 +00:00
parent 3a262f367e
commit 41bc53fc92
2 changed files with 0 additions and 8 deletions

View File

@ -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 */

View File

@ -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 */