From: Bruno Faccini Date: Wed, 21 Aug 2019 13:32:54 +0000 (+0200) Subject: LU-12675 mdt: release object reference upon error X-Git-Tag: 2.12.58~48 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=4649899fbba095c7c3eb7ce1c8893040ed6e2494;p=fs%2Flustre-release.git 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 --- 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) {