* Global list of all sites on this node
*/
static CFS_LIST_HEAD(lu_sites);
-static CFS_DECLARE_MUTEX(lu_sites_guard);
+static CFS_DEFINE_MUTEX(lu_sites_guard);
/**
* Global environment used by site shrinker.
*/
void lu_site_fini(struct lu_site *s)
{
- cfs_down(&lu_sites_guard);
+ cfs_mutex_lock(&lu_sites_guard);
cfs_list_del_init(&s->ls_linkage);
- cfs_up(&lu_sites_guard);
+ cfs_mutex_unlock(&lu_sites_guard);
if (s->ls_obj_hash != NULL) {
cfs_hash_putref(s->ls_obj_hash);
int lu_site_init_finish(struct lu_site *s)
{
int result;
- cfs_down(&lu_sites_guard);
+ cfs_mutex_lock(&lu_sites_guard);
result = lu_context_refill(&lu_shrink_env.le_ctx);
if (result == 0)
cfs_list_add(&s->ls_linkage, &lu_sites);
- cfs_up(&lu_sites_guard);
+ cfs_mutex_unlock(&lu_sites_guard);
return result;
}
EXPORT_SYMBOL(lu_site_init_finish);
CDEBUG(D_INODE, "Shrink %d objects\n", remain);
}
- cfs_down(&lu_sites_guard);
+ cfs_mutex_lock(&lu_sites_guard);
cfs_list_for_each_entry_safe(s, tmp, &lu_sites, ls_linkage) {
if (shrink_param(sc, nr_to_scan) != 0) {
remain = lu_site_purge(&lu_shrink_env, s, remain);
break;
}
cfs_list_splice(&splice, lu_sites.prev);
- cfs_up(&lu_sites_guard);
+ cfs_mutex_unlock(&lu_sites_guard);
cached = (cached / 100) * sysctl_vfs_cache_pressure;
if (shrink_param(sc, nr_to_scan) == 0)
* conservatively. This should not be too bad, because this
* environment is global.
*/
- cfs_down(&lu_sites_guard);
+ cfs_mutex_lock(&lu_sites_guard);
result = lu_env_init(&lu_shrink_env, LCT_SHRINKER);
- cfs_up(&lu_sites_guard);
+ cfs_mutex_unlock(&lu_sites_guard);
if (result != 0)
return result;
* Tear shrinker environment down _after_ de-registering
* lu_global_key, because the latter has a value in the former.
*/
- cfs_down(&lu_sites_guard);
+ cfs_mutex_lock(&lu_sites_guard);
lu_env_fini(&lu_shrink_env);
- cfs_up(&lu_sites_guard);
+ cfs_mutex_unlock(&lu_sites_guard);
lu_ref_global_fini();
}