mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-26 20:58:33 +00:00
staging/lustre: lov_io_init() should return error code
lov_io_init_empty/release() should returns error code instead of true on error case. Fault IO needs to handle restart in the case of accessing HSM released file Signed-off-by: Bobi Jam <bobijam.xu@intel.com> Reviewed-on: http://review.whamcloud.com/17240 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7446 Reviewed-by: John L. Hammond <john.hammond@intel.com> Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com> Signed-off-by: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6cead36d28
commit
30889c72a9
@ -123,6 +123,7 @@ ll_fault_io_init(struct vm_area_struct *vma, struct lu_env **env_ret,
|
||||
|
||||
*env_ret = env;
|
||||
|
||||
restart:
|
||||
io = vvp_env_thread_io(env);
|
||||
io->ci_obj = ll_i2info(inode)->lli_clob;
|
||||
LASSERT(io->ci_obj);
|
||||
@ -157,6 +158,9 @@ ll_fault_io_init(struct vm_area_struct *vma, struct lu_env **env_ret,
|
||||
} else {
|
||||
LASSERT(rc < 0);
|
||||
cl_io_fini(env, io);
|
||||
if (io->ci_need_restart)
|
||||
goto restart;
|
||||
|
||||
cl_env_nested_put(nest, env);
|
||||
io = ERR_PTR(rc);
|
||||
}
|
||||
|
@ -916,7 +916,7 @@ int lov_io_init_empty(const struct lu_env *env, struct cl_object *obj,
|
||||
}
|
||||
|
||||
io->ci_result = result < 0 ? result : 0;
|
||||
return result != 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
int lov_io_init_released(const struct lu_env *env, struct cl_object *obj,
|
||||
@ -959,7 +959,7 @@ int lov_io_init_released(const struct lu_env *env, struct cl_object *obj,
|
||||
}
|
||||
|
||||
io->ci_result = result < 0 ? result : 0;
|
||||
return result != 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
/** @} lov */
|
||||
|
@ -133,6 +133,7 @@ void cl_io_fini(const struct lu_env *env, struct cl_io *io)
|
||||
case CIT_WRITE:
|
||||
break;
|
||||
case CIT_FAULT:
|
||||
break;
|
||||
case CIT_FSYNC:
|
||||
LASSERT(!io->ci_need_restart);
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user