diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 18a9c49c624117079388296a089e8a32f715aaa2..c16f5ac41c7e5db12fbfdbfead094d16ceea2b03 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 583390dac8fd7e700a49094fbbdf0d99029e472a..bcec97d1cbc218384f03973f23a817e47c908733 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;