The fid could change in the Statahead, so the entry should
be skipped in such case.
(lcommon_cl.c:147:cl_file_inode_init()) ASSERTION(
(((inode->i_mode) &
00170000) == 0100000) ) failed:
kernel: LustreError:(lcommon_cl.c:147:cl_file_inode_init()) LBUG
kernel: Pid: 106684, comm: ll_sa_94894 3.10.0-957.el7.x86_64 #1
kernel: Call Trace:
kernel: [<
ffffffffc08587cc>] libcfs_call_trace+0x8c/0xc0 [libcfs]
kernel: [<
ffffffffc085887c>] lbug_with_loc+0x4c/0xa0 [libcfs]
kernel: [<
ffffffffc0e22ba6>] cl_file_inode_init+0x2f6/0x380 [lustre]
kernel: [<
ffffffffc0dfdce5>] ll_update_inode+0x2d5/0x5e0 [lustre]
kernel: [<
ffffffffc0e0afa3>] ll_iget+0x253/0x350 [lustre]
kernel: [<
ffffffffc0dffcf2>] ll_prep_inode+0x262/0x930 [lustre]
kernel: [<
ffffffffc0e1cc2c>] sa_handle_callback+0x37c/0x9d0 [lustre]
kernel: [<
ffffffffc0e1e156>] ll_statahead_thread+0x4d6/0x1c60 [lustre]
kernel: [<
ffffffffa64c1c31>] kthread+0xd1/0xe0
kernel: [<
ffffffffa6b74c1d>] ret_from_fork_nospec_begin+0x7/0x21
Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: Ieee99cc935a111cf05f65b64512b546d2e9b3c74
Reviewed-on: https://review.whamcloud.com/37868
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexander Boyko <alexander.boyko@hpe.com>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
GOTO(out, rc = -EFAULT);
child = entry->se_inode;
- if (child) {
- /* revalidate; unlinked and re-created with the same name */
- if (unlikely(!lu_fid_eq(&minfo->mi_data.op_fid2,
- &body->mbo_fid1))) {
+ /* revalidate; unlinked and re-created with the same name */
+ if (unlikely(!lu_fid_eq(&minfo->mi_data.op_fid2, &body->mbo_fid1))) {
+ if (child) {
entry->se_inode = NULL;
iput(child);
- child = NULL;
}
+ /* The mdt_body is invalid. Skip this entry */
+ GOTO(out, rc = -EAGAIN);
}
it->it_lock_handle = entry->se_handle;