mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-11 09:50:12 +00:00
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:
parent
1a413640ac
commit
e7a4845084
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=125781
@ -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 */
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user