*** a/src/backend/storage/smgr/smgr.c
--- b/src/backend/storage/smgr/smgr.c
***************
*** 477,534 **** smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo)
  }
  
  /*
-  *	smgrdounlinkfork() -- Immediately unlink one fork of a relation.
-  *
-  *		The specified fork of the relation is removed from the store.  This
-  *		should not be used during transactional operations, since it can't be
-  *		undone.
-  *
-  *		If isRedo is true, it is okay for the underlying file to be gone
-  *		already.
-  */
- void
- smgrdounlinkfork(SMgrRelation reln, ForkNumber forknum, bool isRedo)
- {
- 	RelFileNodeBackend rnode = reln->smgr_rnode;
- 	int			which = reln->smgr_which;
- 
- 	/* Close the fork at smgr level */
- 	smgrsw[which].smgr_close(reln, forknum);
- 
- 	/*
- 	 * Get rid of any remaining buffers for the fork.  bufmgr will just drop
- 	 * them without bothering to write the contents.
- 	 */
- 	DropRelFileNodeBuffers(rnode, forknum, 0);
- 
- 	/*
- 	 * It'd be nice to tell the stats collector to forget it immediately, too.
- 	 * But we can't because we don't know the OID (and in cases involving
- 	 * relfilenode swaps, it's not always clear which table OID to forget,
- 	 * anyway).
- 	 */
- 
- 	/*
- 	 * Send a shared-inval message to force other backends to close any
- 	 * dangling smgr references they may have for this rel.  We should do this
- 	 * before starting the actual unlinking, in case we fail partway through
- 	 * that step.  Note that the sinval message will eventually come back to
- 	 * this backend, too, and thereby provide a backstop that we closed our
- 	 * own smgr rel.
- 	 */
- 	CacheInvalidateSmgr(rnode);
- 
- 	/*
- 	 * Delete the physical file(s).
- 	 *
- 	 * Note: smgr_unlink must treat deletion failure as a WARNING, not an
- 	 * ERROR, because we've already decided to commit or abort the current
- 	 * xact.
- 	 */
- 	smgrsw[which].smgr_unlink(rnode, forknum, isRedo);
- }
- 
- /*
   *	smgrextend() -- Add a new block to a file.
   *
   *		The semantics are nearly the same as smgrwrite(): write at the
--- 477,482 ----
*** a/src/include/storage/smgr.h
--- b/src/include/storage/smgr.h
***************
*** 90,96 **** extern void smgrcloseall(void);
  extern void smgrclosenode(RelFileNodeBackend rnode);
  extern void smgrcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
  extern void smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo);
- extern void smgrdounlinkfork(SMgrRelation reln, ForkNumber forknum, bool isRedo);
  extern void smgrextend(SMgrRelation reln, ForkNumber forknum,
  		   BlockNumber blocknum, char *buffer, bool skipFsync);
  extern void smgrprefetch(SMgrRelation reln, ForkNumber forknum,
--- 90,95 ----
