ore/exofs: Define new ore_verify_layout
All users of the ore will need to check if current code supports the given layout. For example RAID5/6 is not currently supported. So move all the checks from exofs/super.c to a new ore_verify_layout() to be used by ore users. Note that any new layout should be passed through the ore_verify_layout() because the ore engine will prepare and verify some internal members of ore_layout, and assumes it's called. Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
This commit is contained in:
@@ -37,11 +37,7 @@
|
||||
|
||||
#define EXOFS_DBGMSG2(M...) do {} while (0)
|
||||
|
||||
enum { BIO_MAX_PAGES_KMALLOC =
|
||||
(PAGE_SIZE - sizeof(struct bio)) / sizeof(struct bio_vec),
|
||||
MAX_PAGES_KMALLOC =
|
||||
PAGE_SIZE / sizeof(struct page *),
|
||||
};
|
||||
enum {MAX_PAGES_KMALLOC = PAGE_SIZE / sizeof(struct page *), };
|
||||
|
||||
unsigned exofs_max_io_pages(struct ore_layout *layout,
|
||||
unsigned expected_pages)
|
||||
@@ -49,8 +45,7 @@ unsigned exofs_max_io_pages(struct ore_layout *layout,
|
||||
unsigned pages = min_t(unsigned, expected_pages, MAX_PAGES_KMALLOC);
|
||||
|
||||
/* TODO: easily support bio chaining */
|
||||
pages = min_t(unsigned, pages,
|
||||
layout->group_width * BIO_MAX_PAGES_KMALLOC);
|
||||
pages = min_t(unsigned, pages, layout->max_io_length / PAGE_SIZE);
|
||||
return pages;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user