From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from synology.com ([59.124.61.242]:56059 "EHLO synology.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751075AbeCGJxI (ORCPT ); Wed, 7 Mar 2018 04:53:08 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Date: Wed, 07 Mar 2018 17:53:06 +0800 From: robbieko To: Qu Wenruo Cc: linux-btrfs@vger.kernel.org Subject: Re: [PATCH 0/2] btrfs fiemap related BUG fix. In-Reply-To: <26835a31-1dc4-98f3-f37c-44e8c73d6d67@gmx.com> References: <1520410819-32405-1-git-send-email-robbieko@synology.com> <26835a31-1dc4-98f3-f37c-44e8c73d6d67@gmx.com> Message-ID: Sender: linux-btrfs-owner@vger.kernel.org List-ID: Qu Wenruo 於 2018-03-07 17:27 寫到: > On 2018年03月07日 16:20, robbieko wrote: >> From: Robbie Ko >> >> This patchset intends to fix btrfs fiemap related bug. >> >> The fiemap has the following problems: >> >> 1) Wrong extent count when fm_extent_count is zero. >> >> >> 2) SHARED bit is not correct >> I have two ideas, but I do not know which one is the best. >> >> Like: >> # dd if=/dev/zero bs=16K count=2 oflag=dsync of=/mnt/btrfs/file >> # xfs_io -c "fiemap -v" /mnt/btrfs/file >> /mnt/btrfs/file: >> EXT: FILE-OFFSET BLOCK-RANGE TOTAL FLAGS >> 0: [0..63]: 4241424..4241487 64 0x1 >> # cloner -s $((16*1024)) /mnt/btrfs/file /mnt/btrfs/file_clone >> >> 1. When any extent is shared in extent map, the entire extent map is >> shared >> # xfs_io -c "fiemap -v" /mnt/btrfs/file >> /mnt/btrfs/file: >> EXT: FILE-OFFSET BLOCK-RANGE TOTAL FLAGS >> 0: [0..63]: 4241424..4241487 64 0x2001 > > I think this is what btrfs is doing right now. > Although I'm not sure if this is the best solution. > > BTW, I just did the same operation, and just get the SHARED flag on > both > source and destination. > > Is there something wrong? > Currently, only the first extent is checked for shared in extent_map. Details can refer to "[PATCH 2/2] Btrfs: fix fiemap extent SHARED flag error with range clone." >> >> 2. Split into different extent >> # xfs_io -c "fiemap -v" /mnt/btrfs/file >> /mnt/btrfs/file: >> EXT: FILE-OFFSET BLOCK-RANGE TOTAL FLAGS >> 0: [0..31]: 4241424..4241455 32 0x0 >> 1: [32..63]: 4241456..4241487 32 0x2001 > > This is what XFS does. > > Thanks, > Qu > >> >> Robbie Ko (2): >> Btrfs: fiemap: pass correct bytenr when fm_extent_count is zero >> Btrfs: fix fiemap extent SHARED flag error with range clone. >> >> fs/btrfs/extent_io.c | 150 >> ++++++++++++++++++++++++++++++++++++++++++++------- >> 1 file changed, 132 insertions(+), 18 deletions(-) >> >> -- >> 1.9.1 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" >> in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >>