While I have not looked into the details of pdpotri() and pdpotrf(), I see two cases:
1) There needs to be a barrier between the two functions. In this case, however, because pdpotrf() must always come after pdpotri(), it would make the most sense for there to be an implicit boundary built-in to the beginning of pdpotri().
2) There does not need to be a barrier between the two functions.
In both cases, it should not be necessary for you to write your own explicit barrier using MPI_Barrier().