[illumos-Developer] iSCSI UNMAP with DKIOCFREE

Dan McDonald danmcd at nexenta.com
Mon Feb 21 21:28:27 PST 2011


On Mon, Feb 21, 2011 at 08:21:53PM -0800, George Wilson wrote:

<SNIP!>

> BTW, if you don't want to return error you could do:
> 
> if (df.df_start + df.df_length > zv->zv_volsize)
>     df.df_length = DMU_OBJECT_END

<SNIP!>

> Sorry, I should have looked closer at my response, instead I led you
> down the wrong path. What I was trying to say was add a add a check
> when you're freeing an area which is already free:
> 
> /* Nothing to do */
> if (df.df_start >= zv->zv_volsize)
>     break;

If it gives me a chance to call out (and apply) Postel's Law [1] in
non-TCP/IP code, I'll take it.  Fixed, webrev updated.

> >have one question, and that's whether or not I need to place the
> >zfs_range_unlock() *after* the optional txg_wait_synced().  The previous
> >webrev is now updated:
> 
> Will let you know what I uncover with dmu_free_long_range(). As for
> your location of zfs_range_unlock() it looks fine.

Thanks,
Dan


[1] Not the first time an Internet community principal has been used in the
    same sentence as ZFS.  See here, e.g.:
    http://blogs.sun.com/sommerfeld/entry/the_end_to_end_argument



More information about the Developer mailing list