From 74ec6f5c8d1d73108c6de24a82f6384c98f2bac1 Mon Sep 17 00:00:00 2001 From: "Christopher J. Morrone" Date: Thu, 19 May 2011 19:51:29 -0700 Subject: [PATCH] LU-337 Fix alloc flags in alloc_qinfo() CFS_ALLOC_IO allows a hang when the alloc_qinfo() results in a cache_alloc_refill, and kicks off the ldlm shrinker. The shrinker may hang in sync_page() on the same page on which we already hold the lock. Change-Id: I3d9887ebc2909d38b4abb2e8d7715913c9c2cc40 Signed-off-by: Christopher J. Morrone Reviewed-on: http://review.whamcloud.com/582 Reviewed-by: Bobi Jam Reviewed-by: Johann Lombardi Tested-by: Hudson --- lustre/quota/quota_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/quota/quota_interface.c b/lustre/quota/quota_interface.c index a297ba1..939c495 100644 --- a/lustre/quota/quota_interface.c +++ b/lustre/quota/quota_interface.c @@ -742,7 +742,7 @@ static struct osc_quota_info *alloc_qinfo(struct client_obd *cli, struct osc_quota_info *oqi; ENTRY; - OBD_SLAB_ALLOC(oqi, qinfo_cachep, CFS_ALLOC_STD, sizeof(*oqi)); + OBD_SLAB_ALLOC(oqi, qinfo_cachep, CFS_ALLOC_IO, sizeof(*oqi)); if(!oqi) RETURN(NULL); -- 1.8.3.1