It claims that the first parameter is a new table, and the second one is an old table. However, the table_relation_copy_for_cluster() uses the first parameter as the old table, and the second as a new table, see below:
It's a bit confusing, so attach a patch to fix this.
I've looked into your patch. All callers of *_relation_copy_for_cluster now use Relation OldTable, Relation NewTable order. It coincides to what is expected by the function, no now code is not broken. The only wrong thing is naming of arguments in declaration of this function in tableam.h I think this is a minor oversight from original commit d25f519107b
Provided all the above I'd recommend committing this catch. This is for clarity only, no changes in code behavior.