Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/ext2fs/ext2_inode.c
Show First 20 Lines • Show All 599 Lines • ▼ Show 20 Lines | ext2_inactive(struct vop_inactive_args *ap) | ||||
/* | /* | ||||
* Ignore inodes related to stale file handles. | * Ignore inodes related to stale file handles. | ||||
*/ | */ | ||||
if (ip->i_mode == 0) | if (ip->i_mode == 0) | ||||
goto out; | goto out; | ||||
if (ip->i_nlink <= 0) { | if (ip->i_nlink <= 0) { | ||||
ext2_extattr_free(ip); | ext2_extattr_free(ip); | ||||
error = ext2_truncate(vp, (off_t)0, 0, NOCRED, td); | error = ext2_truncate(vp, (off_t)0, 0, NOCRED, td); | ||||
if (!(ip->i_flag & IN_E4EXTENTS)) | |||||
ip->i_rdev = 0; | ip->i_rdev = 0; | ||||
mode = ip->i_mode; | mode = ip->i_mode; | ||||
ip->i_mode = 0; | ip->i_mode = 0; | ||||
ip->i_flag |= IN_CHANGE | IN_UPDATE; | ip->i_flag |= IN_CHANGE | IN_UPDATE; | ||||
ext2_vfree(vp, ip->i_number, mode); | ext2_vfree(vp, ip->i_number, mode); | ||||
} | } | ||||
if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) | if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) | ||||
ext2_update(vp, 0); | ext2_update(vp, 0); | ||||
out: | out: | ||||
Show All 28 Lines |