Whamcloud - gitweb
LU-337 Fix alloc flags in alloc_qinfo()
authorChristopher J. Morrone <morrone2@llnl.gov>
Fri, 20 May 2011 02:51:29 +0000 (19:51 -0700)
committerJohann Lombardi <johann@whamcloud.com>
Fri, 20 May 2011 15:49:25 +0000 (08:49 -0700)
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 <morrone2@llnl.gov>
Reviewed-on: http://review.whamcloud.com/582
Reviewed-by: Bobi Jam <bobijam@whamcloud.com>
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Tested-by: Hudson
lustre/quota/quota_interface.c

index a297ba1..939c495 100644 (file)
@@ -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);