| From foo@baz Mon Dec 28 10:12:31 AM CET 2020 |
| From: Qu Wenruo <wqu@suse.com> |
| Date: Wed, 27 Jun 2018 18:19:55 +0800 |
| Subject: btrfs: quota: Set rescan progress to (u64)-1 if we hit last leaf |
| |
| From: Qu Wenruo <wqu@suse.com> |
| |
| commoit 6f7de19ed3d4d3526ca5eca428009f97cf969c2f upstream |
| |
| Commit ff3d27a048d9 ("btrfs: qgroup: Finish rescan when hit the last leaf |
| of extent tree") added a new exit for rescan finish. |
| |
| However after finishing quota rescan, we set |
| fs_info->qgroup_rescan_progress to (u64)-1 before we exit through the |
| original exit path. |
| While we missed that assignment of (u64)-1 in the new exit path. |
| |
| The end result is, the quota status item doesn't have the same value. |
| (-1 vs the last bytenr + 1) |
| Although it doesn't affect quota accounting, it's still better to keep |
| the original behavior. |
| |
| Reported-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com> |
| Fixes: ff3d27a048d9 ("btrfs: qgroup: Finish rescan when hit the last leaf of extent tree") |
| Signed-off-by: Qu Wenruo <wqu@suse.com> |
| Reviewed-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com> |
| Signed-off-by: David Sterba <dsterba@suse.com> |
| Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| fs/btrfs/qgroup.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/fs/btrfs/qgroup.c |
| +++ b/fs/btrfs/qgroup.c |
| @@ -2288,8 +2288,10 @@ out: |
| } |
| btrfs_put_tree_mod_seq(fs_info, &tree_mod_seq_elem); |
| |
| - if (done && !ret) |
| + if (done && !ret) { |
| ret = 1; |
| + fs_info->qgroup_rescan_progress.objectid = (u64)-1; |
| + } |
| return ret; |
| } |
| |