Whamcloud - gitweb
LU-5022 build: enable building redhat 7 lustre client
[fs/lustre-release.git] / lustre / osc / osc_quota.c
index b8be2b4..31db149 100644 (file)
@@ -23,7 +23,7 @@
 /*
  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  *
- * Copyright (c) 2011, 2012, Intel Corporation.
+ * Copyright (c) 2012, Intel Corporation.
  *
  * Code originally extracted from quota directory
  */
@@ -31,7 +31,7 @@
 # include <liblustre.h>
 #endif
 
-#include <obd_ost.h>
+#include <obd.h>
 #include "osc_internal.h"
 
 static inline struct osc_quota_info *osc_oqi_alloc(obd_uid id)
@@ -55,11 +55,8 @@ int osc_quota_chkdq(struct client_obd *cli, const unsigned int qid[])
 
                oqi = cfs_hash_lookup(cli->cl_quota_hash[type], &qid[type]);
                if (oqi) {
-                       obd_uid id = oqi->oqi_id;
-
-                       LASSERTF(id == qid[type],
-                                "The ids don't match %u != %u\n",
-                                id, qid[type]);
+                       /* do not try to access oqi here, it could have been
+                        * freed by osc_quota_setdq() */
 
                        /* the slot is busy, the user is about to run out of
                         * quota space on this OST */
@@ -150,48 +147,48 @@ oqi_hashfn(cfs_hash_t *hs, const void *key, unsigned mask)
 }
 
 static int
-oqi_keycmp(const void *key, cfs_hlist_node_t *hnode)
+oqi_keycmp(const void *key, struct hlist_node *hnode)
 {
        struct osc_quota_info *oqi;
        obd_uid uid;
 
        LASSERT(key != NULL);
        uid = *((obd_uid*)key);
-       oqi = cfs_hlist_entry(hnode, struct osc_quota_info, oqi_hash);
+       oqi = hlist_entry(hnode, struct osc_quota_info, oqi_hash);
 
        return uid == oqi->oqi_id;
 }
 
 static void *
-oqi_key(cfs_hlist_node_t *hnode)
+oqi_key(struct hlist_node *hnode)
 {
        struct osc_quota_info *oqi;
-       oqi = cfs_hlist_entry(hnode, struct osc_quota_info, oqi_hash);
+       oqi = hlist_entry(hnode, struct osc_quota_info, oqi_hash);
        return &oqi->oqi_id;
 }
 
 static void *
-oqi_object(cfs_hlist_node_t *hnode)
+oqi_object(struct hlist_node *hnode)
 {
-       return cfs_hlist_entry(hnode, struct osc_quota_info, oqi_hash);
+       return hlist_entry(hnode, struct osc_quota_info, oqi_hash);
 }
 
 static void
-oqi_get(cfs_hash_t *hs, cfs_hlist_node_t *hnode)
+oqi_get(cfs_hash_t *hs, struct hlist_node *hnode)
 {
 }
 
 static void
-oqi_put_locked(cfs_hash_t *hs, cfs_hlist_node_t *hnode)
+oqi_put_locked(cfs_hash_t *hs, struct hlist_node *hnode)
 {
 }
 
 static void
-oqi_exit(cfs_hash_t *hs, cfs_hlist_node_t *hnode)
+oqi_exit(cfs_hash_t *hs, struct hlist_node *hnode)
 {
        struct osc_quota_info *oqi;
 
-       oqi = cfs_hlist_entry(hnode, struct osc_quota_info, oqi_hash);
+       oqi = hlist_entry(hnode, struct osc_quota_info, oqi_hash);
 
         OBD_SLAB_FREE_PTR(oqi, osc_quota_kmem);
 }