Whamcloud - gitweb
LU-13608 out: don't return einprogress error
[fs/lustre-release.git] / lustre / osd-ldiskfs / osd_handler.c
index 35b248b..3948b6d 100644 (file)
@@ -1183,13 +1183,15 @@ trigger:
                if (scrub->os_partial_scan && !scrub->os_in_join)
                        goto join;
 
-               if (IS_ERR_OR_NULL(inode) || result)
+               osd_add_oi_cache(info, dev, id, fid);
+               if (IS_ERR_OR_NULL(inode) || result) {
+                       osd_oii_insert(dev, oic, result == -ENOENT);
                        GOTO(out, result = -EINPROGRESS);
+               }
 
                LASSERT(remote);
                LASSERT(obj->oo_inode == inode);
 
-               osd_add_oi_cache(info, dev, id, fid);
                osd_oii_insert(dev, oic, true);
                goto found;
        }
@@ -1212,13 +1214,15 @@ join:
        if (rc1 && rc1 != -EALREADY)
                GOTO(out, result = -EREMCHG);
 
-       if (IS_ERR_OR_NULL(inode) || result)
+       osd_add_oi_cache(info, dev, id, fid);
+       if (IS_ERR_OR_NULL(inode) || result) {
+               osd_oii_insert(dev, oic, result == -ENOENT);
                GOTO(out, result = -EINPROGRESS);
+       }
 
        LASSERT(remote);
        LASSERT(obj->oo_inode == inode);
 
-       osd_add_oi_cache(info, dev, id, fid);
        osd_oii_insert(dev, oic, true);
        goto found;