From 52ca5448adbd8e355e8f9529b47e3723c748045b Mon Sep 17 00:00:00 2001
From: shadow <shadow>
Date: Fri, 9 May 2008 09:55:21 +0000
Subject: [PATCH] don't hit live lock with umount ost. b=14645 i=johan i=alex

---
 lustre/ChangeLog          | 7 +++++++
 lustre/obdfilter/filter.c | 3 +--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 18a9c49c62..c16f5ac41c 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -12,6 +12,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   : 14645
+Frequency  : rare, on shutdown ost
+Description: don't hit live lock with umount ost.
+Description: shrink_dcache_parent can be in long loop with destroy dentries,
+	     use shrink_dcache_sb instead.
+
 Severity   : minor
 Bugzilla   : 14949
 Description: don't panic with use echo client
diff --git a/lustre/obdfilter/filter.c b/lustre/obdfilter/filter.c
index 583390dac8..bcec97d1cb 100644
--- a/lustre/obdfilter/filter.c
+++ b/lustre/obdfilter/filter.c
@@ -2408,9 +2408,8 @@ static int filter_cleanup(struct obd_device *obd)
 
         filter_post(obd);
 
-        shrink_dcache_parent(obd->u.obt.obt_sb->s_root);
-
         LL_DQUOT_OFF(obd->u.obt.obt_sb);
+        shrink_dcache_sb(obd->u.obt.obt_sb);
 
         server_put_mount(obd->obd_name, filter->fo_vfsmnt);
         obd->u.obt.obt_sb = NULL;
-- 
GitLab