mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 17:59:32 +00:00
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
2 changed files with 11 additions and 7 deletions
|
@ -235,6 +235,7 @@ xfs_iget_core(
|
|||
*/
|
||||
new_icl = kmem_zone_alloc(xfs_icluster_zone, KM_SLEEP);
|
||||
if (radix_tree_preload(GFP_KERNEL)) {
|
||||
xfs_idestroy(ip);
|
||||
delay(1);
|
||||
goto again;
|
||||
}
|
||||
|
|
|
@ -261,16 +261,19 @@ xfsaild_push(
|
|||
xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
if ((XFS_LSN_CMP(lsn, target) >= 0)) {
|
||||
if (!count) {
|
||||
/* We're past our target or empty, so idle */
|
||||
tout = 1000;
|
||||
} else 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;
|
||||
last_pushed_lsn = 0;
|
||||
} 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
|
||||
* are stuck due to operations in progress. "Stuck" in this
|
||||
|
|
Loading…
Reference in a new issue