Whamcloud - gitweb
LU-14711 tests: Ensure there's no eviction with long cache discard
[fs/lustre-release.git] / lustre / include / obd_support.h
index 3edec56..83e9f09 100644 (file)
@@ -27,7 +27,6 @@
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
  */
 
 #ifndef _OBD_SUPPORT
@@ -233,6 +232,7 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_MDS_FLD_LOOKUP                        0x15c
 #define OBD_FAIL_MDS_CHANGELOG_REORDER 0x15d
 #define OBD_FAIL_MDS_LLOG_UMOUNT_RACE   0x15e
+#define OBD_FAIL_MDS_CHANGELOG_RACE     0x15f
 #define OBD_FAIL_MDS_INTENT_DELAY              0x160
 #define OBD_FAIL_MDS_XATTR_REP                 0x161
 #define OBD_FAIL_MDS_TRACK_OVERFLOW     0x162
@@ -242,6 +242,10 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_MDS_RMFID_NET          0x166
 #define OBD_FAIL_MDS_CREATE_RACE        0x167
 #define OBD_FAIL_MDS_STATFS_SPOOF       0x168
+#define OBD_FAIL_MDS_REINT_OPEN                 0x169
+#define OBD_FAIL_MDS_REINT_OPEN2        0x16a
+#define OBD_FAIL_MDS_COMMITRW_DELAY     0x16b
+#define OBD_FAIL_MDS_CHANGELOG_DEL      0x16c
 
 /* layout lock */
 #define OBD_FAIL_MDS_NO_LL_GETATTR      0x170
@@ -259,6 +263,7 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_MDS_DQACQ_NET           0x187
 #define OBD_FAIL_MDS_STRIPE_CREATE      0x188
 #define OBD_FAIL_MDS_STRIPE_FID                 0x189
+#define OBD_FAIL_MDS_LINK_RENAME_RACE   0x18a
 
 /* OI scrub */
 #define OBD_FAIL_OSD_SCRUB_DELAY                       0x190
@@ -274,6 +279,8 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_OSD_TXN_START                         0x19a
 #define OBD_FAIL_OSD_DUPLICATE_MAP                     0x19b
 #define OBD_FAIL_OSD_REF_DEL                           0x19c
+#define OBD_FAIL_OSD_OI_ENOSPC                         0x19d
+#define OBD_FAIL_OSD_DOTDOT_ENOSPC                     0x19e
 
 #define OBD_FAIL_OFD_SET_OID                           0x1e0
 
@@ -341,6 +348,7 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_OST_FALLOCATE_NET      0x249
 #define OBD_FAIL_OST_SEEK_NET           0x24a
 #define OBD_FAIL_OST_WR_ATTR_DELAY      0x250
+#define OBD_FAIL_OST_RESTART_IO                 0x251
 
 #define OBD_FAIL_LDLM                    0x300
 #define OBD_FAIL_LDLM_NAMESPACE_NEW      0x301
@@ -388,6 +396,8 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_LDLM_GRANT_CHECK        0x32a
 #define OBD_FAIL_LDLM_PROLONG_PAUSE     0x32b
 #define OBD_FAIL_LDLM_LOCAL_CANCEL_PAUSE 0x32c
+#define OBD_FAIL_LDLM_LOCK_REPLAY       0x32d
+#define OBD_FAIL_LDLM_REPLAY_PAUSE      0x32e
 
 /* LOCKLESS IO */
 #define OBD_FAIL_LDLM_SET_CONTENTION     0x385
@@ -415,6 +425,7 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_OSC_DELAY_IO            0x414
 #define OBD_FAIL_OSC_NO_SIZE_DATA        0x415
 #define OBD_FAIL_OSC_DELAY_CANCEL        0x416
+#define OBD_FAIL_OSC_SLOW_PAGE_EVICT    0x417
 
 #define OBD_FAIL_PTLRPC                  0x500
 #define OBD_FAIL_PTLRPC_ACK              0x501
@@ -447,6 +458,9 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_PTLRPC_RESEND_RACE     0x525
 #define OBD_FAIL_PTLRPC_ROUND_XID       0x530
 #define OBD_FAIL_PTLRPC_CONNECT_RACE    0x531
