diff options
Diffstat (limited to 'fs/ext4/dir.c')
| -rw-r--r-- | fs/ext4/dir.c | 6 | 
1 files changed, 3 insertions, 3 deletions
| diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c index ffb295aa891c..74b172a4adda 100644 --- a/fs/ext4/dir.c +++ b/fs/ext4/dir.c @@ -551,7 +551,7 @@ static int ext4_dx_readdir(struct file *file, struct dir_context *ctx)  	struct dir_private_info *info = file->private_data;  	struct inode *inode = file_inode(file);  	struct fname *fname; -	int	ret; +	int ret = 0;  	if (!info) {  		info = ext4_htree_create_dir_info(file, ctx->pos); @@ -599,7 +599,7 @@ static int ext4_dx_readdir(struct file *file, struct dir_context *ctx)  						   info->curr_minor_hash,  						   &info->next_hash);  			if (ret < 0) -				return ret; +				goto finished;  			if (ret == 0) {  				ctx->pos = ext4_get_htree_eof(file);  				break; @@ -630,7 +630,7 @@ static int ext4_dx_readdir(struct file *file, struct dir_context *ctx)  	}  finished:  	info->last_pos = ctx->pos; -	return 0; +	return ret < 0 ? ret : 0;  }  static int ext4_release_dir(struct inode *inode, struct file *filp) |