Whamcloud - gitweb
b=1505
authorphil <phil>
Fri, 5 Dec 2003 03:20:24 +0000 (03:20 +0000)
committerphil <phil>
Fri, 5 Dec 2003 03:20:24 +0000 (03:20 +0000)
r=shaver
Print a much more meaningful error when a client is rejected because a
service node is waiting for recoverable clients.

lustre/ChangeLog
lustre/llite/llite_lib.c

index 1264aa7..2bb4fd2 100644 (file)
@@ -19,6 +19,7 @@ tbd         Cluster File Systems, Inc. <info@clusterfs.com>
        - fix a rare lock re-ordering bug, which caused deadlock (2322)
        - fix i_sem/journal inversion in fsfilt_ext3_write_record (2306)
        - protect MDS inode fsdata with stronger locking (2313)
+       - better error messages when a client is rejected during recovery (1505)
        * miscellania
        - allow configurable automake binary, for testing new versions
        - small update to the lfs documentation
index deaa355..d093a93 100644 (file)
@@ -103,7 +103,12 @@ int lustre_common_fill_super(struct super_block *sb, char *mdc, char *osc)
         mdc_init_ea_size(obd, osc);
 
         err = obd_connect(&mdc_conn, obd, &sbi->ll_sb_uuid);
-        if (err) {
+        if (err == -EBUSY) {
+                CERROR("An MDS (mdc %s) is performing recovery, of which this"
+                       " client is not a part.  Please wait for recovery to "
+                       "complete, abort, or time out.\n", mdc);
+                GOTO(out, err);
+        } else if (err) {
                 CERROR("cannot connect to %s: rc = %d\n", mdc, err);
                 GOTO(out, err);
         }
@@ -130,7 +135,12 @@ int lustre_common_fill_super(struct super_block *sb, char *mdc, char *osc)
         }
 
         err = obd_connect(&osc_conn, obd, &sbi->ll_sb_uuid);
-        if (err) {
+        if (err == -EBUSY) {
+                CERROR("An OST (osc %s) is performing recovery, of which this"
+                       " client is not a part.  Please wait for recovery to "
+                       "complete, abort, or time out.\n", osc);
+                GOTO(out, err);
+        } else if (err) {
                 CERROR("cannot connect to %s: rc = %d\n", osc, err);
                 GOTO(out_mdc, err);
         }