Skip to content

Commit

Permalink
target: Cleanup transport_kunmap_data_sg()
Browse files Browse the repository at this point in the history
This code isn't broken per se, but it's scary to look at! It looks like
in the t_data_nents==1 case we're doing both a kunmap and a vunmap,
what's saving us is that t_data_vmap in this case is 0, so vunmap
doesn't do anything.

Return after kunmap, so the handling of the three cases does not overlap.

Signed-off-by: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
  • Loading branch information
Andy Grover authored and Nicholas Bellinger committed Feb 25, 2012
1 parent 1678645 commit a1edf9c
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/target/target_core_transport.c
Original file line number Diff line number Diff line change
Expand Up @@ -3546,10 +3546,12 @@ EXPORT_SYMBOL(transport_kmap_data_sg);

void transport_kunmap_data_sg(struct se_cmd *cmd)
{
if (!cmd->t_data_nents)
if (!cmd->t_data_nents) {
return;
else if (cmd->t_data_nents == 1)
} else if (cmd->t_data_nents == 1) {
kunmap(sg_page(cmd->t_data_sg));
return;
}

vunmap(cmd->t_data_vmap);
cmd->t_data_vmap = NULL;
Expand Down

0 comments on commit a1edf9c

Please sign in to comment.