Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6
* 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6: [XFS] fix inode leak in xfs_iget_core() [XFS] 977545 977545 977545 977545 977545 977545 xfsaild causing too many
This commit is contained in:
commit
910da1a48e
@ -235,6 +235,7 @@ finish_inode:
|
|||||||
*/
|
*/
|
||||||
new_icl = kmem_zone_alloc(xfs_icluster_zone, KM_SLEEP);
|
new_icl = kmem_zone_alloc(xfs_icluster_zone, KM_SLEEP);
|
||||||
if (radix_tree_preload(GFP_KERNEL)) {
|
if (radix_tree_preload(GFP_KERNEL)) {
|
||||||
|
xfs_idestroy(ip);
|
||||||
delay(1);
|
delay(1);
|
||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
|
@ -261,16 +261,19 @@ xfsaild_push(
|
|||||||
xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE);
|
xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
if (!count) {
|
||||||
* We reached the target so wait a bit longer for I/O to complete and
|
/* We're past our target or empty, so idle */
|
||||||
* remove pushed items from the AIL before we start the next scan from
|
tout = 1000;
|
||||||
* the start of the AIL.
|
} else if (XFS_LSN_CMP(lsn, target) >= 0) {
|
||||||
*/
|
/*
|
||||||
if ((XFS_LSN_CMP(lsn, target) >= 0)) {
|
* We reached the target so wait a bit longer for I/O to
|
||||||
|
* complete and remove pushed items from the AIL before we
|
||||||
|
* start the next scan from the start of the AIL.
|
||||||
|
*/
|
||||||
tout += 20;
|
tout += 20;
|
||||||
last_pushed_lsn = 0;
|
last_pushed_lsn = 0;
|
||||||
} else if ((restarts > XFS_TRANS_PUSH_AIL_RESTARTS) ||
|
} else if ((restarts > XFS_TRANS_PUSH_AIL_RESTARTS) ||
|
||||||
(count && ((stuck * 100) / count > 90))) {
|
((stuck * 100) / count > 90)) {
|
||||||
/*
|
/*
|
||||||
* Either there is a lot of contention on the AIL or we
|
* Either there is a lot of contention on the AIL or we
|
||||||
* are stuck due to operations in progress. "Stuck" in this
|
* are stuck due to operations in progress. "Stuck" in this
|
||||||
|
Loading…
Reference in New Issue
Block a user