Who does iofunc_ocb_detach()

In a standard resource manager, on an io_open() i create an attr struct and
do a iofunc_ocb_attach() to link the OCB to this attr.

Am I required to do an iofunc_ocb_detach() in the io_close_dup() ? Or is it
done behind the scenes? The sample documentation dosent talk about it, so I
have bene assuming that it gets done behind the scenes.

Help will be greatly appreciated.