+#define OBD_FAIL_NET_ERROR_RPC          0x532
+#define OBD_FAIL_PTLRPC_IDLE_RACE       0x533
+#define OBD_FAIL_PTLRPC_ENQ_RESEND      0x534
 
 #define OBD_FAIL_OBD_PING_NET            0x600
 /*     OBD_FAIL_OBD_LOG_CANCEL_NET      0x601 obsolete since 1.5 */
@@ -560,6 +574,7 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_PLAIN_RECORDS                     0x1319
 #define OBD_FAIL_CATALOG_FULL_CHECK                0x131a
 #define OBD_FAIL_CATLIST                           0x131b
+#define OBD_FAIL_LLOG_PAUSE_AFTER_PAD               0x131c
 
 #define OBD_FAIL_LLITE                              0x1400
 #define OBD_FAIL_LLITE_FAULT_TRUNC_RACE             0x1401
@@ -584,6 +599,9 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_LLITE_PCC_ATTACH_PAUSE                    0x1414
 #define OBD_FAIL_LLITE_SHORT_COMMIT                0x1415
 #define OBD_FAIL_LLITE_CREATE_FILE_PAUSE2          0x1416
+#define OBD_FAIL_LLITE_RACE_MOUNT                  0x1417
+#define OBD_FAIL_LLITE_PAGE_ALLOC                  0x1418
+#define OBD_FAIL_LLITE_OPEN_DELAY                  0x1419
 
 #define OBD_FAIL_FID_INDIR     0x1501
 #define OBD_FAIL_FID_INLMA     0x1502
@@ -649,6 +667,7 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_OUT_ENOSPC             0x1704
 #define OBD_FAIL_INVALIDATE_UPDATE     0x1705
 #define OBD_FAIL_OUT_UPDATE_DROP        0x1707
+#define OBD_FAIL_OUT_OBJECT_MISS       0x1708
 
 /* MIGRATE */
 #define OBD_FAIL_MIGRATE_ENTRIES               0x1801
@@ -697,6 +716,7 @@ extern char obd_jobid_var[];
 #define OBD_FAIL_OSP_CANT_PROCESS_LLOG         0x2105
 #define OBD_FAIL_OSP_INVALID_LOGID             0x2106
 #define OBD_FAIL_OSP_CON_EVENT_DELAY           0x2107
+#define OBD_FAIL_OSP_PRECREATE_PAUSE           0x2108
 
 /* barrier */
 #define OBD_FAIL_MGS_BARRIER_READ_NET          0x2200
