*/
 static int orangefs_readdir(struct file *file, struct dir_context *ctx)
 {
-       struct orangefs_bufmap *bufmap = NULL;
        int ret = 0;
        int buffer_index;
        /*
        new_op->upcall.req.readdir.token = *ptoken;
 
 get_new_buffer_index:
-       ret = orangefs_readdir_index_get(&bufmap, &buffer_index);
-       if (ret < 0) {
+       buffer_index = orangefs_readdir_index_get();
+       if (buffer_index < 0) {
+               ret = buffer_index;
                gossip_lerr("orangefs_readdir: orangefs_readdir_index_get() failure (%d)\n",
                            ret);
                goto out_free_op;
 
 {
        struct orangefs_inode_s *orangefs_inode = ORANGEFS_I(inode);
        struct orangefs_khandle *handle = &orangefs_inode->refn.khandle;
-       struct orangefs_bufmap *bufmap = NULL;
        struct orangefs_kernel_op_s *new_op = NULL;
        struct iov_iter saved = *iter;
        int buffer_index = -1;
 
 populate_shared_memory:
        /* get a shared buffer index */
-       ret = orangefs_bufmap_get(&bufmap, &buffer_index);
-       if (ret < 0) {
+       buffer_index = orangefs_bufmap_get();
+       if (buffer_index < 0) {
+               ret = buffer_index;
                gossip_debug(GOSSIP_FILE_DEBUG,
-                            "%s: orangefs_bufmap_get failure (%ld)\n",
-                            __func__, (long)ret);
+                            "%s: orangefs_bufmap_get failure (%zd)\n",
+                            __func__, ret);
                goto out;
        }
        gossip_debug(GOSSIP_FILE_DEBUG,
 
  * gets a free mapped buffer descriptor, will sleep until one becomes
  * available if necessary
  *
- * returns 0 on success, -errno on failure
+ * returns slot on success, -errno on failure
  */
-int orangefs_bufmap_get(struct orangefs_bufmap **mapp, int *buffer_index)
+int orangefs_bufmap_get(void)
 {
-       int ret = get(&rw_map);
-       if (ret >= 0) {
-               *mapp = __orangefs_bufmap;
-               *buffer_index = ret;
-               ret = 0;
-       }
-       return ret;
+       return get(&rw_map);
 }
 
 /*
  * we could do that at a later point of time. Regardless, these
  * indices are used by the client-core.
  *
- * returns 0 on success, -errno on failure
+ * returns slot on success, -errno on failure
  */
-int orangefs_readdir_index_get(struct orangefs_bufmap **mapp, int *buffer_index)
+int orangefs_readdir_index_get(void)
 {
-       int ret = get(&readdir_map);
-       if (ret >= 0) {
-               *mapp = __orangefs_bufmap;
-               *buffer_index = ret;
-               ret = 0;
-       }
-       return ret;
+       return get(&readdir_map);
 }
 
 void orangefs_readdir_index_put(int buffer_index)
 
 
 void orangefs_bufmap_run_down(void);
 
-int orangefs_bufmap_get(struct orangefs_bufmap **mapp, int *buffer_index);
+int orangefs_bufmap_get(void);
 
 void orangefs_bufmap_put(int buffer_index);
 
-int orangefs_readdir_index_get(struct orangefs_bufmap **mapp, int *buffer_index);
+int orangefs_readdir_index_get(void);
 
 void orangefs_readdir_index_put(int buffer_index);