inode: include dentry cycle checks for all existing inodes

inode_link() has the responsibility of maintaining the DAGness of
the dentry tree, and prevent cyclic loops from forming. To do this
the technique used is to perform cyclic check only while linking
inodes which already were linked in the inode table (i.e linking
a new_inode() can never form a loop).

While this was how it was supposed to be all along, the @old_inode
variable was missed out to get updated if the given inode to inode_link
itself was already linked (i.e, the code was only handling a complex
case when the given new inode had a gfid which already existed)

Without this patch, it is possible to call inode_link in a specific
way which results in dentry loops.

Change-Id: I4c87fa2d63f11e31c73d8b847e56962f6c983880
BUG: 1158226
Signed-off-by: Anand Avati <avati@redhat.com>
Reviewed-on: http://review.gluster.org/8995
Reviewed-by: Harshavardhana <harsha@harshavardhana.net>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com>