From 745c6a7a9cc268f6a0df839037e7092b5c9538c3 Mon Sep 17 00:00:00 2001 From: Boaz Harrosh Date: Thu, 2 Aug 2012 14:59:57 +0300 Subject: [PATCH] --- yaml --- r: 321375 b: refs/heads/master c: be388f3d9af4155db0dc9e7e59dd49db90271c1c h: refs/heads/master i: 321373: 064757615d80fef2ded935d61a0363a3474d0da5 321371: 29eb0305da3a802093f1553c0927b26481988cbf 321367: 45f82a9c2a8cfc70cebae255c00ede0fdd77cb5f 321359: b020130bab895314dc8a727ec80bbdae7e7d6f54 321343: d16fe3a85aa128a93963c458f92966e708c4871f v: v3 --- [refs] | 2 +- trunk/fs/exofs/inode.c | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index c5ac7148036d..e67c596182b9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4b74f6ea8417e48bb1fc65880a0574134a8b4745 +refs/heads/master: be388f3d9af4155db0dc9e7e59dd49db90271c1c diff --git a/trunk/fs/exofs/inode.c b/trunk/fs/exofs/inode.c index 3b2ee72aecbe..1562c27a2fab 100644 --- a/trunk/fs/exofs/inode.c +++ b/trunk/fs/exofs/inode.c @@ -37,15 +37,12 @@ #define EXOFS_DBGMSG2(M...) do {} while (0) -enum {MAX_PAGES_KMALLOC = PAGE_SIZE / sizeof(struct page *), }; - unsigned exofs_max_io_pages(struct ore_layout *layout, unsigned expected_pages) { - unsigned pages = min_t(unsigned, expected_pages, MAX_PAGES_KMALLOC); + unsigned pages = min_t(unsigned, expected_pages, + layout->max_io_length / PAGE_SIZE); - /* TODO: easily support bio chaining */ - pages = min_t(unsigned, pages, layout->max_io_length / PAGE_SIZE); return pages; } @@ -101,7 +98,8 @@ static void _pcol_reset(struct page_collect *pcol) * it might not end here. don't be left with nothing */ if (!pcol->expected_pages) - pcol->expected_pages = MAX_PAGES_KMALLOC; + pcol->expected_pages = + exofs_max_io_pages(&pcol->sbi->layout, ~0); } static int pcol_try_alloc(struct page_collect *pcol)