From: Nathaniel Clark Date: Mon, 15 Jul 2013 17:52:11 +0000 (-0400) Subject: LU-3230 osp: bail out of precreate_reserve on I/O errors X-Git-Tag: 2.4.90~20 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=d4532fbf06d392212463355e2ba1525e9aea97eb;p=fs%2Flustre-release.git LU-3230 osp: bail out of precreate_reserve on I/O errors Allow osp_precreate_reserve to propogate error if precreate_cleanup_ophans recives EIO. Test-Parameters: testgroup=review-zfs Signed-off-by: Nathaniel Clark Change-Id: Ib6a109df82be610a21391777b9c293d78b2114e6 Reviewed-on: http://review.whamcloud.com/6988 Reviewed-by: Alex Zhuravlev Reviewed-by: Li Wei Tested-by: Hudson Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/osp/osp_precreate.c b/lustre/osp/osp_precreate.c index 11dd60c..329ae47 100644 --- a/lustre/osp/osp_precreate.c +++ b/lustre/osp/osp_precreate.c @@ -1002,11 +1002,15 @@ static int osp_precreate_ready_condition(const struct lu_env *env, if (d->opd_pre_reserved + 1 < osp_objs_precreated(env, d)) return 1; - /* ready if OST reported no space and no destoys in progress */ + /* ready if OST reported no space and no destroys in progress */ if (d->opd_syn_changes + d->opd_syn_rpc_in_progress == 0 && d->opd_pre_status == -ENOSPC) return 1; + /* Bail out I/O fails to OST */ + if (d->opd_pre_status == -EIO) + return 1; + return 0; }