Whamcloud - gitweb
LU-9611 lod: allow -1 for default stripe count/offset
[fs/lustre-release.git] / lustre / ptlrpc / nrs_orr.c
index 74578c5..284f81f 100644 (file)
@@ -20,7 +20,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright (c) 2013, 2014, Intel Corporation.
+ * Copyright (c) 2013, 2016, Intel Corporation.
  *
  * Copyright 2012 Xyratex Technology Limited
  */
@@ -232,18 +232,18 @@ static int nrs_orr_range_fill_physical(struct ptlrpc_nrs_request *nrq,
        struct ptlrpc_request     *req = container_of(nrq,
                                                      struct ptlrpc_request,
                                                      rq_nrq);
-       char                       fiemap_buf[offsetof(struct ll_user_fiemap,
+       char                       fiemap_buf[offsetof(struct fiemap,
                                                  fm_extents[ORR_NUM_EXTENTS])];
-       struct ll_user_fiemap     *fiemap = (struct ll_user_fiemap *)fiemap_buf;
+       struct fiemap              *fiemap = (struct fiemap *)fiemap_buf;
        struct ll_fiemap_info_key  key;
        loff_t                     start;
        loff_t                     end;
        int                        rc;
 
        key = (typeof(key)) {
-               .name = KEY_FIEMAP,
-               .oa = *oa,
-               .fiemap = {
+               .lfik_name = KEY_FIEMAP,
+               .lfik_oa = *oa,
+               .lfik_fiemap = {
                        .fm_start = range->or_start,
                        .fm_length = range->or_end - range->or_start,
                        .fm_extent_count = ORR_NUM_EXTENTS
@@ -388,7 +388,8 @@ static void nrs_orr_genobjname(struct ptlrpc_nrs_policy *policy, char *name)
 #define NRS_TRR_BKT_BITS       2
 #define NRS_TRR_HASH_FLAGS     CFS_HASH_SPIN_BKTLOCK
 
-static unsigned nrs_orr_hop_hash(cfs_hash_t *hs, const void *key, unsigned mask)
+static unsigned
+nrs_orr_hop_hash(struct cfs_hash *hs, const void *key, unsigned mask)
 {
        return cfs_hash_djb2_hash(key, sizeof(struct nrs_orr_key), mask);
 }
@@ -416,7 +417,7 @@ static void *nrs_orr_hop_object(struct hlist_node *hnode)
        return hlist_entry(hnode, struct nrs_orr_object, oo_hnode);
 }
 
-static void nrs_orr_hop_get(cfs_hash_t *hs, struct hlist_node *hnode)
+static void nrs_orr_hop_get(struct cfs_hash *hs, struct hlist_node *hnode)
 {
        struct nrs_orr_object *orro = hlist_entry(hnode,
                                                      struct nrs_orr_object,
@@ -428,14 +429,14 @@ static void nrs_orr_hop_get(cfs_hash_t *hs, struct hlist_node *hnode)
  * Removes an nrs_orr_object the hash and frees its memory, if the object has
  * no active users.
  */
-static void nrs_orr_hop_put_free(cfs_hash_t *hs, struct hlist_node *hnode)
+static void nrs_orr_hop_put_free(struct cfs_hash *hs, struct hlist_node *hnode)
 {
        struct nrs_orr_object *orro = hlist_entry(hnode,
                                                      struct nrs_orr_object,
                                                      oo_hnode);
        struct nrs_orr_data   *orrd = container_of(orro->oo_res.res_parent,
                                                   struct nrs_orr_data, od_res);
-       cfs_hash_bd_t          bd;
+       struct cfs_hash_bd     bd;
 
        cfs_hash_bd_get_and_lock(hs, &orro->oo_key, &bd, 1);
 
@@ -452,7 +453,7 @@ static void nrs_orr_hop_put_free(cfs_hash_t *hs, struct hlist_node *hnode)
        OBD_SLAB_FREE_PTR(orro, orrd->od_cache);
 }
 
-static void nrs_orr_hop_put(cfs_hash_t *hs, struct hlist_node *hnode)
+static void nrs_orr_hop_put(struct cfs_hash *hs, struct hlist_node *hnode)
 {
        struct nrs_orr_object *orro = hlist_entry(hnode,
                                                      struct nrs_orr_object,
@@ -469,7 +470,7 @@ static int nrs_trr_hop_keycmp(const void *key, struct hlist_node *hnode)
        return orro->oo_key.ok_idx == ((struct nrs_orr_key *)key)->ok_idx;
 }
 
-static void nrs_trr_hop_exit(cfs_hash_t *hs, struct hlist_node *hnode)
+static void nrs_trr_hop_exit(struct cfs_hash *hs, struct hlist_node *hnode)
 {
        struct nrs_orr_object *orro = hlist_entry(hnode,
                                                      struct nrs_orr_object,
@@ -484,7 +485,7 @@ static void nrs_trr_hop_exit(cfs_hash_t *hs, struct hlist_node *hnode)
        OBD_SLAB_FREE_PTR(orro, orrd->od_cache);
 }
 
-static cfs_hash_ops_t nrs_orr_hash_ops = {
+static struct cfs_hash_ops nrs_orr_hash_ops = {
        .hs_hash        = nrs_orr_hop_hash,
        .hs_key         = nrs_orr_hop_key,
        .hs_keycmp      = nrs_orr_hop_keycmp,
@@ -494,7 +495,7 @@ static cfs_hash_ops_t nrs_orr_hash_ops = {
        .hs_put_locked  = nrs_orr_hop_put,
 };
 
-static cfs_hash_ops_t nrs_trr_hash_ops = {
+static struct cfs_hash_ops nrs_trr_hash_ops = {
        .hs_hash        = nrs_orr_hop_hash,
        .hs_key         = nrs_orr_hop_key,
        .hs_keycmp      = nrs_trr_hop_keycmp,
@@ -523,7 +524,8 @@ static cfs_hash_ops_t nrs_trr_hash_ops = {
  * \retval 0 e1 > e2
  * \retval 1 e1 < e2
  */
-static int orr_req_compare(cfs_binheap_node_t *e1, cfs_binheap_node_t *e2)
+static int
+orr_req_compare(struct cfs_binheap_node *e1, struct cfs_binheap_node *e2)
 {
        struct ptlrpc_nrs_request *nrq1;
        struct ptlrpc_nrs_request *nrq2;
@@ -578,7 +580,7 @@ static int orr_req_compare(cfs_binheap_node_t *e1, cfs_binheap_node_t *e2)
 /**
  * ORR binary heap operations
  */
-static cfs_binheap_ops_t nrs_orr_heap_ops = {
+static struct cfs_binheap_ops nrs_orr_heap_ops = {
        .hop_enter      = NULL,
        .hop_exit       = NULL,
        .hop_compare    = orr_req_compare,
@@ -616,7 +618,7 @@ static int nrs_orr_init(struct ptlrpc_nrs_policy *policy)
 static int nrs_orr_start(struct ptlrpc_nrs_policy *policy, char *arg)
 {
        struct nrs_orr_data    *orrd;
-       cfs_hash_ops_t         *ops;
+       struct cfs_hash_ops            *ops;
        unsigned                cur_bits;
        unsigned                max_bits;
        unsigned                bkt_bits;
@@ -692,10 +694,8 @@ static int nrs_orr_start(struct ptlrpc_nrs_policy *policy, char *arg)
        RETURN(rc);
 
 failed:
-       if (orrd->od_cache) {
+       if (orrd->od_cache)
                kmem_cache_destroy(orrd->od_cache);
-               LASSERTF(rc == 0, "Could not destroy od_cache slab\n");
-       }
        if (orrd->od_binheap != NULL)
                cfs_binheap_destroy(orrd->od_binheap);
 
@@ -945,7 +945,7 @@ struct ptlrpc_nrs_request *nrs_orr_req_get(struct ptlrpc_nrs_policy *policy,
                                           bool peek, bool force)
 {
        struct nrs_orr_data       *orrd = policy->pol_private;
-       cfs_binheap_node_t        *node = cfs_binheap_root(orrd->od_binheap);
+       struct cfs_binheap_node   *node = cfs_binheap_root(orrd->od_binheap);
        struct ptlrpc_nrs_request *nrq;
 
        nrq = unlikely(node == NULL) ? NULL :
@@ -967,14 +967,14 @@ struct ptlrpc_nrs_request *nrs_orr_req_get(struct ptlrpc_nrs_policy *policy,
                        CDEBUG(D_RPCTRACE,
                               "NRS: starting to handle %s request for object "
                               "with FID "DFID", from OST with index %u, with "
-                              "round "LPU64"\n", NRS_POL_NAME_ORR,
+                              "round %llu\n", NRS_POL_NAME_ORR,
                               PFID(&orro->oo_key.ok_fid),
                               nrq->nr_u.orr.or_key.ok_idx,
                               nrq->nr_u.orr.or_round);
                else
                        CDEBUG(D_RPCTRACE,
                               "NRS: starting to handle %s request from OST "
-                              "with index %u, with round "LPU64"\n",
+                              "with index %u, with round %llu\n",
                               NRS_POL_NAME_TRR, nrq->nr_u.orr.or_key.ok_idx,
                               nrq->nr_u.orr.or_round);
 
@@ -1120,7 +1120,7 @@ static void nrs_orr_req_del(struct ptlrpc_nrs_policy *policy,
         */
        if (unlikely(is_root)) {
                /** Peek at the next request to be served */
-               cfs_binheap_node_t *node = cfs_binheap_root(orrd->od_binheap);
+               struct cfs_binheap_node *node = cfs_binheap_root(orrd->od_binheap);
 
                /** No more requests */
                if (unlikely(node == NULL)) {
@@ -1150,13 +1150,13 @@ static void nrs_orr_req_stop(struct ptlrpc_nrs_policy *policy,
                    NRS_POL_NAME_MAX) == 0)
                CDEBUG(D_RPCTRACE,
                       "NRS: finished handling %s request for object with FID "
-                      DFID", from OST with index %u, with round "LPU64"\n",
+                      DFID", from OST with index %u, with round %llu\n",
                       NRS_POL_NAME_ORR, PFID(&nrq->nr_u.orr.or_key.ok_fid),
                       nrq->nr_u.orr.or_key.ok_idx, nrq->nr_u.orr.or_round);
        else
                CDEBUG(D_RPCTRACE,
                       "NRS: finished handling %s request from OST with index %u,"
-                      " with round "LPU64"\n",
+                      " with round %llu\n",
                       NRS_POL_NAME_TRR, nrq->nr_u.orr.or_key.ok_idx,
                       nrq->nr_u.orr.or_round);
 }
@@ -1278,7 +1278,8 @@ no_hp:
  * almost identical; it can be reworked and then reused for ORR/TRR.
  */
 static ssize_t
-ptlrpc_lprocfs_nrs_orr_quantum_seq_write(struct file *file, const char *buffer,
+ptlrpc_lprocfs_nrs_orr_quantum_seq_write(struct file *file,
+                                        const char __user *buffer,
                                         size_t count, loff_t *off)
 {
        struct seq_file             *m = file->private_data;
@@ -1492,7 +1493,8 @@ no_hp:
  */
 static ssize_t
 ptlrpc_lprocfs_nrs_orr_offset_type_seq_write(struct file *file,
-                                            const char *buffer, size_t count,
+                                            const char __user *buffer,
+                                             size_t count,
                                             loff_t *off)
 {
        struct seq_file             *m = file->private_data;
@@ -1751,7 +1753,8 @@ no_hp:
  */
 static ssize_t
 ptlrpc_lprocfs_nrs_orr_supported_seq_write(struct file *file,
-                                          const char *buffer, size_t count,
+                                          const char __user *buffer,
+                                          size_t count,
                                           loff_t *off)
 {
        struct seq_file             *m = file->private_data;