diff options
| author | Greg Lehey <grog@FreeBSD.org> | 2003-07-01 07:53:54 +0000 |
|---|---|---|
| committer | Greg Lehey <grog@FreeBSD.org> | 2003-07-01 07:53:54 +0000 |
| commit | 8517ec8be1f00406593cc7ebba38e65a0ed6b458 (patch) | |
| tree | 7721710afc5c0cde7a652012cd10ab4000eff252 | |
| parent | c53e8c5654b2cbef53890632c0bfac3bc4685ada (diff) | |
Notes
| -rw-r--r-- | sys/dev/vinum/vinumconfig.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/sys/dev/vinum/vinumconfig.c b/sys/dev/vinum/vinumconfig.c index 2c009219b721..2d172e14f868 100644 --- a/sys/dev/vinum/vinumconfig.c +++ b/sys/dev/vinum/vinumconfig.c @@ -585,18 +585,13 @@ get_empty_sd(void) void free_drive(struct drive *drive) { - if ((drive->state > drive_referenced) /* real drive */ - ||(drive->flags & VF_OPEN)) { /* how can it be open without a state? */ - LOCKDRIVE(drive); - if (drive->flags & VF_OPEN) { /* it's open, */ - close_locked_drive(drive); /* close it */ - drive->state = drive_down; /* and note the fact */ - } - if (drive->freelist) - Free(drive->freelist); - bzero(drive, sizeof(struct drive)); /* this also sets drive_unallocated */ - unlockdrive(drive); - } + LOCKDRIVE(drive); + if (drive->flags & VF_OPEN) /* it's open, */ + close_locked_drive(drive); /* close it */ + if (drive->freelist) + Free(drive->freelist); + bzero(drive, sizeof(struct drive)); /* this also sets drive_unallocated */ + unlockdrive(drive); } /* |
