summaryrefslogtreecommitdiffstats
path: root/fs/efs/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/efs/dir.c')
-rw-r--r--fs/efs/dir.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/efs/dir.c b/fs/efs/dir.c
index 89dedbdb8..88e181690 100644
--- a/fs/efs/dir.c
+++ b/fs/efs/dir.c
@@ -46,8 +46,6 @@ struct inode_operations efs_dir_inode_operations = {
NULL /* smap */
};
-/* read the next entry for a given directory */
-
static int efs_readdir(struct file *filp, void *dirent, filldir_t filldir) {
struct inode *inode = filp->f_dentry->d_inode;
struct efs_inode_info *ini = INODE_INFO(inode);
@@ -94,6 +92,11 @@ static int efs_readdir(struct file *filp, void *dirent, filldir_t filldir) {
}
while(slot < dirblock->slots) {
+ if (dirblock->space[slot] == 0) {
+ slot++;
+ continue;
+ }
+
dirslot = (struct efs_dentry *) (((char *) bh->b_data) + EFS_SLOTAT(dirblock, slot));
inodenum = be32_to_cpu(dirslot->inode);