Whamcloud - gitweb
move mds_check_mds_num right after fill_inode to avoid race.
authorwangdi <wangdi>
Fri, 4 Jun 2004 11:47:07 +0000 (11:47 +0000)
committerwangdi <wangdi>
Fri, 4 Jun 2004 11:47:07 +0000 (11:47 +0000)
lustre/mds/handler.c

index b0b9454..6b20e03 100644 (file)
@@ -949,15 +949,17 @@ static int mds_getattr_name(int offset, struct ptlrpc_request *req,
         cleanup_phase = 2; /* dchild, dparent, locks */
 
 fill_inode:
+        if (dparent) {
+                rc = mds_check_mds_num(obd, dparent->d_cache_inode, name,
+                                       namesize);
+                if (rc)
+                        GOTO(cleanup, rc); 
+        }
         if (!DENTRY_VALID(dchild)) {
                 intent_set_disposition(rep, DISP_LOOKUP_NEG);
                 /* in the intent case, the policy clears this error:
                    the disposition is enough */
                 rc = -ENOENT;
-                if (dparent) {
-                        rc = mds_check_mds_num(obd, dparent->d_inode, name,
-                                               namesize);
-                }
                 GOTO(cleanup, rc);
         } else {
                 intent_set_disposition(rep, DISP_LOOKUP_POS);