With what Edward suggested, I got rid of the ldi_get_size() error by defining 
the prop_op entry point appropriately.

However, the zpool create still fails - with zio_wait() returning 22.

bash-3.00# dtrace -n 'fbt::ldi_get_size:entry{self->t=1;} 
fbt::ldi_get_size:entry/self->t/{} 
fbt::ldi_get_size:return/self->t/{trace((int)arg1);} 
fbt::ldi_get_size:return{self->t=0;}' -c 'zpool create adsl-pool 
/dev/layerzfsminor1'
dtrace: description 'fbt::ldi_get_size:entry' matched 4 probes
cannot create 'adsl-pool': invalid argument for this pool operation
dtrace: pid 2487 has exited
CPU ID FUNCTION:NAME
0 21606 ldi_get_size:entry
0 21607 ldi_get_size:return 0

bash-3.00# dtrace -n 'fbt:zfs:zfs_ioc_pool_create:entry{self->t=1;} 
fbt:zfs::return/self->t && arg1 == 22/{stack(); exit(0);} 
fbt:zfs:zfs_ioc_pool_create:return{self->t=0;}'
dtrace: description 'fbt:zfs:zfs_ioc_pool_create:entry' matched 1317 probes
CPU ID FUNCTION:NAME
0 63848 zio_wait:return
zfs`vdev_label_init+0x4ed
zfs`vdev_label_init+0x4e
zfs`vdev_create+0x4b
zfs`spa_create+0x233
zfs`zfs_ioc_pool_create+0x4a
zfs`zfsdev_ioctl+0x119
genunix`cdev_ioctl+0x48
specfs`spec_ioctl+0x86
genunix`fop_ioctl+0x37
genunix`ioctl+0x16b
unix`sys_syscall32+0x101


I see the strategy routine of my layered driver being invoked, and reads and 
writes are being done. (in the more detailed dtrace dump, I see 
zio_vdev_io_start and other zio functions being invoked).
Is there a way to figure out where exactly this is breaking?
Could it be due to an ioctl failure, since the kernel log shows a failure for 
the ioctl to the real device?

Thanks,
Swetha.
 
 
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to