loader: revert r342161 and r342151
We are using asize property from pool label and we do not depend on partition data to find last two pool labels and to validate LBA for disk IO. This does allow us to re-enable support for partitionless disk setups.
This commit is contained in:
parent
c7520caa4f
commit
e416eecbb9
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=366951
@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/queue.h>
|
#include <sys/queue.h>
|
||||||
#include <disk.h>
|
|
||||||
#include <part.h>
|
#include <part.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
@ -1421,7 +1420,6 @@ zfs_attach_nvstore(void *vdev)
|
|||||||
int
|
int
|
||||||
zfs_probe_dev(const char *devname, uint64_t *pool_guid)
|
zfs_probe_dev(const char *devname, uint64_t *pool_guid)
|
||||||
{
|
{
|
||||||
struct disk_devdesc *dev;
|
|
||||||
struct ptable *table;
|
struct ptable *table;
|
||||||
struct zfs_probe_args pa;
|
struct zfs_probe_args pa;
|
||||||
uint64_t mediasz;
|
uint64_t mediasz;
|
||||||
@ -1432,22 +1430,10 @@ zfs_probe_dev(const char *devname, uint64_t *pool_guid)
|
|||||||
pa.fd = open(devname, O_RDWR);
|
pa.fd = open(devname, O_RDWR);
|
||||||
if (pa.fd == -1)
|
if (pa.fd == -1)
|
||||||
return (ENXIO);
|
return (ENXIO);
|
||||||
/*
|
/* Probe the whole disk */
|
||||||
* We will not probe the whole disk, we can not boot from such
|
ret = zfs_probe(pa.fd, pool_guid);
|
||||||
* disks and some systems will misreport the disk sizes and will
|
if (ret == 0)
|
||||||
* hang while accessing the disk.
|
return (0);
|
||||||
*/
|
|
||||||
if (archsw.arch_getdev((void **)&dev, devname, NULL) == 0) {
|
|
||||||
int partition = dev->d_partition;
|
|
||||||
int slice = dev->d_slice;
|
|
||||||
|
|
||||||
free(dev);
|
|
||||||
if (partition != D_PARTNONE && slice != D_SLICENONE) {
|
|
||||||
ret = zfs_probe(pa.fd, pool_guid);
|
|
||||||
if (ret == 0)
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Probe each partition */
|
/* Probe each partition */
|
||||||
ret = ioctl(pa.fd, DIOCGMEDIASIZE, &mediasz);
|
ret = ioctl(pa.fd, DIOCGMEDIASIZE, &mediasz);
|
||||||
|
Loading…
Reference in New Issue
Block a user