Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+11 -7
+1
fs/xfs/xfs_iget.c
··· 235 235 */ 236 236 new_icl = kmem_zone_alloc(xfs_icluster_zone, KM_SLEEP); 237 237 if (radix_tree_preload(GFP_KERNEL)) { 238 + xfs_idestroy(ip); 238 239 delay(1); 239 240 goto again; 240 241 }
+10 -7
fs/xfs/xfs_trans_ail.c
··· 261 261 xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); 262 262 } 263 263 264 - /* 265 - * We reached the target so wait a bit longer for I/O to complete and 266 - * remove pushed items from the AIL before we start the next scan from 267 - * the start of the AIL. 268 - */ 269 - if ((XFS_LSN_CMP(lsn, target) >= 0)) { 264 + if (!count) { 265 + /* We're past our target or empty, so idle */ 266 + tout = 1000; 267 + } else if (XFS_LSN_CMP(lsn, target) >= 0) { 268 + /* 269 + * We reached the target so wait a bit longer for I/O to 270 + * complete and remove pushed items from the AIL before we 271 + * start the next scan from the start of the AIL. 272 + */ 270 273 tout += 20; 271 274 last_pushed_lsn = 0; 272 275 } else if ((restarts > XFS_TRANS_PUSH_AIL_RESTARTS) || 273 - (count && ((stuck * 100) / count > 90))) { 276 + ((stuck * 100) / count > 90)) { 274 277 /* 275 278 * Either there is a lot of contention on the AIL or we 276 279 * are stuck due to operations in progress. "Stuck" in this