summaryrefslogtreecommitdiffstats
path: root/fs/ufs/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ufs/dir.c')
-rw-r--r--fs/ufs/dir.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c
index 0b1457292734..4c07421453af 100644
--- a/fs/ufs/dir.c
+++ b/fs/ufs/dir.c
@@ -105,7 +105,7 @@ void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de,
105} 105}
106 106
107 107
108static void ufs_check_page(struct page *page) 108static bool ufs_check_page(struct page *page)
109{ 109{
110 struct inode *dir = page->mapping->host; 110 struct inode *dir = page->mapping->host;
111 struct super_block *sb = dir->i_sb; 111 struct super_block *sb = dir->i_sb;
@@ -143,7 +143,7 @@ static void ufs_check_page(struct page *page)
143 goto Eend; 143 goto Eend;
144out: 144out:
145 SetPageChecked(page); 145 SetPageChecked(page);
146 return; 146 return true;
147 147
148 /* Too bad, we had an error */ 148 /* Too bad, we had an error */
149 149
@@ -180,8 +180,8 @@ Eend:
180 "offset=%lu", 180 "offset=%lu",
181 dir->i_ino, (page->index<<PAGE_SHIFT)+offs); 181 dir->i_ino, (page->index<<PAGE_SHIFT)+offs);
182fail: 182fail:
183 SetPageChecked(page);
184 SetPageError(page); 183 SetPageError(page);
184 return false;
185} 185}
186 186
187static struct page *ufs_get_page(struct inode *dir, unsigned long n) 187static struct page *ufs_get_page(struct inode *dir, unsigned long n)
@@ -190,10 +190,10 @@ static struct page *ufs_get_page(struct inode *dir, unsigned long n)
190 struct page *page = read_mapping_page(mapping, n, NULL); 190 struct page *page = read_mapping_page(mapping, n, NULL);
191 if (!IS_ERR(page)) { 191 if (!IS_ERR(page)) {
192 kmap(page); 192 kmap(page);
193 if (!PageChecked(page)) 193 if (unlikely(!PageChecked(page))) {
194 ufs_check_page(page); 194 if (PageError(page) || !ufs_check_page(page))
195 if (PageError(page)) 195 goto fail;
196 goto fail; 196 }
197 } 197 }
198 return page; 198 return page;
199 199