isExtend = (blockNum == P_NEW);
 
-       /* Substitute proper block number if caller asked for P_NEW */
-       if (isExtend)
-               blockNum = smgrnblocks(smgr, forkNum);
-
        TRACE_POSTGRESQL_BUFFER_READ_START(forkNum, blockNum,
                                                                           smgr->smgr_rnode.spcNode,
                                                                           smgr->smgr_rnode.dbNode,
                                                                           smgr->smgr_rnode.relNode,
-                                                                          isLocalBuf);
+                                                                          isLocalBuf,
+                                                                          isExtend);
+
+       /* Substitute proper block number if caller asked for P_NEW */
+       if (isExtend)
+               blockNum = smgrnblocks(smgr, forkNum);
 
        if (isLocalBuf)
        {
                                                                                          smgr->smgr_rnode.dbNode,
                                                                                          smgr->smgr_rnode.relNode,
                                                                                          isLocalBuf,
+                                                                                         isExtend,
                                                                                          found);
 
                        return BufferDescriptorGetBuffer(bufHdr);
                                                                          smgr->smgr_rnode.dbNode,
                                                                          smgr->smgr_rnode.relNode,
                                                                          isLocalBuf,
+                                                                         isExtend,
                                                                          found);
 
        return BufferDescriptorGetBuffer(bufHdr);
        if (reln == NULL)
                reln = smgropen(buf->tag.rnode);
 
-       TRACE_POSTGRESQL_BUFFER_FLUSH_START(reln->smgr_rnode.spcNode,
+       TRACE_POSTGRESQL_BUFFER_FLUSH_START(buf->tag.forkNum,
+                                                                               buf->tag.blockNum,
+                                                                               reln->smgr_rnode.spcNode,
                                                                                reln->smgr_rnode.dbNode,
                                                                                reln->smgr_rnode.relNode);
 
         */
        TerminateBufferIO(buf, true, 0);
 
-       TRACE_POSTGRESQL_BUFFER_FLUSH_DONE(reln->smgr_rnode.spcNode,
+       TRACE_POSTGRESQL_BUFFER_FLUSH_DONE(buf->tag.forkNum,
+                                                                          buf->tag.blockNum,
+                                                                          reln->smgr_rnode.spcNode,
                                                                           reln->smgr_rnode.dbNode,
                                                                           reln->smgr_rnode.relNode);
 
 
        probe sort__start(int, bool, int, int, bool);
        probe sort__done(bool, long);
 
-       probe buffer__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, bool);
-       probe buffer__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool);
-       probe buffer__flush__start(Oid, Oid, Oid);
-       probe buffer__flush__done(Oid, Oid, Oid);
+       probe buffer__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool);
+       probe buffer__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool, bool);
+       probe buffer__flush__start(ForkNumber, BlockNumber, Oid, Oid, Oid);
+       probe buffer__flush__done(ForkNumber, BlockNumber, Oid, Oid, Oid);
 
        probe buffer__hit(bool);
        probe buffer__miss(bool);