xfs
[Top] [All Lists]

[PATCH] fix nasty quota hashtable allocation bug

To: xfs-oss <xfs@xxxxxxxxxxx>
Subject: [PATCH] fix nasty quota hashtable allocation bug
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Sun, 05 Aug 2007 16:06:10 -0500
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird 2.0.0.6 (Macintosh/20070728)
This git mod: 77e4635ae191774526ed695482a151ac986f3806

converted to a "greedy" allocation interface, but for the quota hashtables
it switched from allocating XFS_QM_HASHSIZE (nr of elements) xfs_dqhash_t's 
to  allocating only XFS_QM_HASHSIZE *bytes* - quite a lot smaller!  Then when 
we  converted hsize "back" to nr of elements (the division line) hsize went 
to 0. This was  leading to oopses when running any quota tests on the Fedora 8
test  kernel, but the problem has been there for almost a year.

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>

Index: linux-2.6.22-rc4/fs/xfs/quota/xfs_qm.c
===================================================================
--- linux-2.6.22-rc4.orig/fs/xfs/quota/xfs_qm.c
+++ linux-2.6.22-rc4/fs/xfs/quota/xfs_qm.c
@@ -117,7 +117,8 @@ xfs_Gqm_init(void)
         * Initialize the dquot hash tables.
         */
        udqhash = kmem_zalloc_greedy(&hsize,
-                                    XFS_QM_HASHSIZE_LOW, XFS_QM_HASHSIZE_HIGH,
+                                    XFS_QM_HASHSIZE_LOW * sizeof(xfs_dqhash_t),
+                                    XFS_QM_HASHSIZE_HIGH * 
sizeof(xfs_dqhash_t),
                                     KM_SLEEP | KM_MAYFAIL | KM_LARGE);
        gdqhash = kmem_zalloc(hsize, KM_SLEEP | KM_LARGE);
        hsize /= sizeof(xfs_dqhash_t);


<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH] fix nasty quota hashtable allocation bug, Eric Sandeen <=