From 0c8f7070d6ab00493f0502b3d5fb5bb5d4d33695 Mon Sep 17 00:00:00 2001
From: yangsheng <yangsheng>
Date: Wed, 12 Nov 2008 14:36:24 +0000
Subject: [PATCH] Branch HEAD b=17379

As adilger asked, remove the "out_release:" entirely.
---
 lustre/llite/symlink.c | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/lustre/llite/symlink.c b/lustre/llite/symlink.c
index 365910fb6c..b6902bba82 100644
--- a/lustre/llite/symlink.c
+++ b/lustre/llite/symlink.c
@@ -163,24 +163,16 @@ static LL_FOLLOW_LINK_RETURN_TYPE ll_follow_link(struct dentry *dentry,
 #endif
 
         CDEBUG(D_VFSTRACE, "VFS Op\n");
-#if THREAD_SIZE < 8192
-        /*
-         *  We set the limits recursive symlink to 5
-         *  instead of default 8 when kernel has 4k stack
-         *  to prevent stack overflow.
-         */
-        if (current->link_count >= 5) {
+        /* Limit the recursive symlink depth to 5 instead of default
+         * 8 links when kernel has 4k stack to prevent stack overflow. */
+        if (THREAD_SIZE < 8192 && current->link_count >= 5) {
                 rc = -ELOOP;
-                GOTO(out_release, rc);
+        } else {
+                ll_inode_size_lock(inode, 0);
+                rc = ll_readlink_internal(inode, &request, &symname);
+                ll_inode_size_unlock(inode, 0);
         }
-#endif
-        ll_inode_size_lock(inode, 0);
-        rc = ll_readlink_internal(inode, &request, &symname);
-        ll_inode_size_unlock(inode, 0);
         if (rc) {
-#if THREAD_SIZE < 8192
-out_release:
-#endif
                 path_release(nd); /* Kernel assumes that ->follow_link()
                                      releases nameidata on error */
                 GOTO(out, rc);
-- 
GitLab