summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/orangefs/dir.c6
-rw-r--r--fs/orangefs/file.c10
-rw-r--r--fs/orangefs/orangefs-bufmap.c24
-rw-r--r--fs/orangefs/orangefs-bufmap.h4
4 files changed, 16 insertions, 28 deletions
diff --git a/fs/orangefs/dir.c b/fs/orangefs/dir.c
index 53a411732606..f30b6ecacdd1 100644
--- a/fs/orangefs/dir.c
+++ b/fs/orangefs/dir.c
@@ -141,7 +141,6 @@ out:
*/
static int orangefs_readdir(struct file *file, struct dir_context *ctx)
{
- struct orangefs_bufmap *bufmap = NULL;
int ret = 0;
int buffer_index;
/*
@@ -205,8 +204,9 @@ static int orangefs_readdir(struct file *file, struct dir_context *ctx)
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;
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index db9dd6ebcc3f..63e6a10ab13d 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -87,7 +87,6 @@ static ssize_t wait_for_direct_io(enum ORANGEFS_io_type type, struct inode *inod
{
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;
@@ -104,11 +103,12 @@ static ssize_t wait_for_direct_io(enum ORANGEFS_io_type type, struct inode *inod
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,
diff --git a/fs/orangefs/orangefs-bufmap.c b/fs/orangefs/orangefs-bufmap.c
index 97689c6cab17..1f8acc9f9a88 100644
--- a/fs/orangefs/orangefs-bufmap.c
+++ b/fs/orangefs/orangefs-bufmap.c
@@ -455,17 +455,11 @@ void orangefs_bufmap_run_down(void)
* 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);
}
/*
@@ -489,17 +483,11 @@ void orangefs_bufmap_put(int buffer_index)
* 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)
diff --git a/fs/orangefs/orangefs-bufmap.h b/fs/orangefs/orangefs-bufmap.h
index babdc713c5e0..ec2849cb52e2 100644
--- a/fs/orangefs/orangefs-bufmap.h
+++ b/fs/orangefs/orangefs-bufmap.h
@@ -19,11 +19,11 @@ void orangefs_bufmap_finalize(void);
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);