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.7-RC1~7 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F40%2F43940%2F3;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. 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 --- 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) {