ZFS can return EEXIST if object exists but is being destroyed.
Specifically see dnode_hold_impl()
Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: Id99b406b2f02a1337b9f1566fba30dbced755d5d
Reviewed-on: http://review.whamcloud.com/18054
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Tested-by: Jenkins
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
if (rc == 0) {
LASSERT(obj->oo_db == NULL);
rc = __osd_obj2dbuf(env, osd->od_os, oid, &obj->oo_db);
+ /* EEXIST will be returned if object is being deleted in ZFS */
+ if (rc == -EEXIST) {
+ rc = 0;
+ GOTO(out, rc);
+ }
if (rc != 0) {
CERROR("%s: lookup "DFID"/"LPX64" failed: rc = %d\n",
osd->od_svname, PFID(lu_object_fid(l)), oid, rc);