Whamcloud - gitweb
LU-4971 ldlm: drop redundant ibits lock interoperability check
[fs/lustre-release.git] / lustre / ldlm / ldlm_lock.c
index d6b7de5..b19b807 100644 (file)
@@ -655,51 +655,12 @@ EXPORT_SYMBOL(__ldlm_handle2lock);
  */
 void ldlm_lock2desc(struct ldlm_lock *lock, struct ldlm_lock_desc *desc)
 {
-       struct obd_export *exp = lock->l_export ?: lock->l_conn_export;
-
-       /* INODEBITS_INTEROP: If the other side does not support
-        * inodebits, reply with a plain lock descriptor. */
-       if ((lock->l_resource->lr_type == LDLM_IBITS) &&
-           (exp && !(exp_connect_flags(exp) & OBD_CONNECT_IBITS))) {
-                /* Make sure all the right bits are set in this lock we
-                   are going to pass to client */
-                LASSERTF(lock->l_policy_data.l_inodebits.bits ==
-                         (MDS_INODELOCK_LOOKUP | MDS_INODELOCK_UPDATE |
-                          MDS_INODELOCK_LAYOUT),
-                         "Inappropriate inode lock bits during "
-                         "conversion " LPU64 "\n",
-                         lock->l_policy_data.l_inodebits.bits);
-
-                ldlm_res2desc(lock->l_resource, &desc->l_resource);
-                desc->l_resource.lr_type = LDLM_PLAIN;
-
-                /* Convert "new" lock mode to something old client can
-                   understand */
-                if ((lock->l_req_mode == LCK_CR) ||
-                    (lock->l_req_mode == LCK_CW))
-                        desc->l_req_mode = LCK_PR;
-                else
-                        desc->l_req_mode = lock->l_req_mode;
-                if ((lock->l_granted_mode == LCK_CR) ||
-                    (lock->l_granted_mode == LCK_CW)) {
-                        desc->l_granted_mode = LCK_PR;
-                } else {
-                        /* We never grant PW/EX locks to clients */
-                        LASSERT((lock->l_granted_mode != LCK_PW) &&
-                                (lock->l_granted_mode != LCK_EX));
-                        desc->l_granted_mode = lock->l_granted_mode;
-                }
-
-                /* We do not copy policy here, because there is no
-                   policy for plain locks */
-        } else {
-                ldlm_res2desc(lock->l_resource, &desc->l_resource);
-                desc->l_req_mode = lock->l_req_mode;
-                desc->l_granted_mode = lock->l_granted_mode;
-                ldlm_convert_policy_to_wire(lock->l_resource->lr_type,
-                                            &lock->l_policy_data,
-                                            &desc->l_policy_data);
-        }
+       ldlm_res2desc(lock->l_resource, &desc->l_resource);
+       desc->l_req_mode = lock->l_req_mode;
+       desc->l_granted_mode = lock->l_granted_mode;
+       ldlm_convert_policy_to_wire(lock->l_resource->lr_type,
+                                   &lock->l_policy_data,
+                                   &desc->l_policy_data);
 }
 EXPORT_SYMBOL(ldlm_lock2desc);
 
@@ -1756,6 +1717,8 @@ ldlm_error_t ldlm_lock_enqueue(struct ldlm_namespace *ns,
                         ldlm_grant_lock(lock, NULL);
                GOTO(out, rc = ELDLM_OK);
 #ifdef HAVE_SERVER_SUPPORT
+       } else if (*flags & LDLM_FL_RESENT) {
+               GOTO(out, rc = ELDLM_OK);
         } else if (*flags & LDLM_FL_REPLAY) {
                 if (*flags & LDLM_FL_BLOCK_CONV) {
                         ldlm_resource_add_lock(res, &res->lr_converting, lock);