diff options
Diffstat (limited to 'fs/xfs/xfs_inode_item.c')
-rw-r--r-- | fs/xfs/xfs_inode_item.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 6cdbf90c6f7b..d041d47d9d86 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c | |||
@@ -505,6 +505,14 @@ xfs_inode_item_push( | |||
505 | } | 505 | } |
506 | 506 | ||
507 | /* | 507 | /* |
508 | * Stale inode items should force out the iclog. | ||
509 | */ | ||
510 | if (ip->i_flags & XFS_ISTALE) { | ||
511 | rval = XFS_ITEM_PINNED; | ||
512 | goto out_unlock; | ||
513 | } | ||
514 | |||
515 | /* | ||
508 | * Someone else is already flushing the inode. Nothing we can do | 516 | * Someone else is already flushing the inode. Nothing we can do |
509 | * here but wait for the flush to finish and remove the item from | 517 | * here but wait for the flush to finish and remove the item from |
510 | * the AIL. | 518 | * the AIL. |
@@ -514,15 +522,6 @@ xfs_inode_item_push( | |||
514 | goto out_unlock; | 522 | goto out_unlock; |
515 | } | 523 | } |
516 | 524 | ||
517 | /* | ||
518 | * Stale inode items should force out the iclog. | ||
519 | */ | ||
520 | if (ip->i_flags & XFS_ISTALE) { | ||
521 | xfs_ifunlock(ip); | ||
522 | xfs_iunlock(ip, XFS_ILOCK_SHARED); | ||
523 | return XFS_ITEM_PINNED; | ||
524 | } | ||
525 | |||
526 | ASSERT(iip->ili_fields != 0 || XFS_FORCED_SHUTDOWN(ip->i_mount)); | 525 | ASSERT(iip->ili_fields != 0 || XFS_FORCED_SHUTDOWN(ip->i_mount)); |
527 | ASSERT(iip->ili_logged == 0 || XFS_FORCED_SHUTDOWN(ip->i_mount)); | 526 | ASSERT(iip->ili_logged == 0 || XFS_FORCED_SHUTDOWN(ip->i_mount)); |
528 | 527 | ||