Message ID | 20170622081256.4981-1-lufq.fnst@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jun 22, 2017 at 04:12:56PM +0800, Lu Fengqi wrote: > As Qu mentioned in this thread > (https://www.spinics.net/lists/linux-btrfs/msg64469.html), compression > can cause regular extent to co-exist with inlined extent. This coexistence > makes things confusing. Since it was permitted currently, so fix > btrfsck to prevent a bunch of error logs that will make user feel > panic. > > When check file extent, record the extent_end of regular extent to check > if there is a gap between the regular extents. Normally there is only one > inlined extent, so the extent_end of inlined extent is useless. However, > if regular extent can co-exist with inlined extent, the extent_end of > inlined extent also need to record. > > Reported-by: Marc MERLIN <marc@merlins.org> > Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com> Applied, thanks. Do you have a test for that? -- 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
On Mon, Jun 26, 2017 at 04:55:04PM +0200, David Sterba wrote: >On Thu, Jun 22, 2017 at 04:12:56PM +0800, Lu Fengqi wrote: >> As Qu mentioned in this thread >> (https://www.spinics.net/lists/linux-btrfs/msg64469.html), compression >> can cause regular extent to co-exist with inlined extent. This coexistence >> makes things confusing. Since it was permitted currently, so fix >> btrfsck to prevent a bunch of error logs that will make user feel >> panic. >> >> When check file extent, record the extent_end of regular extent to check >> if there is a gap between the regular extents. Normally there is only one >> inlined extent, so the extent_end of inlined extent is useless. However, >> if regular extent can co-exist with inlined extent, the extent_end of >> inlined extent also need to record. >> >> Reported-by: Marc MERLIN <marc@merlins.org> >> Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com> > >Applied, thanks. > >Do you have a test for that? Yes, I have already posted this testcase (https://www.spinics.net/lists/linux-btrfs/msg66802.html) yesterday. In addition, this patch has an updated version (https://www.spinics.net/lists/linux-btrfs/msg66803.html) which make lowmem mode output more detailed information when file extent interrupt. Since the patch v2 has been applied, then I will send a patch for this modification alone.
On Tue, Jun 27, 2017 at 01:37:47PM +0800, Lu Fengqi wrote: > On Mon, Jun 26, 2017 at 04:55:04PM +0200, David Sterba wrote: > >On Thu, Jun 22, 2017 at 04:12:56PM +0800, Lu Fengqi wrote: > >> As Qu mentioned in this thread > >> (https://www.spinics.net/lists/linux-btrfs/msg64469.html), compression > >> can cause regular extent to co-exist with inlined extent. This coexistence > >> makes things confusing. Since it was permitted currently, so fix > >> btrfsck to prevent a bunch of error logs that will make user feel > >> panic. > >> > >> When check file extent, record the extent_end of regular extent to check > >> if there is a gap between the regular extents. Normally there is only one > >> inlined extent, so the extent_end of inlined extent is useless. However, > >> if regular extent can co-exist with inlined extent, the extent_end of > >> inlined extent also need to record. > >> > >> Reported-by: Marc MERLIN <marc@merlins.org> > >> Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com> > > > >Applied, thanks. > > > >Do you have a test for that? > > Yes, I have already posted this testcase > (https://www.spinics.net/lists/linux-btrfs/msg66802.html) yesterday. I see, thanks. > In > addition, this patch has an updated version > (https://www.spinics.net/lists/linux-btrfs/msg66803.html) which make > lowmem mode output more detailed information when file extent interrupt. > Since the patch v2 has been applied, then I will send a patch for this > modification alone. I'll replace the patch with v3. -- 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
diff --git a/cmds-check.c b/cmds-check.c index c052f66e..c173d285 100644 --- a/cmds-check.c +++ b/cmds-check.c @@ -4782,6 +4782,7 @@ static int check_file_extent(struct btrfs_root *root, struct btrfs_key *fkey, extent_num_bytes, item_inline_len); err |= FILE_EXTENT_ERROR; } + *end += extent_num_bytes; *size += extent_num_bytes; return err; }
As Qu mentioned in this thread (https://www.spinics.net/lists/linux-btrfs/msg64469.html), compression can cause regular extent to co-exist with inlined extent. This coexistence makes things confusing. Since it was permitted currently, so fix btrfsck to prevent a bunch of error logs that will make user feel panic. When check file extent, record the extent_end of regular extent to check if there is a gap between the regular extents. Normally there is only one inlined extent, so the extent_end of inlined extent is useless. However, if regular extent can co-exist with inlined extent, the extent_end of inlined extent also need to record. Reported-by: Marc MERLIN <marc@merlins.org> Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com> --- Sorry, I mistook the reporter in v1. Changes since v1: - Fix the reported-by. cmds-check.c | 1 + 1 file changed, 1 insertion(+)