From: kernel test robot <lkp@intel.com>
To: Sun Jian <sun.jian.kdev@gmail.com>,
Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
ntfs3@lists.linux.dev, linux-kernel@vger.kernel.org,
Sun Jian <sun.jian.kdev@gmail.com>
Subject: Re: [PATCH] fs/ntfs3: return folios from ntfs_lock_new_page()
Date: Sat, 7 Feb 2026 20:08:29 +0800 [thread overview]
Message-ID: <202602072013.jwrURE2e-lkp@intel.com> (raw)
In-Reply-To: <20260205094934.10500-1-sun.jian.kdev@gmail.com>
Hi Sun,
kernel test robot noticed the following build errors:
[auto build test ERROR on brauner-vfs/vfs.all]
[also build test ERROR on linus/master v6.19-rc8]
[cannot apply to next-20260205]
[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/Sun-Jian/fs-ntfs3-return-folios-from-ntfs_lock_new_page/20260205-175053
base: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all
patch link: https://lore.kernel.org/r/20260205094934.10500-1-sun.jian.kdev%40gmail.com
patch subject: [PATCH] fs/ntfs3: return folios from ntfs_lock_new_page()
config: hexagon-randconfig-001-20260207 (https://download.01.org/0day-ci/archive/20260207/202602072013.jwrURE2e-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9b8addffa70cee5b2acc5454712d9cf78ce45710)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260207/202602072013.jwrURE2e-lkp@intel.com/reproduce)
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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602072013.jwrURE2e-lkp@intel.com/
All errors (new ones prefixed by >>):
>> fs/ntfs3/frecord.c:2200:7: error: incompatible pointer types assigning to 'struct page *' from 'struct folio *' [-Wincompatible-pointer-types]
2200 | pg = ntfs_lock_new_page(mapping, index, gfp_mask);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
vim +2200 fs/ntfs3/frecord.c
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2133
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2134 #ifdef CONFIG_NTFS3_LZX_XPRESS
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2135 /*
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2136 * ni_decompress_file - Decompress LZX/Xpress compressed file.
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2137 *
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2138 * Remove ATTR_DATA::WofCompressedData.
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2139 * Remove ATTR_REPARSE.
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2140 */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2141 int ni_decompress_file(struct ntfs_inode *ni)
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2142 {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2143 struct ntfs_sb_info *sbi = ni->mi.sbi;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2144 struct inode *inode = &ni->vfs_inode;
4fd6c08a16d7f1b Konstantin Komarov 2024-01-26 2145 loff_t i_size = i_size_read(inode);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2146 struct address_space *mapping = inode->i_mapping;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2147 gfp_t gfp_mask = mapping_gfp_mask(mapping);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2148 struct page **pages = NULL;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2149 struct ATTR_LIST_ENTRY *le;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2150 struct ATTRIB *attr;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2151 CLST vcn, cend, lcn, clen, end;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2152 pgoff_t index;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2153 u64 vbo;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2154 u8 frame_bits;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2155 u32 i, frame_size, pages_per_frame, bytes;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2156 struct mft_inode *mi;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2157 int err;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2158
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2159 /* Clusters for decompressed data. */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2160 cend = bytes_to_cluster(sbi, i_size);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2161
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2162 if (!i_size)
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2163 goto remove_wof;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2164
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2165 /* Check in advance. */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2166 if (cend > wnd_zeroes(&sbi->used.bitmap)) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2167 err = -ENOSPC;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2168 goto out;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2169 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2170
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2171 frame_bits = ni_ext_compress_bits(ni);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2172 frame_size = 1u << frame_bits;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2173 pages_per_frame = frame_size >> PAGE_SHIFT;
345482bc431f649 Kari Argillander 2021-08-24 2174 pages = kcalloc(pages_per_frame, sizeof(struct page *), GFP_NOFS);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2175 if (!pages) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2176 err = -ENOMEM;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2177 goto out;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2178 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2179
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2180 /*
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2181 * Step 1: Decompress data and copy to new allocated clusters.
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2182 */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2183 index = 0;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2184 for (vbo = 0; vbo < i_size; vbo += bytes) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2185 bool new;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2186
f35590ee26f5722 Konstantin Komarov 2025-10-14 2187 bytes = vbo + frame_size > i_size ? (i_size - vbo) : frame_size;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2188 end = bytes_to_cluster(sbi, vbo + bytes);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2189
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2190 for (vcn = vbo >> sbi->cluster_bits; vcn < end; vcn += clen) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2191 err = attr_data_get_block(ni, vcn, cend - vcn, &lcn,
c380b52f6c5702c Konstantin Komarov 2022-10-07 2192 &clen, &new, false);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2193 if (err)
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2194 goto out;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2195 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2196
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2197 for (i = 0; i < pages_per_frame; i++, index++) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2198 struct page *pg;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2199
68f6bd128e75a03 Matthew Wilcox (Oracle 2025-07-18 @2200) pg = ntfs_lock_new_page(mapping, index, gfp_mask);
68f6bd128e75a03 Matthew Wilcox (Oracle 2025-07-18 2201) if (IS_ERR(pg)) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2202 while (i--) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2203 unlock_page(pages[i]);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2204 put_page(pages[i]);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2205 }
68f6bd128e75a03 Matthew Wilcox (Oracle 2025-07-18 2206) err = PTR_ERR(pg);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2207 goto out;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2208 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2209 pages[i] = pg;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2210 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2211
f35590ee26f5722 Konstantin Komarov 2025-10-14 2212 err = ni_read_frame(ni, vbo, pages, pages_per_frame, 1);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2213
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2214 for (i = 0; i < pages_per_frame; i++) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2215 unlock_page(pages[i]);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2216 put_page(pages[i]);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2217 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2218
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2219 if (err)
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2220 goto out;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2221
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2222 cond_resched();
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2223 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2224
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2225 remove_wof:
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2226 /*
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2227 * Step 2: Deallocate attributes ATTR_DATA::WofCompressedData
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2228 * and ATTR_REPARSE.
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2229 */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2230 attr = NULL;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2231 le = NULL;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2232 while ((attr = ni_enum_attr_ex(ni, attr, &le, NULL))) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2233 CLST svcn, evcn;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2234 u32 asize, roff;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2235
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2236 if (attr->type == ATTR_REPARSE) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2237 struct MFT_REF ref;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2238
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2239 mi_get_ref(&ni->mi, &ref);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2240 ntfs_remove_reparse(sbi, 0, &ref);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2241 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2242
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2243 if (!attr->non_res)
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2244 continue;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2245
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2246 if (attr->type != ATTR_REPARSE &&
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2247 (attr->type != ATTR_DATA ||
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2248 attr->name_len != ARRAY_SIZE(WOF_NAME) ||
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2249 memcmp(attr_name(attr), WOF_NAME, sizeof(WOF_NAME))))
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2250 continue;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2251
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2252 svcn = le64_to_cpu(attr->nres.svcn);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2253 evcn = le64_to_cpu(attr->nres.evcn);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2254
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2255 if (evcn + 1 <= svcn)
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2256 continue;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2257
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2258 asize = le32_to_cpu(attr->size);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2259 roff = le16_to_cpu(attr->nres.run_off);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2260
6db620863f8528e Edward Lo 2022-08-06 2261 if (roff > asize) {
6db620863f8528e Edward Lo 2022-08-06 2262 err = -EINVAL;
6db620863f8528e Edward Lo 2022-08-06 2263 goto out;
6db620863f8528e Edward Lo 2022-08-06 2264 }
6db620863f8528e Edward Lo 2022-08-06 2265
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2266 /*run==1 Means unpack and deallocate. */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2267 run_unpack_ex(RUN_DEALLOCATE, sbi, ni->mi.rno, svcn, evcn, svcn,
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2268 Add2Ptr(attr, roff), asize - roff);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2269 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2270
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2271 /*
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2272 * Step 3: Remove attribute ATTR_DATA::WofCompressedData.
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2273 */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2274 err = ni_remove_attr(ni, ATTR_DATA, WOF_NAME, ARRAY_SIZE(WOF_NAME),
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2275 false, NULL);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2276 if (err)
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2277 goto out;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2278
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2279 /*
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2280 * Step 4: Remove ATTR_REPARSE.
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2281 */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2282 err = ni_remove_attr(ni, ATTR_REPARSE, NULL, 0, false, NULL);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2283 if (err)
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2284 goto out;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2285
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2286 /*
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2287 * Step 5: Remove sparse flag from data attribute.
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2288 */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2289 attr = ni_find_attr(ni, NULL, NULL, ATTR_DATA, NULL, 0, NULL, &mi);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2290 if (!attr) {
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2291 err = -EINVAL;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2292 goto out;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2293 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2294
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2295 if (attr->non_res && is_attr_sparsed(attr)) {
d3624466b56dd5b Konstantin Komarov 2021-08-31 2296 /* Sparsed attribute header is 8 bytes bigger than normal. */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2297 struct MFT_REC *rec = mi->mrec;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2298 u32 used = le32_to_cpu(rec->used);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2299 u32 asize = le32_to_cpu(attr->size);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2300 u16 roff = le16_to_cpu(attr->nres.run_off);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2301 char *rbuf = Add2Ptr(attr, roff);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2302
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2303 memmove(rbuf - 8, rbuf, used - PtrOffset(rec, rbuf));
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2304 attr->size = cpu_to_le32(asize - 8);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2305 attr->flags &= ~ATTR_FLAG_SPARSED;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2306 attr->nres.run_off = cpu_to_le16(roff - 8);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2307 attr->nres.c_unit = 0;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2308 rec->used = cpu_to_le32(used - 8);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2309 mi->dirty = true;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2310 ni->std_fa &= ~(FILE_ATTRIBUTE_SPARSE_FILE |
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2311 FILE_ATTRIBUTE_REPARSE_POINT);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2312
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2313 mark_inode_dirty(inode);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2314 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2315
e8b8e97f91b80f0 Kari Argillander 2021-08-03 2316 /* Clear cached flag. */
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2317 ni->ni_flags &= ~NI_FLAG_COMPRESSED_MASK;
c091354d6bf60ec Matthew Wilcox (Oracle 2024-04-22 2318) if (ni->file.offs_folio) {
c091354d6bf60ec Matthew Wilcox (Oracle 2024-04-22 2319) folio_put(ni->file.offs_folio);
c091354d6bf60ec Matthew Wilcox (Oracle 2024-04-22 2320) ni->file.offs_folio = NULL;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2321 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2322 mapping->a_ops = &ntfs_aops;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2323
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2324 out:
195c52bdd5d5ecf Kari Argillander 2021-08-24 2325 kfree(pages);
c12df45ee690112 Konstantin Komarov 2022-07-13 2326 if (err)
c12df45ee690112 Konstantin Komarov 2022-07-13 2327 _ntfs_bad_inode(inode);
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2328
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2329 return err;
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2330 }
4342306f0f0d5ff Konstantin Komarov 2021-08-13 2331
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2026-02-07 12:08 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-05 9:49 [PATCH] fs/ntfs3: return folios from ntfs_lock_new_page() Sun Jian
2026-02-07 11:58 ` kernel test robot
2026-02-07 12:08 ` kernel test robot [this message]
2026-02-07 14:59 ` sun jian
2026-02-07 14:45 ` [PATCH v2] " Sun Jian
2026-02-24 18:49 ` Konstantin Komarov
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=202602072013.jwrURE2e-lkp@intel.com \
--to=lkp@intel.com \
--cc=almaz.alexandrovich@paragon-software.com \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=ntfs3@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=sun.jian.kdev@gmail.com \
/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.