Skip to content

Commit

Permalink
target: Unify __core_scsi3_update_aptpl_buf and core_scsi3_update_apt…
Browse files Browse the repository at this point in the history
…pl_buf

The __ version is only ever called from the regular version, so just
inline it. It's not too much more complex to handle both spinlocks in the
same function.

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 Jun 14, 2013
1 parent 0607dec commit 3c8a622
Showing 1 changed file with 10 additions and 22 deletions.
32 changes: 10 additions & 22 deletions drivers/target/target_core_pr.c
Original file line number Diff line number Diff line change
Expand Up @@ -1828,10 +1828,7 @@ core_scsi3_decode_spec_i_port(
return ret;
}

/*
* Called with struct se_device->dev_reservation_lock held
*/
static int __core_scsi3_update_aptpl_buf(
static int core_scsi3_update_aptpl_buf(
struct se_device *dev,
unsigned char *buf,
u32 pr_aptpl_buf_len)
Expand All @@ -1842,13 +1839,15 @@ static int __core_scsi3_update_aptpl_buf(
unsigned char tmp[512], isid_buf[32];
ssize_t len = 0;
int reg_count = 0;
int ret = 0;

memset(buf, 0, pr_aptpl_buf_len);

spin_lock(&dev->dev_reservation_lock);
spin_lock(&dev->t10_pr.registration_lock);
/*
* Walk the registration list..
*/
spin_lock(&dev->t10_pr.registration_lock);
list_for_each_entry(pr_reg, &dev->t10_pr.registration_list,
pr_reg_list) {

Expand Down Expand Up @@ -1894,8 +1893,8 @@ static int __core_scsi3_update_aptpl_buf(
if ((len + strlen(tmp) >= pr_aptpl_buf_len)) {
pr_err("Unable to update renaming"
" APTPL metadata\n");
spin_unlock(&dev->t10_pr.registration_lock);
return -EMSGSIZE;
ret = -EMSGSIZE;
goto out;
}
len += sprintf(buf+len, "%s", tmp);

Expand All @@ -1912,29 +1911,18 @@ static int __core_scsi3_update_aptpl_buf(
if ((len + strlen(tmp) >= pr_aptpl_buf_len)) {
pr_err("Unable to update renaming"
" APTPL metadata\n");
spin_unlock(&dev->t10_pr.registration_lock);
return -EMSGSIZE;
ret = -EMSGSIZE;
goto out;
}
len += sprintf(buf+len, "%s", tmp);
reg_count++;
}
spin_unlock(&dev->t10_pr.registration_lock);

if (!reg_count)
len += sprintf(buf+len, "No Registrations or Reservations");

return 0;
}

static int core_scsi3_update_aptpl_buf(
struct se_device *dev,
unsigned char *buf,
u32 pr_aptpl_buf_len)
{
int ret;

spin_lock(&dev->dev_reservation_lock);
ret = __core_scsi3_update_aptpl_buf(dev, buf, pr_aptpl_buf_len);
out:
spin_unlock(&dev->t10_pr.registration_lock);
spin_unlock(&dev->dev_reservation_lock);

return ret;
Expand Down

0 comments on commit 3c8a622

Please sign in to comment.