Commit 083fd8b21a13742b37ab347089c73f895a896672
Committed by
Linus Torvalds
1 parent
05ce7bfe54
Exists in
master
and in
7 other branches
AFS: Don't pass error value to page_cache_release() in error handling
In the error handling in afs_mntpt_do_automount(), we pass an error pointer to page_cache_release() if read_mapping_page() failed. Instead, we should extend the gotos around the error handling we don't need. Reported-by: Dan Carpenter <error27@gmail.com> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 12 additions and 12 deletions Side-by-side Diff
fs/afs/mntpt.c
... | ... | @@ -138,9 +138,9 @@ |
138 | 138 | { |
139 | 139 | struct afs_super_info *super; |
140 | 140 | struct vfsmount *mnt; |
141 | - struct page *page = NULL; | |
141 | + struct page *page; | |
142 | 142 | size_t size; |
143 | - char *buf, *devname = NULL, *options = NULL; | |
143 | + char *buf, *devname, *options; | |
144 | 144 | int ret; |
145 | 145 | |
146 | 146 | _enter("{%s}", mntpt->d_name.name); |
147 | 147 | |
148 | 148 | |
149 | 149 | |
... | ... | @@ -150,22 +150,22 @@ |
150 | 150 | ret = -EINVAL; |
151 | 151 | size = mntpt->d_inode->i_size; |
152 | 152 | if (size > PAGE_SIZE - 1) |
153 | - goto error; | |
153 | + goto error_no_devname; | |
154 | 154 | |
155 | 155 | ret = -ENOMEM; |
156 | 156 | devname = (char *) get_zeroed_page(GFP_KERNEL); |
157 | 157 | if (!devname) |
158 | - goto error; | |
158 | + goto error_no_devname; | |
159 | 159 | |
160 | 160 | options = (char *) get_zeroed_page(GFP_KERNEL); |
161 | 161 | if (!options) |
162 | - goto error; | |
162 | + goto error_no_options; | |
163 | 163 | |
164 | 164 | /* read the contents of the AFS special symlink */ |
165 | 165 | page = read_mapping_page(mntpt->d_inode->i_mapping, 0, NULL); |
166 | 166 | if (IS_ERR(page)) { |
167 | 167 | ret = PTR_ERR(page); |
168 | - goto error; | |
168 | + goto error_no_page; | |
169 | 169 | } |
170 | 170 | |
171 | 171 | ret = -EIO; |
... | ... | @@ -196,12 +196,12 @@ |
196 | 196 | return mnt; |
197 | 197 | |
198 | 198 | error: |
199 | - if (page) | |
200 | - page_cache_release(page); | |
201 | - if (devname) | |
202 | - free_page((unsigned long) devname); | |
203 | - if (options) | |
204 | - free_page((unsigned long) options); | |
199 | + page_cache_release(page); | |
200 | +error_no_page: | |
201 | + free_page((unsigned long) options); | |
202 | +error_no_options: | |
203 | + free_page((unsigned long) devname); | |
204 | +error_no_devname: | |
205 | 205 | _leave(" = %d", ret); |
206 | 206 | return ERR_PTR(ret); |
207 | 207 | } |