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 088c1cb..83cf4fb 100644 (file)
@@ -666,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;
@@ -786,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;
 
@@ -794,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 */
@@ -841,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;
@@ -859,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);
 }
@@ -889,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) &&
@@ -926,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;
 
@@ -955,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;