It's expected that erofs_workgroup_unfreeze_final() won't
be used in other places. Let's fold it to simplify the code.

Signed-off-by: Gao Xiang <hsiang...@redhat.com>
---
 fs/erofs/utils.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/fs/erofs/utils.c b/fs/erofs/utils.c
index 52d0be10f1aa..14485a621862 100644
--- a/fs/erofs/utils.c
+++ b/fs/erofs/utils.c
@@ -127,12 +127,6 @@ int erofs_workgroup_put(struct erofs_workgroup *grp)
        return count;
 }
 
-static void erofs_workgroup_unfreeze_final(struct erofs_workgroup *grp)
-{
-       erofs_workgroup_unfreeze(grp, 0);
-       __erofs_workgroup_free(grp);
-}
-
 static bool erofs_try_to_release_workgroup(struct erofs_sb_info *sbi,
                                           struct erofs_workgroup *grp)
 {
@@ -162,11 +156,9 @@ static bool erofs_try_to_release_workgroup(struct 
erofs_sb_info *sbi,
         */
        DBG_BUGON(xa_erase(&sbi->managed_pslots, grp->index) != grp);
 
-       /*
-        * If managed cache is on, last refcount should indicate
-        * the related workstation.
-        */
-       erofs_workgroup_unfreeze_final(grp);
+       /* last refcount should be connected with its managed pslot.  */
+       erofs_workgroup_unfreeze(grp, 0);
+       __erofs_workgroup_free(grp);
        return true;
 }
 
-- 
2.18.1

Reply via email to