[illumos-Developer] iSCSI UNMAP with DKIOCFREE

Dan McDonald danmcd at nexenta.com
Mon Feb 21 18:21:55 PST 2011


On Mon, Feb 21, 2011 at 06:09:40PM -0800, George Wilson wrote:
> Dan,

Good timing, and thankfully none of my last-second mods (just posted) were on
the zvol.c side...

> zvol.c:
> 
> - need error checking for the range [df_start, df_start + df_length)
>     - ensure that df_start + df_length <= zv_volsize

Will do!

>     - ensure that df_start >= 0

I thought that data type was unsigned...

everywhere(~)[0]% grep diskaddr_t /usr/include/sys/types.h 
typedef	u_longlong_t	diskaddr_t;
everywhere(~)[0]% 

Is a >= 0 check still valid?  Should I do some unsigned equivalent thereof
(<= LLONG_MAX)?

> - need to call zfs_range_lock() for the range specified by df (need
> unlock too)

Makes sense and will do.

> - I think we also need to log this operation to the zil so that it
> can be replayed on reboot (I'm digging into dmu_free_long_range() to
> see if it tracks the deletion)

Please report back with these results, and an answer to my LLONG_MAX-ish
question?

Thank you!
Dan



More information about the Developer mailing list