mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
[PATCH] Make address_space_operations->invalidatepage return void
The return value of this function is never used, so let's be honest and declare it as void. Some places where invalidatepage returned 0, I have inserted comments suggesting a BUG_ON. [akpm@osdl.org: JBD BUG fix] [akpm@osdl.org: rework for git-nfs] [akpm@osdl.org: don't go BUG in block_invalidate_page()] Signed-off-by: Neil Brown <neilb@suse.de> Acked-by: Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
3978d7179d
commit
2ff28e22bd
11 changed files with 33 additions and 38 deletions
|
@ -28,7 +28,7 @@ static int afs_file_release(struct inode *inode, struct file *file);
|
|||
#endif
|
||||
|
||||
static int afs_file_readpage(struct file *file, struct page *page);
|
||||
static int afs_file_invalidatepage(struct page *page, unsigned long offset);
|
||||
static void afs_file_invalidatepage(struct page *page, unsigned long offset);
|
||||
static int afs_file_releasepage(struct page *page, gfp_t gfp_flags);
|
||||
|
||||
struct inode_operations afs_file_inode_operations = {
|
||||
|
@ -212,7 +212,7 @@ int afs_cache_get_page_cookie(struct page *page,
|
|||
/*
|
||||
* invalidate part or all of a page
|
||||
*/
|
||||
static int afs_file_invalidatepage(struct page *page, unsigned long offset)
|
||||
static void afs_file_invalidatepage(struct page *page, unsigned long offset)
|
||||
{
|
||||
int ret = 1;
|
||||
|
||||
|
@ -238,11 +238,11 @@ static int afs_file_invalidatepage(struct page *page, unsigned long offset)
|
|||
if (!PageWriteback(page))
|
||||
ret = page->mapping->a_ops->releasepage(page,
|
||||
0);
|
||||
/* possibly should BUG_ON(!ret); - neilb */
|
||||
}
|
||||
}
|
||||
|
||||
_leave(" = %d", ret);
|
||||
return ret;
|
||||
} /* end afs_file_invalidatepage() */
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
18
fs/buffer.c
18
fs/buffer.c
|
@ -1593,11 +1593,10 @@ EXPORT_SYMBOL(try_to_release_page);
|
|||
* point. Because the caller is about to free (and possibly reuse) those
|
||||
* 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;
|
||||
unsigned int curr_off = 0;
|
||||
int ret = 1;
|
||||
|
||||
BUG_ON(!PageLocked(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.
|
||||
*/
|
||||
if (offset == 0)
|
||||
ret = try_to_release_page(page, 0);
|
||||
try_to_release_page(page, 0);
|
||||
out:
|
||||
return ret;
|
||||
return;
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -1430,7 +1430,7 @@ ext3_readpages(struct file *file, struct address_space *mapping,
|
|||
return mpage_readpages(mapping, pages, nr_pages, ext3_get_block);
|
||||
}
|
||||
|
||||
static int ext3_invalidatepage(struct page *page, unsigned long offset)
|
||||
static void ext3_invalidatepage(struct page *page, unsigned long offset)
|
||||
{
|
||||
journal_t *journal = EXT3_JOURNAL(page->mapping->host);
|
||||
|
||||
|
@ -1440,7 +1440,7 @@ static int ext3_invalidatepage(struct page *page, unsigned long offset)
|
|||
if (offset == 0)
|
||||
ClearPageChecked(page);
|
||||
|
||||
return journal_invalidatepage(journal, page, offset);
|
||||
journal_invalidatepage(journal, page, offset);
|
||||
}
|
||||
|
||||
static int ext3_releasepage(struct page *page, gfp_t wait)
|
||||
|
|
|
@ -1873,16 +1873,15 @@ zap_buffer_unlocked:
|
|||
}
|
||||
|
||||
/**
|
||||
* int journal_invalidatepage()
|
||||
* void journal_invalidatepage()
|
||||
* @journal: journal to use for flush...
|
||||
* @page: page to flush
|
||||
* @offset: length of page to invalidate.
|
||||
*
|
||||
* Reap page buffers containing data after offset in page.
|
||||
*
|
||||
* Return non-zero if the page's buffers were successfully reaped.
|
||||
*/
|
||||
int journal_invalidatepage(journal_t *journal,
|
||||
void journal_invalidatepage(journal_t *journal,
|
||||
struct page *page,
|
||||
unsigned long offset)
|
||||
{
|
||||
|
@ -1893,7 +1892,7 @@ int journal_invalidatepage(journal_t *journal,
|
|||
if (!PageLocked(page))
|
||||
BUG();
|
||||
if (!page_has_buffers(page))
|
||||
return 1;
|
||||
return;
|
||||
|
||||
/* We will potentially be playing with lists other than just the
|
||||
* data lists (especially for journaled data mode), so be
|
||||
|
@ -1916,11 +1915,9 @@ int journal_invalidatepage(journal_t *journal,
|
|||
} while (bh != head);
|
||||
|
||||
if (!offset) {
|
||||
if (!may_free || !try_to_free_buffers(page))
|
||||
return 0;
|
||||
J_ASSERT(!page_has_buffers(page));
|
||||
if (may_free && try_to_free_buffers(page))
|
||||
J_ASSERT(!page_has_buffers(page));
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -578,14 +578,13 @@ static int metapage_releasepage(struct page *page, gfp_t gfp_mask)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int metapage_invalidatepage(struct page *page, unsigned long offset)
|
||||
static void metapage_invalidatepage(struct page *page, unsigned long offset)
|
||||
{
|
||||
BUG_ON(offset);
|
||||
|
||||
if (PageWriteback(page))
|
||||
return 0;
|
||||
BUG_ON(PageWriteback(page));
|
||||
|
||||
return metapage_releasepage(page, 0);
|
||||
metapage_releasepage(page, 0);
|
||||
}
|
||||
|
||||
struct address_space_operations jfs_metapage_aops = {
|
||||
|
|
|
@ -318,10 +318,9 @@ static int nfs_commit_write(struct file *file, struct page *page, unsigned offse
|
|||
return status;
|
||||
}
|
||||
|
||||
static int nfs_invalidate_page(struct page *page, unsigned long offset)
|
||||
static void nfs_invalidate_page(struct page *page, unsigned long offset)
|
||||
{
|
||||
/* FIXME: we really should cancel any unstarted writes on this page */
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int nfs_release_page(struct page *page, gfp_t gfp)
|
||||
|
|
|
@ -2793,7 +2793,7 @@ static int invalidatepage_can_drop(struct inode *inode, struct buffer_head *bh)
|
|||
}
|
||||
|
||||
/* clm -- taken from fs/buffer.c:block_invalidate_page */
|
||||
static int reiserfs_invalidatepage(struct page *page, unsigned long offset)
|
||||
static void reiserfs_invalidatepage(struct page *page, unsigned long offset)
|
||||
{
|
||||
struct buffer_head *head, *bh, *next;
|
||||
struct inode *inode = page->mapping->host;
|
||||
|
@ -2832,10 +2832,12 @@ static int reiserfs_invalidatepage(struct page *page, unsigned long offset)
|
|||
* The get_block cached value has been unconditionally invalidated,
|
||||
* so real IO is not possible anymore.
|
||||
*/
|
||||
if (!offset && ret)
|
||||
if (!offset && ret) {
|
||||
ret = try_to_release_page(page, 0);
|
||||
/* maybe should BUG_ON(!ret); - neilb */
|
||||
}
|
||||
out:
|
||||
return ret;
|
||||
return;
|
||||
}
|
||||
|
||||
static int reiserfs_set_page_dirty(struct page *page)
|
||||
|
|
|
@ -1442,14 +1442,14 @@ xfs_vm_readpages(
|
|||
return mpage_readpages(mapping, pages, nr_pages, xfs_get_block);
|
||||
}
|
||||
|
||||
STATIC int
|
||||
STATIC void
|
||||
xfs_vm_invalidatepage(
|
||||
struct page *page,
|
||||
unsigned long offset)
|
||||
{
|
||||
xfs_page_trace(XFS_INVALIDPAGE_ENTER,
|
||||
page->mapping->host, page, offset);
|
||||
return block_invalidatepage(page, offset);
|
||||
block_invalidatepage(page, offset);
|
||||
}
|
||||
|
||||
struct address_space_operations xfs_address_space_operations = {
|
||||
|
|
|
@ -189,8 +189,8 @@ extern int buffer_heads_over_limit;
|
|||
* address_spaces.
|
||||
*/
|
||||
int try_to_release_page(struct page * page, gfp_t gfp_mask);
|
||||
int block_invalidatepage(struct page *page, unsigned long offset);
|
||||
int do_invalidatepage(struct page *page, unsigned long offset);
|
||||
void block_invalidatepage(struct page *page, unsigned long offset);
|
||||
void do_invalidatepage(struct page *page, unsigned long offset);
|
||||
int block_write_full_page(struct page *page, get_block_t *get_block,
|
||||
struct writeback_control *wbc);
|
||||
int block_read_full_page(struct page*, get_block_t*);
|
||||
|
|
|
@ -369,7 +369,7 @@ struct address_space_operations {
|
|||
int (*commit_write)(struct file *, struct page *, unsigned, unsigned);
|
||||
/* Unfortunately this kludge is needed for FIBMAP. Don't use it */
|
||||
sector_t (*bmap)(struct address_space *, sector_t);
|
||||
int (*invalidatepage) (struct page *, unsigned long);
|
||||
void (*invalidatepage) (struct page *, unsigned long);
|
||||
int (*releasepage) (struct page *, gfp_t);
|
||||
ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
|
||||
loff_t offset, unsigned long nr_segs);
|
||||
|
|
|
@ -895,7 +895,7 @@ extern int journal_dirty_metadata (handle_t *, struct buffer_head *);
|
|||
extern void journal_release_buffer (handle_t *, struct buffer_head *);
|
||||
extern int journal_forget (handle_t *, struct buffer_head *);
|
||||
extern void journal_sync_buffer (struct buffer_head *);
|
||||
extern int journal_invalidatepage(journal_t *,
|
||||
extern void journal_invalidatepage(journal_t *,
|
||||
struct page *, unsigned long);
|
||||
extern int journal_try_to_free_buffers(journal_t *, struct page *, gfp_t);
|
||||
extern int journal_stop(handle_t *);
|
||||
|
|
Loading…
Reference in a new issue