|
@@ -21,8 +21,16 @@ void default_unplug_io_fn(struct backing_dev_info *bdi, struct page *page)
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(default_unplug_io_fn);
|
|
EXPORT_SYMBOL(default_unplug_io_fn);
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * Convienent macros for min/max read-ahead pages.
|
|
|
|
+ * Note that MAX_RA_PAGES is rounded down, while MIN_RA_PAGES is rounded up.
|
|
|
|
+ * The latter is necessary for systems with large page size(i.e. 64k).
|
|
|
|
+ */
|
|
|
|
+#define MAX_RA_PAGES (VM_MAX_READAHEAD*1024 / PAGE_CACHE_SIZE)
|
|
|
|
+#define MIN_RA_PAGES DIV_ROUND_UP(VM_MIN_READAHEAD*1024, PAGE_CACHE_SIZE)
|
|
|
|
+
|
|
struct backing_dev_info default_backing_dev_info = {
|
|
struct backing_dev_info default_backing_dev_info = {
|
|
- .ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE,
|
|
|
|
|
|
+ .ra_pages = MAX_RA_PAGES,
|
|
.state = 0,
|
|
.state = 0,
|
|
.capabilities = BDI_CAP_MAP_COPY,
|
|
.capabilities = BDI_CAP_MAP_COPY,
|
|
.unplug_io_fn = default_unplug_io_fn,
|
|
.unplug_io_fn = default_unplug_io_fn,
|
|
@@ -51,7 +59,7 @@ static inline unsigned long get_max_readahead(struct file_ra_state *ra)
|
|
|
|
|
|
static inline unsigned long get_min_readahead(struct file_ra_state *ra)
|
|
static inline unsigned long get_min_readahead(struct file_ra_state *ra)
|
|
{
|
|
{
|
|
- return (VM_MIN_READAHEAD * 1024) / PAGE_CACHE_SIZE;
|
|
|
|
|
|
+ return MIN_RA_PAGES;
|
|
}
|
|
}
|
|
|
|
|
|
static inline void reset_ahead_window(struct file_ra_state *ra)
|
|
static inline void reset_ahead_window(struct file_ra_state *ra)
|