Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b2cf618 authored by Felix Blyakher's avatar Felix Blyakher Committed by Nathan Scott
Browse files

[XFS] Tight loop in xfs_finish_reclaim_all prevented the xfslogd to run


its queue of IO completion callbacks, thus creating the deadlock between
umount and xfslogd. Breaking the loop solves the problem.

SGI-PV: 943821
SGI-Modid: xfs-linux-melb:xfs-kern:202363a

Signed-off-by: default avatarFelix Blyakher <felixb@sgi.com>
Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
parent a4656391
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -3958,8 +3958,9 @@ xfs_finish_reclaim_all(xfs_mount_t *mp, int noblock)
				}
				}
			}
			}
			XFS_MOUNT_IUNLOCK(mp);
			XFS_MOUNT_IUNLOCK(mp);
			xfs_finish_reclaim(ip, noblock,
			if (xfs_finish_reclaim(ip, noblock,
				XFS_IFLUSH_DELWRI_ELSE_ASYNC);
					XFS_IFLUSH_DELWRI_ELSE_ASYNC))
				delay(1);
			purged = 1;
			purged = 1;
			break;
			break;
		}
		}