From d4532fbf06d392212463355e2ba1525e9aea97eb Mon Sep 17 00:00:00 2001 From: Nathaniel Clark Date: Mon, 15 Jul 2013 13:52:11 -0400 Subject: [PATCH] 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 --- lustre/osp/osp_precreate.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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; } -- 1.8.3.1