From d8506f4b3a03b5605fc927409ce16f55ad5bffd5 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_STD 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: I9d7ccfcd5258c537af4d4f1d0bf2a190f4fc89c7 Signed-off-by: Christopher J. Morrone Reviewed-on: http://review.whamcloud.com/880 Reviewed-by: Bobi Jam Tested-by: Hudson Reviewed-by: Oleg Drokin --- 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 1ee62b0..87c14cf 100644 --- a/lustre/quota/quota_interface.c +++ b/lustre/quota/quota_interface.c @@ -787,7 +787,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