|
@@ -1593,11 +1593,10 @@ EXPORT_SYMBOL(try_to_release_page);
|
|
* point. Because the caller is about to free (and possibly reuse) those
|
|
* point. Because the caller is about to free (and possibly reuse) those
|
|
* blocks on-disk.
|
|
* blocks on-disk.
|
|
*/
|
|
*/
|
|
-int block_invalidatepage(struct page *page, unsigned long offset)
|
|
|
|
|
|
+void block_invalidatepage(struct page *page, unsigned long offset)
|
|
{
|
|
{
|
|
struct buffer_head *head, *bh, *next;
|
|
struct buffer_head *head, *bh, *next;
|
|
unsigned int curr_off = 0;
|
|
unsigned int curr_off = 0;
|
|
- int ret = 1;
|
|
|
|
|
|
|
|
BUG_ON(!PageLocked(page));
|
|
BUG_ON(!PageLocked(page));
|
|
if (!page_has_buffers(page))
|
|
if (!page_has_buffers(page))
|
|
@@ -1624,19 +1623,18 @@ int block_invalidatepage(struct page *page, unsigned long offset)
|
|
* so real IO is not possible anymore.
|
|
* so real IO is not possible anymore.
|
|
*/
|
|
*/
|
|
if (offset == 0)
|
|
if (offset == 0)
|
|
- ret = try_to_release_page(page, 0);
|
|
|
|
|
|
+ try_to_release_page(page, 0);
|
|
out:
|
|
out:
|
|
- return ret;
|
|
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(block_invalidatepage);
|
|
EXPORT_SYMBOL(block_invalidatepage);
|
|
|
|
|
|
-int do_invalidatepage(struct page *page, unsigned long offset)
|
|
|
|
|
|
+void do_invalidatepage(struct page *page, unsigned long offset)
|
|
{
|
|
{
|
|
- int (*invalidatepage)(struct page *, unsigned long);
|
|
|
|
- invalidatepage = page->mapping->a_ops->invalidatepage;
|
|
|
|
- if (invalidatepage == NULL)
|
|
|
|
- invalidatepage = block_invalidatepage;
|
|
|
|
- return (*invalidatepage)(page, offset);
|
|
|
|
|
|
+ void (*invalidatepage)(struct page *, unsigned long);
|
|
|
|
+ invalidatepage = page->mapping->a_ops->invalidatepage ? :
|
|
|
|
+ block_invalidatepage;
|
|
|
|
+ (*invalidatepage)(page, offset);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|