AFAICS, these 2 changes only affect ext4. But since it's in mm/page-writeback.c, I'd sure like another set of eyes to be sure I'm not dragged into the streets for breaking F10 at the last minute in an effort to get one final ext4 update into the release... Out of an abundance of caution... anyone care to give me a little cover? :) Thanks, -Eric From: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Tue, 14 Oct 2008 13:21:02 +0000 (-0400) Subject: vfs: Remove the range_cont writeback mode. X-Git-Tag: v2.6.28-rc1~257^2~8 X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=74baaaaec8b4f22e1ae279f5ecca4ff705b28912 vfs: Remove the range_cont writeback mode. Ext4 was the only user of range_cont writeback mode and ext4 switched to a different method. So remove the range_cont mode which is not used in the kernel. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx> CC: linux-fsdevel@xxxxxxxxxxxxxxx --- From: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Date: Thu, 16 Oct 2008 14:09:17 +0000 (-0400) Subject: vfs: Add no_nrwrite_index_update writeback control flag X-Git-Tag: v2.6.28-rc1~257^2~7 X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=17bc6c30cf6bfffd816bdc53682dd46fc34a2cf4 vfs: Add no_nrwrite_index_update writeback control flag If no_nrwrite_index_update is set we don't update nr_to_write and address space writeback_index in write_cache_pages. This change enables a file system to skip these updates in write_cache_pages and do them in the writepages() callback. This patch will be followed by an ext4 patch that make use of these new flags. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx> CC: linux-fsdevel@xxxxxxxxxxxxxxx --- Index: linux-2.6.27.noarch/include/linux/writeback.h =================================================================== --- linux-2.6.27.noarch.orig/include/linux/writeback.h 2008-10-09 17:13:53.000000000 -0500 +++ linux-2.6.27.noarch/include/linux/writeback.h 2008-11-07 15:16:16.420063484 -0600 @@ -63,7 +63,15 @@ struct writeback_control { unsigned for_writepages:1; /* This is a writepages() call */ unsigned range_cyclic:1; /* range_start is cyclic */ unsigned more_io:1; /* more io to be dispatched */ - unsigned range_cont:1; + /* + * write_cache_pages() won't update wbc->nr_to_write and + * mapping->writeback_index if no_nrwrite_index_update + * is set. write_cache_pages() may write more than we + * requested and we want to make sure nr_to_write and + * writeback_index are updated in a consistent manner + * so we use a single control to update them + */ + unsigned no_nrwrite_index_update:1; }; /* Index: linux-2.6.27.noarch/mm/page-writeback.c =================================================================== --- linux-2.6.27.noarch.orig/mm/page-writeback.c 2008-10-09 17:13:53.000000000 -0500 +++ linux-2.6.27.noarch/mm/page-writeback.c 2008-11-07 15:16:16.422063553 -0600 @@ -876,6 +876,7 @@ int write_cache_pages(struct address_spa pgoff_t end; /* Inclusive */ int scanned = 0; int range_whole = 0; + long nr_to_write = wbc->nr_to_write; if (wbc->nonblocking && bdi_write_congested(bdi)) { wbc->encountered_congestion = 1; @@ -939,7 +940,7 @@ retry: unlock_page(page); ret = 0; } - if (ret || (--(wbc->nr_to_write) <= 0)) + if (ret || (--nr_to_write <= 0)) done = 1; if (wbc->nonblocking && bdi_write_congested(bdi)) { wbc->encountered_congestion = 1; @@ -958,11 +959,12 @@ retry: index = 0; goto retry; } - if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0)) - mapping->writeback_index = index; + if (!wbc->no_nrwrite_index_update) { + if (wbc->range_cyclic || (range_whole && nr_to_write > 0)) + mapping->writeback_index = index; + wbc->nr_to_write = nr_to_write; + } - if (wbc->range_cont) - wbc->range_start = index << PAGE_CACHE_SHIFT; return ret; } EXPORT_SYMBOL(write_cache_pages); _______________________________________________ Fedora-kernel-list mailing list Fedora-kernel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-kernel-list