From 4649899fbba095c7c3eb7ce1c8893040ed6e2494 Mon Sep 17 00:00:00 2001 From: Bruno Faccini Date: Wed, 21 Aug 2019 15:32:54 +0200 Subject: [PATCH] LU-12675 mdt: release object reference upon error LBUG ("(lu_object.c:1196:lu_device_fini()) ASSERTION( atomic_read(&d->ld_ref) == 0) failed: Refcount is ") can intermitently occur during umount of MDT0000, upon specific use cases (playing with file/dir having foreign LOV/LMV), and due to object reference set/leaked on server side. Signed-off-by: Bruno Faccini Change-Id: Ic49b2bb0402b1a6e51d7ba656f9957eeda1bd0fb Reviewed-on: https://review.whamcloud.com/35845 Reviewed-by: Patrick Farrell Reviewed-by: Lai Siyao Reviewed-by: Alex Zhuravlev Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/mdt/mdt_reint.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/mdt/mdt_reint.c b/lustre/mdt/mdt_reint.c index ef6446a..9970f98 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -962,7 +962,7 @@ relock: if (!cos_incompat) { rc = mdt_object_striped(info, mc); if (rc < 0) - GOTO(unlock_parent, rc); + GOTO(put_child, rc); cos_incompat = rc; if (cos_incompat) { -- 1.8.3.1