There’s no reason to declare the following functions in rpc/server.h when they’re defined in wallet/rpcwallet.cpp. They can be declared in wallet/rpcwallet.h instead:
HelpRequiringPassphrase EnsureWalletIsAvailable EnsureWalletIsUnlocked
Also, there’s no reason to use extern for functions declared in rpc/server.h. It is really never needed (see http://stackoverflow.com/questions/11712707/extern-functions-in-c-vs-c/11712820#11712820 ), but it seems more strange when those functions are also defined in rpc/server.cpp (in the same module).