Thanks for the review and the interesting offline chat Andrew.
Patch 2 addresses all comments (good catch) except #2:
Can't 'cast' to HdfsFileStatus since it's a separate class. So didn't change any more towards code sharing.
I think this handles symlink, since DFSClient will call with getFileInfo(src, true).