/* 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
#define OBD_FAIL_MDS_OPEN_PACK 0x114
#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_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
#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
/* preparation for a more advanced failure testbed (not functional yet) */
#define OBD_FAIL_MASK_SYS 0x0000FF00
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)
#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)) {
}
}
-#define OBD_ALLOC(ptr, size) \
-do { \
- long s = (size); \
- (ptr) = kmalloc(s, GFP_KERNEL); \
- if ((ptr) == NULL) { \
- CERROR("kernel malloc of %ld bytes failed at " \
- "%s:%d\n", s, __FILE__, __LINE__); \
- } else { \
- memset((ptr), 0, s); \
- obd_memory += s; \
- } \
- CDEBUG(D_MALLOC, "kmalloced: %ld at %x (tot %ld).\n", \
- s, (int)(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: %d at %x (tot %ld).\n", \
- s, (int)(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