Whamcloud - gitweb
b=17604
[fs/lustre-release.git] / lustre / ldlm / ldlm_inodebits.c
index 4812a1a..548ee14 100644 (file)
@@ -16,8 +16,8 @@
  * in the LICENSE file that accompanied this code).
  *
  * You should have received a copy of the GNU General Public License
- * version 2 along with this program; If not, see [sun.com URL with a
- * copy of GPLv2].
+ * version 2 along with this program; If not, see
+ * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
  *
  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  * CA 95054 USA or visit www.sun.com if you need additional information or
@@ -86,7 +86,22 @@ ldlm_inodebits_compat_queue(struct list_head *queue, struct ldlm_lock *req,
                         tmp = mode_tail;
                         continue;
                 }
-                
+
+                if (lock->l_req_mode == LCK_COS) {
+                        if (lock->l_client_cookie == req->l_client_cookie) {
+                                tmp = mode_tail;
+                        } else {
+                                tmp = mode_tail;
+                                if (!work_list)
+                                        RETURN(0);
+                                compat = 0;
+                                if (lock->l_blocking_ast)
+                                        ldlm_add_ast_work_item(lock, req,
+                                                               work_list);
+                        }
+                        continue;
+                }
+
                 for (;;) {
                         struct list_head *head;