diff options
author | kib <kib@FreeBSD.org> | 2008-09-16 11:09:26 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2008-09-16 11:09:26 +0000 |
commit | 039c5da1b25fe16e767d26bf96a871642f599a7f (patch) | |
tree | 3b5e95bdb6db8b07c4b422cc9f728b3869de1c44 /sys/gnu | |
parent | ad287e3d61bd9ac5dc16f705f511e471510755c4 (diff) | |
download | FreeBSD-src-039c5da1b25fe16e767d26bf96a871642f599a7f.zip FreeBSD-src-039c5da1b25fe16e767d26bf96a871642f599a7f.tar.gz |
Garbage-collect vn_write_suspend_wait().
Suggested and reviewed by: tegge
Tested by: pho
MFC after: 1 month
Diffstat (limited to 'sys/gnu')
-rw-r--r-- | sys/gnu/fs/ext2fs/ext2_inode.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/sys/gnu/fs/ext2fs/ext2_inode.c b/sys/gnu/fs/ext2fs/ext2_inode.c index 04a9d46..086f739 100644 --- a/sys/gnu/fs/ext2fs/ext2_inode.c +++ b/sys/gnu/fs/ext2fs/ext2_inode.c @@ -481,7 +481,6 @@ ext2_inactive(ap) if (ip->i_mode == 0) goto out; if (ip->i_nlink <= 0) { - (void) vn_write_suspend_wait(vp, NULL, V_WAIT); error = ext2_truncate(vp, (off_t)0, 0, NOCRED, td); ip->i_rdev = 0; mode = ip->i_mode; @@ -489,15 +488,8 @@ ext2_inactive(ap) ip->i_flag |= IN_CHANGE | IN_UPDATE; ext2_vfree(vp, ip->i_number, mode); } - if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) { - if ((ip->i_flag & (IN_CHANGE | IN_UPDATE | IN_MODIFIED)) == 0 && - vn_write_suspend_wait(vp, NULL, V_NOWAIT)) { - ip->i_flag &= ~IN_ACCESS; - } else { - (void) vn_write_suspend_wait(vp, NULL, V_WAIT); - ext2_update(vp, 0); - } - } + if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) + ext2_update(vp, 0); out: /* * If we are done with the inode, reclaim it |