From 3f2c0194869c5c9d598deb92a312f9fbb2b34f22 Mon Sep 17 00:00:00 2001
From: shadow <shadow>
Date: Fri, 18 Apr 2008 07:16:30 +0000
Subject: [PATCH] removing callback before disconnect import is open race with
 processing callback. b=15210 i=green i=deen

---
 lustre/ChangeLog         | 7 +++++++
 lustre/llite/llite_lib.c | 5 +----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 5cc30d3c9d..fa2b8e9c90 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -18,6 +18,13 @@ tbd  Sun Microsystems, Inc.
        * RHEL 4 and RHEL 5/SLES 10 clients behaves differently on 'cd' to a
         removed cwd "./" (refer to Bugzilla 14399).
 
+Severity   : minor
+Bugzilla   : 15210
+Frequency  : rare, on shutdown
+Description: race process ast vs remove callback
+Details    : removing callback before disconnect import open race with processing
+             callback.
+
 Severity   : normal
 Bugzilla   : 12652
 Description: Add FMODE_EXEC to SLES10 SP1 series.
diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c
index 3d97ad7d3c..d28a16ed35 100644
--- a/lustre/llite/llite_lib.c
+++ b/lustre/llite/llite_lib.c
@@ -634,10 +634,7 @@ void client_common_put_super(struct super_block *sb)
 
         list_del(&sbi->ll_conn_chain);
 
-        obd_unregister_page_removal_cb(sbi->ll_osc_exp,
-                                       ll_page_removal_cb);
-        obd_unregister_lock_cancel_cb(sbi->ll_osc_exp,ll_extent_lock_cancel_cb);
-
+        /* callbacks is cleared after disconnect each target */
         obd_disconnect(sbi->ll_osc_exp);
         sbi->ll_osc_exp = NULL;
 
-- 
GitLab