Whamcloud - gitweb
LU-7702 ldlm: skip lock if export failed
[fs/lustre-release.git] / lustre / osc / osc_quota.c
index 31db149..f259f49 100644 (file)
 /*
  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  *
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2015, Intel Corporation.
  *
  * Code originally extracted from quota directory
  */
-#ifndef __KERNEL__
-# include <liblustre.h>
-#endif
 
 #include <obd.h>
 #include "osc_internal.h"
 
-static inline struct osc_quota_info *osc_oqi_alloc(obd_uid id)
+static inline struct osc_quota_info *osc_oqi_alloc(u32 id)
 {
        struct osc_quota_info *oqi;
 
@@ -50,7 +47,7 @@ int osc_quota_chkdq(struct client_obd *cli, const unsigned int qid[])
        int type;
        ENTRY;
 
-       for (type = 0; type < MAXQUOTAS; type++) {
+       for (type = 0; type < LL_MAXQUOTAS; type++) {
                struct osc_quota_info *oqi;
 
                oqi = cfs_hash_lookup(cli->cl_quota_hash[type], &qid[type]);
@@ -75,7 +72,7 @@ int osc_quota_chkdq(struct client_obd *cli, const unsigned int qid[])
                                                : OBD_FL_NO_GRPQUOTA)
 
 int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[],
-                    obd_flag valid, obd_flag flags)
+                   u64 valid, u32 flags)
 {
        int type;
        int rc = 0;
@@ -84,7 +81,7 @@ int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[],
        if ((valid & (OBD_MD_FLUSRQUOTA | OBD_MD_FLGRPQUOTA)) == 0)
                RETURN(0);
 
-       for (type = 0; type < MAXQUOTAS; type++) {
+       for (type = 0; type < LL_MAXQUOTAS; type++) {
                struct osc_quota_info *oqi;
 
                if ((valid & MD_QUOTA_FLAG(type)) == 0)
@@ -113,7 +110,7 @@ int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[],
                        }
 
                        CDEBUG(D_QUOTA, "%s: setdq to insert for %s %d (%d)\n",
-                              cli->cl_import->imp_obd->obd_name,
+                              cli_name(cli),
                               type == USRQUOTA ? "user" : "group",
                               qid[type], rc);
                } else {
@@ -128,7 +125,7 @@ int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[],
                                OBD_SLAB_FREE_PTR(oqi, osc_quota_kmem);
 
                        CDEBUG(D_QUOTA, "%s: setdq to remove for %s %d (%p)\n",
-                              cli->cl_import->imp_obd->obd_name,
+                              cli_name(cli),
                               type == USRQUOTA ? "user" : "group",
                               qid[type], oqi);
                }
@@ -141,7 +138,7 @@ int osc_quota_setdq(struct client_obd *cli, const unsigned int qid[],
  * Hash operations for uid/gid <-> osc_quota_info
  */
 static unsigned
-oqi_hashfn(cfs_hash_t *hs, const void *key, unsigned mask)
+oqi_hashfn(struct cfs_hash *hs, const void *key, unsigned mask)
 {
        return cfs_hash_u32_hash(*((__u32*)key), mask);
 }
@@ -150,10 +147,10 @@ static int
 oqi_keycmp(const void *key, struct hlist_node *hnode)
 {
        struct osc_quota_info *oqi;
-       obd_uid uid;
+       u32 uid;
 
        LASSERT(key != NULL);
-       uid = *((obd_uid*)key);
+       uid = *((u32 *)key);
        oqi = hlist_entry(hnode, struct osc_quota_info, oqi_hash);
 
        return uid == oqi->oqi_id;
@@ -174,17 +171,17 @@ oqi_object(struct hlist_node *hnode)
 }
 
 static void
-oqi_get(cfs_hash_t *hs, struct hlist_node *hnode)
+oqi_get(struct cfs_hash *hs, struct hlist_node *hnode)
 {
 }
 
 static void
-oqi_put_locked(cfs_hash_t *hs, struct hlist_node *hnode)
+oqi_put_locked(struct cfs_hash *hs, struct hlist_node *hnode)
 {
 }
 
 static void
-oqi_exit(cfs_hash_t *hs, struct hlist_node *hnode)
+oqi_exit(struct cfs_hash *hs, struct hlist_node *hnode)
 {
        struct osc_quota_info *oqi;
 
@@ -197,7 +194,7 @@ oqi_exit(cfs_hash_t *hs, struct hlist_node *hnode)
 #define HASH_QUOTA_CUR_BITS 5
 #define HASH_QUOTA_MAX_BITS 15
 
-static cfs_hash_ops_t quota_hash_ops = {
+static struct cfs_hash_ops quota_hash_ops = {
        .hs_hash        = oqi_hashfn,
        .hs_keycmp      = oqi_keycmp,
        .hs_key         = oqi_key,
@@ -213,7 +210,7 @@ int osc_quota_setup(struct obd_device *obd)
        int i, type;
        ENTRY;
 
-       for (type = 0; type < MAXQUOTAS; type++) {
+       for (type = 0; type < LL_MAXQUOTAS; type++) {
                cli->cl_quota_hash[type] = cfs_hash_create("QUOTA_HASH",
                                                           HASH_QUOTA_CUR_BITS,
                                                           HASH_QUOTA_MAX_BITS,
@@ -227,7 +224,7 @@ int osc_quota_setup(struct obd_device *obd)
                        break;
        }
 
-       if (type == MAXQUOTAS)
+       if (type == LL_MAXQUOTAS)
                RETURN(0);
 
        for (i = 0; i < type; i++)
@@ -242,7 +239,7 @@ int osc_quota_cleanup(struct obd_device *obd)
        int type;
        ENTRY;
 
-       for (type = 0; type < MAXQUOTAS; type++)
+       for (type = 0; type < LL_MAXQUOTAS; type++)
                cfs_hash_putref(cli->cl_quota_hash[type]);
 
        RETURN(0);
@@ -284,49 +281,3 @@ int osc_quotactl(struct obd_device *unused, struct obd_export *exp,
 
         RETURN(rc);
 }
-
-int osc_quotacheck(struct obd_device *unused, struct obd_export *exp,
-                   struct obd_quotactl *oqctl)
-{
-        struct client_obd       *cli = &exp->exp_obd->u.cli;
-        struct ptlrpc_request   *req;
-        struct obd_quotactl     *body;
-        int                      rc;
-        ENTRY;
-
-        req = ptlrpc_request_alloc_pack(class_exp2cliimp(exp),
-                                        &RQF_OST_QUOTACHECK, LUSTRE_OST_VERSION,
-                                        OST_QUOTACHECK);
-        if (req == NULL)
-                RETURN(-ENOMEM);
-
-        body = req_capsule_client_get(&req->rq_pill, &RMF_OBD_QUOTACTL);
-        *body = *oqctl;
-
-        ptlrpc_request_set_replen(req);
-
-        /* the next poll will find -ENODATA, that means quotacheck is
-         * going on */
-        cli->cl_qchk_stat = -ENODATA;
-        rc = ptlrpc_queue_wait(req);
-        if (rc)
-                cli->cl_qchk_stat = rc;
-        ptlrpc_req_finished(req);
-        RETURN(rc);
-}
-
-int osc_quota_poll_check(struct obd_export *exp, struct if_quotacheck *qchk)
-{
-        struct client_obd *cli = &exp->exp_obd->u.cli;
-        int rc;
-        ENTRY;
-
-        qchk->obd_uuid = cli->cl_target_uuid;
-        memcpy(qchk->obd_type, LUSTRE_OST_NAME, strlen(LUSTRE_OST_NAME));
-
-        rc = cli->cl_qchk_stat;
-        /* the client is not the previous one */
-        if (rc == CL_NOT_QUOTACHECKED)
-                rc = -EINTR;
-        RETURN(rc);
-}