Move the clear_pr() function definition
This patch does not change any functionality. Signed-off-by: Bart Van Assche <bvanassche@acm.org>
This commit is contained in:
@@ -770,6 +770,33 @@ print_usage(void)
|
|||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Clear persistent reservations and reservation keys left by a previous run */
|
||||||
|
static int clear_pr(struct scsi_device *sdev)
|
||||||
|
{
|
||||||
|
int i, res;
|
||||||
|
struct scsi_task *pr_task;
|
||||||
|
struct scsi_persistent_reserve_in_read_keys *rk;
|
||||||
|
|
||||||
|
res = 0;
|
||||||
|
if (prin_read_keys(sdev, &pr_task, &rk, 16384) != 0)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
res = -1;
|
||||||
|
if (rk->num_keys && data_loss == 0)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
res = 0;
|
||||||
|
for (i = 0; i < rk->num_keys; i++) {
|
||||||
|
prout_register_and_ignore(sdev, rk->keys[i]);
|
||||||
|
prout_register_key(sdev, 0, rk->keys[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
scsi_free_scsi_task(pr_task);
|
||||||
|
|
||||||
|
out:
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
test_setup(void)
|
test_setup(void)
|
||||||
{
|
{
|
||||||
@@ -1062,33 +1089,6 @@ static void free_scsi_device(struct scsi_device *sdev)
|
|||||||
free(sdev);
|
free(sdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear persistent reservations and reservation keys left by a previous run */
|
|
||||||
static int clear_pr(struct scsi_device *sdev)
|
|
||||||
{
|
|
||||||
int i, res;
|
|
||||||
struct scsi_task *pr_task;
|
|
||||||
struct scsi_persistent_reserve_in_read_keys *rk;
|
|
||||||
|
|
||||||
res = 0;
|
|
||||||
if (prin_read_keys(sdev, &pr_task, &rk, 16384) != 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
res = -1;
|
|
||||||
if (rk->num_keys && data_loss == 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
res = 0;
|
|
||||||
for (i = 0; i < rk->num_keys; i++) {
|
|
||||||
prout_register_and_ignore(sdev, rk->keys[i]);
|
|
||||||
prout_register_key(sdev, 0, rk->keys[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
scsi_free_scsi_task(pr_task);
|
|
||||||
|
|
||||||
out:
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user