Message ID | 20170418150939.6743-1-dsterba@suse.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
At 04/18/2017 11:09 PM, David Sterba wrote: > The WARN_ON and warning from report_reserved_underflow can become very > noisy and is visible unconditionally although this is namely for > debugging. The patch "btrfs: Add WARN_ON for qgroup reserved underflow" > (18dc22c19bef520cca11ce4c0807ac9dec48d31f) went to 4.11-rc1 and the plan > was to get the fix as well, but this hasn't happened. > > CC: Qu Wenruo <quwenruo@cn.fujitsu.com> > Signed-off-by: David Sterba <dsterba@suse.com> Reviewed-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Thanks for that. Qu > --- > > This is going to be submitted for 4.11 > > fs/btrfs/qgroup.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c > index a59801dc2a34..afbea61d957e 100644 > --- a/fs/btrfs/qgroup.c > +++ b/fs/btrfs/qgroup.c > @@ -1042,9 +1042,12 @@ static void report_reserved_underflow(struct btrfs_fs_info *fs_info, > struct btrfs_qgroup *qgroup, > u64 num_bytes) > { > - btrfs_warn(fs_info, > +#ifdef CONFIG_BTRFS_DEBUG > + WARN_ON(qgroup->reserved < num_bytes); > + btrfs_debug(fs_info, > "qgroup %llu reserved space underflow, have: %llu, to free: %llu", > qgroup->qgroupid, qgroup->reserved, num_bytes); > +#endif > qgroup->reserved = 0; > } > /* > @@ -1075,7 +1078,7 @@ static int __qgroup_excl_accounting(struct btrfs_fs_info *fs_info, > qgroup->excl += sign * num_bytes; > qgroup->excl_cmpr += sign * num_bytes; > if (sign > 0) { > - if (WARN_ON(qgroup->reserved < num_bytes)) > + if (qgroup->reserved < num_bytes) > report_reserved_underflow(fs_info, qgroup, num_bytes); > else > qgroup->reserved -= num_bytes; > @@ -1100,7 +1103,7 @@ static int __qgroup_excl_accounting(struct btrfs_fs_info *fs_info, > WARN_ON(sign < 0 && qgroup->excl < num_bytes); > qgroup->excl += sign * num_bytes; > if (sign > 0) { > - if (WARN_ON(qgroup->reserved < num_bytes)) > + if (qgroup->reserved < num_bytes) > report_reserved_underflow(fs_info, qgroup, > num_bytes); > else > @@ -2469,7 +2472,7 @@ void btrfs_qgroup_free_refroot(struct btrfs_fs_info *fs_info, > > qg = unode_aux_to_qgroup(unode); > > - if (WARN_ON(qg->reserved < num_bytes)) > + if (qg->reserved < num_bytes) > report_reserved_underflow(fs_info, qg, num_bytes); > else > qg->reserved -= num_bytes; > -- 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/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index a59801dc2a34..afbea61d957e 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -1042,9 +1042,12 @@ static void report_reserved_underflow(struct btrfs_fs_info *fs_info, struct btrfs_qgroup *qgroup, u64 num_bytes) { - btrfs_warn(fs_info, +#ifdef CONFIG_BTRFS_DEBUG + WARN_ON(qgroup->reserved < num_bytes); + btrfs_debug(fs_info, "qgroup %llu reserved space underflow, have: %llu, to free: %llu", qgroup->qgroupid, qgroup->reserved, num_bytes); +#endif qgroup->reserved = 0; } /* @@ -1075,7 +1078,7 @@ static int __qgroup_excl_accounting(struct btrfs_fs_info *fs_info, qgroup->excl += sign * num_bytes; qgroup->excl_cmpr += sign * num_bytes; if (sign > 0) { - if (WARN_ON(qgroup->reserved < num_bytes)) + if (qgroup->reserved < num_bytes) report_reserved_underflow(fs_info, qgroup, num_bytes); else qgroup->reserved -= num_bytes; @@ -1100,7 +1103,7 @@ static int __qgroup_excl_accounting(struct btrfs_fs_info *fs_info, WARN_ON(sign < 0 && qgroup->excl < num_bytes); qgroup->excl += sign * num_bytes; if (sign > 0) { - if (WARN_ON(qgroup->reserved < num_bytes)) + if (qgroup->reserved < num_bytes) report_reserved_underflow(fs_info, qgroup, num_bytes); else @@ -2469,7 +2472,7 @@ void btrfs_qgroup_free_refroot(struct btrfs_fs_info *fs_info, qg = unode_aux_to_qgroup(unode); - if (WARN_ON(qg->reserved < num_bytes)) + if (qg->reserved < num_bytes) report_reserved_underflow(fs_info, qg, num_bytes); else qg->reserved -= num_bytes;
The WARN_ON and warning from report_reserved_underflow can become very noisy and is visible unconditionally although this is namely for debugging. The patch "btrfs: Add WARN_ON for qgroup reserved underflow" (18dc22c19bef520cca11ce4c0807ac9dec48d31f) went to 4.11-rc1 and the plan was to get the fix as well, but this hasn't happened. CC: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com> --- This is going to be submitted for 4.11 fs/btrfs/qgroup.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)