a client can get evicted during OST_READ's bulk so it's LDLM
lock is cancelled and OST_DESTOY can remove the object.
ofd_commitrw_read() still needs to release the buffers and
ignore the object doesn't exist.
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Ibe9413de41c23b1b4f6d52e9b17a06590b3c0726
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/49255
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Patrick Farrell <farr0186@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
fo = ofd_info(env)->fti_obj;
LASSERT(fo != NULL);
- LASSERT(ofd_object_exists(fo));
+ /*
+ * there is no guarantee the object still exists as the client
+ * behind this RPC could have been evicted allowing concurrent
+ * OST_DESTROY to remove the object.
+ */
dt_bufs_put(env, ofd_object_child(fo), lnb, niocount);
ofd_object_put(env, fo);