Whamcloud - gitweb
LU-6856 zfs: handle non existing file in osd_object_ref_del 11/15611/3
authorJinshan Xiong <jinshan.xiong@intel.com>
Mon, 1 Jun 2015 18:08:07 +0000 (11:08 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 4 Dec 2015 17:57:58 +0000 (17:57 +0000)
Remove false assertion in zfs:osd_object_ref_del() because this
may be in the cleanning path of error handling.

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Ib7b9d80816bdab7f68b36a33e95140ea7f3eae8c
Reviewed-on: http://review.whamcloud.com/15611
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
lustre/osd-zfs/osd_object.c

index 2dc0370..d59aa91 100644 (file)
@@ -1525,8 +1525,10 @@ static int osd_object_ref_add(const struct lu_env *env,
 
        ENTRY;
 
+       if (!dt_object_exists(dt))
+               RETURN(-ENOENT);
+
        LASSERT(osd_invariant(obj));
-       LASSERT(dt_object_exists(dt));
        LASSERT(obj->oo_sa_hdl != NULL);
 
        oh = container_of0(handle, struct osd_thandle, ot_super);
@@ -1573,7 +1575,7 @@ static int osd_object_ref_del(const struct lu_env *env,
        write_unlock(&obj->oo_attr_lock);
 
        rc = osd_object_sa_update(obj, SA_ZPL_LINKS(osd), &nlink, 8, oh);
-       return rc;
+       RETURN(rc);
 }
 
 static int osd_object_sync(const struct lu_env *env, struct dt_object *dt,