[VFS PATCH] readahead: fix block ordering in __do_page_cache_readahead

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I just ran into this today. I had temporarily disabled readpages in GFS2 in order to
test something and discovered, to my surprise, that the block IOs were being issued
in reverse order. In my case, the block_map function was called in reverse block
order. In other words: lblock started at 8, then proceeded to 7, 6, 5, 4, 3, 2, 1, 0.
So I surmised the order must be wrong. After a little digging, I whipped up this
little patch. Can anyone out there corroborate this or tell me if I've I lost my mind?

Viro?

I'll add my Signed-off-by but I really haven't tested it or anything. It's kind of
moot for file systems with readpages, but it might be worth doing.

Regards,

Bob Peterson
Red Hat File Systems

Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx>
---
diff --git a/mm/readahead.c b/mm/readahead.c
index ba22d7f..b76fb34 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -185,7 +185,7 @@ int __do_page_cache_readahead(struct address_space *mapping, struct file *filp,
 		if (!page)
 			break;
 		page->index = page_offset;
-		list_add(&page->lru, &page_pool);
+		list_add_tail(&page->lru, &page_pool);
 		if (page_idx == nr_to_read - lookahead_size)
 			SetPageReadahead(page);
 		ret++;
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux