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

Commit f5e596bb authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Nathan Scott
Browse files

[XFS] fix writeback control handling fix a reversed condition on where to


trylock and deal with block layer congestion properly.	Patch from David
Chinner and Christoph Hellwig.

SGI-PV: 947118
SGI-Modid: xfs-linux-melb:xfs-kern:203830a

Signed-off-by: default avatarChristoph Hellwig <hch@sgi.com>
Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
parent 6c4fe19f
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -722,8 +722,17 @@ xfs_convert_page(
		SetPageUptodate(page);

	if (startio) {
		if (count)
			wbc->nr_to_write--;
		if (count) {
			struct backing_dev_info *bdi;

			bdi = inode->i_mapping->backing_dev_info;
			if (bdi_write_congested(bdi)) {
				wbc->encountered_congestion = 1;
				done = 1;
			} else if (--wbc->nr_to_write <= 0) {
				done = 1;
			}
		}
		xfs_start_page_writeback(page, wbc, !page_dirty, count);
	}

@@ -812,7 +821,7 @@ xfs_page_state_convert(
	int			all_bh = unmapped;

	/* wait for other IO threads? */
	if (startio && wbc->sync_mode != WB_SYNC_NONE)
	if (startio && (wbc->sync_mode == WB_SYNC_NONE && wbc->nonblocking))
		trylock_flag |= BMAPI_TRYLOCK;

	/* Is this page beyond the end of the file? */