Re: [PATCH] btrfs-progs: check: skip shared node or leaf check for low_memory mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 19, 2016 at 05:59:46PM +0800, Wang Xiaoguang wrote:
> The basic idea is simple. Assume a middle tree node A is shared and
> its referenceing fs/file tree root ids are 5, 258 and 260, then we
> only check node A in the tree who has the smallest root id. That means
> in this case, when checking root tree(5), we check inode A, for root
> tree 258 and 260, we can just skip it.
> 
> Notice even with this patch, we still may visit a shared node or leaf
> multiple times. This happens when a inode metadata occupies multiple
> leaves.
> 
>                  leaf_A     leaf_B
> When checking inode item in leaf_A, assume inode[512] have file extents
> in leaf_B, and leaf_B is shared. In the case, for inode[512], we must
> visit leaf_B to have inode item check. After finishing inode[512] check,
> here we walk down tree root to leaf_B to check whether node or leaf
> is shared, if some node or leaf is shared, we can just skip it and below
> nodes or leaf's check.
> 
> I also fill a disk partition with linux source codes and create 3 snapshots
> in it. Before this patch, it averagely took 46s to finish one btrfsck
> execution, with this patch, it averagely took 15s.
> 
> Signed-off-by: Wang Xiaoguang <wangxg.fnst@xxxxxxxxxxxxxx>

Can you please refresh the patch on top of current devel branch? I get
too many conflicts to resolve.

> @@ -2001,6 +2081,7 @@ static int walk_down_tree(struct btrfs_root *root, struct btrfs_path *path,
>  				       path->nodes[*level]->start,
>  				       *level, 1, &refs, NULL);
>  		if (ret < 0) {
> +			fprintf(stderr, "zhaoyan\n");

Probably a debugging leftover
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux