浏览代码

[XFS] Never call mark_inode_dirty_sync() directly

Once the Linux inode and the XFS inode are combined, we cannot rely on
just check if the linux inode exists as a method of determining if it is
valid or not. Hence we should always call xfs_mark_inode_dirty_sync()
instead as it does the correct checks to determine if the liinux inode is
in a valid state or not.

SGI-PV: 988141

SGI-Modid: xfs-linux-melb:xfs-kern:32318a

Signed-off-by: David Chinner <david@fromorbit.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
David Chinner 16 年之前
父节点
当前提交
94b97e39b0
共有 3 个文件被更改,包括 3 次插入3 次删除
  1. 1 1
      fs/xfs/linux-2.6/xfs_aops.c
  2. 1 1
      fs/xfs/linux-2.6/xfs_iops.c
  3. 1 1
      fs/xfs/linux-2.6/xfs_super.c

+ 1 - 1
fs/xfs/linux-2.6/xfs_aops.c

@@ -191,7 +191,7 @@ xfs_setfilesize(
 		ip->i_d.di_size = isize;
 		ip->i_update_core = 1;
 		ip->i_update_size = 1;
-		mark_inode_dirty_sync(ioend->io_inode);
+		xfs_mark_inode_dirty_sync(ip);
 	}
 
 	xfs_iunlock(ip, XFS_ILOCK_EXCL);

+ 1 - 1
fs/xfs/linux-2.6/xfs_iops.c

@@ -128,7 +128,7 @@ xfs_ichgtime(
 	if (sync_it) {
 		SYNCHRONIZE();
 		ip->i_update_core = 1;
-		mark_inode_dirty_sync(inode);
+		xfs_mark_inode_dirty_sync(ip);
 	}
 }
 

+ 1 - 1
fs/xfs/linux-2.6/xfs_super.c

@@ -948,7 +948,7 @@ xfs_fs_write_inode(
 	 * it dirty again so we'll try again later.
 	 */
 	if (error)
-		mark_inode_dirty_sync(inode);
+		xfs_mark_inode_dirty_sync(XFS_I(inode));
 
 	return -error;
 }