Whamcloud - gitweb
LU-3230 osp: bail out of precreate_reserve on I/O errors
authorNathaniel Clark <nathaniel.l.clark@intel.com>
Mon, 15 Jul 2013 17:52:11 +0000 (13:52 -0400)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 8 Aug 2013 06:10:27 +0000 (02:10 -0400)
Allow osp_precreate_reserve to propogate error if
precreate_cleanup_ophans recives EIO.

Test-Parameters: testgroup=review-zfs
Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: Ib6a109df82be610a21391777b9c293d78b2114e6
Reviewed-on: http://review.whamcloud.com/6988
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Li Wei <wei.g.li@intel.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/osp/osp_precreate.c

index 18e11cb..ff6beb6 100644 (file)
@@ -1009,11 +1009,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;
 }