Skip to content

Commit

Permalink
exofs: Use proper max_IO calculations from ore
Browse files Browse the repository at this point in the history
exofs_max_io_pages should just use the ORE's
calculated layout->max_io_length,

And avoid unnecessary BUGs, calculations made here were
also a layering violation.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
  • Loading branch information
Boaz Harrosh committed Aug 2, 2012
1 parent 4b74f6e commit be388f3
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions fs/exofs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit be388f3

Please sign in to comment.