diff options
Diffstat (limited to 'fs/xfs/xfs_vfsops.c')
-rw-r--r-- | fs/xfs/xfs_vfsops.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index 29f72f613782..65c561201cb8 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c | |||
@@ -696,7 +696,7 @@ xfs_unmount_flush( | |||
696 | bhv_vnode_t *rvp = XFS_ITOV(rip); | 696 | bhv_vnode_t *rvp = XFS_ITOV(rip); |
697 | int error; | 697 | int error; |
698 | 698 | ||
699 | xfs_ilock(rip, XFS_ILOCK_EXCL); | 699 | xfs_ilock(rip, XFS_ILOCK_EXCL | XFS_ILOCK_PARENT); |
700 | xfs_iflock(rip); | 700 | xfs_iflock(rip); |
701 | 701 | ||
702 | /* | 702 | /* |
@@ -1147,7 +1147,7 @@ xfs_sync_inodes( | |||
1147 | if (XFS_FORCED_SHUTDOWN(mp)) { | 1147 | if (XFS_FORCED_SHUTDOWN(mp)) { |
1148 | bhv_vop_toss_pages(vp, 0, -1, FI_REMAPF); | 1148 | bhv_vop_toss_pages(vp, 0, -1, FI_REMAPF); |
1149 | } else { | 1149 | } else { |
1150 | bhv_vop_flushinval_pages(vp, 0, -1, FI_REMAPF); | 1150 | error = bhv_vop_flushinval_pages(vp, 0, -1, FI_REMAPF); |
1151 | } | 1151 | } |
1152 | 1152 | ||
1153 | xfs_ilock(ip, XFS_ILOCK_SHARED); | 1153 | xfs_ilock(ip, XFS_ILOCK_SHARED); |
@@ -1539,7 +1539,7 @@ xfs_syncsub( | |||
1539 | xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); | 1539 | xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); |
1540 | xfs_trans_ihold(tp, ip); | 1540 | xfs_trans_ihold(tp, ip); |
1541 | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); | 1541 | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); |
1542 | error = xfs_trans_commit(tp, 0, NULL); | 1542 | error = xfs_trans_commit(tp, 0); |
1543 | xfs_iunlock(ip, XFS_ILOCK_EXCL); | 1543 | xfs_iunlock(ip, XFS_ILOCK_EXCL); |
1544 | xfs_log_force(mp, (xfs_lsn_t)0, log_flags); | 1544 | xfs_log_force(mp, (xfs_lsn_t)0, log_flags); |
1545 | } | 1545 | } |