Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
unlink should not fail with -EINVAL
ll_unlink() should to return -ESTALE to trigger d_revalidate
instead of failing with -EINVAL.
debug code shows the origin of the -EINVAL at the client is coming from a failed req with rq_status = -EINVAL:
__x64_sys_unlink+0x23/0x30 do_unlinkat+0x292/0x2f0 vfs_unlink+0xf6/0x1d0 ll_unlink+0x38b/0x7b0 [lustre] lmv_unlink+0x25c/0x760 [lmv] mdc_unlink+0x218/0x680 [mdc] mdc_reint+0x22/0xd0 [mdc] ptlrpc_queue_wait+0x86/0x240 [ptlrpc] ... rc = set->set_rc; list_for_each_entry(req, &set->set_requests, rq_set_chain) { LASSERT(req->rq_phase == RQ_PHASE_COMPLETE); if (req->rq_status != 0) rc = req->rq_status; <----- -EINVAL } ...