diff --git a/fs/namei.c b/fs/namei.c
index 8c4f2af..1ac3217 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -718,12 +718,13 @@
 	nd->flags |= LOOKUP_JUMPED;
 }
 
-static inline void put_link(struct nameidata *nd, struct path *link, void *cookie)
+static inline void put_link(struct nameidata *nd)
 {
-	struct inode *inode = link->dentry->d_inode;
-	if (cookie && inode->i_op->put_link)
-		inode->i_op->put_link(link->dentry, cookie);
-	path_put(link);
+	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);
+	path_put(&last->link);
 }
 
 int sysctl_protected_symlinks __read_mostly = 0;
@@ -1809,7 +1810,7 @@
 			err = 0;
 			if (unlikely(!s)) {
 				/* jumped */
-				put_link(nd, &last->link, last->cookie);
+				put_link(nd);
 				current->link_count--;
 				nd->depth--;
 				last--;
@@ -1840,7 +1841,7 @@
 	terminate_walk(nd);
 Err:
 	while (unlikely(nd->depth)) {
-		put_link(nd, &last->link, last->cookie);
+		put_link(nd);
 		current->link_count--;
 		nd->depth--;
 		last--;
@@ -1850,7 +1851,7 @@
 	if (unlikely(nd->depth)) {
 		name = last->name;
 		err = walk_component(nd, LOOKUP_FOLLOW);
-		put_link(nd, &last->link, last->cookie);
+		put_link(nd);
 		current->link_count--;
 		nd->depth--;
 		last--;
@@ -1995,7 +1996,7 @@
 	nd->inode = nd->path.dentry->d_inode;
 	error = link_path_walk(s, nd);
 	if (unlikely(error))
-		put_link(nd, &nd->stack[0].link, nd->stack[0].cookie);
+		put_link(nd);
 	return error;
 }
 
@@ -2036,7 +2037,7 @@
 			if (err)
 				break;
 			err = lookup_last(nd);
-			put_link(nd, &nd->stack[0].link, nd->stack[0].cookie);
+			put_link(nd);
 		}
 	}
 
@@ -2380,7 +2381,7 @@
 		if (err)
 			break;
 		err = mountpoint_last(nd, path);
-		put_link(nd, &nd->stack[0].link, nd->stack[0].cookie);
+		put_link(nd);
 	}
 out:
 	path_cleanup(nd);
@@ -3262,7 +3263,7 @@
 		if (unlikely(error))
 			break;
 		error = do_last(nd, file, op, &opened, pathname);
-		put_link(nd, &nd->stack[0].link, nd->stack[0].cookie);
+		put_link(nd);
 	}
 out:
 	path_cleanup(nd);
