diff options
author | avg <avg@FreeBSD.org> | 2010-04-15 08:29:14 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2010-04-15 08:29:14 +0000 |
commit | 701362298a45b9cbad4eb689b7e1b22003edad3d (patch) | |
tree | 3258b36e2f36161fb5f80b3ba00a10c4c63b36da /sys/cam/scsi | |
parent | e5e811b1e993cd1b6f7f86b9431fb2fee8cbe8bc (diff) | |
download | FreeBSD-src-701362298a45b9cbad4eb689b7e1b22003edad3d.zip FreeBSD-src-701362298a45b9cbad4eb689b7e1b22003edad3d.tar.gz |
scsi_cd: CD_FLAG_VALID_MEDIA is sufficient to set d_sectorsize and
d_mediasize
CD_FLAG_VALID_TOC is not required for setting those media properties.
PR: kern/145385
Submitted by: Juergen Lock <nox@jelal.kn-bremen.de>
a slightly different version
Tested by: Pavel Sukhoy <sukhoy@ripn.net>,
Markus Wild <m.wild@cybernet.ch>,
Juergen Lock <nox@jelal.kn-bremen.de>,
uqs
MFC after: 1 week
Diffstat (limited to 'sys/cam/scsi')
-rw-r--r-- | sys/cam/scsi/scsi_cd.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/cam/scsi/scsi_cd.c b/sys/cam/scsi/scsi_cd.c index 1e5be3c..d09d129 100644 --- a/sys/cam/scsi/scsi_cd.c +++ b/sys/cam/scsi/scsi_cd.c @@ -2773,8 +2773,12 @@ cdcheckmedia(struct cam_periph *periph) softc->flags &= ~(CD_FLAG_VALID_MEDIA|CD_FLAG_VALID_TOC); cdprevent(periph, PR_ALLOW); return (error); - } else + } else { softc->flags |= CD_FLAG_VALID_MEDIA; + softc->disk->d_sectorsize = softc->params.blksize; + softc->disk->d_mediasize = + (off_t)softc->params.blksize * softc->params.disksize; + } /* * Now we check the table of contents. This (currently) is only @@ -2863,9 +2867,6 @@ cdcheckmedia(struct cam_periph *periph) } softc->flags |= CD_FLAG_VALID_TOC; - softc->disk->d_sectorsize = softc->params.blksize; - softc->disk->d_mediasize = - (off_t)softc->params.blksize * softc->params.disksize; bailout: |