Whamcloud - gitweb
in getattr requests, get the authoritative file size from the OST
[fs/lustre-release.git] / lustre / include / linux / obd_support.h
index ac82272..c7d1328 100644 (file)
@@ -30,6 +30,8 @@
 /* global variables */
 extern unsigned long obd_memory;
 extern unsigned long obd_fail_loc;
+extern unsigned long obd_timeout;
+extern char obd_recovery_upcall[128];
 
 #define OBD_FAIL_MDS                     0x100
 #define OBD_FAIL_MDS_HANDLE_UNPACK       0x101
@@ -55,7 +57,13 @@ extern unsigned long obd_fail_loc;
 #define OBD_FAIL_MDS_CLOSE_NET           0x115
 #define OBD_FAIL_MDS_CLOSE_PACK          0x116
 #define OBD_FAIL_MDS_CONNECT_NET         0x117
-#define OBD_FAIL_MDS_CONNECT_PACK       0x118
+#define OBD_FAIL_MDS_CONNECT_PACK        0x118
+#define OBD_FAIL_MDS_REINT_NET_REP       0x119
+#define OBD_FAIL_MDS_DISCONNECT_NET      0x11a
+#define OBD_FAIL_MDS_GETSTATUS_NET       0x11b
+#define OBD_FAIL_MDS_GETSTATUS_PACK      0x11c
+#define OBD_FAIL_MDS_STATFS_PACK         0x11d
+#define OBD_FAIL_MDS_STATFS_NET          0x11e
 
 #define OBD_FAIL_OST                     0x200
 #define OBD_FAIL_OST_CONNECT_NET         0x201
@@ -69,13 +77,24 @@ extern unsigned long obd_fail_loc;
 #define OBD_FAIL_OST_CLOSE_NET           0x209
 #define OBD_FAIL_OST_BRW_NET             0x20a
 #define OBD_FAIL_OST_PUNCH_NET           0x20b
+#define OBD_FAIL_OST_STATFS_NET          0x20c
+#define OBD_FAIL_OST_HANDLE_UNPACK       0x20d
+#define OBD_FAIL_OST_BRW_WRITE_BULK      0x20e
+#define OBD_FAIL_OST_BRW_READ_BULK       0x20f
 
-#define OBB_FAIL_LDLM                    0x300
+#define OBD_FAIL_LDLM                    0x300
 #define OBD_FAIL_LDLM_NAMESPACE_NEW      0x301
 #define OBD_FAIL_LDLM_ENQUEUE            0x302
 #define OBD_FAIL_LDLM_CONVERT            0x303
 #define OBD_FAIL_LDLM_CANCEL             0x304
-#define OBD_FAIL_LDLM_CALLBACK           0x305
+#define OBD_FAIL_LDLM_BL_CALLBACK        0x305
+#define OBD_FAIL_LDLM_CP_CALLBACK        0x306
+
+#define OBD_FAIL_OSC                     0x400
+#define OBD_FAIL_OSC_BRW_READ_BULK       0x401
+#define OBD_FAIL_OSC_BRW_WRITE_BULK      0x402
+#define OBD_FAIL_OSC_LOCK_BL_AST         0x403
+#define OBD_FAIL_OSC_LOCK_BL_REPLY       0x404
 
 /* preparation for a more advanced failure testbed (not functional yet) */
 #define OBD_FAIL_MASK_SYS    0x0000FF00
@@ -94,6 +113,8 @@ do {                                                                         \
         if (OBD_FAIL_CHECK(id)) {                                            \
                 CERROR("obd_fail_loc=%x, fail operation rc=%d\n", id, ret);  \
                 obd_fail_loc |= OBD_FAILED;                                  \
+                if ((id) & OBD_FAIL_ONCE)                                    \
+                        obd_fail_loc |= OBD_FAIL_ONCE;                       \
                 RETURN(ret);                                                 \
         }                                                                    \
 } while(0)
@@ -101,6 +122,8 @@ do {                                                                         \
 #include <linux/types.h>
 #include <linux/blkdev.h>
 
+#define fixme() CDEBUG(D_OTHER, "FIXME\n");
+
 static inline void OBD_FAIL_WRITE(int id, kdev_t dev)
 {
         if (OBD_FAIL_CHECK(id)) {
@@ -117,28 +140,28 @@ static inline void OBD_FAIL_WRITE(int id, kdev_t dev)
         }
 }
 
-#define OBD_ALLOC(ptr, size)                                    \
-do {                                                            \
-        long s = (size);                                        \
-        (ptr) = kmalloc(s, GFP_KERNEL);                         \
-        if ((ptr) == NULL) {                                    \
-                CERROR("kmalloc of '" #ptr "' (%ld bytes) failed " \
-                       "at %s:%d\n", s, __FILE__, __LINE__);    \
-        } else {                                                \
-                memset((ptr), 0, s);                            \
-                obd_memory += s;                                \
-                CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %ld at "\
-                       "%p (tot %ld).\n", s, (ptr), obd_memory);\
-        }                                                       \
+#define OBD_ALLOC(ptr, size)                                            \
+do {                                                                    \
+        long s = (size);                                                \
+        (ptr) = kmalloc(s, GFP_KERNEL);                                 \
+        if ((ptr) == NULL) {                                            \
+                CERROR("kmalloc of '" #ptr "' (%ld bytes) failed "      \
+                       "at %s:%d\n", s, __FILE__, __LINE__);            \
+        } else {                                                        \
+                memset((ptr), 0, s);                                    \
+                obd_memory += s;                                        \
+                CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %ld at "        \
+                       "%p (tot %ld).\n", s, (ptr), obd_memory);        \
+        }                                                               \
 } while (0)
 
-#define OBD_FREE(ptr, size)                                     \
-do {                                                            \
-        int s = (size);                                         \
-        kfree((ptr));                                           \
-        CDEBUG(D_MALLOC, "kfreed '" #ptr "': %d at %p (tot %ld).\n",       \
-               s, (ptr), obd_memory);                      \
-        obd_memory -= s;                                        \
+#define OBD_FREE(ptr, size)                                             \
+do {                                                                    \
+        int s = (size);                                                 \
+        kfree((ptr));                                                   \
+        obd_memory -= s;                                                \
+        CDEBUG(D_MALLOC, "kfreed '" #ptr "': %d at %p (tot %ld).\n",    \
+               s, (ptr), obd_memory);                                   \
 } while (0)
 
 #endif