Whamcloud - gitweb
LU-7802 ldlm: No -EINVAL for canceled != unused 60/28560/4
authorPatrick Farrell <paf@cray.com>
Mon, 18 Sep 2017 11:05:48 +0000 (06:05 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 22 Sep 2017 06:19:29 +0000 (06:19 +0000)
If any locks are removed from or added to the lru, the
check of "number unused vs number cancelled" may be wrong.
This is fine - do not return an error or print debug in
this case.

Signed-off-by: Patrick Farrell <paf@cray.com>
Change-Id: I2ee9b8d86fbd6c9bd2c29e3472e3d410ee303374
Reviewed-on: https://review.whamcloud.com/28560
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/ldlm/ldlm_resource.c

index 31ee704..41e7c1e 100644 (file)
@@ -327,19 +327,10 @@ static ssize_t lru_size_store(struct kobject *kobj, struct attribute *attr,
                        "dropping all unused locks from namespace %s\n",
                        ldlm_ns_name(ns));
                 if (ns_connect_lru_resize(ns)) {
-                        int canceled, unused  = ns->ns_nr_unused;
-
                        /* Try to cancel all @ns_nr_unused locks. */
-                       canceled = ldlm_cancel_lru(ns, unused, 0,
-                                                  LDLM_LRU_FLAG_PASSED |
-                                                  LDLM_LRU_FLAG_CLEANUP);
-                       if (canceled < unused) {
-                               CDEBUG(D_DLMTRACE,
-                                      "not all requested locks are canceled, requested: %d, canceled: %d\n",
-                                      unused,
-                                      canceled);
-                               return -EINVAL;
-                       }
+                       ldlm_cancel_lru(ns, ns->ns_nr_unused, 0,
+                                       LDLM_LRU_FLAG_PASSED |
+                                       LDLM_LRU_FLAG_CLEANUP);
                } else {
                        tmp = ns->ns_max_unused;
                        ns->ns_max_unused = 0;