From: kernel test robot <lkp@intel.com>
To: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
linux-fsdevel@vger.kernel.org
Cc: kbuild-all@lists.01.org,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
linux-mm@kvack.org, linux-block@vger.kernel.org
Subject: Re: [PATCH v15 17/17] iomap: Convert iomap_migrate_page to use folios
Date: Tue, 20 Jul 2021 21:30:49 +0800 [thread overview]
Message-ID: <202107202157.rCXldl6H-lkp@intel.com> (raw)
In-Reply-To: <20210719184001.1750630-18-willy@infradead.org>
[-- Attachment #1: Type: text/plain, Size: 17027 bytes --]
Hi "Matthew,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.14-rc2 next-20210720]
[cannot apply to xfs-linux/for-next block/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Matthew-Wilcox-Oracle/Folio-support-in-block-iomap-layers/20210720-152323
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 2734d6c1b1a089fb593ef6a23d4b70903526fe0c
config: openrisc-randconfig-p002-20210720 (attached as .config)
compiler: or1k-linux-gcc (GCC) 10.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/c560a69342e882de7f1fd097fa2589e8d330eba0
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Matthew-Wilcox-Oracle/Folio-support-in-block-iomap-layers/20210720-152323
git checkout c560a69342e882de7f1fd097fa2589e8d330eba0
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross ARCH=openrisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
| ^
include/asm-generic/bug.h:65:36: note: in expansion of macro 'unlikely'
65 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~~~~~~~
fs/iomap/buffered-io.c:207:2: note: in expansion of macro 'BUG_ON'
207 | BUG_ON(folio->index);
| ^~~~~~
fs/iomap/buffered-io.c:207:14: error: invalid use of undefined type 'struct folio'
207 | BUG_ON(folio->index);
| ^~
include/linux/compiler.h:35:19: note: in definition of macro '__branch_check__'
35 | expect, is_constant); \
| ^~~~~~~~~~~
include/asm-generic/bug.h:65:36: note: in expansion of macro 'unlikely'
65 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~~~~~~~
fs/iomap/buffered-io.c:207:2: note: in expansion of macro 'BUG_ON'
207 | BUG_ON(folio->index);
| ^~~~~~
fs/iomap/buffered-io.c:208:9: error: implicit declaration of function 'folio_multi' [-Werror=implicit-function-declaration]
208 | BUG_ON(folio_multi(folio));
| ^~~~~~~~~~~
include/linux/compiler.h:33:34: note: in definition of macro '__branch_check__'
33 | ______r = __builtin_expect(!!(x), expect); \
| ^
include/asm-generic/bug.h:65:36: note: in expansion of macro 'unlikely'
65 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~~~~~~~
fs/iomap/buffered-io.c:208:2: note: in expansion of macro 'BUG_ON'
208 | BUG_ON(folio_multi(folio));
| ^~~~~~
fs/iomap/buffered-io.c:211:9: error: implicit declaration of function 'kmap_local_folio'; did you mean 'kmap_local_fork'? [-Werror=implicit-function-declaration]
211 | addr = kmap_local_folio(folio, 0);
| ^~~~~~~~~~~~~~~~
| kmap_local_fork
fs/iomap/buffered-io.c:211:7: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
211 | addr = kmap_local_folio(folio, 0);
| ^
fs/iomap/buffered-io.c: In function 'iomap_readpage_actor':
fs/iomap/buffered-io.c:251:19: error: invalid use of undefined type 'struct folio'
251 | zero_user(&folio->page, poff, plen);
| ^~
fs/iomap/buffered-io.c:263:44: error: invalid use of undefined type 'struct folio'
263 | if (__bio_try_merge_page(ctx->bio, &folio->page, plen, poff,
| ^~
fs/iomap/buffered-io.c:270:43: error: invalid use of undefined type 'struct folio'
270 | gfp_t gfp = mapping_gfp_constraint(folio->mapping, GFP_KERNEL);
| ^~
fs/iomap/buffered-io.c: In function 'iomap_readpage':
fs/iomap/buffered-io.c:309:24: warning: initialization of 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
309 | struct folio *folio = page_folio(page);
| ^~~~~~~~~~
fs/iomap/buffered-io.c:311:29: error: invalid use of undefined type 'struct folio'
311 | struct inode *inode = folio->mapping->host;
| ^~
fs/iomap/buffered-io.c:319:28: error: implicit declaration of function 'folio_pos' [-Werror=implicit-function-declaration]
319 | ret = iomap_apply(inode, folio_pos(folio) + poff, len - poff,
| ^~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_readahead_actor':
fs/iomap/buffered-io.c:360:21: error: implicit declaration of function 'readahead_folio'; did you mean 'readahead_count'? [-Werror=implicit-function-declaration]
360 | ctx->cur_folio = readahead_folio(ctx->rac);
| ^~~~~~~~~~~~~~~
| readahead_count
fs/iomap/buffered-io.c:360:19: warning: assignment to 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
360 | ctx->cur_folio = readahead_folio(ctx->rac);
| ^
fs/iomap/buffered-io.c: In function 'iomap_is_partially_uptodate':
fs/iomap/buffered-io.c:427:24: warning: initialization of 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
427 | struct folio *folio = page_folio(page);
| ^~~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_releasepage':
fs/iomap/buffered-io.c:454:24: warning: initialization of 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
454 | struct folio *folio = page_folio(page);
| ^~~~~~~~~~
fs/iomap/buffered-io.c:456:31: error: invalid use of undefined type 'struct folio'
456 | trace_iomap_releasepage(folio->mapping->host, folio_pos(folio),
| ^~
fs/iomap/buffered-io.c:464:6: error: implicit declaration of function 'folio_test_dirty' [-Werror=implicit-function-declaration]
464 | if (folio_test_dirty(folio) || folio_test_writeback(folio))
| ^~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c:464:33: error: implicit declaration of function 'folio_test_writeback' [-Werror=implicit-function-declaration]
464 | if (folio_test_dirty(folio) || folio_test_writeback(folio))
| ^~~~~~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_invalidatepage':
fs/iomap/buffered-io.c:474:24: warning: initialization of 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
474 | struct folio *folio = page_folio(page);
| ^~~~~~~~~~
fs/iomap/buffered-io.c:476:34: error: invalid use of undefined type 'struct folio'
476 | trace_iomap_invalidatepage(folio->mapping->host, offset, len);
| ^~
fs/iomap/buffered-io.c:484:3: error: implicit declaration of function 'folio_cancel_dirty' [-Werror=implicit-function-declaration]
484 | folio_cancel_dirty(folio);
| ^~~~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_migrate_page':
fs/iomap/buffered-io.c:495:24: warning: initialization of 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
495 | struct folio *folio = page_folio(page);
| ^~~~~~~~~~
fs/iomap/buffered-io.c:496:27: warning: initialization of 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
496 | struct folio *newfolio = page_folio(newpage);
| ^~~~~~~~~~
>> fs/iomap/buffered-io.c:499:8: error: implicit declaration of function 'folio_migrate_mapping' [-Werror=implicit-function-declaration]
499 | ret = folio_migrate_mapping(mapping, newfolio, folio, 0);
| ^~~~~~~~~~~~~~~~~~~~~
>> fs/iomap/buffered-io.c:507:3: error: implicit declaration of function 'folio_migrate_copy' [-Werror=implicit-function-declaration]
507 | folio_migrate_copy(newfolio, folio);
| ^~~~~~~~~~~~~~~~~~
>> fs/iomap/buffered-io.c:509:3: error: implicit declaration of function 'folio_migrate_flags'; did you mean 'do_migrate_pages'? [-Werror=implicit-function-declaration]
509 | folio_migrate_flags(newfolio, folio);
| ^~~~~~~~~~~~~~~~~~~
| do_migrate_pages
fs/iomap/buffered-io.c: In function '__iomap_write_begin':
fs/iomap/buffered-io.c:559:2: error: implicit declaration of function 'folio_clear_error' [-Werror=implicit-function-declaration]
559 | folio_clear_error(folio);
| ^~~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c:575:29: error: invalid use of undefined type 'struct folio'
575 | zero_user_segments(&folio->page, poff, from, to,
| ^~
fs/iomap/buffered-io.c: In function 'iomap_write_begin':
fs/iomap/buffered-io.c:596:52: error: 'FGP_STABLE' undeclared (first use in this function)
596 | unsigned fgp = FGP_LOCK | FGP_WRITE | FGP_CREAT | FGP_STABLE | FGP_NOFS;
| ^~~~~~~~~~
fs/iomap/buffered-io.c:596:52: note: each undeclared identifier is reported only once for each function it appears in
fs/iomap/buffered-io.c:612:10: error: implicit declaration of function '__filemap_get_folio' [-Werror=implicit-function-declaration]
612 | folio = __filemap_get_folio(inode->i_mapping, pos >> PAGE_SHIFT, fgp,
| ^~~~~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c:612:8: warning: assignment to 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
612 | folio = __filemap_get_folio(inode->i_mapping, pos >> PAGE_SHIFT, fgp,
| ^
fs/iomap/buffered-io.c:619:9: error: implicit declaration of function 'folio_file_page' [-Werror=implicit-function-declaration]
619 | page = folio_file_page(folio, pos >> PAGE_SHIFT);
| ^~~~~~~~~~~~~~~
fs/iomap/buffered-io.c:619:7: warning: assignment to 'struct page *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
619 | page = folio_file_page(folio, pos >> PAGE_SHIFT);
| ^
fs/iomap/buffered-io.c:636:2: error: implicit declaration of function 'folio_put'; did you mean 'bio_put'? [-Werror=implicit-function-declaration]
636 | folio_put(folio);
| ^~~~~~~~~
| bio_put
fs/iomap/buffered-io.c: In function '__iomap_write_end':
fs/iomap/buffered-io.c:649:2: error: implicit declaration of function 'flush_dcache_folio'; did you mean 'flush_cache_all'? [-Werror=implicit-function-declaration]
649 | flush_dcache_folio(folio);
| ^~~~~~~~~~~~~~~~~~
| flush_cache_all
fs/iomap/buffered-io.c:665:2: error: implicit declaration of function 'filemap_dirty_folio' [-Werror=implicit-function-declaration]
665 | filemap_dirty_folio(inode->i_mapping, folio);
| ^~~~~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_write_end_inline':
fs/iomap/buffered-io.c:678:7: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
678 | addr = kmap_local_folio(folio, 0);
| ^
fs/iomap/buffered-io.c: In function 'iomap_write_end':
fs/iomap/buffered-io.c:691:22: warning: initialization of 'struct page *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
691 | struct page *page = folio_file_page(folio, pos >> PAGE_SHIFT);
| ^~~~~~~~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_write_actor':
fs/iomap/buffered-io.c:765:8: warning: assignment to 'struct page *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
765 | page = folio_file_page(folio, pos >> PAGE_SHIFT);
| ^
fs/iomap/buffered-io.c: In function 'iomap_zero':
fs/iomap/buffered-io.c:891:12: warning: passing argument 1 of 'zero_user' makes pointer from integer without a cast [-Wint-conversion]
891 | zero_user(folio_file_page(folio, pos >> PAGE_SHIFT), offset, bytes);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int
In file included from include/linux/bio.h:8,
from include/linux/blkdev.h:18,
from include/linux/iomap.h:11,
from fs/iomap/buffered-io.c:9:
include/linux/highmem.h:231:43: note: expected 'struct page *' but argument is of type 'int'
231 | static inline void zero_user(struct page *page,
| ~~~~~~~~~~~~~^~~~
fs/iomap/buffered-io.c:892:2: error: implicit declaration of function 'folio_mark_accessed' [-Werror=implicit-function-declaration]
892 | folio_mark_accessed(folio);
| ^~~~~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_folio_mkwrite_actor':
fs/iomap/buffered-io.c:970:39: error: invalid use of undefined type 'struct folio'
970 | ret = __block_write_begin_int(&folio->page, pos, length, NULL,
| ^~
fs/iomap/buffered-io.c:974:28: error: invalid use of undefined type 'struct folio'
974 | block_commit_write(&folio->page, 0, length);
| ^~
fs/iomap/buffered-io.c:977:3: error: implicit declaration of function 'folio_mark_dirty' [-Werror=implicit-function-declaration]
977 | folio_mark_dirty(folio);
| ^~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_page_mkwrite':
fs/iomap/buffered-io.c:985:24: warning: initialization of 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
985 | struct folio *folio = page_folio(vmf->page);
| ^~~~~~~~~~
fs/iomap/buffered-io.c:991:2: error: implicit declaration of function 'folio_lock'; did you mean 'osq_lock'? [-Werror=implicit-function-declaration]
991 | folio_lock(folio);
| ^~~~~~~~~~
| osq_lock
fs/iomap/buffered-io.c:992:8: error: implicit declaration of function 'folio_mkwrite_check_truncate'; did you mean 'page_mkwrite_check_truncate'? [-Werror=implicit-function-declaration]
992 | ret = folio_mkwrite_check_truncate(folio, inode);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| page_mkwrite_check_truncate
fs/iomap/buffered-io.c:1008:2: error: implicit declaration of function 'folio_wait_stable' [-Werror=implicit-function-declaration]
1008 | folio_wait_stable(folio);
| ^~~~~~~~~~~~~~~~~
fs/iomap/buffered-io.c: In function 'iomap_finish_folio_write':
fs/iomap/buffered-io.c:1030:3: error: implicit declaration of function 'folio_end_writeback'; did you mean 'file_end_write'? [-Werror=implicit-function-declaration]
1030 | folio_end_writeback(folio);
| ^~~~~~~~~~~~~~~~~~~
| file_end_write
fs/iomap/buffered-io.c: In function 'iomap_add_to_ioend':
fs/iomap/buffered-io.c:1280:38: error: invalid use of undefined type 'struct folio'
1280 | wbc_account_cgroup_owner(wbc, &folio->page, len);
vim +/folio_migrate_mapping +499 fs/iomap/buffered-io.c
489
490 #ifdef CONFIG_MIGRATION
491 int
492 iomap_migrate_page(struct address_space *mapping, struct page *newpage,
493 struct page *page, enum migrate_mode mode)
494 {
495 struct folio *folio = page_folio(page);
496 struct folio *newfolio = page_folio(newpage);
497 int ret;
498
> 499 ret = folio_migrate_mapping(mapping, newfolio, folio, 0);
500 if (ret != MIGRATEPAGE_SUCCESS)
501 return ret;
502
503 if (folio_test_private(folio))
504 folio_attach_private(newfolio, folio_detach_private(folio));
505
506 if (mode != MIGRATE_SYNC_NO_COPY)
> 507 folio_migrate_copy(newfolio, folio);
508 else
> 509 folio_migrate_flags(newfolio, folio);
510 return MIGRATEPAGE_SUCCESS;
511 }
512 EXPORT_SYMBOL_GPL(iomap_migrate_page);
513 #endif /* CONFIG_MIGRATION */
514
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 22003 bytes --]
next prev parent reply other threads:[~2021-07-20 13:35 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-19 18:39 [PATCH v15 00/17] Folio support in block + iomap layers Matthew Wilcox (Oracle)
2021-07-19 18:39 ` [PATCH v15 01/17] block: Add bio_add_folio() Matthew Wilcox (Oracle)
2021-07-20 1:28 ` Darrick J. Wong
2021-07-20 6:42 ` Christoph Hellwig
2021-07-20 11:16 ` Matthew Wilcox
2021-07-22 16:27 ` Matthew Wilcox
2021-07-30 8:25 ` Ming Lei
2021-07-30 11:30 ` Matthew Wilcox
2021-07-19 18:39 ` [PATCH v15 02/17] block: Add bio_for_each_folio_all() Matthew Wilcox (Oracle)
2021-07-20 1:29 ` Darrick J. Wong
2021-07-20 1:59 ` Matthew Wilcox
2021-07-20 6:48 ` Christoph Hellwig
2021-07-23 2:40 ` Matthew Wilcox
2021-07-20 12:05 ` kernel test robot
2021-07-20 12:05 ` kernel test robot
2021-07-20 12:26 ` kernel test robot
2021-07-19 18:39 ` [PATCH v15 03/17] iomap: Convert to_iomap_page to take a folio Matthew Wilcox (Oracle)
2021-07-20 6:49 ` Christoph Hellwig
2021-07-19 18:39 ` [PATCH v15 04/17] iomap: Convert iomap_page_create " Matthew Wilcox (Oracle)
2021-07-20 6:50 ` Christoph Hellwig
2021-07-19 18:39 ` [PATCH v15 05/17] iomap: Convert iomap_page_release " Matthew Wilcox (Oracle)
2021-07-20 6:52 ` Christoph Hellwig
2021-07-20 11:29 ` Matthew Wilcox
2021-07-20 11:40 ` Christoph Hellwig
2021-07-19 18:39 ` [PATCH v15 06/17] iomap: Convert iomap_releasepage to use " Matthew Wilcox (Oracle)
2021-07-20 6:54 ` Christoph Hellwig
2021-07-20 23:56 ` Darrick J. Wong
2021-07-19 18:39 ` [PATCH v15 07/17] iomap: Convert iomap_invalidatepage " Matthew Wilcox (Oracle)
2021-07-20 6:55 ` Christoph Hellwig
2021-07-20 23:57 ` Darrick J. Wong
2021-07-19 18:39 ` [PATCH v15 08/17] iomap: Pass the iomap_page into iomap_set_range_uptodate Matthew Wilcox (Oracle)
2021-07-20 6:57 ` Christoph Hellwig
2021-07-20 11:36 ` Matthew Wilcox
2021-07-19 18:39 ` [PATCH v15 09/17] iomap: Use folio offsets instead of page offsets Matthew Wilcox (Oracle)
2021-07-20 6:59 ` Christoph Hellwig
2021-07-20 11:42 ` Matthew Wilcox
2021-07-19 18:39 ` [PATCH v15 10/17] iomap: Convert bio completions to use folios Matthew Wilcox (Oracle)
2021-07-20 7:08 ` Christoph Hellwig
2021-07-19 18:39 ` [PATCH v15 11/17] iomap: Convert readahead and readpage to use a folio Matthew Wilcox (Oracle)
2021-07-20 7:09 ` Christoph Hellwig
2021-07-19 18:39 ` [PATCH v15 12/17] iomap: Convert iomap_page_mkwrite " Matthew Wilcox (Oracle)
2021-07-20 7:13 ` Christoph Hellwig
2021-07-19 18:39 ` [PATCH v15 13/17] iomap: Convert iomap_write_begin and iomap_write_end to folios Matthew Wilcox (Oracle)
2021-07-20 7:15 ` Christoph Hellwig
2021-07-20 23:59 ` Darrick J. Wong
2021-07-19 18:39 ` [PATCH v15 14/17] iomap: Convert iomap_read_inline_data to take a folio Matthew Wilcox (Oracle)
2021-07-20 7:16 ` Christoph Hellwig
2021-07-19 18:39 ` [PATCH v15 15/17] iomap: Convert iomap_write_end_inline " Matthew Wilcox (Oracle)
2021-07-20 7:17 ` Christoph Hellwig
2021-07-19 18:40 ` [PATCH v15 16/17] iomap: Convert iomap_add_to_ioend " Matthew Wilcox (Oracle)
2021-07-20 7:20 ` Christoph Hellwig
2021-07-20 11:45 ` Matthew Wilcox
2021-07-21 0:12 ` Darrick J. Wong
2021-07-21 4:27 ` Christoph Hellwig
2021-07-21 4:31 ` Matthew Wilcox
2021-07-21 15:28 ` Darrick J. Wong
2021-07-19 18:40 ` [PATCH v15 17/17] iomap: Convert iomap_migrate_page to use folios Matthew Wilcox (Oracle)
2021-07-20 7:21 ` Christoph Hellwig
2021-07-20 13:30 ` kernel test robot [this message]
2021-07-21 0:02 ` Darrick J. Wong
2021-07-20 8:44 ` [PATCH v15 00/17] Folio support in block + iomap layers Christoph Hellwig
2021-07-20 11:08 ` Matthew Wilcox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202107202157.rCXldl6H-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).