All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/33] btrfs: log replay bug fix, cleanups and error reporting changes
@ 2025-09-05 16:09 fdmanana
  2025-09-05 16:09 ` [PATCH 01/33] btrfs: fix invalid extref key setup when replaying dentry fdmanana
                   ` (33 more replies)
  0 siblings, 34 replies; 75+ messages in thread
From: fdmanana @ 2025-09-05 16:09 UTC (permalink / raw)
  To: linux-btrfs

From: Filipe Manana <fdmanana@suse.com>

The following are a bug fix for an extref key offset computation, several
cleanups to eliminate duplicated or not needed code, memory allocations
and preparation work for the final change which is to make log replay
failures dump contextual information useful to help debug failures during
log replay. Details in the change logs.

Filipe Manana (33):
  btrfs: fix invalid extref key setup when replaying dentry
  btrfs: use booleans in walk control structure for log replay
  btrfs: rename replay_dest member of struct walk_control to root
  btrfs: rename root to log in walk_down_log_tree() and walk_up_log_tree()
  btrfs: add and use a log root field to struct walk_control
  btrfs: deduplicate log root free in error paths from btrfs_recover_log_trees()
  btrfs: stop passing transaction parameter to log tree walk functions
  btrfs: stop setting log_root_tree->log_root to NULL in btrfs_recover_log_trees()
  btrfs: always drop log root tree reference in btrfs_replay_log()
  btrfs: pass walk_control structure to replay_xattr_deletes()
  btrfs: move up the definition of struct walk_control
  btrfs: pass walk_control structure to replay_dir_deletes()
  btrfs: pass walk_control structure to check_item_in_log()
  btrfs: pass walk_control structure to replay_one_extent()
  btrfs: pass walk_control structure to add_inode_ref() and helpers
  btrfs: pass walk_control structure to replay_one_dir_item() and replay_one_name()
  btrfs: pass walk_control structure to drop_one_dir_item() and helpers
  btrfs: pass walk_control structure to replay_one_extent()
  btrfs: use level argument in log tree walk callback process_one_buffer()
  btrfs: use level argument in log tree walk callback replay_one_buffer()
  btrfs: use the inode item boolean everywhere in overwrite_item()
  btrfs: add current log leaf, key and slot to struct walk_control
  btrfs: avoid unnecessary path allocation at fixup_inode_link_count()
  btrfs: avoid path allocations when dropping extents during log replay
  btrfs: avoid unnecessary path allocation when replaying a dir item
  btrfs: remove redundant path release when processing dentry during log replay
  btrfs: remove redundant path release when overwriting item during log replay
  btrfs: add path for subvolume tree changes to struct walk_control
  btrfs: stop passing inode object IDs to __add_inode_ref() in log replay
  btrfs: remove pointless inode lookup when processing extrefs during log replay
  btrfs: abort transaction if we fail to find dir item during log replay
  btrfs: abort transaction if we fail to update inode in log replay dir fixup
  btrfs: dump detailed info and specific messages on log replay failures

 fs/btrfs/disk-io.c  |    2 +-
 fs/btrfs/fs.h       |    2 +
 fs/btrfs/tree-log.c | 1292 +++++++++++++++++++++++++------------------
 3 files changed, 762 insertions(+), 534 deletions(-)

-- 
2.47.2


^ permalink raw reply	[flat|nested] 75+ messages in thread
* Re: [PATCH 33/33] btrfs: dump detailed info and specific messages on log replay failures
  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
  -1 siblings, 0 replies; 75+ messages in thread
From: kernel test robot @ 2025-09-07  2:16 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <f0623e4f3a69cd61238551c1e5b44fc31077db16.1757075118.git.fdmanana@suse.com>
References: <f0623e4f3a69cd61238551c1e5b44fc31077db16.1757075118.git.fdmanana@suse.com>
TO: fdmanana@kernel.org
TO: linux-btrfs@vger.kernel.org

Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on kdave/for-next]
[also build test WARNING on next-20250905]
[cannot apply to linus/master v6.17-rc4]
[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/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
:::::: branch date: 34 hours ago
:::::: commit date: 34 hours ago
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 <error27@gmail.com>
| 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)
fs/btrfs/tree-log.c:3548 btrfs_sync_log() error: we previously assumed 'log_root_tree->node' could be null (see line 3443)

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

e02119d5a7b439 Chris Mason   2008-09-05  2516  
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);
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,
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,
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,
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  }
4f764e5153616f Filipe Manana 2015-02-23  2638  

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

^ permalink raw reply	[flat|nested] 75+ messages in thread

end of thread, other threads:[~2025-09-16 11:48 UTC | newest]

Thread overview: 75+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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-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-16  6:05     ` kernel test robot
2025-09-16 11:47       ` Filipe Manana
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
  -- strict thread matches above, loose matches on Subject: below --
2025-09-07  2:16 [PATCH 33/33] btrfs: dump detailed info and specific messages on log replay failures kernel test robot
2025-09-07 11:25 ` Dan Carpenter

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.