Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 107439
b: refs/heads/master
c: 7f871d5
h: refs/heads/master
i:
  107437: e0e8e6d
  107435: eb0c500
  107431: 766edd9
  107423: 2c71009
v: v3
  • Loading branch information
Lachlan McIlroy authored and Niv Sardi committed Jul 28, 2008
1 parent 9a17ea0 commit 62b1488
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ad9b463aa206b8c8f0bab378cf7c090c1a9a8e34
refs/heads/master: 7f871d5d1b9b126c1a0cece737a37c6980c988e3
2 changes: 0 additions & 2 deletions trunk/fs/xfs/xfs_inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -3082,8 +3082,6 @@ xfs_iflush(
* flush lock and do nothing.
*/
if (xfs_inode_clean(ip)) {
ASSERT((iip != NULL) ?
!(iip->ili_item.li_flags & XFS_LI_IN_AIL) : 1);
xfs_ifunlock(ip);
return 0;
}
Expand Down
30 changes: 8 additions & 22 deletions trunk/fs/xfs/xfs_vnodeops.c
Original file line number Diff line number Diff line change
Expand Up @@ -3260,7 +3260,6 @@ xfs_finish_reclaim(
{
xfs_perag_t *pag = xfs_get_perag(ip->i_mount, ip->i_ino);
bhv_vnode_t *vp = XFS_ITOV_NULL(ip);
int error;

if (vp && VN_BAD(vp))
goto reclaim;
Expand Down Expand Up @@ -3303,29 +3302,16 @@ xfs_finish_reclaim(
xfs_iflock(ip);
}

if (!XFS_FORCED_SHUTDOWN(ip->i_mount)) {
if (ip->i_update_core ||
((ip->i_itemp != NULL) &&
(ip->i_itemp->ili_format.ilf_fields != 0))) {
error = xfs_iflush(ip, sync_mode);
/*
* If we hit an error, typically because of filesystem
* shutdown, we don't need to let vn_reclaim to know
* because we're gonna reclaim the inode anyway.
*/
if (error) {
xfs_iunlock(ip, XFS_ILOCK_EXCL);
goto reclaim;
}
xfs_iflock(ip); /* synchronize with xfs_iflush_done */
}

ASSERT(ip->i_update_core == 0);
ASSERT(ip->i_itemp == NULL ||
ip->i_itemp->ili_format.ilf_fields == 0);
/*
* In the case of a forced shutdown we rely on xfs_iflush() to
* wait for the inode to be unpinned before returning an error.
*/
if (xfs_iflush(ip, sync_mode) == 0) {
/* synchronize with xfs_iflush_done */
xfs_iflock(ip);
xfs_ifunlock(ip);
}

xfs_ifunlock(ip);
xfs_iunlock(ip, XFS_ILOCK_EXCL);

reclaim:
Expand Down

0 comments on commit 62b1488

Please sign in to comment.