diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c index 667f2ca383a11717932c3b342afaef001f41c3a9..fba09e454dce47323d54b70a73751da6e705ae9a 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_resource.c @@ -179,6 +179,17 @@ static ssize_t lock_count_show(struct kobject *kobj, struct attribute *attr, } LUSTRE_RO_ATTR(lock_count); +static ssize_t lock_unused_count_show(struct kobject *kobj, + struct attribute *attr, + char *buf) +{ + struct ldlm_namespace *ns = container_of(kobj, struct ldlm_namespace, + ns_kobj); + + return sprintf(buf, "%d\n", ns->ns_nr_unused); +} +LUSTRE_RO_ATTR(lock_unused_count); + static ssize_t lru_size_show(struct kobject *kobj, struct attribute *attr, char *buf) { @@ -312,6 +323,7 @@ LUSTRE_RW_ATTR(early_lock_cancel); static struct attribute *ldlm_ns_attrs[] = { &lustre_attr_resource_count.attr, &lustre_attr_lock_count.attr, + &lustre_attr_lock_unused_count.attr, &lustre_attr_lru_size.attr, &lustre_attr_early_lock_cancel.attr, NULL, @@ -402,8 +414,6 @@ int ldlm_namespace_proc_register(struct ldlm_namespace *ns) lock_vars[0].name = lock_name; if (ns_is_client(ns)) { - LDLM_NS_ADD_VAR("lock_unused_count", &ns->ns_nr_unused, - &ldlm_uint_fops); LDLM_NS_ADD_VAR("lru_max_age", &ns->ns_max_age, &ldlm_rw_uint_fops); } else { diff --git a/drivers/staging/lustre/sysfs-fs-lustre b/drivers/staging/lustre/sysfs-fs-lustre index e54e4857dd5361055051347ba152b0b9b31a9e92..f92f7cf65e7e081d5189baeb575cc69b56e78518 100644 --- a/drivers/staging/lustre/sysfs-fs-lustre +++ b/drivers/staging/lustre/sysfs-fs-lustre @@ -223,6 +223,13 @@ Description: 0 - LRU size is unlimited, controlled by server resources positive number - number of locks to allow in lock LRU list +What: /sys/fs/lustre/ldlm/namespaces//lock_unused_count +Date: May 2015 +Contact: "Oleg Drokin" +Description: + Display number of locks currently sitting in the LRU list + of this namespace + What: /sys/fs/lustre/ldlm/namespaces//early_lock_cancel Date: May 2015 Contact: "Oleg Drokin"