public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev, fdmanana@kernel.org,
	linux-btrfs@vger.kernel.org
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH 33/33] btrfs: dump detailed info and specific messages on log replay failures
Date: Sun, 7 Sep 2025 14:25:19 +0300	[thread overview]
Message-ID: <202509070931.zy8HHIta-lkp@intel.com> (raw)
In-Reply-To: <f0623e4f3a69cd61238551c1e5b44fc31077db16.1757075118.git.fdmanana@suse.com>

Hi,

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/fdmanana-kernel-org/btrfs-fix-invalid-extref-key-setup-when-replaying-dentry/20250906-001715
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
patch link:    https://lore.kernel.org/r/f0623e4f3a69cd61238551c1e5b44fc31077db16.1757075118.git.fdmanana%40suse.com
patch subject: [PATCH 33/33] btrfs: dump detailed info and specific messages on log replay failures
config: i386-randconfig-141-20250906 (https://download.01.org/0day-ci/archive/20250907/202509070931.zy8HHIta-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)

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/202509070931.zy8HHIta-lkp@intel.com/

New smatch warnings:
fs/btrfs/tree-log.c:2591 replay_xattr_deletes() warn: passing freed memory 'name' (line 2588)

Old smatch warnings:
fs/btrfs/tree-log.c:2601 replay_xattr_deletes() warn: passing freed memory 'name' (line 2588)
fs/btrfs/tree-log.c:2614 replay_xattr_deletes() warn: passing freed memory 'name' (line 2611)

vim +/name +2591 fs/btrfs/tree-log.c

51abc774a9b1d4 Filipe Manana 2025-09-05  2517  static int replay_xattr_deletes(struct walk_control *wc)
4f764e5153616f Filipe Manana 2015-02-23  2518  {
b75ff3e7b377e8 Filipe Manana 2025-09-05  2519  	struct btrfs_trans_handle *trans = wc->trans;
b75ff3e7b377e8 Filipe Manana 2025-09-05  2520  	struct btrfs_root *root = wc->root;
b75ff3e7b377e8 Filipe Manana 2025-09-05  2521  	struct btrfs_root *log = wc->log;
4f764e5153616f Filipe Manana 2015-02-23  2522  	struct btrfs_key search_key;
4f764e5153616f Filipe Manana 2015-02-23  2523  	struct btrfs_path *log_path;
b048ef711534b2 Filipe Manana 2025-09-05  2524  	const u64 ino = wc->log_key.objectid;
4f764e5153616f Filipe Manana 2015-02-23  2525  	int nritems;
4f764e5153616f Filipe Manana 2015-02-23  2526  	int ret;
4f764e5153616f Filipe Manana 2015-02-23  2527  
4f764e5153616f Filipe Manana 2015-02-23  2528  	log_path = btrfs_alloc_path();
fa7c5927bfe412 Filipe Manana 2025-07-18  2529  	if (!log_path) {
c2bd309cef030f Filipe Manana 2025-09-05  2530  		btrfs_abort_log_replay(wc, -ENOMEM, "failed to allocate path");
4f764e5153616f Filipe Manana 2015-02-23  2531  		return -ENOMEM;
fa7c5927bfe412 Filipe Manana 2025-07-18  2532  	}
4f764e5153616f Filipe Manana 2015-02-23  2533  
4f764e5153616f Filipe Manana 2015-02-23  2534  	search_key.objectid = ino;
4f764e5153616f Filipe Manana 2015-02-23  2535  	search_key.type = BTRFS_XATTR_ITEM_KEY;
4f764e5153616f Filipe Manana 2015-02-23  2536  	search_key.offset = 0;
4f764e5153616f Filipe Manana 2015-02-23  2537  again:
51abc774a9b1d4 Filipe Manana 2025-09-05  2538  	ret = btrfs_search_slot(NULL, root, &search_key, wc->subvol_path, 0, 0);
fa7c5927bfe412 Filipe Manana 2025-07-18  2539  	if (ret < 0) {
c2bd309cef030f Filipe Manana 2025-09-05  2540  		btrfs_abort_log_replay(wc, ret,
c2bd309cef030f Filipe Manana 2025-09-05  2541  			       "failed to search xattrs for inode %llu root %llu",
c2bd309cef030f Filipe Manana 2025-09-05  2542  				       ino, btrfs_root_id(root));
4f764e5153616f Filipe Manana 2015-02-23  2543  		goto out;
fa7c5927bfe412 Filipe Manana 2025-07-18  2544  	}
4f764e5153616f Filipe Manana 2015-02-23  2545  process_leaf:
51abc774a9b1d4 Filipe Manana 2025-09-05  2546  	nritems = btrfs_header_nritems(wc->subvol_path->nodes[0]);
51abc774a9b1d4 Filipe Manana 2025-09-05  2547  	for (int i = wc->subvol_path->slots[0]; i < nritems; i++) {
4f764e5153616f Filipe Manana 2015-02-23  2548  		struct btrfs_key key;
4f764e5153616f Filipe Manana 2015-02-23  2549  		struct btrfs_dir_item *di;
4f764e5153616f Filipe Manana 2015-02-23  2550  		struct btrfs_dir_item *log_di;
4f764e5153616f Filipe Manana 2015-02-23  2551  		u32 total_size;
4f764e5153616f Filipe Manana 2015-02-23  2552  		u32 cur;
4f764e5153616f Filipe Manana 2015-02-23  2553  
51abc774a9b1d4 Filipe Manana 2025-09-05  2554  		btrfs_item_key_to_cpu(wc->subvol_path->nodes[0], &key, i);
4f764e5153616f Filipe Manana 2015-02-23  2555  		if (key.objectid != ino || key.type != BTRFS_XATTR_ITEM_KEY) {
4f764e5153616f Filipe Manana 2015-02-23  2556  			ret = 0;
4f764e5153616f Filipe Manana 2015-02-23  2557  			goto out;
4f764e5153616f Filipe Manana 2015-02-23  2558  		}
4f764e5153616f Filipe Manana 2015-02-23  2559  
51abc774a9b1d4 Filipe Manana 2025-09-05  2560  		di = btrfs_item_ptr(wc->subvol_path->nodes[0], i, struct btrfs_dir_item);
51abc774a9b1d4 Filipe Manana 2025-09-05  2561  		total_size = btrfs_item_size(wc->subvol_path->nodes[0], i);
4f764e5153616f Filipe Manana 2015-02-23  2562  		cur = 0;
4f764e5153616f Filipe Manana 2015-02-23  2563  		while (cur < total_size) {
51abc774a9b1d4 Filipe Manana 2025-09-05  2564  			u16 name_len = btrfs_dir_name_len(wc->subvol_path->nodes[0], di);
51abc774a9b1d4 Filipe Manana 2025-09-05  2565  			u16 data_len = btrfs_dir_data_len(wc->subvol_path->nodes[0], di);
4f764e5153616f Filipe Manana 2015-02-23  2566  			u32 this_len = sizeof(*di) + name_len + data_len;
4f764e5153616f Filipe Manana 2015-02-23  2567  			char *name;
4f764e5153616f Filipe Manana 2015-02-23  2568  
4f764e5153616f Filipe Manana 2015-02-23  2569  			name = kmalloc(name_len, GFP_NOFS);
4f764e5153616f Filipe Manana 2015-02-23  2570  			if (!name) {
4f764e5153616f Filipe Manana 2015-02-23  2571  				ret = -ENOMEM;
c2bd309cef030f Filipe Manana 2025-09-05  2572  				btrfs_abort_log_replay(wc, ret,
c2bd309cef030f Filipe Manana 2025-09-05  2573  				       "failed to allocate memory for name of length %u",
c2bd309cef030f Filipe Manana 2025-09-05  2574  						       name_len);
4f764e5153616f Filipe Manana 2015-02-23  2575  				goto out;
4f764e5153616f Filipe Manana 2015-02-23  2576  			}
51abc774a9b1d4 Filipe Manana 2025-09-05  2577  			read_extent_buffer(wc->subvol_path->nodes[0], name,
4f764e5153616f Filipe Manana 2015-02-23  2578  					   (unsigned long)(di + 1), name_len);
4f764e5153616f Filipe Manana 2015-02-23  2579  
4f764e5153616f Filipe Manana 2015-02-23  2580  			log_di = btrfs_lookup_xattr(NULL, log, log_path, ino,
4f764e5153616f Filipe Manana 2015-02-23  2581  						    name, name_len, 0);
4f764e5153616f Filipe Manana 2015-02-23  2582  			btrfs_release_path(log_path);
4f764e5153616f Filipe Manana 2015-02-23  2583  			if (!log_di) {
4f764e5153616f Filipe Manana 2015-02-23  2584  				/* Doesn't exist in log tree, so delete it. */
51abc774a9b1d4 Filipe Manana 2025-09-05  2585  				btrfs_release_path(wc->subvol_path);
51abc774a9b1d4 Filipe Manana 2025-09-05  2586  				di = btrfs_lookup_xattr(trans, root, wc->subvol_path, ino,
4f764e5153616f Filipe Manana 2015-02-23  2587  							name, name_len, -1);
4f764e5153616f Filipe Manana 2015-02-23 @2588  				kfree(name);
                                                                              ^^^^

kfree()

4f764e5153616f Filipe Manana 2015-02-23  2589  				if (IS_ERR(di)) {
4f764e5153616f Filipe Manana 2015-02-23  2590  					ret = PTR_ERR(di);
c2bd309cef030f Filipe Manana 2025-09-05 @2591  					btrfs_abort_log_replay(wc, ret,
c2bd309cef030f Filipe Manana 2025-09-05  2592  		       "failed to lookup xattr with name %.*s for inode %llu root %llu",
c2bd309cef030f Filipe Manana 2025-09-05  2593  							       name_len, name, ino,
                                                                                                                 ^^^^
Use after free

c2bd309cef030f Filipe Manana 2025-09-05  2594  							       btrfs_root_id(root));
4f764e5153616f Filipe Manana 2015-02-23  2595  					goto out;
4f764e5153616f Filipe Manana 2015-02-23  2596  				}
4f764e5153616f Filipe Manana 2015-02-23  2597  				ASSERT(di);
4f764e5153616f Filipe Manana 2015-02-23  2598  				ret = btrfs_delete_one_dir_name(trans, root,
51abc774a9b1d4 Filipe Manana 2025-09-05  2599  								wc->subvol_path, di);
fa7c5927bfe412 Filipe Manana 2025-07-18  2600  				if (ret) {
c2bd309cef030f Filipe Manana 2025-09-05  2601  					btrfs_abort_log_replay(wc, ret,
c2bd309cef030f Filipe Manana 2025-09-05  2602  		       "failed to delete xattr with name %.*s for inode %llu root %llu",
c2bd309cef030f Filipe Manana 2025-09-05  2603  							       name_len, name, ino,
                                                                                                                 ^^^^
First print the name, then free it.

c2bd309cef030f Filipe Manana 2025-09-05  2604  							       btrfs_root_id(root));
4f764e5153616f Filipe Manana 2015-02-23  2605  					goto out;
fa7c5927bfe412 Filipe Manana 2025-07-18  2606  				}
51abc774a9b1d4 Filipe Manana 2025-09-05  2607  				btrfs_release_path(wc->subvol_path);
4f764e5153616f Filipe Manana 2015-02-23  2608  				search_key = key;
4f764e5153616f Filipe Manana 2015-02-23  2609  				goto again;
4f764e5153616f Filipe Manana 2015-02-23  2610  			}
4f764e5153616f Filipe Manana 2015-02-23  2611  			kfree(name);
                                                                      ^^^^^
4f764e5153616f Filipe Manana 2015-02-23  2612  			if (IS_ERR(log_di)) {
4f764e5153616f Filipe Manana 2015-02-23  2613  				ret = PTR_ERR(log_di);
c2bd309cef030f Filipe Manana 2025-09-05  2614  				btrfs_abort_log_replay(wc, ret,
c2bd309cef030f Filipe Manana 2025-09-05  2615  	"failed to lookup xattr in log tree with name %.*s for inode %llu root %llu",
c2bd309cef030f Filipe Manana 2025-09-05  2616  						       name_len, name, ino,
                                                                                                         ^^^^
same.


c2bd309cef030f Filipe Manana 2025-09-05  2617  						       btrfs_root_id(root));
4f764e5153616f Filipe Manana 2015-02-23  2618  				goto out;
4f764e5153616f Filipe Manana 2015-02-23  2619  			}
4f764e5153616f Filipe Manana 2015-02-23  2620  			cur += this_len;
4f764e5153616f Filipe Manana 2015-02-23  2621  			di = (struct btrfs_dir_item *)((char *)di + this_len);
4f764e5153616f Filipe Manana 2015-02-23  2622  		}
4f764e5153616f Filipe Manana 2015-02-23  2623  	}
51abc774a9b1d4 Filipe Manana 2025-09-05  2624  	ret = btrfs_next_leaf(root, wc->subvol_path);
4f764e5153616f Filipe Manana 2015-02-23  2625  	if (ret > 0)
4f764e5153616f Filipe Manana 2015-02-23  2626  		ret = 0;
4f764e5153616f Filipe Manana 2015-02-23  2627  	else if (ret == 0)
4f764e5153616f Filipe Manana 2015-02-23  2628  		goto process_leaf;
fa7c5927bfe412 Filipe Manana 2025-07-18  2629  	else
c2bd309cef030f Filipe Manana 2025-09-05  2630  		btrfs_abort_log_replay(wc, ret,
c2bd309cef030f Filipe Manana 2025-09-05  2631  			       "failed to get next leaf in subvolume root %llu",
c2bd309cef030f Filipe Manana 2025-09-05  2632  				       btrfs_root_id(root));
4f764e5153616f Filipe Manana 2015-02-23  2633  out:
4f764e5153616f Filipe Manana 2015-02-23  2634  	btrfs_free_path(log_path);
51abc774a9b1d4 Filipe Manana 2025-09-05  2635  	btrfs_release_path(wc->subvol_path);
4f764e5153616f Filipe Manana 2015-02-23  2636  	return ret;
4f764e5153616f Filipe Manana 2015-02-23  2637  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


  reply	other threads:[~2025-09-07 11:25 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-05 16:09 [PATCH 00/33] btrfs: log replay bug fix, cleanups and error reporting changes fdmanana
2025-09-05 16:09 ` [PATCH 01/33] btrfs: fix invalid extref key setup when replaying dentry fdmanana
2025-09-05 16:09 ` [PATCH 02/33] btrfs: use booleans in walk control structure for log replay fdmanana
2025-09-05 16:09 ` [PATCH 03/33] btrfs: rename replay_dest member of struct walk_control to root fdmanana
2025-09-05 16:09 ` [PATCH 04/33] btrfs: rename root to log in walk_down_log_tree() and walk_up_log_tree() fdmanana
2025-09-05 16:09 ` [PATCH 05/33] btrfs: add and use a log root field to struct walk_control fdmanana
2025-09-05 16:09 ` [PATCH 06/33] btrfs: deduplicate log root free in error paths from btrfs_recover_log_trees() fdmanana
2025-09-05 16:09 ` [PATCH 07/33] btrfs: stop passing transaction parameter to log tree walk functions fdmanana
2025-09-05 16:09 ` [PATCH 08/33] btrfs: stop setting log_root_tree->log_root to NULL in btrfs_recover_log_trees() fdmanana
2025-09-05 16:09 ` [PATCH 09/33] btrfs: always drop log root tree reference in btrfs_replay_log() fdmanana
2025-09-05 16:09 ` [PATCH 10/33] btrfs: pass walk_control structure to replay_xattr_deletes() fdmanana
2025-09-05 16:09 ` [PATCH 11/33] btrfs: move up the definition of struct walk_control fdmanana
2025-09-05 16:10 ` [PATCH 12/33] btrfs: pass walk_control structure to replay_dir_deletes() fdmanana
2025-09-05 16:10 ` [PATCH 13/33] btrfs: pass walk_control structure to check_item_in_log() fdmanana
2025-09-05 16:10 ` [PATCH 14/33] btrfs: pass walk_control structure to replay_one_extent() fdmanana
2025-09-05 16:10 ` [PATCH 15/33] btrfs: pass walk_control structure to add_inode_ref() and helpers fdmanana
2025-09-05 16:10 ` [PATCH 16/33] btrfs: pass walk_control structure to replay_one_dir_item() and replay_one_name() fdmanana
2025-09-05 16:10 ` [PATCH 17/33] btrfs: pass walk_control structure to drop_one_dir_item() and helpers fdmanana
2025-09-05 16:10 ` [PATCH 18/33] btrfs: pass walk_control structure to replay_one_extent() fdmanana
2025-09-05 16:10 ` [PATCH 19/33] btrfs: use level argument in log tree walk callback process_one_buffer() fdmanana
2025-09-05 16:10 ` [PATCH 20/33] btrfs: use level argument in log tree walk callback replay_one_buffer() fdmanana
2025-09-05 16:10 ` [PATCH 21/33] btrfs: use the inode item boolean everywhere in overwrite_item() fdmanana
2025-09-05 16:10 ` [PATCH 22/33] btrfs: add current log leaf, key and slot to struct walk_control fdmanana
2025-09-05 16:10 ` [PATCH 23/33] btrfs: avoid unnecessary path allocation at fixup_inode_link_count() fdmanana
2025-09-05 16:10 ` [PATCH 24/33] btrfs: avoid path allocations when dropping extents during log replay fdmanana
2025-09-05 16:10 ` [PATCH 25/33] btrfs: avoid unnecessary path allocation when replaying a dir item fdmanana
2025-09-05 16:10 ` [PATCH 26/33] btrfs: remove redundant path release when processing dentry during log replay fdmanana
2025-09-05 16:10 ` [PATCH 27/33] btrfs: remove redundant path release when overwriting item " fdmanana
2025-09-05 16:10 ` [PATCH 28/33] btrfs: add path for subvolume tree changes to struct walk_control fdmanana
2025-09-05 16:10 ` [PATCH 29/33] btrfs: stop passing inode object IDs to __add_inode_ref() in log replay fdmanana
2025-09-05 16:10 ` [PATCH 30/33] btrfs: remove pointless inode lookup when processing extrefs during " fdmanana
2025-09-05 16:10 ` [PATCH 31/33] btrfs: abort transaction if we fail to find dir item " fdmanana
2025-09-05 16:10 ` [PATCH 32/33] btrfs: abort transaction if we fail to update inode in log replay dir fixup fdmanana
2025-09-05 16:10 ` [PATCH 33/33] btrfs: dump detailed info and specific messages on log replay failures fdmanana
2025-09-07 11:25   ` Dan Carpenter [this message]
2025-09-08  9:52 ` [PATCH v2 00/33] btrfs: log replay bug fix, cleanups and error reporting changes fdmanana
2025-09-08  9:52   ` [PATCH v2 01/33] btrfs: fix invalid extref key setup when replaying dentry fdmanana
2025-09-08  9:52   ` [PATCH v2 02/33] btrfs: use booleans in walk control structure for log replay fdmanana
2025-09-08  9:52   ` [PATCH v2 03/33] btrfs: rename replay_dest member of struct walk_control to root fdmanana
2025-09-08  9:52   ` [PATCH v2 04/33] btrfs: rename root to log in walk_down_log_tree() and walk_up_log_tree() fdmanana
2025-09-08  9:52   ` [PATCH v2 05/33] btrfs: add and use a log root field to struct walk_control fdmanana
2025-09-08  9:53   ` [PATCH v2 06/33] btrfs: deduplicate log root free in error paths from btrfs_recover_log_trees() fdmanana
2025-09-08  9:53   ` [PATCH v2 07/33] btrfs: stop passing transaction parameter to log tree walk functions fdmanana
2025-09-08  9:53   ` [PATCH v2 08/33] btrfs: stop setting log_root_tree->log_root to NULL in btrfs_recover_log_trees() fdmanana
2025-09-08  9:53   ` [PATCH v2 09/33] btrfs: always drop log root tree reference in btrfs_replay_log() fdmanana
2025-09-08  9:53   ` [PATCH v2 10/33] btrfs: pass walk_control structure to replay_xattr_deletes() fdmanana
2025-09-08  9:53   ` [PATCH v2 11/33] btrfs: move up the definition of struct walk_control fdmanana
2025-09-08  9:53   ` [PATCH v2 12/33] btrfs: pass walk_control structure to replay_dir_deletes() fdmanana
2025-09-08  9:53   ` [PATCH v2 13/33] btrfs: pass walk_control structure to check_item_in_log() fdmanana
2025-09-08  9:53   ` [PATCH v2 14/33] btrfs: pass walk_control structure to replay_one_extent() fdmanana
2025-09-08  9:53   ` [PATCH v2 15/33] btrfs: pass walk_control structure to add_inode_ref() and helpers fdmanana
2025-09-08  9:53   ` [PATCH v2 16/33] btrfs: pass walk_control structure to replay_one_dir_item() and replay_one_name() fdmanana
2025-09-08  9:53   ` [PATCH v2 17/33] btrfs: pass walk_control structure to drop_one_dir_item() and helpers fdmanana
2025-09-08  9:53   ` [PATCH v2 18/33] btrfs: pass walk_control structure to overwrite_item() fdmanana
2025-09-08  9:53   ` [PATCH v2 19/33] btrfs: use level argument in log tree walk callback process_one_buffer() fdmanana
2025-09-08  9:53   ` [PATCH v2 20/33] btrfs: use level argument in log tree walk callback replay_one_buffer() fdmanana
2025-09-08  9:53   ` [PATCH v2 21/33] btrfs: use the inode item boolean everywhere in overwrite_item() fdmanana
2025-09-08  9:53   ` [PATCH v2 22/33] btrfs: add current log leaf, key and slot to struct walk_control fdmanana
2025-09-08  9:53   ` [PATCH v2 23/33] btrfs: avoid unnecessary path allocation at fixup_inode_link_count() fdmanana
2025-09-08  9:53   ` [PATCH v2 24/33] btrfs: avoid path allocations when dropping extents during log replay fdmanana
2025-09-08  9:53   ` [PATCH v2 25/33] btrfs: avoid unnecessary path allocation when replaying a dir item fdmanana
2025-09-08  9:53   ` [PATCH v2 26/33] btrfs: remove redundant path release when processing dentry during log replay fdmanana
2025-09-08  9:53   ` [PATCH v2 27/33] btrfs: remove redundant path release when overwriting item " fdmanana
2025-09-08  9:53   ` [PATCH v2 28/33] btrfs: add path for subvolume tree changes to struct walk_control fdmanana
2025-09-08  9:53   ` [PATCH v2 29/33] btrfs: stop passing inode object IDs to __add_inode_ref() in log replay fdmanana
2025-09-08  9:53   ` [PATCH v2 30/33] btrfs: remove pointless inode lookup when processing extrefs during " fdmanana
2025-09-08  9:53   ` [PATCH v2 31/33] btrfs: abort transaction if we fail to find dir item " fdmanana
2025-09-08  9:53   ` [PATCH v2 32/33] btrfs: abort transaction if we fail to update inode in log replay dir fixup fdmanana
2025-09-08  9:53   ` [PATCH v2 33/33] btrfs: dump detailed info and specific messages on log replay failures fdmanana
2025-09-09  0:53     ` David Sterba
2025-09-09 14:42       ` Filipe Manana
2025-09-09  0:55   ` [PATCH v2 00/33] btrfs: log replay bug fix, cleanups and error reporting changes David Sterba

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=202509070931.zy8HHIta-lkp@intel.com \
    --to=dan.carpenter@linaro.org \
    --cc=fdmanana@kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox