| @@ -212,39 +212,38 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi | | | @@ -212,39 +212,38 @@ vdev_disk_open(vdev_t *vd, uint64_t *psi |
212 | &vp, CRCREAT, 0); | | 212 | &vp, CRCREAT, 0); |
213 | if (error != 0) { | | 213 | if (error != 0) { |
214 | vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED; | | 214 | vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED; |
215 | return (SET_ERROR(error)); | | 215 | return (SET_ERROR(error)); |
216 | } | | 216 | } |
217 | if (vp->v_type != VBLK) { | | 217 | if (vp->v_type != VBLK) { |
218 | vrele(vp); | | 218 | vrele(vp); |
219 | vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED; | | 219 | vd->vdev_stat.vs_aux = VDEV_AUX_OPEN_FAILED; |
220 | return (SET_ERROR(EINVAL)); | | 220 | return (SET_ERROR(EINVAL)); |
221 | } | | 221 | } |
222 | | | 222 | |
223 | pdk = NULL; | | 223 | pdk = NULL; |
224 | if (getdiskinfo(vp, &dkw) == 0) | | 224 | if (getdiskinfo(vp, &dkw) == 0) |
225 | pdk = disk_find(dkw.dkw_parent); | | 225 | pdk = disk_find(dkw.dkw_devname); |
226 | | | 226 | |
227 | /* XXXNETBSD Once tls-maxphys gets merged this block becomes: | | 227 | /* XXXNETBSD Once tls-maxphys gets merged this block becomes: |
228 | dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS); | | 228 | dvd->vd_maxphys = (pdk ? disk_maxphys(pdk) : MACHINE_MAXPHYS); |
229 | */ | | 229 | */ |
230 | { | | 230 | { |
231 | struct buf buf = { | | 231 | struct buf buf = { |
| | | 232 | .b_dev = vp->v_rdev, |
232 | .b_bcount = MAXPHYS, | | 233 | .b_bcount = MAXPHYS, |
233 | }; | | 234 | }; |
234 | if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) { | | 235 | if (pdk && pdk->dk_driver && pdk->dk_driver->d_minphys) |
235 | buf.b_dev = pdk->dk_rawvp->v_rdev; | | | |
236 | (*pdk->dk_driver->d_minphys)(&buf); | | 236 | (*pdk->dk_driver->d_minphys)(&buf); |
237 | } | | | |
238 | dvd->vd_maxphys = buf.b_bcount; | | 237 | dvd->vd_maxphys = buf.b_bcount; |
239 | } | | 238 | } |
240 | | | 239 | |
241 | /* | | 240 | /* |
242 | * XXXNETBSD Compare the devid to the stored value. | | 241 | * XXXNETBSD Compare the devid to the stored value. |
243 | */ | | 242 | */ |
244 | | | 243 | |
245 | /* | | 244 | /* |
246 | * Create a workqueue to process cache-flushes concurrently. | | 245 | * Create a workqueue to process cache-flushes concurrently. |
247 | */ | | 246 | */ |
248 | error = workqueue_create(&dvd->vd_wq, "vdevsync", | | 247 | error = workqueue_create(&dvd->vd_wq, "vdevsync", |
249 | vdev_disk_flush, dvd, PRI_NONE, IPL_NONE, WQ_MPSAFE); | | 248 | vdev_disk_flush, dvd, PRI_NONE, IPL_NONE, WQ_MPSAFE); |
250 | if (error != 0) { | | 249 | if (error != 0) { |