staging/lustre/ldlm: move cancel_unused_locks_before_replay to sysfs
authorOleg Drokin <green@linuxhacker.ru>
Thu, 21 May 2015 19:31:56 +0000 (15:31 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 31 May 2015 01:50:19 +0000 (10:50 +0900)
/proc/fs/lustre/ldlm/cancel_unused_locks_before_replay is
moved to /sys/fs/lustre/ldlm/cancel_unused_locks_before_replay

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c
drivers/staging/lustre/lustre/ldlm/ldlm_resource.c
drivers/staging/lustre/sysfs-fs-lustre

index 46f1790d06a37e9839f5a6dfe565aff1dfe150b7..151d60d45baa9df881d43cde7a99000c8f49456d 100644 (file)
@@ -1006,8 +1006,35 @@ void ldlm_destroy_export(struct obd_export *exp)
 }
 EXPORT_SYMBOL(ldlm_destroy_export);
 
+extern unsigned int ldlm_cancel_unused_locks_before_replay;
+
+static ssize_t cancel_unused_locks_before_replay_show(struct kobject *kobj,
+                                                     struct attribute *attr,
+                                                     char *buf)
+{
+       return sprintf(buf, "%d\n", ldlm_cancel_unused_locks_before_replay);
+}
+static ssize_t cancel_unused_locks_before_replay_store(struct kobject *kobj,
+                                                      struct attribute *attr,
+                                                      const char *buffer,
+                                                      size_t count)
+{
+       int rc;
+       unsigned long val;
+
+       rc = kstrtoul(buffer, 10, &val);
+       if (rc)
+               return rc;
+
+       ldlm_cancel_unused_locks_before_replay = val;
+
+       return count;
+}
+LUSTRE_RW_ATTR(cancel_unused_locks_before_replay);
+
 /* These are for root of /sys/fs/lustre/ldlm */
-struct attribute *ldlm_attrs[] = {
+static struct attribute *ldlm_attrs[] = {
+       &lustre_attr_cancel_unused_locks_before_replay.attr,
        NULL,
 };
 
index 70d956734a87036212f2376165b86b2b03247ee9..ad3e0b3a5d0a521553c398ea8147c1b5b8a6063c 100644 (file)
@@ -65,8 +65,6 @@ struct proc_dir_entry *ldlm_type_proc_dir = NULL;
 static struct proc_dir_entry *ldlm_ns_proc_dir = NULL;
 struct proc_dir_entry *ldlm_svc_proc_dir = NULL;
 
-extern unsigned int ldlm_cancel_unused_locks_before_replay;
-
 /* during debug dump certain amount of granted locks for one resource to avoid
  * DDOS. */
 unsigned int ldlm_dump_granted_max = 256;
@@ -91,8 +89,6 @@ int ldlm_proc_setup(void)
                { "dump_namespaces", &ldlm_dump_ns_fops, NULL, 0222 },
                { "dump_granted_max", &ldlm_rw_uint_fops,
                  &ldlm_dump_granted_max },
-               { "cancel_unused_locks_before_replay", &ldlm_rw_uint_fops,
-                 &ldlm_cancel_unused_locks_before_replay },
                { NULL } };
        LASSERT(ldlm_ns_proc_dir == NULL);
 
index ec4ae4726cdc58e9cd5fe48ff3bb8b2b56390f2f..efe3440ae1f1038ac1b40cb4491a9c0ddd4d4171 100644 (file)
@@ -190,3 +190,13 @@ Contact:   "Oleg Drokin" <oleg.drokin@intel.com>
 Description:
                Controls extended attributes client-side cache.
                1 to enable, 0 to disable.
+
+What:          /sys/fs/lustre/ldlm/cancel_unused_locks_before_replay
+Date:          May 2015
+Contact:       "Oleg Drokin" <oleg.drokin@intel.com>
+Description:
+               Controls if client should replay unused locks during recovery
+               If a client tends to have a lot of unused locks in LRU,
+               recovery times might become prolonged.
+               1 - just locally cancel unused locks (default)
+               0 - replay unused locks.