aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs/mntpt.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/afs/mntpt.c')
-rw-r--r--fs/afs/mntpt.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c
index b905ae37f912..034fcfd4e330 100644
--- a/fs/afs/mntpt.c
+++ b/fs/afs/mntpt.c
@@ -68,13 +68,11 @@ int afs_mntpt_check_symlink(struct afs_vnode *vnode, struct key *key)
68 } 68 }
69 69
70 ret = -EIO; 70 ret = -EIO;
71 wait_on_page_locked(page);
72 buf = kmap(page);
73 if (!PageUptodate(page))
74 goto out_free;
75 if (PageError(page)) 71 if (PageError(page))
76 goto out_free; 72 goto out_free;
77 73
74 buf = kmap(page);
75
78 /* examine the symlink's contents */ 76 /* examine the symlink's contents */
79 size = vnode->status.size; 77 size = vnode->status.size;
80 _debug("symlink to %*.*s", (int) size, (int) size, buf); 78 _debug("symlink to %*.*s", (int) size, (int) size, buf);
@@ -91,8 +89,8 @@ int afs_mntpt_check_symlink(struct afs_vnode *vnode, struct key *key)
91 89
92 ret = 0; 90 ret = 0;
93 91
94out_free:
95 kunmap(page); 92 kunmap(page);
93out_free:
96 page_cache_release(page); 94 page_cache_release(page);
97out: 95out:
98 _leave(" = %d", ret); 96 _leave(" = %d", ret);
@@ -171,8 +169,7 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
171 } 169 }
172 170
173 ret = -EIO; 171 ret = -EIO;
174 wait_on_page_locked(page); 172 if (PageError(page))
175 if (!PageUptodate(page) || PageError(page))
176 goto error; 173 goto error;
177 174
178 buf = kmap(page); 175 buf = kmap(page);