f2fs: Fix the accounting of dcc->undiscard_blks
authorSahitya Tummala <stummala@codeaurora.org>
Thu, 16 Apr 2020 06:17:41 +0000 (11:47 +0530)
committerJaegeuk Kim <jaegeuk@kernel.org>
Fri, 17 Apr 2020 16:17:00 +0000 (09:17 -0700)
When a discard_cmd needs to be split due to dpolicy->max_requests, then
for the remaining length it will be either merged into another cmd or a
new discard_cmd will be created. In this case, there is double
accounting of dcc->undiscard_blks for the remaining len, due to which
it shows incorrect value in stats.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index 728ff6e..1c48ec8 100644 (file)
@@ -1214,8 +1214,10 @@ submit:
                len = total_len;
        }
 
-       if (!err && len)
+       if (!err && len) {
+               dcc->undiscard_blks -= len;
                __update_discard_tree_range(sbi, bdev, lstart, start, len);
+       }
        return err;
 }