diff options
author | plougher <plougher> | 2006-08-01 23:54:06 +0000 |
---|---|---|
committer | Mohamad Ayyash <mkayyash@google.com> | 2015-02-23 12:33:44 -0800 |
commit | 67bd5ed1112f4240f5ec66cbbc169bd802abe52c (patch) | |
tree | 6f79e6221dda15d7d0cbb19d7c088357cacbdac4 /kernel-2.4 | |
parent | 410dd958c15c73d91e877a0afe085bfaee37d9ff (diff) | |
download | squashfs-tools-67bd5ed1112f4240f5ec66cbbc169bd802abe52c.tar.gz |
Fixed readdir so it returns 0 rather than the number of directory entries
read. This is to better support NFS
Diffstat (limited to 'kernel-2.4')
-rwxr-xr-x | kernel-2.4/fs/squashfs/inode.c | 8 | ||||
-rwxr-xr-x | kernel-2.4/fs/squashfs/squashfs2_0.c | 5 |
2 files changed, 5 insertions, 8 deletions
diff --git a/kernel-2.4/fs/squashfs/inode.c b/kernel-2.4/fs/squashfs/inode.c index 3466356..d3e5e7f 100755 --- a/kernel-2.4/fs/squashfs/inode.c +++ b/kernel-2.4/fs/squashfs/inode.c @@ -1739,7 +1739,7 @@ static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) struct squashfs_super_block *sblk = &msblk->sblk; long long next_block = SQUASHFS_I(i)->start_block + sblk->directory_table_start; - int next_offset = SQUASHFS_I(i)->offset, length = 0, dirs_read = 0, + int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count; struct squashfs_dir_header dirh; char buffer[sizeof(struct squashfs_dir_entry) + SQUASHFS_NAME_LEN + 1]; @@ -1772,7 +1772,6 @@ static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) goto finish; } file->f_pos += size; - dirs_read++; } length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, @@ -1853,12 +1852,11 @@ static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) goto finish; } file->f_pos = length; - dirs_read++; } } finish: - return dirs_read; + return 0; failed_read: ERROR("Unable to read directory block [%llx:%x]\n", next_block, @@ -2011,7 +2009,7 @@ static void squashfs_put_super(struct super_block *s) static int __init init_squashfs_fs(void) { - printk(KERN_INFO "squashfs: version 3.1-test (2006/07/31) " + printk(KERN_INFO "squashfs: version 3.1-test (2006/08/01) " "Phillip Lougher\n"); return register_filesystem(&squashfs_fs_type); diff --git a/kernel-2.4/fs/squashfs/squashfs2_0.c b/kernel-2.4/fs/squashfs/squashfs2_0.c index 4eabfa5..98f9a64 100755 --- a/kernel-2.4/fs/squashfs/squashfs2_0.c +++ b/kernel-2.4/fs/squashfs/squashfs2_0.c @@ -528,7 +528,7 @@ static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir struct squashfs_super_block *sblk = &msblk->sblk; long long next_block = SQUASHFS_I(i)->start_block + sblk->directory_table_start; - int next_offset = SQUASHFS_I(i)->offset, length = 0, dirs_read = 0, + int next_offset = SQUASHFS_I(i)->offset, length = 0, dir_count; struct squashfs_dir_header_2 dirh; char buffer[sizeof(struct squashfs_dir_entry_2) + SQUASHFS_NAME_LEN + 1]; @@ -613,12 +613,11 @@ static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir goto finish; } file->f_pos = length; - dirs_read++; } } finish: - return dirs_read; + return 0; failed_read: ERROR("Unable to read directory block [%llx:%x]\n", next_block, |