aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/xfs_inode.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index ca074ee01d06..2bc22790d65a 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -2883,7 +2883,7 @@ xfs_iextents_copy(
2883 * format indicates the current state of the fork. 2883 * format indicates the current state of the fork.
2884 */ 2884 */
2885/*ARGSUSED*/ 2885/*ARGSUSED*/
2886STATIC int 2886STATIC void
2887xfs_iflush_fork( 2887xfs_iflush_fork(
2888 xfs_inode_t *ip, 2888 xfs_inode_t *ip,
2889 xfs_dinode_t *dip, 2889 xfs_dinode_t *dip,
@@ -2904,16 +2904,16 @@ xfs_iflush_fork(
2904 static const short extflag[2] = 2904 static const short extflag[2] =
2905 { XFS_ILOG_DEXT, XFS_ILOG_AEXT }; 2905 { XFS_ILOG_DEXT, XFS_ILOG_AEXT };
2906 2906
2907 if (iip == NULL) 2907 if (!iip)
2908 return 0; 2908 return;
2909 ifp = XFS_IFORK_PTR(ip, whichfork); 2909 ifp = XFS_IFORK_PTR(ip, whichfork);
2910 /* 2910 /*
2911 * This can happen if we gave up in iformat in an error path, 2911 * This can happen if we gave up in iformat in an error path,
2912 * for the attribute fork. 2912 * for the attribute fork.
2913 */ 2913 */
2914 if (ifp == NULL) { 2914 if (!ifp) {
2915 ASSERT(whichfork == XFS_ATTR_FORK); 2915 ASSERT(whichfork == XFS_ATTR_FORK);
2916 return 0; 2916 return;
2917 } 2917 }
2918 cp = XFS_DFORK_PTR(dip, whichfork); 2918 cp = XFS_DFORK_PTR(dip, whichfork);
2919 mp = ip->i_mount; 2919 mp = ip->i_mount;
@@ -2974,8 +2974,6 @@ xfs_iflush_fork(
2974 ASSERT(0); 2974 ASSERT(0);
2975 break; 2975 break;
2976 } 2976 }
2977
2978 return 0;
2979} 2977}
2980 2978
2981STATIC int 2979STATIC int
@@ -3452,16 +3450,9 @@ xfs_iflush_int(
3452 } 3450 }
3453 } 3451 }
3454 3452
3455 if (xfs_iflush_fork(ip, dip, iip, XFS_DATA_FORK, bp) == EFSCORRUPTED) { 3453 xfs_iflush_fork(ip, dip, iip, XFS_DATA_FORK, bp);
3456 goto corrupt_out; 3454 if (XFS_IFORK_Q(ip))
3457 } 3455 xfs_iflush_fork(ip, dip, iip, XFS_ATTR_FORK, bp);
3458
3459 if (XFS_IFORK_Q(ip)) {
3460 /*
3461 * The only error from xfs_iflush_fork is on the data fork.
3462 */
3463 (void) xfs_iflush_fork(ip, dip, iip, XFS_ATTR_FORK, bp);
3464 }
3465 xfs_inobp_check(mp, bp); 3456 xfs_inobp_check(mp, bp);
3466 3457
3467 /* 3458 /*