staging: erofs: sunset erofs_workstn_{lock,unlock}

It was used for Linux backward compatibility, and
no use for upstream kernel.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
Link: https://lore.kernel.org/r/20190731155752.210602-6-gaoxiang25@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Gao Xiang 2019-07-31 23:57:35 +08:00 committed by Greg Kroah-Hartman
parent cead56f85b
commit b1897c60b1
2 changed files with 5 additions and 8 deletions

View File

@ -179,9 +179,6 @@ static inline void *erofs_kmalloc(struct erofs_sb_info *sbi,
#define test_opt(sbi, option) ((sbi)->mount_opt & EROFS_MOUNT_##option)
#ifdef CONFIG_EROFS_FS_ZIP
#define erofs_workstn_lock(sbi) xa_lock(&(sbi)->workstn_tree)
#define erofs_workstn_unlock(sbi) xa_unlock(&(sbi)->workstn_tree)
/* basic unit of the workstation of a super_block */
struct erofs_workgroup {
/* the workgroup index in the workstation */

View File

@ -102,14 +102,14 @@ int erofs_register_workgroup(struct super_block *sb,
return err;
sbi = EROFS_SB(sb);
erofs_workstn_lock(sbi);
xa_lock(&sbi->workstn_tree);
grp = xa_tag_pointer(grp, tag);
/*
* Bump up reference count before making this workgroup
* visible to other users in order to avoid potential UAF
* without serialized by erofs_workstn_lock.
* without serialized by workstn_lock.
*/
__erofs_workgroup_get(grp);
@ -122,7 +122,7 @@ int erofs_register_workgroup(struct super_block *sb,
*/
__erofs_workgroup_put(grp);
erofs_workstn_unlock(sbi);
xa_unlock(&sbi->workstn_tree);
radix_tree_preload_end();
return err;
}
@ -225,7 +225,7 @@ unsigned long erofs_shrink_workstation(struct erofs_sb_info *sbi,
int i, found;
repeat:
erofs_workstn_lock(sbi);
xa_lock(&sbi->workstn_tree);
found = radix_tree_gang_lookup(&sbi->workstn_tree,
batch, first_index, PAGEVEC_SIZE);
@ -243,7 +243,7 @@ repeat:
if (unlikely(!--nr_shrink))
break;
}
erofs_workstn_unlock(sbi);
xa_unlock(&sbi->workstn_tree);
if (i && nr_shrink)
goto repeat;