Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-7988 hsm: update many cookie status at once
[fs/lustre-release.git]
/
lustre
/
quota
/
lquota_entry.c
diff --git
a/lustre/quota/lquota_entry.c
b/lustre/quota/lquota_entry.c
index
5fb7905
..
3194bfc
100644
(file)
--- a/
lustre/quota/lquota_entry.c
+++ b/
lustre/quota/lquota_entry.c
@@
-20,7
+20,7
@@
* GPL HEADER END
*/
/*
* GPL HEADER END
*/
/*
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012,
2015,
Intel Corporation.
* Use is subject to license terms.
*
* Author: Johann Lombardi <johann.lombardi@intel.com>
* Use is subject to license terms.
*
* Author: Johann Lombardi <johann.lombardi@intel.com>
@@
-35,55
+35,56
@@
#include "lquota_internal.h"
static int hash_lqs_cur_bits = HASH_LQE_CUR_BITS;
#include "lquota_internal.h"
static int hash_lqs_cur_bits = HASH_LQE_CUR_BITS;
-CFS_MODULE_PARM(hash_lqs_cur_bits, "i", int, 0444,
-
"the current bits of lqe hash");
+module_param(hash_lqs_cur_bits, int, 0444);
+
MODULE_PARM_DESC(hash_lqs_cur_bits,
"the current bits of lqe hash");
-static unsigned lqe64_hash_hash(cfs_hash_t *hs, const void *key, unsigned mask)
+static unsigned
+lqe64_hash_hash(struct cfs_hash *hs, const void *key, unsigned mask)
{
return cfs_hash_u64_hash(*((__u64 *)key), mask);
}
{
return cfs_hash_u64_hash(*((__u64 *)key), mask);
}
-static void *lqe64_hash_key(
cfs_hlist_node_t
*hnode)
+static void *lqe64_hash_key(
struct hlist_node
*hnode)
{
struct lquota_entry *lqe;
{
struct lquota_entry *lqe;
- lqe =
cfs_
hlist_entry(hnode, struct lquota_entry, lqe_hash);
+ lqe = hlist_entry(hnode, struct lquota_entry, lqe_hash);
return &lqe->lqe_id.qid_uid;
}
return &lqe->lqe_id.qid_uid;
}
-static int lqe64_hash_keycmp(const void *key,
cfs_hlist_node_t
*hnode)
+static int lqe64_hash_keycmp(const void *key,
struct hlist_node
*hnode)
{
struct lquota_entry *lqe;
{
struct lquota_entry *lqe;
- lqe =
cfs_
hlist_entry(hnode, struct lquota_entry, lqe_hash);
+ lqe = hlist_entry(hnode, struct lquota_entry, lqe_hash);
return (lqe->lqe_id.qid_uid == *((__u64*)key));
}
return (lqe->lqe_id.qid_uid == *((__u64*)key));
}
-static void *lqe_hash_object(
cfs_hlist_node_t
*hnode)
+static void *lqe_hash_object(
struct hlist_node
*hnode)
{
{
- return
cfs_
hlist_entry(hnode, struct lquota_entry, lqe_hash);
+ return hlist_entry(hnode, struct lquota_entry, lqe_hash);
}
}
-static void lqe_hash_get(
cfs_hash_t *hs, cfs_hlist_node_t
*hnode)
+static void lqe_hash_get(
struct cfs_hash *hs, struct hlist_node
*hnode)
{
struct lquota_entry *lqe;
{
struct lquota_entry *lqe;
- lqe =
cfs_
hlist_entry(hnode, struct lquota_entry, lqe_hash);
+ lqe = hlist_entry(hnode, struct lquota_entry, lqe_hash);
lqe_getref(lqe);
}
lqe_getref(lqe);
}
-static void lqe_hash_put_locked(
cfs_hash_t *hs, cfs_hlist_node_t
*hnode)
+static void lqe_hash_put_locked(
struct cfs_hash *hs, struct hlist_node
*hnode)
{
struct lquota_entry *lqe;
{
struct lquota_entry *lqe;
- lqe =
cfs_
hlist_entry(hnode, struct lquota_entry, lqe_hash);
+ lqe = hlist_entry(hnode, struct lquota_entry, lqe_hash);
lqe_putref(lqe);
}
lqe_putref(lqe);
}
-static void lqe_hash_exit(
cfs_hash_t *hs, cfs_hlist_node_t
*hnode)
+static void lqe_hash_exit(
struct cfs_hash *hs, struct hlist_node
*hnode)
{
CERROR("Should not have any item left!\n");
}
/* lqe hash methods for 64-bit uid/gid, new hash functions would have to be
* defined for per-directory quota relying on a 128-bit FID */
{
CERROR("Should not have any item left!\n");
}
/* lqe hash methods for 64-bit uid/gid, new hash functions would have to be
* defined for per-directory quota relying on a 128-bit FID */
-static
cfs_hash_ops_t
lqe64_hash_ops = {
+static
struct cfs_hash_ops
lqe64_hash_ops = {
.hs_hash = lqe64_hash_hash,
.hs_key = lqe64_hash_key,
.hs_keycmp = lqe64_hash_keycmp,
.hs_hash = lqe64_hash_hash,
.hs_key = lqe64_hash_key,
.hs_keycmp = lqe64_hash_keycmp,
@@
-114,13
+115,13
@@
struct lqe_iter_data {
bool lid_free_all;
};
bool lid_free_all;
};
-static int lqe_iter_cb(
cfs_hash_t *hs, cfs_hash_bd_t
*bd,
-
cfs_hlist_node_t
*hnode, void *data)
+static int lqe_iter_cb(
struct cfs_hash *hs, struct cfs_hash_bd
*bd,
+
struct hlist_node
*hnode, void *data)
{
struct lqe_iter_data *d = (struct lqe_iter_data *)data;
struct lquota_entry *lqe;
{
struct lqe_iter_data *d = (struct lqe_iter_data *)data;
struct lquota_entry *lqe;
- lqe =
cfs_
hlist_entry(hnode, struct lquota_entry, lqe_hash);
+ lqe = hlist_entry(hnode, struct lquota_entry, lqe_hash);
LASSERT(atomic_read(&lqe->lqe_ref) > 0);
/* Only one reference held by hash table, and nobody else can
LASSERT(atomic_read(&lqe->lqe_ref) > 0);
/* Only one reference held by hash table, and nobody else can
@@
-151,7
+152,7
@@
static int lqe_iter_cb(cfs_hash_t *hs, cfs_hash_bd_t *bd,
* \param free_all - free all entries or only free the entries
* without quota enforce ?
*/
* \param free_all - free all entries or only free the entries
* without quota enforce ?
*/
-static void lqe_cleanup(
cfs_hash_t
*hash, bool free_all)
+static void lqe_cleanup(
struct cfs_hash
*hash, bool free_all)
{
struct lqe_iter_data d;
int repeat = 0;
{
struct lqe_iter_data d;
int repeat = 0;
@@
-172,8
+173,8
@@
retry:
"freed:%lu, repeat:%u\n", hash,
d.lid_inuse, d.lid_freed, repeat);
repeat++;
"freed:%lu, repeat:%u\n", hash,
d.lid_inuse, d.lid_freed, repeat);
repeat++;
- cfs_schedule_timeout_and_set_state(CFS_TASK_INTERRUPTIBLE,
-
cfs_time_seconds(1));
+ set_current_state(TASK_INTERRUPTIBLE);
+
schedule_timeout(
cfs_time_seconds(1));
goto retry;
}
EXIT;
goto retry;
}
EXIT;
@@
-202,7
+203,8
@@
struct lquota_site *lquota_site_alloc(const struct lu_env *env, void *parent,
char hashname[15];
ENTRY;
char hashname[15];
ENTRY;
- LASSERT(qtype < MAXQUOTAS);
+ if (qtype >= LL_MAXQUOTAS)
+ RETURN(ERR_PTR(-ENOTSUPP));
OBD_ALLOC_PTR(site);
if (site == NULL)
OBD_ALLOC_PTR(site);
if (site == NULL)
@@
-216,7
+218,7
@@
struct lquota_site *lquota_site_alloc(const struct lu_env *env, void *parent,
/* allocate hash table */
memset(hashname, 0, sizeof(hashname));
/* allocate hash table */
memset(hashname, 0, sizeof(hashname));
- s
printf(hashname, "LQUOTA_HASH%
u", qtype);
+ s
nprintf(hashname, sizeof(hashname), "LQUOTA_HASH%h
u", qtype);
site->lqs_hash= cfs_hash_create(hashname, hash_lqs_cur_bits,
HASH_LQE_MAX_BITS,
min(hash_lqs_cur_bits,
site->lqs_hash= cfs_hash_create(hashname, hash_lqs_cur_bits,
HASH_LQE_MAX_BITS,
min(hash_lqs_cur_bits,
@@
-322,9
+324,9
@@
struct lquota_entry *lqe_locate(const struct lu_env *env,
RETURN(lqe);
}
RETURN(lqe);
}
- OBD_SLAB_ALLOC_PTR_GFP(new, lqe_kmem,
__GFP_IO
);
+ OBD_SLAB_ALLOC_PTR_GFP(new, lqe_kmem,
GFP_NOFS
);
if (new == NULL) {
if (new == NULL) {
- CERROR("Fail to allocate lqe for id:
"LPU64"
, "
+ CERROR("Fail to allocate lqe for id:
%llu
, "
"hash:%s\n", qid->qid_uid, site->lqs_hash->hs_name);
RETURN(ERR_PTR(-ENOMEM));
}
"hash:%s\n", qid->qid_uid, site->lqs_hash->hs_name);
RETURN(ERR_PTR(-ENOMEM));
}
@@
-332,7
+334,7
@@
struct lquota_entry *lqe_locate(const struct lu_env *env,
atomic_set(&new->lqe_ref, 1); /* hold 1 for caller */
new->lqe_id = *qid;
new->lqe_site = site;
atomic_set(&new->lqe_ref, 1); /* hold 1 for caller */
new->lqe_id = *qid;
new->lqe_site = site;
-
CFS_
INIT_LIST_HEAD(&new->lqe_link);
+ INIT_LIST_HEAD(&new->lqe_link);
/* quota settings need to be updated from disk, that's why
* lqe->lqe_uptodate isn't set yet */
/* quota settings need to be updated from disk, that's why
* lqe->lqe_uptodate isn't set yet */