From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH v5 03/11] fuse: refactor fuse_fill_write_pages()
Date: Sun, 27 Apr 2025 03:25:46 +0800 [thread overview]
Message-ID: <202504270319.GmkEM1Xg-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250426000828.3216220-4-joannelkoong@gmail.com>
References: <20250426000828.3216220-4-joannelkoong@gmail.com>
TO: Joanne Koong <joannelkoong@gmail.com>
TO: miklos@szeredi.hu
CC: linux-fsdevel@vger.kernel.org
CC: jlayton@kernel.org
CC: jefflexu@linux.alibaba.com
CC: josef@toxicpanda.com
CC: bernd.schubert@fastmail.fm
CC: willy@infradead.org
CC: kernel-team@meta.com
Hi Joanne,
kernel test robot noticed the following build warnings:
[auto build test WARNING on mszeredi-fuse/for-next]
[also build test WARNING on next-20250424]
[cannot apply to linus/master v6.15-rc3]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Joanne-Koong/fuse-support-copying-large-folios/20250426-081219
base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next
patch link: https://lore.kernel.org/r/20250426000828.3216220-4-joannelkoong%40gmail.com
patch subject: [PATCH v5 03/11] fuse: refactor fuse_fill_write_pages()
:::::: branch date: 19 hours ago
:::::: commit date: 19 hours ago
config: i386-randconfig-141-20250426 (https://download.01.org/0day-ci/archive/20250427/202504270319.GmkEM1Xg-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202504270319.GmkEM1Xg-lkp@intel.com/
smatch warnings:
fs/fuse/file.c:1207 fuse_fill_write_pages() error: uninitialized symbol 'err'.
vim +/err +1207 fs/fuse/file.c
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1126
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1127 static ssize_t fuse_fill_write_pages(struct fuse_io_args *ia,
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1128 struct address_space *mapping,
338f2e3f3341a9 Miklos Szeredi 2019-09-10 1129 struct iov_iter *ii, loff_t pos,
338f2e3f3341a9 Miklos Szeredi 2019-09-10 1130 unsigned int max_pages)
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1131 {
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1132 struct fuse_args_pages *ap = &ia->ap;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1133 struct fuse_conn *fc = get_fuse_conn(mapping->host);
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1134 unsigned offset = pos & (PAGE_SIZE - 1);
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1135 size_t count = 0;
dfda790dfda452 Joanne Koong 2025-04-25 1136 unsigned int num;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1137 int err;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1138
dfda790dfda452 Joanne Koong 2025-04-25 1139 num = min(iov_iter_count(ii), fc->max_write);
dfda790dfda452 Joanne Koong 2025-04-25 1140 num = min(num, max_pages << PAGE_SHIFT);
dfda790dfda452 Joanne Koong 2025-04-25 1141
338f2e3f3341a9 Miklos Szeredi 2019-09-10 1142 ap->args.in_pages = true;
68bfb7eb7f7de3 Joanne Koong 2024-10-24 1143 ap->descs[0].offset = offset;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1144
dfda790dfda452 Joanne Koong 2025-04-25 1145 while (num) {
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1146 size_t tmp;
9bafbe7ae01321 Josef Bacik 2024-09-30 1147 struct folio *folio;
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1148 pgoff_t index = pos >> PAGE_SHIFT;
dfda790dfda452 Joanne Koong 2025-04-25 1149 unsigned bytes = min(PAGE_SIZE - offset, num);
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1150
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1151 again:
9bafbe7ae01321 Josef Bacik 2024-09-30 1152 folio = __filemap_get_folio(mapping, index, FGP_WRITEBEGIN,
9bafbe7ae01321 Josef Bacik 2024-09-30 1153 mapping_gfp_mask(mapping));
9bafbe7ae01321 Josef Bacik 2024-09-30 1154 if (IS_ERR(folio)) {
9bafbe7ae01321 Josef Bacik 2024-09-30 1155 err = PTR_ERR(folio);
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1156 break;
9bafbe7ae01321 Josef Bacik 2024-09-30 1157 }
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1158
931e80e4b3263d anfei zhou 2010-02-02 1159 if (mapping_writably_mapped(mapping))
9bafbe7ae01321 Josef Bacik 2024-09-30 1160 flush_dcache_folio(folio);
931e80e4b3263d anfei zhou 2010-02-02 1161
9bafbe7ae01321 Josef Bacik 2024-09-30 1162 tmp = copy_folio_from_iter_atomic(folio, offset, bytes, ii);
9bafbe7ae01321 Josef Bacik 2024-09-30 1163 flush_dcache_folio(folio);
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1164
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1165 if (!tmp) {
9bafbe7ae01321 Josef Bacik 2024-09-30 1166 folio_unlock(folio);
9bafbe7ae01321 Josef Bacik 2024-09-30 1167 folio_put(folio);
faa794dd2e17e7 Dave Hansen 2025-01-29 1168
faa794dd2e17e7 Dave Hansen 2025-01-29 1169 /*
faa794dd2e17e7 Dave Hansen 2025-01-29 1170 * Ensure forward progress by faulting in
faa794dd2e17e7 Dave Hansen 2025-01-29 1171 * while not holding the folio lock:
faa794dd2e17e7 Dave Hansen 2025-01-29 1172 */
faa794dd2e17e7 Dave Hansen 2025-01-29 1173 if (fault_in_iov_iter_readable(ii, bytes)) {
faa794dd2e17e7 Dave Hansen 2025-01-29 1174 err = -EFAULT;
faa794dd2e17e7 Dave Hansen 2025-01-29 1175 break;
faa794dd2e17e7 Dave Hansen 2025-01-29 1176 }
faa794dd2e17e7 Dave Hansen 2025-01-29 1177
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1178 goto again;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1179 }
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1180
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1181 err = 0;
f2ef459bab7326 Joanne Koong 2024-10-24 1182 ap->folios[ap->num_folios] = folio;
68bfb7eb7f7de3 Joanne Koong 2024-10-24 1183 ap->descs[ap->num_folios].length = tmp;
f2ef459bab7326 Joanne Koong 2024-10-24 1184 ap->num_folios++;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1185
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1186 count += tmp;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1187 pos += tmp;
dfda790dfda452 Joanne Koong 2025-04-25 1188 num -= tmp;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1189 offset += tmp;
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1190 if (offset == PAGE_SIZE)
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1191 offset = 0;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1192
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1193 /* If we copied full page, mark it uptodate */
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1194 if (tmp == PAGE_SIZE)
9bafbe7ae01321 Josef Bacik 2024-09-30 1195 folio_mark_uptodate(folio);
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1196
9bafbe7ae01321 Josef Bacik 2024-09-30 1197 if (folio_test_uptodate(folio)) {
9bafbe7ae01321 Josef Bacik 2024-09-30 1198 folio_unlock(folio);
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1199 } else {
f2ef459bab7326 Joanne Koong 2024-10-24 1200 ia->write.folio_locked = true;
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1201 break;
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1202 }
dfda790dfda452 Joanne Koong 2025-04-25 1203 if (!fc->big_writes || offset != 0)
78bb6cb9a890d3 Miklos Szeredi 2008-05-12 1204 break;
dfda790dfda452 Joanne Koong 2025-04-25 1205 }
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1206
ea9b9907b82a09 Nicholas Piggin 2008-04-30 @1207 return count > 0 ? count : err;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1208 }
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1209
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev, Joanne Koong <joannelkoong@gmail.com>,
miklos@szeredi.hu
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
linux-fsdevel@vger.kernel.org, jlayton@kernel.org,
jefflexu@linux.alibaba.com, josef@toxicpanda.com,
bernd.schubert@fastmail.fm, willy@infradead.org,
kernel-team@meta.com
Subject: Re: [PATCH v5 03/11] fuse: refactor fuse_fill_write_pages()
Date: Mon, 28 Apr 2025 08:32:49 +0300 [thread overview]
Message-ID: <202504270319.GmkEM1Xg-lkp@intel.com> (raw)
Message-ID: <20250428053249.VJKNfMt7Gl4Z_jPRPnbiZt4sbvjOAuqc-TCoFTc3FXw@z> (raw)
In-Reply-To: <20250426000828.3216220-4-joannelkoong@gmail.com>
Hi Joanne,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Joanne-Koong/fuse-support-copying-large-folios/20250426-081219
base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next
patch link: https://lore.kernel.org/r/20250426000828.3216220-4-joannelkoong%40gmail.com
patch subject: [PATCH v5 03/11] fuse: refactor fuse_fill_write_pages()
config: i386-randconfig-141-20250426 (https://download.01.org/0day-ci/archive/20250427/202504270319.GmkEM1Xg-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202504270319.GmkEM1Xg-lkp@intel.com/
smatch warnings:
fs/fuse/file.c:1207 fuse_fill_write_pages() error: uninitialized symbol 'err'.
vim +/err +1207 fs/fuse/file.c
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1127 static ssize_t fuse_fill_write_pages(struct fuse_io_args *ia,
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1128 struct address_space *mapping,
338f2e3f3341a9 Miklos Szeredi 2019-09-10 1129 struct iov_iter *ii, loff_t pos,
338f2e3f3341a9 Miklos Szeredi 2019-09-10 1130 unsigned int max_pages)
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1131 {
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1132 struct fuse_args_pages *ap = &ia->ap;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1133 struct fuse_conn *fc = get_fuse_conn(mapping->host);
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1134 unsigned offset = pos & (PAGE_SIZE - 1);
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1135 size_t count = 0;
dfda790dfda452 Joanne Koong 2025-04-25 1136 unsigned int num;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1137 int err;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1138
dfda790dfda452 Joanne Koong 2025-04-25 1139 num = min(iov_iter_count(ii), fc->max_write);
Can iov_iter_count() return zero here?
dfda790dfda452 Joanne Koong 2025-04-25 1140 num = min(num, max_pages << PAGE_SHIFT);
dfda790dfda452 Joanne Koong 2025-04-25 1141
338f2e3f3341a9 Miklos Szeredi 2019-09-10 1142 ap->args.in_pages = true;
68bfb7eb7f7de3 Joanne Koong 2024-10-24 1143 ap->descs[0].offset = offset;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1144
dfda790dfda452 Joanne Koong 2025-04-25 1145 while (num) {
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1146 size_t tmp;
9bafbe7ae01321 Josef Bacik 2024-09-30 1147 struct folio *folio;
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1148 pgoff_t index = pos >> PAGE_SHIFT;
dfda790dfda452 Joanne Koong 2025-04-25 1149 unsigned bytes = min(PAGE_SIZE - offset, num);
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1150
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1151 again:
9bafbe7ae01321 Josef Bacik 2024-09-30 1152 folio = __filemap_get_folio(mapping, index, FGP_WRITEBEGIN,
9bafbe7ae01321 Josef Bacik 2024-09-30 1153 mapping_gfp_mask(mapping));
9bafbe7ae01321 Josef Bacik 2024-09-30 1154 if (IS_ERR(folio)) {
9bafbe7ae01321 Josef Bacik 2024-09-30 1155 err = PTR_ERR(folio);
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1156 break;
9bafbe7ae01321 Josef Bacik 2024-09-30 1157 }
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1158
931e80e4b3263d anfei zhou 2010-02-02 1159 if (mapping_writably_mapped(mapping))
9bafbe7ae01321 Josef Bacik 2024-09-30 1160 flush_dcache_folio(folio);
931e80e4b3263d anfei zhou 2010-02-02 1161
9bafbe7ae01321 Josef Bacik 2024-09-30 1162 tmp = copy_folio_from_iter_atomic(folio, offset, bytes, ii);
9bafbe7ae01321 Josef Bacik 2024-09-30 1163 flush_dcache_folio(folio);
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1164
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1165 if (!tmp) {
9bafbe7ae01321 Josef Bacik 2024-09-30 1166 folio_unlock(folio);
9bafbe7ae01321 Josef Bacik 2024-09-30 1167 folio_put(folio);
faa794dd2e17e7 Dave Hansen 2025-01-29 1168
faa794dd2e17e7 Dave Hansen 2025-01-29 1169 /*
faa794dd2e17e7 Dave Hansen 2025-01-29 1170 * Ensure forward progress by faulting in
faa794dd2e17e7 Dave Hansen 2025-01-29 1171 * while not holding the folio lock:
faa794dd2e17e7 Dave Hansen 2025-01-29 1172 */
faa794dd2e17e7 Dave Hansen 2025-01-29 1173 if (fault_in_iov_iter_readable(ii, bytes)) {
faa794dd2e17e7 Dave Hansen 2025-01-29 1174 err = -EFAULT;
faa794dd2e17e7 Dave Hansen 2025-01-29 1175 break;
faa794dd2e17e7 Dave Hansen 2025-01-29 1176 }
faa794dd2e17e7 Dave Hansen 2025-01-29 1177
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1178 goto again;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1179 }
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1180
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1181 err = 0;
f2ef459bab7326 Joanne Koong 2024-10-24 1182 ap->folios[ap->num_folios] = folio;
68bfb7eb7f7de3 Joanne Koong 2024-10-24 1183 ap->descs[ap->num_folios].length = tmp;
f2ef459bab7326 Joanne Koong 2024-10-24 1184 ap->num_folios++;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1185
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1186 count += tmp;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1187 pos += tmp;
dfda790dfda452 Joanne Koong 2025-04-25 1188 num -= tmp;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1189 offset += tmp;
09cbfeaf1a5a67 Kirill A. Shutemov 2016-04-01 1190 if (offset == PAGE_SIZE)
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1191 offset = 0;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1192
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1193 /* If we copied full page, mark it uptodate */
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1194 if (tmp == PAGE_SIZE)
9bafbe7ae01321 Josef Bacik 2024-09-30 1195 folio_mark_uptodate(folio);
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1196
9bafbe7ae01321 Josef Bacik 2024-09-30 1197 if (folio_test_uptodate(folio)) {
9bafbe7ae01321 Josef Bacik 2024-09-30 1198 folio_unlock(folio);
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1199 } else {
f2ef459bab7326 Joanne Koong 2024-10-24 1200 ia->write.folio_locked = true;
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1201 break;
4f06dd92b5d0a6 Vivek Goyal 2020-10-21 1202 }
dfda790dfda452 Joanne Koong 2025-04-25 1203 if (!fc->big_writes || offset != 0)
78bb6cb9a890d3 Miklos Szeredi 2008-05-12 1204 break;
dfda790dfda452 Joanne Koong 2025-04-25 1205 }
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1206
ea9b9907b82a09 Nicholas Piggin 2008-04-30 @1207 return count > 0 ? count : err;
ea9b9907b82a09 Nicholas Piggin 2008-04-30 1208 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev reply other threads:[~2025-04-26 19:26 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-26 0:08 [PATCH v5 00/11] fuse: support large folios Joanne Koong
2025-04-26 0:08 ` [PATCH v5 01/11] fuse: support copying " Joanne Koong
2025-05-04 18:05 ` Bernd Schubert
2025-04-26 0:08 ` [PATCH v5 02/11] fuse: support large folios for retrieves Joanne Koong
2025-05-04 18:07 ` Bernd Schubert
2025-04-26 0:08 ` [PATCH v5 03/11] fuse: refactor fuse_fill_write_pages() Joanne Koong
2025-04-26 19:25 ` kernel test robot [this message]
2025-04-28 5:32 ` Dan Carpenter
2025-04-28 22:10 ` Joanne Koong
2025-05-04 18:08 ` Bernd Schubert
2025-04-26 0:08 ` [PATCH v5 04/11] fuse: support large folios for writethrough writes Joanne Koong
2025-05-04 18:40 ` Bernd Schubert
2025-05-05 21:36 ` Joanne Koong
2025-04-26 0:08 ` [PATCH v5 05/11] fuse: support large folios for folio reads Joanne Koong
2025-05-04 18:58 ` Bernd Schubert
2025-04-26 0:08 ` [PATCH v5 06/11] fuse: support large folios for symlinks Joanne Koong
2025-05-04 19:04 ` Bernd Schubert
2025-04-26 0:08 ` [PATCH v5 07/11] fuse: support large folios for stores Joanne Koong
2025-04-26 0:08 ` [PATCH v5 08/11] fuse: support large folios for queued writes Joanne Koong
2025-05-04 19:08 ` Bernd Schubert
2025-04-26 0:08 ` [PATCH v5 09/11] fuse: support large folios for readahead Joanne Koong
2025-05-04 19:13 ` Bernd Schubert
2025-05-05 14:40 ` Darrick J. Wong
2025-05-05 15:23 ` Bernd Schubert
2025-05-05 22:05 ` Joanne Koong
2025-04-26 0:08 ` [PATCH v5 10/11] fuse: optimize direct io large folios processing Joanne Koong
2025-05-04 19:15 ` Bernd Schubert
2025-07-04 10:24 ` David Hildenbrand
2025-07-07 23:27 ` Joanne Koong
2025-07-08 16:05 ` David Hildenbrand
2025-07-08 23:14 ` Joanne Koong
2025-04-26 0:08 ` [PATCH v5 11/11] fuse: support large folios for writeback Joanne Koong
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=202504270319.GmkEM1Xg-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.