diff options
Diffstat (limited to 'src/backend/storage/smgr/smgr.c')
| -rw-r--r-- | src/backend/storage/smgr/smgr.c | 18 | 
1 files changed, 18 insertions, 0 deletions
| diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 7d1cd5af168..9379e337930 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -194,6 +194,24 @@ smgrsetowner(SMgrRelation *owner, SMgrRelation reln)  }  /* + * smgrclearowner() -- Remove long-lived reference to an SMgrRelation object + *					   if one exists + */ +void +smgrclearowner(SMgrRelation *owner, SMgrRelation reln) +{ +	/* Do nothing if the SMgrRelation object is not owned by the owner */ +	if (reln->smgr_owner != owner) +		return; + +	/* unset the owner's reference */ +	*owner = NULL; + +	/* unset our reference to the owner */ +	reln->smgr_owner = NULL; +} + +/*   *	smgrexists() -- Does the underlying file for a fork exist?   */  bool | 
