diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-02-16 20:10:26 -0500 |
---|---|---|
committer | Mike Marshall <hubcap@omnibond.com> | 2016-03-25 22:30:54 -0400 |
commit | b8a99a8f9f0aebf2a75bb0d9280bff7e7ac9b57e (patch) | |
tree | d987f21f5f1c7ea83b62fcf7d0bda6f10971d285 /fs | |
parent | bf6bf606e545cb31c29499b354c13b2621acd649 (diff) | |
download | linux-stable-b8a99a8f9f0aebf2a75bb0d9280bff7e7ac9b57e.tar.gz linux-stable-b8a99a8f9f0aebf2a75bb0d9280bff7e7ac9b57e.tar.bz2 linux-stable-b8a99a8f9f0aebf2a75bb0d9280bff7e7ac9b57e.zip |
orangefs: saner calling conventions for getting a slot
just have it return the slot number or -E... - the caller checks
the sign anyway
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/orangefs/dir.c | 6 | ||||
-rw-r--r-- | fs/orangefs/file.c | 10 | ||||
-rw-r--r-- | fs/orangefs/orangefs-bufmap.c | 24 | ||||
-rw-r--r-- | fs/orangefs/orangefs-bufmap.h | 4 |
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); |