i've seen this ldi_get_size() failure before and it usually occurs on
drivers that don't implement their prop_op(9E) entry point correctly
or that don't implement the dynamic [Nn]blocks/[Ss]size property correctly.

what does your layered driver do in it's prop_op(9E) entry point?
also, what driver is your layered driver layered over?

ed


On Mon, May 14, 2007 at 09:37:51AM -0700, Eric Schrock wrote:
> This is likely because ldi_get_size() is failing for your device.  We've
> seen this before on 3rd party devices, and have been meaning to create a
> special errno (instead of EINVAL) to give a more helpful message in this
> case.
> 
> - Eric
> 
> On Sun, May 13, 2007 at 11:54:45PM -0700, Shweta Krishnan wrote:
> > I ran zpool with truss, and here is the system call trace. (again, zfs_lyr 
> > is the layered driver I am trying to use to talk to the ramdisk driver).
> > 
> > When I compared it to a successful zpool creation, the culprit is the last 
> > failing ioctl
> > i.e. ioctl(3, ZFS_IOC_CREATE_POOL, <address>)
> > 
> > I tried looking at the source code for the failing ioctl, but didn't get 
> > any hints there.
> > Guess I must try dtrace (which I am about to learn!).
> > 
> > bash-3.00# truss -f zpool create adsl-pool /devices/pseudo/[EMAIL 
> > PROTECTED]:zfsminor1 2> /var/tmp/zpool.truss
> > bash-3.00# grep Err /var/tmp/zpool.truss 
> > 2232:   open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
> > 2232:   xstat(2, "/lib/libdiskmgt.so.1", 0x080469C8)    Err#2 ENOENT
> > 2232:   xstat(2, "/lib/libxml2.so.2", 0x08046868)       Err#2 ENOENT
> > 2232:   xstat(2, "/lib/libz.so.1", 0x08046868)          Err#2 ENOENT
> > 2232:   stat64("/devices/pseudo/[EMAIL PROTECTED]:zfsminor1s2", 0x080429E0) 
> > Err#2 ENOENT
> > 2232:   modctl(MODSIZEOF_DEVID, 0x03740001, 0x080429BC, 0x08071714, 
> > 0x00000000) Err#22 EINVAL
> > 2232:   mkdir("/var/run/sysevent_channels/syseventd_channel", 0755) Err#17 
> > EEXIST
> > 2232:   unlink("/var/run/sysevent_channels/syseventd_channel/17") Err#2 
> > ENOENT
> > 2232/1:         umount2("/var/run/sysevent_channels/syseventd_channel/17", 
> > 0x00000000) Err#22 EINVAL
> > 2232/1:         ioctl(7, I_CANPUT, 0x00000000)                  Err#89 
> > ENOSYS
> > 2232/1:         stat64("/adsl-pool", 0x08043330)                Err#2 ENOENT
> > 2232/1:         ioctl(3, ZFS_IOC_POOL_CREATE, 0x08041BC4)       Err#22 
> > EINVAL
> >  
> >  
> > This message posted from opensolaris.org
> > _______________________________________________
> > zfs-discuss mailing list
> > zfs-discuss@opensolaris.org
> > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
> 
> --
> Eric Schrock, Solaris Kernel Development       http://blogs.sun.com/eschrock
> _______________________________________________
> zfs-discuss mailing list
> zfs-discuss@opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to