@@ -824,8 +844,7 @@ do {                                                                              \
 #define __OBD_VMALLOC_VERBOSE(ptr, cptab, cpt, size)                         \
 do {                                                                         \
        (ptr) = cptab == NULL ?                                               \
-               __vmalloc(size, GFP_NOFS | __GFP_HIGHMEM | __GFP_ZERO,        \
-                         PAGE_KERNEL) :                                      \
+               __ll_vmalloc(size, GFP_NOFS | __GFP_HIGHMEM | __GFP_ZERO) :   \
                cfs_cpt_vzalloc(cptab, cpt, size);                            \
        if (unlikely((ptr) == NULL)) {                                        \
                CERROR("vmalloc of '" #ptr "' (%d bytes) failed\n",           \
@@ -891,7 +910,7 @@ do {                                                                              \
        if (is_vmalloc_addr(ptr)) {                                           \
                OBD_FREE_PRE(ptr, size, "vfreed");                            \
                POISON(ptr, 0x5a, size);                                      \
-               vfree(ptr);                                                   \
+               libcfs_vfree_atomic(ptr);                                     \
                POISON_PTR(ptr);                                              \
        } else {                                                              \
                OBD_FREE(ptr, size);                                          \
@@ -961,6 +980,7 @@ do {                                                                          \
 #define KEY_IS(str) \
         (keylen >= (sizeof(str)-1) && memcmp(key, str, (sizeof(str)-1)) == 0)
 
+#ifdef HAVE_SERVER_SUPPORT
 /* LUSTRE_LMA_FL_MASKS defines which flags will be stored in LMA */
 
 static inline int lma_to_lustre_flags(__u32 lma_flags)
@@ -974,6 +994,7 @@ static inline int lustre_to_lma_flags(__u32 la_flags)
        return (((la_flags & LUSTRE_ORPHAN_FL) ? LMAI_ORPHAN : 0) |
                ((la_flags & LUSTRE_ENCRYPT_FL) ? LMAI_ENCRYPT : 0));
 }
+#endif /* HAVE_SERVER_SUPPORT */
 
 /* Convert wire LUSTRE_*_FL to corresponding client local VFS S_* values
  * for the client inode i_flags.  The LUSTRE_*_FL are the Lustre wire
@@ -982,28 +1003,28 @@ static inline int lustre_to_lma_flags(__u32 la_flags)
  * versions. These flags are set/cleared via FSFILT_IOC_{GET,SET}_FLAGS.
  * See b=16526 for a full history.
  */
-static inline int ll_ext_to_inode_flags(int flags)
+static inline int ll_ext_to_inode_flags(int ext_flags)
 {
-       return (((flags & LUSTRE_SYNC_FL)      ? S_SYNC      : 0) |
-               ((flags & LUSTRE_NOATIME_FL)   ? S_NOATIME   : 0) |
-               ((flags & LUSTRE_APPEND_FL)    ? S_APPEND    : 0) |
-               ((flags & LUSTRE_DIRSYNC_FL)   ? S_DIRSYNC   : 0) |
+       return (((ext_flags & LUSTRE_SYNC_FL)      ? S_SYNC      : 0) |
+               ((ext_flags & LUSTRE_NOATIME_FL)   ? S_NOATIME   : 0) |
+               ((ext_flags & LUSTRE_APPEND_FL)    ? S_APPEND    : 0) |
+               ((ext_flags & LUSTRE_DIRSYNC_FL)   ? S_DIRSYNC   : 0) |
 #if defined(S_ENCRYPTED)
-               ((flags & LUSTRE_ENCRYPT_FL)   ? S_ENCRYPTED : 0) |
+               ((ext_flags & LUSTRE_ENCRYPT_FL)   ? S_ENCRYPTED : 0) |
 #endif
-               ((flags & LUSTRE_IMMUTABLE_FL) ? S_IMMUTABLE : 0));
+               ((ext_flags & LUSTRE_IMMUTABLE_FL) ? S_IMMUTABLE : 0));
 }
 
-static inline int ll_inode_to_ext_flags(int iflags)
+static inline int ll_inode_to_ext_flags(int inode_flags)
 {
-       return (((iflags & S_SYNC)      ? LUSTRE_SYNC_FL      : 0) |
-               ((iflags & S_NOATIME)   ? LUSTRE_NOATIME_FL   : 0) |
-               ((iflags & S_APPEND)    ? LUSTRE_APPEND_FL    : 0) |
-               ((iflags & S_DIRSYNC)   ? LUSTRE_DIRSYNC_FL   : 0) |
+       return (((inode_flags & S_SYNC)      ? LUSTRE_SYNC_FL      : 0) |
+               ((inode_flags & S_NOATIME)   ? LUSTRE_NOATIME_FL   : 0) |
+               ((inode_flags & S_APPEND)    ? LUSTRE_APPEND_FL    : 0) |
+               ((inode_flags & S_DIRSYNC)   ? LUSTRE_DIRSYNC_FL   : 0) |
 #if defined(S_ENCRYPTED)
-               ((iflags & S_ENCRYPTED) ? LUSTRE_ENCRYPT_FL   : 0) |
+               ((inode_flags & S_ENCRYPTED) ? LUSTRE_ENCRYPT_FL   : 0) |
 #endif
-               ((iflags & S_IMMUTABLE) ? LUSTRE_IMMUTABLE_FL : 0));
+               ((inode_flags & S_IMMUTABLE) ? LUSTRE_IMMUTABLE_FL : 0));
 }
 
 struct obd_heat_instance {