Whamcloud - gitweb
LU-550 incorrect quota hash function
[fs/lustre-release.git] / lustre / quota / quota_context.c
index fbed203..181474b 100644 (file)
@@ -1577,13 +1577,13 @@ void build_lqs(struct obd_device *obd)
 static unsigned
 lqs_hash(cfs_hash_t *hs, const void *key, unsigned mask)
 {
-        struct quota_adjust_qunit *lqs_key;
+        unsigned long long id;
         unsigned hash;
         ENTRY;
 
         LASSERT(key);
-        lqs_key = (struct quota_adjust_qunit *)key;
-        hash = (QAQ_IS_GRP(lqs_key) ? 5381 : 5387) * lqs_key->qaq_id;
+        id = *((unsigned long long *)key);
+        hash = (LQS_KEY_GRP(id) ? 5381 : 5387) * (unsigned)LQS_KEY_ID(id);
 
         RETURN(hash & mask);
 }