Whamcloud - gitweb
LU-5577 obdclass: (*dt_index_page_build_t) arg nob to size_t
[fs/lustre-release.git] / lustre / obdclass / dt_object.c
index 75f44f3..83cf4fb 100644 (file)
@@ -67,13 +67,13 @@ EXPORT_SYMBOL(dt_key);
  */
 void dt_txn_callback_add(struct dt_device *dev, struct dt_txn_callback *cb)
 {
-        cfs_list_add(&cb->dtc_linkage, &dev->dd_txn_callbacks);
+       list_add(&cb->dtc_linkage, &dev->dd_txn_callbacks);
 }
 EXPORT_SYMBOL(dt_txn_callback_add);
 
 void dt_txn_callback_del(struct dt_device *dev, struct dt_txn_callback *cb)
 {
-        cfs_list_del_init(&cb->dtc_linkage);
+       list_del_init(&cb->dtc_linkage);
 }
 EXPORT_SYMBOL(dt_txn_callback_del);
 
@@ -86,7 +86,7 @@ int dt_txn_hook_start(const struct lu_env *env,
         if (th->th_local)
                 return 0;
 
-        cfs_list_for_each_entry(cb, &dev->dd_txn_callbacks, dtc_linkage) {
+       list_for_each_entry(cb, &dev->dd_txn_callbacks, dtc_linkage) {
                 if (cb->dtc_txn_start == NULL ||
                     !(cb->dtc_tag & env->le_ctx.lc_tags))
                         continue;
@@ -107,7 +107,7 @@ int dt_txn_hook_stop(const struct lu_env *env, struct thandle *txn)
         if (txn->th_local)
                 return 0;
 
-        cfs_list_for_each_entry(cb, &dev->dd_txn_callbacks, dtc_linkage) {
+       list_for_each_entry(cb, &dev->dd_txn_callbacks, dtc_linkage) {
                 if (cb->dtc_txn_stop == NULL ||
                     !(cb->dtc_tag & env->le_ctx.lc_tags))
                         continue;
@@ -121,24 +121,23 @@ EXPORT_SYMBOL(dt_txn_hook_stop);
 
 void dt_txn_hook_commit(struct thandle *txn)
 {
-        struct dt_txn_callback *cb;
+       struct dt_txn_callback *cb;
 
-        if (txn->th_local)
-                return;
+       if (txn->th_local)
+               return;
 
-        cfs_list_for_each_entry(cb, &txn->th_dev->dd_txn_callbacks,
-                                dtc_linkage) {
-                if (cb->dtc_txn_commit)
-                        cb->dtc_txn_commit(txn, cb->dtc_cookie);
-        }
+       list_for_each_entry(cb, &txn->th_dev->dd_txn_callbacks,
+                           dtc_linkage) {
+               if (cb->dtc_txn_commit)
+                       cb->dtc_txn_commit(txn, cb->dtc_cookie);
+       }
 }
 EXPORT_SYMBOL(dt_txn_hook_commit);
 
 int dt_device_init(struct dt_device *dev, struct lu_device_type *t)
 {
-
-        CFS_INIT_LIST_HEAD(&dev->dd_txn_callbacks);
-        return lu_device_init(&dev->dd_lu_dev, t);
+       INIT_LIST_HEAD(&dev->dd_txn_callbacks);
+       return lu_device_init(&dev->dd_lu_dev, t);
 }
 EXPORT_SYMBOL(dt_device_init);
 
@@ -667,15 +666,19 @@ static inline const struct dt_index_features *dt_index_feat_select(__u64 seq,
  * \param arg  - is a pointer to the idx_info structure
  */
 static int dt_index_page_build(const struct lu_env *env, union lu_page *lp,
-                              int nob, const struct dt_it_ops *iops,
+                              size_t nob, const struct dt_it_ops *iops,
                               struct dt_it *it, __u32 attr, void *arg)
 {
        struct idx_info         *ii = (struct idx_info *)arg;
        struct lu_idxpage       *lip = &lp->lp_idx;
        char                    *entry;
-       int                      rc, size;
+       size_t                   size;
+       int                      rc;
        ENTRY;
 
+       if (nob < LIP_HDR_SIZE)
+               return -EINVAL;
+
        /* initialize the header of the new container */
        memset(lip, 0, LIP_HDR_SIZE);
        lip->lip_magic = LIP_MAGIC;
@@ -787,7 +790,7 @@ int dt_index_walk(const struct lu_env *env, struct dt_object *obj,
 {
        struct dt_it            *it;
        const struct dt_it_ops  *iops;
-       unsigned int             pageidx, nob, nlupgs = 0;
+       size_t                   pageidx, nob, nlupgs = 0;
        int                      rc;
        ENTRY;
 
@@ -795,7 +798,7 @@ int dt_index_walk(const struct lu_env *env, struct dt_object *obj,
        LASSERT(obj->do_index_ops != NULL);
 
        nob = rdpg->rp_count;
-       if (nob <= 0)
+       if (nob == 0)
                RETURN(-EFAULT);
 
        /* Iterate through index and fill containers from @rdpg */
@@ -842,7 +845,7 @@ int dt_index_walk(const struct lu_env *env, struct dt_object *obj,
 
                /* fill lu pages */
                for (i = 0; i < LU_PAGE_COUNT; i++, lp++, nob -= LU_PAGE_SIZE) {
-                       rc = filler(env, lp, min_t(int, nob, LU_PAGE_SIZE),
+                       rc = filler(env, lp, min_t(size_t, nob, LU_PAGE_SIZE),
                                    iops, it, rdpg->rp_attrs, arg);
                        if (rc < 0)
                                break;
@@ -860,7 +863,7 @@ out:
        iops->fini(env, it);
 
        if (rc >= 0)
-               rc = min_t(unsigned int, nlupgs * LU_PAGE_SIZE, rdpg->rp_count);
+               rc = min_t(size_t, nlupgs * LU_PAGE_SIZE, rdpg->rp_count);
 
        RETURN(rc);
 }
@@ -890,7 +893,7 @@ int dt_index_read(const struct lu_env *env, struct dt_device *dev,
 
        /* rp_count shouldn't be null and should be a multiple of the container
         * size */
-       if (rdpg->rp_count <= 0 && (rdpg->rp_count & (LU_PAGE_SIZE - 1)) != 0)
+       if (rdpg->rp_count == 0 || (rdpg->rp_count & (LU_PAGE_SIZE - 1)) != 0)
                RETURN(-EFAULT);
 
        if (!fid_is_quota(&ii->ii_fid) && !fid_is_layout_rbtree(&ii->ii_fid) &&
@@ -927,7 +930,7 @@ int dt_index_read(const struct lu_env *env, struct dt_device *dev,
        if (!(feat->dif_flags & DT_IND_VARREC))
                ii->ii_recsize = feat->dif_recsize_max;
 
-       if (!(feat->dif_flags & DT_IND_NONUNQ))
+       if (feat->dif_flags & DT_IND_NONUNQ)
                /* key isn't necessarily unique */
                ii->ii_flags |= II_FL_NONUNQ;
 
@@ -956,123 +959,6 @@ out:
 EXPORT_SYMBOL(dt_index_read);
 
 #ifdef LPROCFS
-#ifndef HAVE_ONLY_PROCFS_SEQ
-int lprocfs_dt_rd_blksize(char *page, char **start, off_t off,
-                         int count, int *eof, void *data)
-{
-       struct dt_device *dt = data;
-       struct obd_statfs osfs;
-
-       int rc = dt_statfs(NULL, dt, &osfs);
-       if (rc == 0) {
-               *eof = 1;
-               rc = snprintf(page, count, "%u\n",
-                               (unsigned) osfs.os_bsize);
-       }
-
-       return rc;
-}
-EXPORT_SYMBOL(lprocfs_dt_rd_blksize);
-
-int lprocfs_dt_rd_kbytestotal(char *page, char **start, off_t off,
-                             int count, int *eof, void *data)
-{
-       struct dt_device *dt = data;
-       struct obd_statfs osfs;
-
-       int rc = dt_statfs(NULL, dt, &osfs);
-       if (rc == 0) {
-               __u32 blk_size = osfs.os_bsize >> 10;
-               __u64 result = osfs.os_blocks;
-
-               while (blk_size >>= 1)
-                       result <<= 1;
-
-               *eof = 1;
-               rc = snprintf(page, count, LPU64"\n", result);
-       }
-
-       return rc;
-}
-EXPORT_SYMBOL(lprocfs_dt_rd_kbytestotal);
-
-int lprocfs_dt_rd_kbytesfree(char *page, char **start, off_t off,
-                            int count, int *eof, void *data)
-{
-       struct dt_device *dt = data;
-       struct obd_statfs osfs;
-
-       int rc = dt_statfs(NULL, dt, &osfs);
-       if (rc == 0) {
-               __u32 blk_size = osfs.os_bsize >> 10;
-               __u64 result = osfs.os_bfree;
-
-               while (blk_size >>= 1)
-                       result <<= 1;
-
-               *eof = 1;
-               rc = snprintf(page, count, LPU64"\n", result);
-       }
-
-       return rc;
-}
-EXPORT_SYMBOL(lprocfs_dt_rd_kbytesfree);
-
-int lprocfs_dt_rd_kbytesavail(char *page, char **start, off_t off,
-                             int count, int *eof, void *data)
-{
-       struct dt_device *dt = data;
-       struct obd_statfs osfs;
-
-       int rc = dt_statfs(NULL, dt, &osfs);
-       if (rc == 0) {
-               __u32 blk_size = osfs.os_bsize >> 10;
-               __u64 result = osfs.os_bavail;
-
-               while (blk_size >>= 1)
-                       result <<= 1;
-
-               *eof = 1;
-               rc = snprintf(page, count, LPU64"\n", result);
-       }
-
-       return rc;
-}
-EXPORT_SYMBOL(lprocfs_dt_rd_kbytesavail);
-
-int lprocfs_dt_rd_filestotal(char *page, char **start, off_t off,
-                            int count, int *eof, void *data)
-{
-       struct dt_device *dt = data;
-       struct obd_statfs osfs;
-
-       int rc = dt_statfs(NULL, dt, &osfs);
-       if (rc == 0) {
-               *eof = 1;
-               rc = snprintf(page, count, LPU64"\n", osfs.os_files);
-       }
-
-       return rc;
-}
-EXPORT_SYMBOL(lprocfs_dt_rd_filestotal);
-
-int lprocfs_dt_rd_filesfree(char *page, char **start, off_t off,
-                           int count, int *eof, void *data)
-{
-       struct dt_device *dt = data;
-       struct obd_statfs osfs;
-
-       int rc = dt_statfs(NULL, dt, &osfs);
-       if (rc == 0) {
-               *eof = 1;
-               rc = snprintf(page, count, LPU64"\n", osfs.os_ffree);
-       }
-
-       return rc;
-}
-EXPORT_SYMBOL(lprocfs_dt_rd_filesfree);
-#endif
-
 int lprocfs_dt_blksize_seq_show(struct seq_file *m, void *v)
 {
        struct dt_device *dt = m->private;