const char *export_path)
 {
        struct dentry *dentry;
-       int ret = nfs_referral_loop_protect();
+       int err;
 
-       if (ret) {
+       if (IS_ERR(root_mnt))
+               return ERR_CAST(root_mnt);
+
+       err = nfs_referral_loop_protect();
+       if (err) {
                mntput(root_mnt);
-               return ERR_PTR(ret);
+               return ERR_PTR(err);
        }
 
        dentry = mount_subtree(root_mnt, export_path);
                        data->nfs_server.hostname);
        data->nfs_server.export_path = export_path;
 
-       res = ERR_CAST(root_mnt);
-       if (!IS_ERR(root_mnt))
-               res = nfs_follow_remote_path(root_mnt, export_path);
+       res = nfs_follow_remote_path(root_mnt, export_path);
 
        dfprintk(MOUNT, "<-- nfs4_try_mount() = %ld%s\n",
                        IS_ERR(res) ? PTR_ERR(res) : 0,
                        flags, data, data->hostname);
        data->mnt_path = export_path;
 
-       res = ERR_CAST(root_mnt);
-       if (!IS_ERR(root_mnt))
-               res = nfs_follow_remote_path(root_mnt, export_path);
+       res = nfs_follow_remote_path(root_mnt, export_path);
        dprintk("<-- nfs4_referral_mount() = %ld%s\n",
                        IS_ERR(res) ? PTR_ERR(res) : 0,
                        IS_ERR(res) ? " [error]" : "");