def METHOD_NAME(self):
    util.SMlog("Unpause for %s" % self.vdi_uuid)
    if not os.path.exists(self.path):
        util.SMlog("No %s: nothing to unpause" % self.path)
        return str(True)
    self._pathRefresh()
    self.major, self.minor = _getDevMajor_minor(self.path)    
    if self.major != blktap2.Tapdisk.major():
        util.SMlog("Non-tap major number: %d" % self.major)
        return str(False)
    if self.activate_parents:
        util.SMlog("Activating parents of %s" % self.vdi_uuid)
        vg_name = lvhdutil.VG_PREFIX + self.sr_uuid
        ns = lvhdutil.NS_PREFIX_LVM + self.sr_uuid
        lvm_cache = lvmcache.LVMCache(vg_name)
        lv_name = lvhdutil.LV_PREFIX[vhdutil.VDI_TYPE_VHD] + self.vdi_uuid
        vdi_list = vhdutil.getParentChain(lv_name,
                lvhdutil.extractUuid, vg_name)
        for uuid, lv_name in vdi_list.items():
            if uuid == self.vdi_uuid:
                continue
            lvm_cache.activate(ns, uuid, lv_name, False)
    import VDI
    vdi = VDI.VDI.from_uuid(self.session, self.vdi_uuid)
    # Check if CBT is enabled on disk we are about to unpause
    if vdi._get_blocktracking_status():
        logname = vdi._get_cbt_logname(self.vdi_uuid)
        # Ensure CBT log file associated with virtual disk
        # is activated before use
        vdi._activate_cbt_log(logname)
        self.cbtlog = vdi._get_cbt_logpath(self.vdi_uuid)
    else:
        self.cbtlog = None
    tapargs = {"minor":self.minor}
    util.SMlog("Calling tap unpause with minor %d" % self.minor)
    tapdisk = blktap2.Tapdisk.get(**tapargs)
    tapdisk.unpause(self.vdi_type, self.realpath, self.secondary, self.cbtlog)
    return str(True)