During code analysis I found that
LU-6401 brakes ENOSPC handling logic in OSP.
osp_precreate_send() returns -ESTALE when OST can't precreate objects i.e. -ENOSPACE:
However it is not correct. In case of -ENOSPC on OST, MDS should get -ENOSPC.
For example osp_precreat_reserve() forces local commit to release space and waits for OBD_TIMEOUT.
I think "
LU-6401 uapi: fix up lustre_ostid.h and lustre_fid.h" broke this logic:
After the patch OST returns 0 in case when osp_precreate_objects() returns -ENOSPC.