Whamcloud - gitweb
Don't allocate zero-length LVBs on the MDS. Verified that all users of
authoradilger <adilger>
Tue, 9 Mar 2004 09:36:08 +0000 (09:36 +0000)
committeradilger <adilger>
Tue, 9 Mar 2004 09:36:08 +0000 (09:36 +0000)
l_lvb_data check l_lvb_len != 0 before using, and tested of course.
b=1012

lustre/ldlm/ldlm_lock.c

index 0e7f0b0..b5b0e33 100644 (file)
@@ -752,11 +752,13 @@ struct ldlm_lock *ldlm_lock_create(struct ldlm_namespace *ns,
         lock->l_completion_ast = completion;
         lock->l_glimpse_ast = glimpse;
 
-        lock->l_lvb_len = lvb_len;
-        OBD_ALLOC(lock->l_lvb_data, lvb_len);
-        if (lock->l_lvb_data == NULL) {
-                OBD_SLAB_FREE(lock, ldlm_lock_slab, sizeof(*lock));
-                RETURN(NULL);
+        if (lvb_len) {
+                lock->l_lvb_len = lvb_len;
+                OBD_ALLOC(lock->l_lvb_data, lvb_len);
+                if (lock->l_lvb_data == NULL) {
+                        OBD_SLAB_FREE(lock, ldlm_lock_slab, sizeof(*lock));
+                        RETURN(NULL);
+                }
         }
 
         RETURN(lock);