diff --git a/fs/namei.c b/fs/namei.c
index 9df1c7a..1f61955 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -754,7 +754,7 @@
 
 static inline void put_link(struct nameidata *nd)
 {
-	struct saved *last = nd->stack + nd->depth;
+	struct saved *last = nd->stack + --nd->depth;
 	struct inode *inode = last->link.dentry->d_inode;
 	if (last->cookie && inode->i_op->put_link)
 		inode->i_op->put_link(last->link.dentry, last->cookie);
@@ -1840,7 +1840,6 @@
 			err = 0;
 			if (unlikely(!s)) {
 				/* jumped */
-				nd->depth--;
 				put_link(nd);
 			} else {
 				if (*s == '/') {
@@ -1868,16 +1867,13 @@
 	}
 	terminate_walk(nd);
 Err:
-	while (unlikely(nd->depth > 1)) {
-		nd->depth--;
+	while (unlikely(nd->depth > 1))
 		put_link(nd);
-	}
 	return err;
 OK:
 	if (unlikely(nd->depth > 1)) {
 		name = nd->stack[nd->depth - 1].name;
 		err = walk_component(nd, LOOKUP_FOLLOW);
-		nd->depth--;
 		put_link(nd);
 		goto Walked;
 	}
@@ -2021,12 +2017,9 @@
 	}
 	nd->inode = nd->path.dentry->d_inode;
 	error = link_path_walk(s, nd);
-	if (unlikely(error)) {
-		nd->depth--;
+	if (unlikely(error))
 		put_link(nd);
-		return error;
-	}
-	return 0;
+	return error;
 }
 
 static inline int lookup_last(struct nameidata *nd)
@@ -2066,7 +2059,6 @@
 			if (err)
 				break;
 			err = lookup_last(nd);
-			nd->depth--;
 			put_link(nd);
 		}
 	}
@@ -2416,7 +2408,6 @@
 		if (err)
 			break;
 		err = mountpoint_last(nd, path);
-		nd->depth--;
 		put_link(nd);
 	}
 out:
@@ -3301,7 +3292,6 @@
 		if (unlikely(error))
 			break;
 		error = do_last(nd, file, op, &opened, pathname);
-		nd->depth--;
 		put_link(nd);
 	}
 out:
