def initiateOp(self, handle, seekpos, buffer):
        assert len(buffer) > 0
        assert seekpos >= 0
        df = Deferred()
        try:
            self.op(handle, seekpos, buffer,
                    self.ovDone, (handle, buffer))
        except:
            df.errback(Failure())
        else:
            self.df = df
        return df