提交 c186afb4 编写于 作者: A Al Viro

switch ->is_partially_uptodate() to saner arguments

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 fbb32750
...@@ -198,7 +198,7 @@ prototypes: ...@@ -198,7 +198,7 @@ prototypes:
unsigned long *); unsigned long *);
int (*migratepage)(struct address_space *, struct page *, struct page *); int (*migratepage)(struct address_space *, struct page *, struct page *);
int (*launder_page)(struct page *); int (*launder_page)(struct page *);
int (*is_partially_uptodate)(struct page *, read_descriptor_t *, unsigned long); int (*is_partially_uptodate)(struct page *, unsigned long, unsigned long);
int (*error_remove_page)(struct address_space *, struct page *); int (*error_remove_page)(struct address_space *, struct page *);
int (*swap_activate)(struct file *); int (*swap_activate)(struct file *);
int (*swap_deactivate)(struct file *); int (*swap_deactivate)(struct file *);
......
...@@ -580,7 +580,7 @@ struct address_space_operations { ...@@ -580,7 +580,7 @@ struct address_space_operations {
/* migrate the contents of a page to the specified target */ /* migrate the contents of a page to the specified target */
int (*migratepage) (struct page *, struct page *); int (*migratepage) (struct page *, struct page *);
int (*launder_page) (struct page *); int (*launder_page) (struct page *);
int (*is_partially_uptodate) (struct page *, read_descriptor_t *, int (*is_partially_uptodate) (struct page *, unsigned long,
unsigned long); unsigned long);
void (*is_dirty_writeback) (struct page *, bool *, bool *); void (*is_dirty_writeback) (struct page *, bool *, bool *);
int (*error_remove_page) (struct mapping *mapping, struct page *page); int (*error_remove_page) (struct mapping *mapping, struct page *page);
......
...@@ -2114,8 +2114,8 @@ EXPORT_SYMBOL(generic_write_end); ...@@ -2114,8 +2114,8 @@ EXPORT_SYMBOL(generic_write_end);
* Returns true if all buffers which correspond to a file portion * Returns true if all buffers which correspond to a file portion
* we want to read are uptodate. * we want to read are uptodate.
*/ */
int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc, int block_is_partially_uptodate(struct page *page, unsigned long from,
unsigned long from) unsigned long count)
{ {
unsigned block_start, block_end, blocksize; unsigned block_start, block_end, blocksize;
unsigned to; unsigned to;
...@@ -2127,7 +2127,7 @@ int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc, ...@@ -2127,7 +2127,7 @@ int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc,
head = page_buffers(page); head = page_buffers(page);
blocksize = head->b_size; blocksize = head->b_size;
to = min_t(unsigned, PAGE_CACHE_SIZE - from, desc->count); to = min_t(unsigned, PAGE_CACHE_SIZE - from, count);
to = from + to; to = from + to;
if (from < blocksize && to > PAGE_CACHE_SIZE - blocksize) if (from < blocksize && to > PAGE_CACHE_SIZE - blocksize)
return 0; return 0;
......
...@@ -210,8 +210,8 @@ int block_write_full_page(struct page *page, get_block_t *get_block, ...@@ -210,8 +210,8 @@ int block_write_full_page(struct page *page, get_block_t *get_block,
int block_write_full_page_endio(struct page *page, get_block_t *get_block, int block_write_full_page_endio(struct page *page, get_block_t *get_block,
struct writeback_control *wbc, bh_end_io_t *handler); struct writeback_control *wbc, bh_end_io_t *handler);
int block_read_full_page(struct page*, get_block_t*); int block_read_full_page(struct page*, get_block_t*);
int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc, int block_is_partially_uptodate(struct page *page, unsigned long from,
unsigned long from); unsigned long count);
int block_write_begin(struct address_space *mapping, loff_t pos, unsigned len, int block_write_begin(struct address_space *mapping, loff_t pos, unsigned len,
unsigned flags, struct page **pagep, get_block_t *get_block); unsigned flags, struct page **pagep, get_block_t *get_block);
int __block_write_begin(struct page *page, loff_t pos, unsigned len, int __block_write_begin(struct page *page, loff_t pos, unsigned len,
......
...@@ -385,7 +385,7 @@ struct address_space_operations { ...@@ -385,7 +385,7 @@ struct address_space_operations {
int (*migratepage) (struct address_space *, int (*migratepage) (struct address_space *,
struct page *, struct page *, enum migrate_mode); struct page *, struct page *, enum migrate_mode);
int (*launder_page) (struct page *); int (*launder_page) (struct page *);
int (*is_partially_uptodate) (struct page *, read_descriptor_t *, int (*is_partially_uptodate) (struct page *, unsigned long,
unsigned long); unsigned long);
void (*is_dirty_writeback) (struct page *, bool *, bool *); void (*is_dirty_writeback) (struct page *, bool *, bool *);
int (*error_remove_page)(struct address_space *, struct page *); int (*error_remove_page)(struct address_space *, struct page *);
......
...@@ -1148,7 +1148,7 @@ static void do_generic_file_read(struct file *filp, loff_t *ppos, ...@@ -1148,7 +1148,7 @@ static void do_generic_file_read(struct file *filp, loff_t *ppos,
if (!page->mapping) if (!page->mapping)
goto page_not_up_to_date_locked; goto page_not_up_to_date_locked;
if (!mapping->a_ops->is_partially_uptodate(page, if (!mapping->a_ops->is_partially_uptodate(page,
desc, offset)) offset, desc->count))
goto page_not_up_to_date_locked; goto page_not_up_to_date_locked;
unlock_page(page); unlock_page(page);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册