Because workgroup pointers inserted to a radix tree are always tagged with
a single value of 0, it is possible to remove tagging and untagging of the
pointers completely.

Signed-off-by: Vladimir Zapolskiy <[email protected]>
---
 fs/erofs/utils.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/fs/erofs/utils.c b/fs/erofs/utils.c
index 7b47c56b89b7..fddc5059c930 100644
--- a/fs/erofs/utils.c
+++ b/fs/erofs/utils.c
@@ -68,8 +68,6 @@ struct erofs_workgroup *erofs_find_workgroup(struct 
super_block *sb,
        rcu_read_lock();
        grp = radix_tree_lookup(&sbi->workstn_tree, index);
        if (grp) {
-               grp = xa_untag_pointer(grp);
-
                if (erofs_workgroup_get(grp)) {
                        /* prefer to relax rcu read side */
                        rcu_read_unlock();
@@ -101,8 +99,6 @@ int erofs_register_workgroup(struct super_block *sb,
        sbi = EROFS_SB(sb);
        xa_lock(&sbi->workstn_tree);
 
-       grp = xa_tag_pointer(grp, 0);
-
        /*
         * Bump up reference count before making this workgroup
         * visible to other users in order to avoid potential UAF
@@ -173,8 +169,7 @@ static bool erofs_try_to_release_workgroup(struct 
erofs_sb_info *sbi,
         * however in order to avoid some race conditions, add a
         * DBG_BUGON to observe this in advance.
         */
-       DBG_BUGON(xa_untag_pointer(radix_tree_delete(&sbi->workstn_tree,
-                                                    grp->index)) != grp);
+       DBG_BUGON(radix_tree_delete(&sbi->workstn_tree, grp->index) != grp);
 
        /*
         * If managed cache is on, last refcount should indicate
@@ -199,7 +194,7 @@ static unsigned long erofs_shrink_workstation(struct 
erofs_sb_info *sbi,
                                       batch, first_index, PAGEVEC_SIZE);
 
        for (i = 0; i < found; ++i) {
-               struct erofs_workgroup *grp = xa_untag_pointer(batch[i]);
+               struct erofs_workgroup *grp = batch[i];
 
                first_index = grp->index + 1;
 
-- 
2.20.1

Reply via email to