summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_inode.c
diff options
context:
space:
mode:
authorDavid Chinner <dgc@sgi.com>2006-06-09 06:55:52 +0200
committerNathan Scott <nathans@sgi.com>2006-06-09 06:55:52 +0200
commit714250879ea61cdb1a39bb96fe9d934ee0c669a2 (patch)
tree607f2b06c56d026f04721f99cd8dba884df86b75 /fs/xfs/xfs_inode.c
parent[XFS] inode items and EFI/EFDs have different ondisk format for 32bit and (diff)
downloadlinux-714250879ea61cdb1a39bb96fe9d934ee0c669a2.tar.xz
linux-714250879ea61cdb1a39bb96fe9d934ee0c669a2.zip
[XFS] Stop a BUG from occurring in generic_delete_inode by preventing
transaction completion from marking the inode dirty while it is being cleaned up on it's way out of the system. SGI-PV: 952967 SGI-Modid: xfs-linux-melb:xfs-kern:26040a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_inode.c')
-rw-r--r--fs/xfs/xfs_inode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 083fc0479e69..df695e968066 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -2757,7 +2757,8 @@ xfs_iunpin(
if (vp) {
struct inode *inode = vn_to_inode(vp);
- if (!(inode->i_state & I_NEW))
+ if (!(inode->i_state &
+ (I_NEW|I_FREEING|I_CLEAR)))
mark_inode_dirty_sync(inode);
}
}