This patch try to fix following panic:
(ofd_internal.h:440:tsi2ofd_info()) ASSERTION( info->fti_attr.la_valid == 0 ) failed:
(ofd_internal.h:440:tsi2ofd_info()) LBUG
[ 5321.108598] Call Trace:
[ 5321.109347] [<
ffffffffc06fc8bc>] libcfs_call_trace+0x8c/0xc0 [libcfs]
[ 5321.111342] [<
ffffffffc06fc96c>] lbug_with_loc+0x4c/0xa0 [libcfs]
[ 5321.113026] [<
ffffffffc147631a>] ofd_preprw+0xcfa/0x1160 [ofd]
[ 5321.114643] [<
ffffffffc0bb934c>] tgt_brw_write+0xc7c/0x1cf0 [ptlrpc]
[ 5321.116373] [<
ffffffffc0bbc50a>] tgt_request_handle+0x91a/0x15c0 [ptlrpc]
[ 5321.118230] [<
ffffffffc0b61636>] ptlrpc_server_handle_request+0x256/0xb00 [ptlrpc]
[ 5321.120318] [<
ffffffffc0b6516c>] ptlrpc_main+0xbac/0x1560 [ptlrpc]
[ 5321.122001] [<
ffffffff84cc1c31>] kthread+0xd1/0xe0
[ 5321.123023] [<
ffffffff85374c37>] ret_from_fork_nospec_end+0x0/0x39
[ 5321.124066] [<
ffffffffffffffff>] 0xffffffffffffffff
If this is server lock, tgt_brw_lock() will finally call
ofd_lvbo_update() upon lock canceling which will use @fti_attr
and pollute value:
|->ptlrpc_main
|->lu_context_enter(le_ctx)
|->tgt_brw_write
|->tgt_brw_lock
|->tgt_extent_lock
|->ldlm_cli_enqueue_local
|->ldlm_lock_enqueue
|->ldlm_run_ast_work
|->ptlrpc_check_set
|->ldlm_cb_interpret
|->ldlm_handle_ast_error
|->ofd_lvbo_update
|->ofd_attr_get polluted @info->fti_attr
|->tgt_brw_write
|->ofd_preprw
|->tsi2ofd_info
|->ASSERTION(info->fti_attr.la_valid == 0)
|->lu_context_exit(le_ctx)--->memset @fti_attr
To fix this problem, reset fti_attr->la_valid before
ofd_lvbo_update() return just like what offd_lvbo_init() did.
Lustre-change: https://review.whamcloud.com/35685
Lustre-commit:
8ffbe6b82fac1d3e4d4391bcba74dc2ee1411a69
Change-Id: Ib6b448dd21603cfe0305d8425862a96ef3f7fee8
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Minh Diep <mdiep@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/44269
Reviewed-by: Wang Shilong <wangshilong1991@gmail.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>