Skip to content

Commit

Permalink
ocfs2: remove kfree() redundant null checks
Browse files Browse the repository at this point in the history
smatch analysis indicates a number of redundant NULL checks before
calling kfree(), eg:

  fs/ocfs2/alloc.c:6138 ocfs2_begin_truncate_log_recovery() info:
   redundant null check on *tl_copy calling kfree()

  fs/ocfs2/alloc.c:6755 ocfs2_zero_range_for_truncate() info:
   redundant null check on pages calling kfree()

etc....

[[email protected]: revert dubious change in ocfs2_begin_truncate_log_recovery()]
Signed-off-by: Tim Gardner <[email protected]>
Cc: Mark Fasheh <[email protected]>
Acked-by: Joel Becker <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
rtg-canonical authored and torvalds committed Feb 22, 2013
1 parent 49deb4b commit d787ab0
Show file tree
Hide file tree
Showing 10 changed files with 17 additions and 34 deletions.
3 changes: 1 addition & 2 deletions fs/ocfs2/alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -6751,8 +6751,7 @@ int ocfs2_zero_range_for_truncate(struct inode *inode, handle_t *handle,
mlog_errno(ret);

out:
if (pages)
kfree(pages);
kfree(pages);

return ret;
}
Expand Down
6 changes: 2 additions & 4 deletions fs/ocfs2/cluster/heartbeat.c
Original file line number Diff line number Diff line change
Expand Up @@ -1471,8 +1471,7 @@ static void o2hb_region_release(struct config_item *item)

mlog(ML_HEARTBEAT, "hb region release (%s)\n", reg->hr_dev_name);

if (reg->hr_tmp_block)
kfree(reg->hr_tmp_block);
kfree(reg->hr_tmp_block);

if (reg->hr_slot_data) {
for (i = 0; i < reg->hr_num_pages; i++) {
Expand All @@ -1486,8 +1485,7 @@ static void o2hb_region_release(struct config_item *item)
if (reg->hr_bdev)
blkdev_put(reg->hr_bdev, FMODE_READ|FMODE_WRITE);

if (reg->hr_slots)
kfree(reg->hr_slots);
kfree(reg->hr_slots);

kfree(reg->hr_db_regnum);
kfree(reg->hr_db_livenodes);
Expand Down
6 changes: 2 additions & 4 deletions fs/ocfs2/cluster/tcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1165,10 +1165,8 @@ int o2net_send_message_vec(u32 msg_type, u32 key, struct kvec *caller_vec,
o2net_debug_del_nst(&nst); /* must be before dropping sc and node */
if (sc)
sc_put(sc);
if (vec)
kfree(vec);
if (msg)
kfree(msg);
kfree(vec);
kfree(msg);
o2net_complete_nsw(nn, &nsw, 0, 0, 0);
return ret;
}
Expand Down
4 changes: 1 addition & 3 deletions fs/ocfs2/dlm/dlmdomain.c
Original file line number Diff line number Diff line change
Expand Up @@ -319,9 +319,7 @@ static void dlm_free_ctxt_mem(struct dlm_ctxt *dlm)
if (dlm->master_hash)
dlm_free_pagevec((void **)dlm->master_hash, DLM_HASH_PAGES);

if (dlm->name)
kfree(dlm->name);

kfree(dlm->name);
kfree(dlm);
}

Expand Down
3 changes: 1 addition & 2 deletions fs/ocfs2/extent_map.c
Original file line number Diff line number Diff line change
Expand Up @@ -282,8 +282,7 @@ void ocfs2_extent_map_insert_rec(struct inode *inode,
spin_unlock(&oi->ip_lock);

out:
if (new_emi)
kfree(new_emi);
kfree(new_emi);
}

static int ocfs2_last_eb_is_empty(struct inode *inode,
Expand Down
10 changes: 3 additions & 7 deletions fs/ocfs2/journal.c
Original file line number Diff line number Diff line change
Expand Up @@ -1234,11 +1234,8 @@ static void ocfs2_queue_recovery_completion(struct ocfs2_journal *journal,
/* Though we wish to avoid it, we are in fact safe in
* skipping local alloc cleanup as fsck.ocfs2 is more
* than capable of reclaiming unused space. */
if (la_dinode)
kfree(la_dinode);

if (tl_dinode)
kfree(tl_dinode);
kfree(la_dinode);
kfree(tl_dinode);

if (qrec)
ocfs2_free_quota_recovery(qrec);
Expand Down Expand Up @@ -1408,8 +1405,7 @@ static int __ocfs2_recovery_thread(void *arg)

mutex_unlock(&osb->recovery_lock);

if (rm_quota)
kfree(rm_quota);
kfree(rm_quota);

/* no one is callint kthread_stop() for us so the kthread() api
* requires that we call do_exit(). And it isn't exported, but
Expand Down
8 changes: 3 additions & 5 deletions fs/ocfs2/localalloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -476,8 +476,7 @@ void ocfs2_shutdown_local_alloc(struct ocfs2_super *osb)
if (local_alloc_inode)
iput(local_alloc_inode);

if (alloc_copy)
kfree(alloc_copy);
kfree(alloc_copy);
}

/*
Expand Down Expand Up @@ -534,7 +533,7 @@ int ocfs2_begin_local_alloc_recovery(struct ocfs2_super *osb,
mlog_errno(status);

bail:
if ((status < 0) && (*alloc_copy)) {
if (status < 0) {
kfree(*alloc_copy);
*alloc_copy = NULL;
}
Expand Down Expand Up @@ -1290,8 +1289,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
if (main_bm_inode)
iput(main_bm_inode);

if (alloc_copy)
kfree(alloc_copy);
kfree(alloc_copy);

if (ac)
ocfs2_free_alloc_context(ac);
Expand Down
2 changes: 1 addition & 1 deletion fs/ocfs2/stack_o2cb.c
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ static int o2cb_cluster_connect(struct ocfs2_cluster_connection *conn)
dlm_register_eviction_cb(dlm, &priv->op_eviction_cb);

out_free:
if (rc && conn->cc_private)
if (rc)
kfree(conn->cc_private);

out:
Expand Down
6 changes: 2 additions & 4 deletions fs/ocfs2/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -2525,8 +2525,7 @@ static int ocfs2_check_volume(struct ocfs2_super *osb)
mlog_errno(status);

finally:
if (local_alloc)
kfree(local_alloc);
kfree(local_alloc);

if (status)
mlog_errno(status);
Expand All @@ -2553,8 +2552,7 @@ static void ocfs2_delete_osb(struct ocfs2_super *osb)
* we free it here.
*/
kfree(osb->journal);
if (osb->local_alloc_copy)
kfree(osb->local_alloc_copy);
kfree(osb->local_alloc_copy);
kfree(osb->uuid_str);
ocfs2_put_dlm_debug(osb->osb_dlm_debug);
memset(osb, 0, sizeof(struct ocfs2_super));
Expand Down
3 changes: 1 addition & 2 deletions fs/ocfs2/sysfile.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,7 @@ static struct inode **get_local_system_inode(struct ocfs2_super *osb,
} else
osb->local_system_inodes = local_system_inodes;
spin_unlock(&osb->osb_lock);
if (unlikely(free))
kfree(free);
kfree(free);
}

index = (slot * NUM_LOCAL_SYSTEM_INODES) +
Expand Down

0 comments on commit d787ab0

Please sign in to comment.