Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8a99a8f authored by Al Viro's avatar Al Viro Committed by Mike Marshall
Browse files

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: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarMike Marshall <hubcap@omnibond.com>
parent bf6bf606
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -141,7 +141,6 @@ static long decode_dirents(char *ptr, size_t size,
 */
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;
+5 −5
Original line number Diff line number Diff line
@@ -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,
+6 −18
Original line number Diff line number Diff line
@@ -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)
+2 −2
Original line number Diff line number Diff line
@@ -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);