aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-05-27 21:22:04 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2016-05-29 19:07:07 -0400
commite0d508f1092db9a56cc6ed617f473a2704f7f683 (patch)
tree4456bbb2b853731a92dd61d8b1328082fa67ab3a
parent6f3fc1070be028170b0f4c0c326480c9fcd1da3e (diff)
ufs: get rid of redundant checks
ufs_check_page() makes sure there's no entries with zero ->reclen Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--fs/ufs/dir.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/fs/ufs/dir.c b/fs/ufs/dir.c
index 57dcceda17d6..fa3bda1a860f 100644
--- a/fs/ufs/dir.c
+++ b/fs/ufs/dir.c
@@ -279,12 +279,6 @@ struct ufs_dir_entry *ufs_find_entry(struct inode *dir, const struct qstr *qstr,
279 de = (struct ufs_dir_entry *) kaddr; 279 de = (struct ufs_dir_entry *) kaddr;
280 kaddr += ufs_last_byte(dir, n) - reclen; 280 kaddr += ufs_last_byte(dir, n) - reclen;
281 while ((char *) de <= kaddr) { 281 while ((char *) de <= kaddr) {
282 if (de->d_reclen == 0) {
283 ufs_error(dir->i_sb, __func__,
284 "zero-length directory entry");
285 ufs_put_page(page);
286 goto out;
287 }
288 if (ufs_match(sb, namelen, name, de)) 282 if (ufs_match(sb, namelen, name, de))
289 goto found; 283 goto found;
290 de = ufs_next_entry(sb, de); 284 de = ufs_next_entry(sb, de);
@@ -414,11 +408,8 @@ ufs_validate_entry(struct super_block *sb, char *base,
414{ 408{
415 struct ufs_dir_entry *de = (struct ufs_dir_entry*)(base + offset); 409 struct ufs_dir_entry *de = (struct ufs_dir_entry*)(base + offset);
416 struct ufs_dir_entry *p = (struct ufs_dir_entry*)(base + (offset&mask)); 410 struct ufs_dir_entry *p = (struct ufs_dir_entry*)(base + (offset&mask));
417 while ((char*)p < (char*)de) { 411 while ((char*)p < (char*)de)
418 if (p->d_reclen == 0)
419 break;
420 p = ufs_next_entry(sb, p); 412 p = ufs_next_entry(sb, p);
421 }
422 return (char *)p - base; 413 return (char *)p - base;
423} 414}
424 415
@@ -469,12 +460,6 @@ ufs_readdir(struct file *file, struct dir_context *ctx)
469 de = (struct ufs_dir_entry *)(kaddr+offset); 460 de = (struct ufs_dir_entry *)(kaddr+offset);
470 limit = kaddr + ufs_last_byte(inode, n) - UFS_DIR_REC_LEN(1); 461 limit = kaddr + ufs_last_byte(inode, n) - UFS_DIR_REC_LEN(1);
471 for ( ;(char*)de <= limit; de = ufs_next_entry(sb, de)) { 462 for ( ;(char*)de <= limit; de = ufs_next_entry(sb, de)) {
472 if (de->d_reclen == 0) {
473 ufs_error(sb, __func__,
474 "zero-length directory entry");
475 ufs_put_page(page);
476 return -EIO;
477 }
478 if (de->d_ino) { 463 if (de->d_ino) {
479 unsigned char d_type = DT_UNKNOWN; 464 unsigned char d_type = DT_UNKNOWN;
480 465