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:
Bruce Evans 2004-02-13 17:49:03 +00:00
parent 1a413640ac
commit e7a4845084
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=125781
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 */