kill INDUCE_IO_ERROR
PATCH 1/1 kill INDUCE_IO_ERROR
All the error injection is already enabled through ifdef DEBUG, so kill the never set second cpp symbol to activate it without the rest of the debugging infrastructure.
fs/xfs/xfs_error.c +1 -4
@@ -58,9 +58,6 @@ xfs_error_trap(int e) }return e; } -#endif - -#if (defined(DEBUG ) || defined(INDUCE_IO_ERROR ))int xfs_etest[XFS_NUM_INJECT_ERROR ];int64_t xfs_etest_fsid[XFS_NUM_INJECT_ERROR ];
@@ -154,7 +151,7 @@ xfs_errortag_clearall(xfs_mount_t *mp, i return 0; } -#endif /* DEBUG || INDUCE_IO_ERROR */ +#endif /* DEBUG */ static void xfs_fs_vcmn_err (int level,xfs_mount_t *mp,char *fmt,va_list ap)
fs/xfs/xfs_error.h +2 -10
@@ -125,22 +125,14 @@ extern void xfs_corruption_error(char *t#define XFS_RANDOM_DIOWRITE_IOERR (XFS_RANDOM_DEFAULT/10)#define XFS_RANDOM_BMAPIFORMAT XFS_RANDOM_DEFAULT -#if (defined(DEBUG ) || defined(INDUCE_IO_ERROR )) +#ifdef DEBUG extern int xfs_error_test (int ,int *,char *,int ,char *,unsigned long );#define XFS_NUM_INJECT_ERROR 10 - -#ifdef __ANSI_CPP__ -#define XFS_TEST_ERROR (expr, mp, tag, rf) \ - ((expr) || \ - xfs_error_test((tag), (mp)->m_fixedfsid, #expr, __LINE__, __FILE__, \ - (rf))) -#else #define XFS_TEST_ERROR (expr, mp, tag, rf) \ ((expr) || \ xfs_error_test((tag), (mp)->m_fixedfsid, "expr", __LINE__, __FILE__, \ (rf))) -#endif /* __ANSI_CPP__ */ extern int xfs_errortag_add (int error_tag,xfs_mount_t *mp);extern int xfs_errortag_clearall (xfs_mount_t *mp,int loud);
@@ -148,7 +140,7 @@ extern int xfs_errortag_clearall(xfs_mou#define XFS_TEST_ERROR (expr, mp, tag, rf) (expr)#define xfs_errortag_add (tag, mp) (ENOSYS)#define xfs_errortag_clearall (mp, loud) (ENOSYS) -#endif /* (DEBUG || INDUCE_IO_ERROR) */ +#endif /* DEBUG */ /* * XFS panic tags -- allow a call to xfs_cmn_err() be turned into
fs/xfs/xfs_mount.c +1 -1
@@ -1322,7 +1322,7 @@ xfs_unmountfs(xfs_mount_t *mp)if ((mp->m_flags &XFS_MOUNT_NOUUID ) ==0 )uuid_table_remove (&mp->m_sb.sb_uuid); -#if defined(DEBUG ) || defined(INDUCE_IO_ERROR ) +#if defined(DEBUG )xfs_errortag_clearall (mp,0 );#endif xfs_mount_free (mp);
Quoted 3 lines · Christoph Hellwig
All the error injection is already enabled through ifdef DEBUG, so kill the never set second cpp symbol to activate it without the rest of the debugging infrastructure.
Can I get a review on this absolutely trivial patch?
Quoted 69 lines
Signed-off-by Christoph Hellwig <[email protected]>Index:
linux-2.6-xfs/fs/xfs/xfs_error.c
===================================================================fs/xfs/xfs_error.c +1
-4@@ -58,9 +58,6 @@ xfs_error_trap(int e) }return e; } -#endif - -#if (defined(DEBUG ) || defined(INDUCE_IO_ERROR ))int xfs_etest[XFS_NUM_INJECT_ERROR ];int64_t xfs_etest_fsid[XFS_NUM_INJECT_ERROR ];@@ -154,7 +151,7 @@ xfs_errortag_clearall(xfs_mount_t *mp, i return 0; } -#endif /* DEBUG || INDUCE_IO_ERROR */ +#endif /* DEBUG */ static void xfs_fs_vcmn_err (int level,xfs_mount_t *mp,char *fmt,va_list ap)Index:
linux-2.6-xfs/fs/xfs/xfs_error.h
===================================================================fs/xfs/xfs_error.h +2
-10@@ -125,22 +125,14 @@ extern void xfs_corruption_error(char *t#define XFS_RANDOM_DIOWRITE_IOERR (XFS_RANDOM_DEFAULT/10)#define XFS_RANDOM_BMAPIFORMAT XFS_RANDOM_DEFAULT -#if (defined(DEBUG ) || defined(INDUCE_IO_ERROR )) +#ifdef DEBUG extern int xfs_error_test (int ,int *,char *,int ,char *,unsigned long );#define XFS_NUM_INJECT_ERROR 10 - -#ifdef __ANSI_CPP__ -#define XFS_TEST_ERROR (expr, mp, tag, rf) \ - ((expr) || \ - xfs_error_test((tag), (mp)->m_fixedfsid, #expr, __LINE__, __FILE__, \ - (rf))) -#else #define XFS_TEST_ERROR (expr, mp, tag, rf) \ ((expr) || \ xfs_error_test((tag), (mp)->m_fixedfsid, "expr", __LINE__, __FILE__, \ (rf))) -#endif /* __ANSI_CPP__ */ extern int xfs_errortag_add (int error_tag,xfs_mount_t *mp);extern int xfs_errortag_clearall (xfs_mount_t *mp,int loud);@@ -148,7 +140,7 @@ extern int xfs_errortag_clearall(xfs_mou#define XFS_TEST_ERROR (expr, mp, tag, rf) (expr)#define xfs_errortag_add (tag, mp) (ENOSYS)#define xfs_errortag_clearall (mp, loud) (ENOSYS) -#endif /* (DEBUG || INDUCE_IO_ERROR) */ +#endif /* DEBUG */ /* * XFS panic tags -- allow a call to xfs_cmn_err() be turned into Index:
linux-2.6-xfs/fs/xfs/xfs_mount.c
===================================================================
fs/xfs/xfs_mount.c xfs_unmountfs(xfs_mount_t *mp) · line 1328
Quoted 8 lines
fs/xfs/xfs_mount.c +1
-1@@ -1322,7 +1322,7 @@ xfs_unmountfs(xfs_mount_t *mp)if ((mp->m_flags &XFS_MOUNT_NOUUID ) ==0 )uuid_table_remove (&mp->m_sb.sb_uuid); -#if defined(DEBUG ) || defined(INDUCE_IO_ERROR ) +#if defined(DEBUG )xfs_errortag_clearall (mp,0 );#endif xfs_mount_free (mp);
---end quoted text---
Quoted 6 lines · Christoph Hellwig
Quoted 3 lines · Christoph Hellwig
All the error injection is already enabled through ifdef DEBUG, so kill the never set second cpp symbol to activate it without the rest of the debugging infrastructure.
Can I get a review on this absolutely trivial patch?
I'd like to keep INDUCE_IO_ERROR around so we have a way to introduce ioerrors in release builds during testing.
We could add it to xfs.h with the commented out QUOTADEBUG so people know we still want to use it.
Don
Quoted 78 lines
Quoted 68 lines
Signed-off-by Christoph Hellwig <[email protected]>Index:
linux-2.6-xfs/fs/xfs/xfs_error.c
===================================================================fs/xfs/xfs_error.c +1
-4@@ -58,9 +58,6 @@ xfs_error_trap(int e) }return e; } -#endif - -#if (defined(DEBUG ) || defined(INDUCE_IO_ERROR ))int xfs_etest[XFS_NUM_INJECT_ERROR ];int64_t xfs_etest_fsid[XFS_NUM_INJECT_ERROR ];@@ -154,7 +151,7 @@ xfs_errortag_clearall(xfs_mount_t *mp, i return 0; } -#endif /* DEBUG || INDUCE_IO_ERROR */ +#endif /* DEBUG */ static void xfs_fs_vcmn_err (int level,xfs_mount_t *mp,char *fmt,va_list ap)Index:
linux-2.6-xfs/fs/xfs/xfs_error.h
===================================================================fs/xfs/xfs_error.h +2
-10@@ -125,22 +125,14 @@ extern void xfs_corruption_error(char *t#define XFS_RANDOM_DIOWRITE_IOERR (XFS_RANDOM_DEFAULT/10)#define XFS_RANDOM_BMAPIFORMAT XFS_RANDOM_DEFAULT -#if (defined(DEBUG ) || defined(INDUCE_IO_ERROR )) +#ifdef DEBUG extern int xfs_error_test (int ,int *,char *,int ,char *,unsigned long );#define XFS_NUM_INJECT_ERROR 10 - -#ifdef __ANSI_CPP__ -#define XFS_TEST_ERROR (expr, mp, tag, rf) \ - ((expr) || \ - xfs_error_test((tag), (mp)->m_fixedfsid, #expr, __LINE__, __FILE__, \ - (rf))) -#else #define XFS_TEST_ERROR (expr, mp, tag, rf) \ ((expr) || \ xfs_error_test((tag), (mp)->m_fixedfsid, "expr", __LINE__, __FILE__, \ (rf))) -#endif /* __ANSI_CPP__ */ extern int xfs_errortag_add (int error_tag,xfs_mount_t *mp);extern int xfs_errortag_clearall (xfs_mount_t *mp,int loud);@@ -148,7 +140,7 @@ extern int xfs_errortag_clearall(xfs_mou#define XFS_TEST_ERROR (expr, mp, tag, rf) (expr)#define xfs_errortag_add (tag, mp) (ENOSYS)#define xfs_errortag_clearall (mp, loud) (ENOSYS) -#endif /* (DEBUG || INDUCE_IO_ERROR) */ +#endif /* DEBUG */ /* * XFS panic tags -- allow a call to xfs_cmn_err() be turned into Index:
linux-2.6-xfs/fs/xfs/xfs_mount.c
===================================================================fs/xfs/xfs_mount.c xfs_unmountfs(xfs_mount_t *mp) · line 1328
Quoted 8 lines
fs/xfs/xfs_mount.c +1
-1@@ -1322,7 +1322,7 @@ xfs_unmountfs(xfs_mount_t *mp)if ((mp->m_flags &XFS_MOUNT_NOUUID ) ==0 )uuid_table_remove (&mp->m_sb.sb_uuid); -#if defined(DEBUG ) || defined(INDUCE_IO_ERROR ) +#if defined(DEBUG )xfs_errortag_clearall (mp,0 );#endif xfs_mount_free (mp);---end quoted text---
Quoted 6 lines · Donald Douwsma
Quoted 5 lines · Christoph Hellwig
Quoted 3 lines · Christoph Hellwig
All the error injection is already enabled through ifdef DEBUG, so kill the never set second cpp symbol to activate it without the rest of the debugging infrastructure.
Quoted 7 lines
Quoted 1 line
Can I get a review on this absolutely trivial patch?
I'd like to keep
INDUCE_IO_ERRORaround so we have a way to introduce ioerrors in release builds during testing.We could add it to
xfs.hwith the commented out QUOTADEBUG so people know we still want to use it.
cpp symbols not exposed by Kconfig will never get tested. If you thing it's really useful for release builds (which don't quite agree with) we should just enable it unconditionally. It's just in a few places, and any branch predictor worth it's name should take care of the additional branches without visible cost.
looks good, checking it in
Signature · 1 line
Niv Sardi
Quoted 1 line · Niv Sardi
looks good, checking it in
Donald NACKed this one..
Quoted 5 lines · Christoph Hellwig
Quoted 1 line · Niv Sardi
looks good, checking it in
Donald NACKed this one..
Yep, but I changed my mind on it a while ago, the blocklayer error injection looks like a more useful framework for testing with release builds.
Niv and I chatted about it and its fine by me.
Don