summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
eb5c64a)
modify ready condition for osp_precreate_reserve() so that
it ignores -ENODEV and instead rely on expiration mechanism.
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Change-Id: Id59e75bb17c603140616f34e08c98a6f31f10a8d
Reviewed-on: http://review.whamcloud.com/4847
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: wangdi <di.wang@intel.com>
Reviewed-by: Li Wei <wei.g.li@intel.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
/* ready if OST reported no space and no destoys in progress */
if (d->opd_syn_changes + d->opd_syn_rpc_in_progress == 0 &&
/* ready if OST reported no space and no destoys in progress */
if (d->opd_syn_changes + d->opd_syn_rpc_in_progress == 0 &&
- d->opd_pre_status != 0)
+ d->opd_pre_status == -ENOSPC)
LASSERT(d->opd_pre_last_created >= d->opd_pre_used_id);
LASSERT(d->opd_pre_last_created >= d->opd_pre_used_id);
- lwi = LWI_TIMEOUT(cfs_time_seconds(obd_timeout),
- osp_precreate_timeout_condition, d);
-
/*
* wait till:
* - preallocation is done
/*
* wait till:
* - preallocation is done
*/
while ((rc = d->opd_pre_status) == 0 || rc == -ENOSPC ||
rc == -ENODEV) {
*/
while ((rc = d->opd_pre_status) == 0 || rc == -ENOSPC ||
rc == -ENODEV) {
- if (unlikely(rc == -ENODEV)) {
- if (cfs_time_aftereq(cfs_time_current(), expire))
- break;
- }
#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 3, 90, 0)
/*
#if LUSTRE_VERSION_CODE < OBD_OCD_VERSION(2, 3, 90, 0)
/*
/* XXX: don't wake up if precreation is in progress */
cfs_waitq_signal(&d->opd_pre_waitq);
/* XXX: don't wake up if precreation is in progress */
cfs_waitq_signal(&d->opd_pre_waitq);
+ lwi = LWI_TIMEOUT(expire - cfs_time_current(),
+ osp_precreate_timeout_condition, d);
+ if (cfs_time_aftereq(cfs_time_current(), expire))
+ break;
+
l_wait_event(d->opd_pre_user_waitq,
osp_precreate_ready_condition(d), &lwi);
}
l_wait_event(d->opd_pre_user_waitq,
osp_precreate_ready_condition(d), &lwi);
}