From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Kroah-Hartman Date: Sun, 6 May 2018 18:47:34 -0700 Subject: [lustre-devel] [PATCH 4/4] staging: lustre: obdclass: change object lookup to no wait mode In-Reply-To: <1525285308-15347-5-git-send-email-jsimmons@infradead.org> References: <1525285308-15347-1-git-send-email-jsimmons@infradead.org> <1525285308-15347-5-git-send-email-jsimmons@infradead.org> Message-ID: <20180507014734.GA7146@kroah.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: James Simmons Cc: devel@driverdev.osuosl.org, Andreas Dilger , NeilBrown , Linux Kernel Mailing List , Oleg Drokin , Jinshan Xiong , Lai Siyao , Lustre Development List On Wed, May 02, 2018 at 02:21:48PM -0400, James Simmons wrote: > From: Lai Siyao > > Currently we set LU_OBJECT_HEARD_BANSHEE on object when we want > to remove object from cache, but this may lead to deadlock, because > when other process lookup such object, it needs to wait for this > object until release (done at last refcount put), while that process > maybe already hold an LDLM lock. > > Now that current code can handle dying object correctly, we can just > return such object in lookup, thus the above deadlock can be avoided. > > Signed-off-by: Lai Siyao > Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-9049 > Reviewed-on: https://review.whamcloud.com/26965 > Reviewed-by: Alex Zhuravlev > Tested-by: Cliff White > Reviewed-by: Fan Yong > Reviewed-by: Oleg Drokin > Signed-off-by: James Simmons > --- > drivers/staging/lustre/lustre/include/lu_object.h | 2 +- > drivers/staging/lustre/lustre/obdclass/lu_object.c | 82 +++++++++------------- > 2 files changed, 36 insertions(+), 48 deletions(-) Patch does not apply to my tree :(