Whamcloud - gitweb
b=599178 0.5.14
authorpschwan <pschwan>
Sun, 13 Oct 2002 15:40:02 +0000 (15:40 +0000)
committerpschwan <pschwan>
Sun, 13 Oct 2002 15:40:02 +0000 (15:40 +0000)
- Update ChangeLog for 0.5.14 (oops)
- ldlm/ldlm_lock.c: I reordered ldlm_lock2handle before, and in the process
  inserted a stupid bug; fixed.
- bug 599178 (don't permit multiple ldlm setup) fixed

lustre/ChangeLog
lustre/ldlm/ldlm_lock.c
lustre/ldlm/ldlm_lockd.c

index 528c585..2057e1c 100644 (file)
@@ -1,3 +1,16 @@
+2002-10-10  Phil Schwan  <phil@clusterfs.com>
+       * version v0_5_14
+       * bug fixes:
+         - recovery deadlock fix
+         - rm -rf causes LBUG fix (617817)
+          - file open by multiple tasks fix (618962)
+         - directory permissions bugs (602707 and 620007)
+         - journal_stop fixed with locking (611313)
+         - O_APPEND failures resolved (618273, perhaps 614459)
+         - lconf PATH fix (619770)
+         - IA64 build fix (621450)
+         - RPC buffer sizes scale with amount of memory
+
 2002-10-01  Phil Schwan  <phil@clusterfs.com>
        * version v0_5_13
        * bug fixes:
index 069bd2a..28716b5 100644 (file)
@@ -332,7 +332,7 @@ struct ldlm_lock *ldlm_handle2lock(struct lustre_handle *handle)
         if (lock->l_random != handle->cookie) {
                 CERROR("bogus cookie: lock "LPX64", handle "LPX64"\n",
                        lock->l_random, handle->cookie);
-                GOTO(out, NULL);
+                GOTO(out2, NULL);
         }
         if (!lock->l_resource) {
                 CERROR("trying to lock bogus resource: lock %p\n", lock);
index f74fa53..69cb485 100644 (file)
@@ -44,6 +44,7 @@ inline unsigned long round_timeout(unsigned long timeout)
 static struct list_head waiting_locks_list;
 static spinlock_t waiting_locks_spinlock;
 static struct timer_list waiting_locks_timer;
+static int ldlm_already_setup = 0;
 
 static void waiting_locks_callback(unsigned long unused)
 {
@@ -564,6 +565,9 @@ static int ldlm_setup(struct obd_device *obddev, obd_count len, void *buf)
         int rc, i;
         ENTRY;
 
+        if (ldlm_already_setup)
+                RETURN(-EALREADY);
+
         MOD_INC_USE_COUNT;
         /*
         rc = ldlm_proc_setup(obddev);
@@ -595,6 +599,8 @@ static int ldlm_setup(struct obd_device *obddev, obd_count len, void *buf)
         waiting_locks_timer.data = 0;
         init_timer(&waiting_locks_timer);
 
+        ldlm_already_setup = 1;
+
         RETURN(0);
 
  out_thread:
@@ -624,6 +630,7 @@ static int ldlm_cleanup(struct obd_device *obddev)
         ptlrpc_unregister_service(ldlm->ldlm_service);
         /* ldlm_proc_cleanup(obddev); */
 
+        ldlm_already_setup = 0;
         MOD_DEC_USE_COUNT;
         RETURN(0);
 }