Subject: linux-next: build failure after merge of the ext3 tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 13 Nov 2020 10:47:36 +1100

Hi all,

After merging the ext3 tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

In file included from fs/ext2/file.c:28:
fs/ext2/ext2.h: In function 'ext2_get_page':
fs/ext2/ext2.h:764:28: error: implicit declaration of function 'ext2_check_page'; did you mean 'ext2_get_page'? [-Werror=implicit-function-declaration]
  764 |    if (PageError(page) || !ext2_check_page(page, quiet))
      |                            ^~~~~~~~~~~~~~~
      |                            ext2_get_page
In file included from fs/ext2/balloc.c:15:
fs/ext2/ext2.h: In function 'ext2_get_page':
fs/ext2/ext2.h:760:22: error: implicit declaration of function 'read_mapping_page'; did you mean 'unmap_mapping_pages'? [-Werror=implicit-function-declaration]
  760 |  struct page *page = read_mapping_page(mapping, n, NULL);
      |                      ^~~~~~~~~~~~~~~~~
      |                      unmap_mapping_pages
fs/ext2/ext2.h:760:22: warning: initialization of 'struct page *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
fs/ext2/ext2.h:764:28: error: implicit declaration of function 'ext2_check_page'; did you mean 'ext2_get_page'? [-Werror=implicit-function-declaration]
  764 |    if (PageError(page) || !ext2_check_page(page, quiet))
      |                            ^~~~~~~~~~~~~~~
      |                            ext2_get_page
In file included from include/linux/buffer_head.h:14,
                 from fs/ext2/balloc.c:20:
include/linux/pagemap.h: At top level:
include/linux/pagemap.h:497:28: error: conflicting types for 'read_mapping_page'
  497 | static inline struct page *read_mapping_page(struct address_space *mapping,
      |                            ^~~~~~~~~~~~~~~~~
In file included from fs/ext2/balloc.c:15:
fs/ext2/ext2.h:760:22: note: previous implicit declaration of 'read_mapping_page' was here
  760 |  struct page *page = read_mapping_page(mapping, n, NULL);
      |                      ^~~~~~~~~~~~~~~~~
In file included from fs/ext2/dir.c:25:
fs/ext2/ext2.h: In function 'ext2_get_page':
fs/ext2/ext2.h:760:22: error: implicit declaration of function 'read_mapping_page'; did you mean 'unmap_mapping_pages'? [-Werror=implicit-function-declaration]
  760 |  struct page *page = read_mapping_page(mapping, n, NULL);
      |                      ^~~~~~~~~~~~~~~~~
      |                      unmap_mapping_pages
fs/ext2/ext2.h:760:22: warning: initialization of 'struct page *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
fs/ext2/ext2.h:764:28: error: implicit declaration of function 'ext2_check_page'; did you mean 'ext2_get_page'? [-Werror=implicit-function-declaration]
  764 |    if (PageError(page) || !ext2_check_page(page, quiet))
      |                            ^~~~~~~~~~~~~~~
      |                            ext2_get_page
In file included from include/linux/buffer_head.h:14,
                 from fs/ext2/dir.c:26:
include/linux/pagemap.h: At top level:
include/linux/pagemap.h:497:28: error: conflicting types for 'read_mapping_page'
  497 | static inline struct page *read_mapping_page(struct address_space *mapping,
      |                            ^~~~~~~~~~~~~~~~~
In file included from fs/ext2/dir.c:25:
fs/ext2/ext2.h:760:22: note: previous implicit declaration of 'read_mapping_page' was here
  760 |  struct page *page = read_mapping_page(mapping, n, NULL);
      |                      ^~~~~~~~~~~~~~~~~
fs/ext2/dir.c:109:13: error: conflicting types for 'ext2_check_page'
  109 | static bool ext2_check_page(struct page *page, int quiet)
      |             ^~~~~~~~~~~~~~~
In file included from fs/ext2/dir.c:25:
fs/ext2/ext2.h:764:28: note: previous implicit declaration of 'ext2_check_page' was here
  764 |    if (PageError(page) || !ext2_check_page(page, quiet))
      |                            ^~~~~~~~~~~~~~~
fs/ext2/dir.c:109:13: warning: 'ext2_check_page' defined but not used [-Wunused-function]
  109 | static bool ext2_check_page(struct page *page, int quiet)
      |             ^~~~~~~~~~~~~~~

Caused by commit

  32559cea1f55 ("fs/ext2: Use ext2_put_page")

Presumably some missing includes :-(

I have used the ext3 tree from next-20201112 for today.

-- 
Cheers,
Stephen Rothwell