The CEF_NONBLOCK flag in cld_enq_flags is required for the
old Cray-only server release of lockahead. In the more
recent versions, the required nonblocking behavior (on the
server side) is associated with LDLM_FL_SPECULATIVE, not
with the combination of LDLM_FL_NO_EXPAND and
LDLM_FL_BLOCK_NOWAIT (as was done in the old
implementation).
Now we control 'speculative' or not with the async flag
from userspace.
Now that we've removed OBD_CONNECT_LOCKAHEAD_OLD support
from the client, we should be good to go there.
The existing testing explores both sync and async requests,
and should be enough to verify this is OK.
Signed-off-by: Patrick Farrell <farr0186@gmail.com>
Change-Id: Ia3605eb22e6a6a88fb6e431286b697e2e2a1908e
Reviewed-on: https://review.whamcloud.com/38179
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
descr->cld_mode = cl_mode;
/* CEF_MUST is used because we do not want to convert a
* lockahead request to a lockless lock */
- descr->cld_enq_flags = CEF_MUST | CEF_LOCK_NO_EXPAND |
- CEF_NONBLOCK;
+ descr->cld_enq_flags = CEF_MUST | CEF_LOCK_NO_EXPAND;
if (ladvise->lla_peradvice_flags & LF_ASYNC)
descr->cld_enq_flags |= CEF_SPECULATIVE;