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

Commit eeaa3d44 authored by Mike Marshall's avatar Mike Marshall
Browse files

Orangefs: address problems found by static checker



  Don't check for negative rc from boolean.

  Don't pointlessly initialize variables, it short-circuits
  gcc's uninitialized variable warnings. And max_new_nr_segs
  can never be zero, so don't check for it.

  Preserve original kstrdup pointer for freeing later.

  Don't check for negative value in unsigned variable.

Signed-off-by: default avatarMike Marshall <hubcap@omnibond.com>
parent 84d02150
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -104,7 +104,6 @@ static void readdir_handle_dtor(struct pvfs2_bufmap *bufmap,
 *
 * \param dir_emit callback function called for each entry read.
 *
 * \retval <0 on error
 * \retval 0  when directory has been completely traversed
 * \retval >0 if we don't call dir_emit for all entries
 *
@@ -253,8 +252,6 @@ static int pvfs2_readdir(struct file *file, struct dir_context *ctx)
			     __func__,
			     llu(pos));
		ret = dir_emit(ctx, ".", 1, ino, DT_DIR);
		if (ret < 0)
			goto out_destroy_handle;
		ctx->pos++;
		gossip_ldebug(GOSSIP_DIR_DEBUG,
			      "%s: ctx->pos:%lld\n",
@@ -270,8 +267,6 @@ static int pvfs2_readdir(struct file *file, struct dir_context *ctx)
			     __func__,
			     llu(pos));
		ret = dir_emit(ctx, "..", 2, ino, DT_DIR);
		if (ret < 0)
			goto out_destroy_handle;
		ctx->pos++;
		gossip_ldebug(GOSSIP_DIR_DEBUG,
			      "%s: ctx->pos:%lld\n",
@@ -293,17 +288,6 @@ static int pvfs2_readdir(struct file *file, struct dir_context *ctx)
			     (unsigned long)pos);
		ret =
		    dir_emit(ctx, current_entry, len, current_ino, DT_UNKNOWN);
		if (ret < 0) {
			gossip_debug(GOSSIP_DIR_DEBUG,
				     "dir_emit() failed. ret:%d\n",
				     ret);
			if (i < 2) {
				gossip_err("dir_emit failed on one of the first two true PVFS directory entries.\n");
				gossip_err("Duplicate entries may appear.\n");
			}
			buffer_full = 1;
			break;
		}
		ctx->pos++;
		gossip_ldebug(GOSSIP_DIR_DEBUG,
			      "%s: ctx->pos:%lld\n",
+6 −12
Original line number Diff line number Diff line
@@ -463,12 +463,12 @@ static ssize_t do_readv_writev(enum PVFS_io_type type, struct file *file,
	unsigned int to_free;
	size_t count;
	unsigned long seg;
	unsigned long new_nr_segs = 0;
	unsigned long max_new_nr_segs = 0;
	unsigned long seg_count = 0;
	unsigned long *seg_array = NULL;
	struct iovec *iovecptr = NULL;
	struct iovec *ptr = NULL;
	unsigned long new_nr_segs;
	unsigned long max_new_nr_segs;
	unsigned long seg_count;
	unsigned long *seg_array;
	struct iovec *iovecptr;
	struct iovec *ptr;

	total_count = 0;
	ret = -EINVAL;
@@ -477,12 +477,6 @@ static ssize_t do_readv_writev(enum PVFS_io_type type, struct file *file,

	/* Compute total and max number of segments after split */
	max_new_nr_segs = bound_max_iovecs(iov, nr_segs, &count);
	if (max_new_nr_segs < 0) {
		gossip_lerr("%s: could not bound iovec %lu\n",
			    __func__,
			    max_new_nr_segs);
		goto out;
	}

	gossip_debug(GOSSIP_FILE_DEBUG,
		"%s-BEGIN(%pU): count(%d) after estimate_max_iovecs.\n",
+3 −1
Original line number Diff line number Diff line
@@ -1077,6 +1077,7 @@ void debug_string_to_mask(char *debug_string, void *mask, int type)
	char *unchecked_keyword;
	int i;
	char *strsep_fodder = kstrdup(debug_string, GFP_KERNEL);
	char *original_pointer;
	int element_count = 0;
	struct client_debug_mask *c_mask;
	__u64 *k_mask;
@@ -1092,6 +1093,7 @@ void debug_string_to_mask(char *debug_string, void *mask, int type)
		element_count = num_kmod_keyword_mask_map;
	}

	original_pointer = strsep_fodder;
	while ((unchecked_keyword = strsep(&strsep_fodder, ",")))
		if (strlen(unchecked_keyword)) {
			for (i = 0; i < element_count; i++)
@@ -1105,7 +1107,7 @@ void debug_string_to_mask(char *debug_string, void *mask, int type)
						  &k_mask);
		}

	kfree(strsep_fodder);
	kfree(original_pointer);
}

void do_c_mask(int i,
+2 −4
Original line number Diff line number Diff line
@@ -77,10 +77,8 @@ ssize_t pvfs2_inode_getxattr(struct inode *inode, const char *prefix,
		gossip_err("pvfs2_inode_getxattr: bogus NULL pointers\n");
		return -EINVAL;
	}
	if (size < 0 ||
	    (strlen(name) + strlen(prefix)) >= PVFS_MAX_XATTR_NAMELEN) {
		gossip_err("Invalid size (%d) or key length (%d)\n",
			   (int)size,
	if ((strlen(name) + strlen(prefix)) >= PVFS_MAX_XATTR_NAMELEN) {
		gossip_err("Invalid key length (%d)\n",
			   (int)(strlen(name) + strlen(prefix)));
		return -EINVAL;
	}