From: Dmitriy Monakhov Dmitriy Monakhov writes: > - ext3_dx_find_entry() exit with out setting proper error pointer > - do_split() exit with out setting proper error pointer > it is realy painful because many callers contain folowing code: > de = do_split(handle,dir, &bh, frame, &hinfo, &retval); > if (!(de)) > return retval; > <<< WOW retval wasn't changed by do_split(), so caller failed > <<< but return SUCCESS :) > - Rearrange do_split() error path. Current error path is realy ugly, all > this up and down jump stuff doesn't make code easy to understand. Ohh my first patch change error message semantics in do_split(). Initially when ext3_append() failed we just exit without printing error. In fact ext3_append() may fail, it is legal and it's happens qite often (ENOSPC for example). This cause annoying fake error message. So restore this semantic as it was before patch. Signed-off-by: Monakhov Dmitriy Cc: Andreas Dilger Cc: Theodore Ts'o Signed-off-by: Andrew Morton --- fs/ext3/namei.c | 2 +- fs/ext4/namei.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff -puN fs/ext3/namei.c~ext3-dirindex-error-pointer-issues-fix fs/ext3/namei.c --- a/fs/ext3/namei.c~ext3-dirindex-error-pointer-issues-fix +++ a/fs/ext3/namei.c @@ -1197,8 +1197,8 @@ journal_error: brelse(*bh); brelse(bh2); *bh = NULL; -errout: ext3_std_error(dir->i_sb, err); +errout: *error = err; return NULL; } diff -puN fs/ext4/namei.c~ext3-dirindex-error-pointer-issues-fix fs/ext4/namei.c --- a/fs/ext4/namei.c~ext3-dirindex-error-pointer-issues-fix +++ a/fs/ext4/namei.c @@ -1195,8 +1195,8 @@ journal_error: brelse(*bh); brelse(bh2); *bh = NULL; -errout: ext4_std_error(dir->i_sb, err); +errout: *error = err; return NULL; } _