0001 seems mostly OK, but I don't like some of these new function names. I see you've named them so that they are case-consistent with the name of the struct member that they affect, but I don't think that's a good criterion. I propose
SetrunningBackups -> XLogBackupSetRunning() ResetXLogBackupActivity -> XLogBackupNotRunning() // or maybe SetNotRunning, or ResetRunning? I prefer the one above SetlastBackupStart -> XLogBackupSetLastStart() GetlastFpwDisableRecPtr -> XLogGetLastFPWDisableRecptr() GetminRecoveryPoint -> XLogGetMinRecoveryPoint() I wouldn't say in the xlog_internal.h comment that these new functions are for xlogbackup.c to use. The API definition doesn't have to concern itself with that. Maybe one day xlogrecovery.c or some other xlog*.c would like to call those functions, and then the comment becomes a lie; and what for? 0002 is where the interesting stuff happens. I have not reviewed that part with any care, but it appears that set_backup_state is pretty much useless. Let's get rid of it instead of moving it. Which also means that we shouldn't introduce reset_backup_status in 0001, I suppose. I think xlogfuncs.c is content with having just get_backup_status(). Speaking of which -- I'm not sure we really want to do 0003. xlogfuncs.c is not a big file, the functions are not complex, and there are no interesting interactions in those functions with the internals (other than get_backup_status). I see that Michael advised the same. I propose we keep those functions where they are. -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/ "I suspect most samba developers are already technically insane... Of course, since many of them are Australians, you can't tell." (L. Torvalds)