From caa11626afaea06e110d58c2f9c5125ad5e61025 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. Lustre-change: https://review.whamcloud.com/35845 Lustre-commit: 4649899fbba095c7c3eb7ce1c8893040ed6e2494 Signed-off-by: Bruno Faccini Change-Id: Ic49b2bb0402b1a6e51d7ba656f9957eeda1bd0fb Reviewed-by: Patrick Farrell Reviewed-by: Lai Siyao Reviewed-by: Alex Zhuravlev Signed-off-by: Minh Diep Reviewed-on: https://review.whamcloud.com/43940 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger --- 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 051fe5f..157161f 100644 --- a/lustre/mdt/mdt_reint.c +++ b/lustre/mdt/mdt_reint.c @@ -924,7 +924,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