[PATCH] Fix ext2_readdir()

From: Jan Blunck
Date: Mon Jul 26 2004 - 05:23:38 EST


I noticed that ext2_readdir() is ignoring the set error return values and always returns 0.

Signed-off-by: Jan Blunck <j.blunck@xxxxxxxxxxxxx> Index: testing-2.5/fs/ext2/dir.c
===================================================================
--- testing-2.5.orig/fs/ext2/dir.c 2004-07-24 09:54:50.174994960 +0200
+++ testing-2.5/fs/ext2/dir.c 2004-07-24 10:58:52.430883280 +0200
@@ -257,10 +257,10 @@
unsigned chunk_mask = ~(ext2_chunk_size(inode)-1);
unsigned char *types = NULL;
int need_revalidate = (filp->f_version != inode->i_version);
- int ret = 0;
+ int ret;

if (pos > inode->i_size - EXT2_DIR_REC_LEN(1))
- goto done;
+ goto success;

if (EXT2_HAS_INCOMPAT_FEATURE(sb, EXT2_FEATURE_INCOMPAT_FILETYPE))
types = ext2_filetype_table;
@@ -300,17 +300,19 @@
le32_to_cpu(de->inode), d_type);
if (over) {
ext2_put_page(page);
- goto done;
+ goto success;
}
}
}
ext2_put_page(page);
}

+success:
+ ret = 0;
done:
filp->f_pos = (n << PAGE_CACHE_SHIFT) | offset;
filp->f_version = inode->i_version;
- return 0;
+ return ret;
}

/*