Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

NeilBrown and committed by
Linus Torvalds
2ff28e22 3978d717

+33 -38
+3 -3
fs/afs/file.c
··· 28 28 #endif 29 29 30 30 static int afs_file_readpage(struct file *file, struct page *page); 31 - static int afs_file_invalidatepage(struct page *page, unsigned long offset); 31 + static void afs_file_invalidatepage(struct page *page, unsigned long offset); 32 32 static int afs_file_releasepage(struct page *page, gfp_t gfp_flags); 33 33 34 34 struct inode_operations afs_file_inode_operations = { ··· 212 212 /* 213 213 * invalidate part or all of a page 214 214 */ 215 - static int afs_file_invalidatepage(struct page *page, unsigned long offset) 215 + static void afs_file_invalidatepage(struct page *page, unsigned long offset) 216 216 { 217 217 int ret = 1; 218 218 ··· 238 238 if (!PageWriteback(page)) 239 239 ret = page->mapping->a_ops->releasepage(page, 240 240 0); 241 + /* possibly should BUG_ON(!ret); - neilb */ 241 242 } 242 243 } 243 244 244 245 _leave(" = %d", ret); 245 - return ret; 246 246 } /* end afs_file_invalidatepage() */ 247 247 248 248 /*****************************************************************************/
+8 -10
fs/buffer.c
··· 1593 1593 * point. Because the caller is about to free (and possibly reuse) those 1594 1594 * blocks on-disk. 1595 1595 */ 1596 - int block_invalidatepage(struct page *page, unsigned long offset) 1596 + void block_invalidatepage(struct page *page, unsigned long offset) 1597 1597 { 1598 1598 struct buffer_head *head, *bh, *next; 1599 1599 unsigned int curr_off = 0; 1600 - int ret = 1; 1601 1600 1602 1601 BUG_ON(!PageLocked(page)); 1603 1602 if (!page_has_buffers(page)) ··· 1623 1624 * so real IO is not possible anymore. 1624 1625 */ 1625 1626 if (offset == 0) 1626 - ret = try_to_release_page(page, 0); 1627 + try_to_release_page(page, 0); 1627 1628 out: 1628 - return ret; 1629 + return; 1629 1630 } 1630 1631 EXPORT_SYMBOL(block_invalidatepage); 1631 1632 1632 - int do_invalidatepage(struct page *page, unsigned long offset) 1633 + void do_invalidatepage(struct page *page, unsigned long offset) 1633 1634 { 1634 - int (*invalidatepage)(struct page *, unsigned long); 1635 - invalidatepage = page->mapping->a_ops->invalidatepage; 1636 - if (invalidatepage == NULL) 1637 - invalidatepage = block_invalidatepage; 1638 - return (*invalidatepage)(page, offset); 1635 + void (*invalidatepage)(struct page *, unsigned long); 1636 + invalidatepage = page->mapping->a_ops->invalidatepage ? : 1637 + block_invalidatepage; 1638 + (*invalidatepage)(page, offset); 1639 1639 } 1640 1640 1641 1641 /*
+2 -2
fs/ext3/inode.c
··· 1430 1430 return mpage_readpages(mapping, pages, nr_pages, ext3_get_block); 1431 1431 } 1432 1432 1433 - static int ext3_invalidatepage(struct page *page, unsigned long offset) 1433 + static void ext3_invalidatepage(struct page *page, unsigned long offset) 1434 1434 { 1435 1435 journal_t *journal = EXT3_JOURNAL(page->mapping->host); 1436 1436 ··· 1440 1440 if (offset == 0) 1441 1441 ClearPageChecked(page); 1442 1442 1443 - return journal_invalidatepage(journal, page, offset); 1443 + journal_invalidatepage(journal, page, offset); 1444 1444 } 1445 1445 1446 1446 static int ext3_releasepage(struct page *page, gfp_t wait)
+5 -8
fs/jbd/transaction.c
··· 1873 1873 } 1874 1874 1875 1875 /** 1876 - * int journal_invalidatepage() 1876 + * void journal_invalidatepage() 1877 1877 * @journal: journal to use for flush... 1878 1878 * @page: page to flush 1879 1879 * @offset: length of page to invalidate. 1880 1880 * 1881 1881 * Reap page buffers containing data after offset in page. 1882 1882 * 1883 - * Return non-zero if the page's buffers were successfully reaped. 1884 1883 */ 1885 - int journal_invalidatepage(journal_t *journal, 1884 + void journal_invalidatepage(journal_t *journal, 1886 1885 struct page *page, 1887 1886 unsigned long offset) 1888 1887 { ··· 1892 1893 if (!PageLocked(page)) 1893 1894 BUG(); 1894 1895 if (!page_has_buffers(page)) 1895 - return 1; 1896 + return; 1896 1897 1897 1898 /* We will potentially be playing with lists other than just the 1898 1899 * data lists (especially for journaled data mode), so be ··· 1915 1916 } while (bh != head); 1916 1917 1917 1918 if (!offset) { 1918 - if (!may_free || !try_to_free_buffers(page)) 1919 - return 0; 1920 - J_ASSERT(!page_has_buffers(page)); 1919 + if (may_free && try_to_free_buffers(page)) 1920 + J_ASSERT(!page_has_buffers(page)); 1921 1921 } 1922 - return 1; 1923 1922 } 1924 1923 1925 1924 /*
+3 -4
fs/jfs/jfs_metapage.c
··· 578 578 return 0; 579 579 } 580 580 581 - static int metapage_invalidatepage(struct page *page, unsigned long offset) 581 + static void metapage_invalidatepage(struct page *page, unsigned long offset) 582 582 { 583 583 BUG_ON(offset); 584 584 585 - if (PageWriteback(page)) 586 - return 0; 585 + BUG_ON(PageWriteback(page)); 587 586 588 - return metapage_releasepage(page, 0); 587 + metapage_releasepage(page, 0); 589 588 } 590 589 591 590 struct address_space_operations jfs_metapage_aops = {
+1 -2
fs/nfs/file.c
··· 318 318 return status; 319 319 } 320 320 321 - static int nfs_invalidate_page(struct page *page, unsigned long offset) 321 + static void nfs_invalidate_page(struct page *page, unsigned long offset) 322 322 { 323 323 /* FIXME: we really should cancel any unstarted writes on this page */ 324 - return 1; 325 324 } 326 325 327 326 static int nfs_release_page(struct page *page, gfp_t gfp)
+5 -3
fs/reiserfs/inode.c
··· 2793 2793 } 2794 2794 2795 2795 /* clm -- taken from fs/buffer.c:block_invalidate_page */ 2796 - static int reiserfs_invalidatepage(struct page *page, unsigned long offset) 2796 + static void reiserfs_invalidatepage(struct page *page, unsigned long offset) 2797 2797 { 2798 2798 struct buffer_head *head, *bh, *next; 2799 2799 struct inode *inode = page->mapping->host; ··· 2832 2832 * The get_block cached value has been unconditionally invalidated, 2833 2833 * so real IO is not possible anymore. 2834 2834 */ 2835 - if (!offset && ret) 2835 + if (!offset && ret) { 2836 2836 ret = try_to_release_page(page, 0); 2837 + /* maybe should BUG_ON(!ret); - neilb */ 2838 + } 2837 2839 out: 2838 - return ret; 2840 + return; 2839 2841 } 2840 2842 2841 2843 static int reiserfs_set_page_dirty(struct page *page)
+2 -2
fs/xfs/linux-2.6/xfs_aops.c
··· 1442 1442 return mpage_readpages(mapping, pages, nr_pages, xfs_get_block); 1443 1443 } 1444 1444 1445 - STATIC int 1445 + STATIC void 1446 1446 xfs_vm_invalidatepage( 1447 1447 struct page *page, 1448 1448 unsigned long offset) 1449 1449 { 1450 1450 xfs_page_trace(XFS_INVALIDPAGE_ENTER, 1451 1451 page->mapping->host, page, offset); 1452 - return block_invalidatepage(page, offset); 1452 + block_invalidatepage(page, offset); 1453 1453 } 1454 1454 1455 1455 struct address_space_operations xfs_address_space_operations = {
+2 -2
include/linux/buffer_head.h
··· 189 189 * address_spaces. 190 190 */ 191 191 int try_to_release_page(struct page * page, gfp_t gfp_mask); 192 - int block_invalidatepage(struct page *page, unsigned long offset); 193 - int do_invalidatepage(struct page *page, unsigned long offset); 192 + void block_invalidatepage(struct page *page, unsigned long offset); 193 + void do_invalidatepage(struct page *page, unsigned long offset); 194 194 int block_write_full_page(struct page *page, get_block_t *get_block, 195 195 struct writeback_control *wbc); 196 196 int block_read_full_page(struct page*, get_block_t*);
+1 -1
include/linux/fs.h
··· 369 369 int (*commit_write)(struct file *, struct page *, unsigned, unsigned); 370 370 /* Unfortunately this kludge is needed for FIBMAP. Don't use it */ 371 371 sector_t (*bmap)(struct address_space *, sector_t); 372 - int (*invalidatepage) (struct page *, unsigned long); 372 + void (*invalidatepage) (struct page *, unsigned long); 373 373 int (*releasepage) (struct page *, gfp_t); 374 374 ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, 375 375 loff_t offset, unsigned long nr_segs);
+1 -1
include/linux/jbd.h
··· 895 895 extern void journal_release_buffer (handle_t *, struct buffer_head *); 896 896 extern int journal_forget (handle_t *, struct buffer_head *); 897 897 extern void journal_sync_buffer (struct buffer_head *); 898 - extern int journal_invalidatepage(journal_t *, 898 + extern void journal_invalidatepage(journal_t *, 899 899 struct page *, unsigned long); 900 900 extern int journal_try_to_free_buffers(journal_t *, struct page *, gfp_t); 901 901 extern int journal_stop(handle_t *);