mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-04-13 09:59:31 +00:00
xfs: allow setting full range of panic tags
xfs will not allow combining other panic masks with
XFS_PTAG_VERIFIER_ERROR.
# sysctl fs.xfs.panic_mask=511
sysctl: setting key "fs.xfs.panic_mask": Invalid argument
fs.xfs.panic_mask = 511
Update to the maximum value that can be set to allow the full range of
masks. Do this using a mask of possible values to prevent this happening
again as suggested by Darrick.
Fixes: d519da41e2
("xfs: Introduce XFS_PTAG_VERIFIER_ERROR panic mask")
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
This commit is contained in:
parent
c85007e2e3
commit
167ce4cbfa
3 changed files with 14 additions and 3 deletions
|
@ -296,7 +296,7 @@ The following sysctls are available for the XFS filesystem:
|
||||||
XFS_ERRLEVEL_LOW: 1
|
XFS_ERRLEVEL_LOW: 1
|
||||||
XFS_ERRLEVEL_HIGH: 5
|
XFS_ERRLEVEL_HIGH: 5
|
||||||
|
|
||||||
fs.xfs.panic_mask (Min: 0 Default: 0 Max: 256)
|
fs.xfs.panic_mask (Min: 0 Default: 0 Max: 511)
|
||||||
Causes certain error conditions to call BUG(). Value is a bitmask;
|
Causes certain error conditions to call BUG(). Value is a bitmask;
|
||||||
OR together the tags which represent errors which should cause panics:
|
OR together the tags which represent errors which should cause panics:
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XFS panic tags -- allow a call to xfs_alert_tag() be turned into
|
* XFS panic tags -- allow a call to xfs_alert_tag() be turned into
|
||||||
* a panic by setting xfs_panic_mask in a sysctl.
|
* a panic by setting fs.xfs.panic_mask in a sysctl.
|
||||||
*/
|
*/
|
||||||
#define XFS_NO_PTAG 0u
|
#define XFS_NO_PTAG 0u
|
||||||
#define XFS_PTAG_IFLUSH (1u << 0)
|
#define XFS_PTAG_IFLUSH (1u << 0)
|
||||||
|
@ -88,6 +88,16 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp);
|
||||||
#define XFS_PTAG_FSBLOCK_ZERO (1u << 7)
|
#define XFS_PTAG_FSBLOCK_ZERO (1u << 7)
|
||||||
#define XFS_PTAG_VERIFIER_ERROR (1u << 8)
|
#define XFS_PTAG_VERIFIER_ERROR (1u << 8)
|
||||||
|
|
||||||
|
#define XFS_PTAG_MASK (XFS_PTAG_IFLUSH | \
|
||||||
|
XFS_PTAG_LOGRES | \
|
||||||
|
XFS_PTAG_AILDELETE | \
|
||||||
|
XFS_PTAG_ERROR_REPORT | \
|
||||||
|
XFS_PTAG_SHUTDOWN_CORRUPT | \
|
||||||
|
XFS_PTAG_SHUTDOWN_IOERROR | \
|
||||||
|
XFS_PTAG_SHUTDOWN_LOGERROR | \
|
||||||
|
XFS_PTAG_FSBLOCK_ZERO | \
|
||||||
|
XFS_PTAG_VERIFIER_ERROR)
|
||||||
|
|
||||||
#define XFS_PTAG_STRINGS \
|
#define XFS_PTAG_STRINGS \
|
||||||
{ XFS_NO_PTAG, "none" }, \
|
{ XFS_NO_PTAG, "none" }, \
|
||||||
{ XFS_PTAG_IFLUSH, "iflush" }, \
|
{ XFS_PTAG_IFLUSH, "iflush" }, \
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*/
|
*/
|
||||||
#include "xfs.h"
|
#include "xfs.h"
|
||||||
|
#include "xfs_error.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tunable XFS parameters. xfs_params is required even when CONFIG_SYSCTL=n,
|
* Tunable XFS parameters. xfs_params is required even when CONFIG_SYSCTL=n,
|
||||||
|
@ -15,7 +16,7 @@ xfs_param_t xfs_params = {
|
||||||
/* MIN DFLT MAX */
|
/* MIN DFLT MAX */
|
||||||
.sgid_inherit = { 0, 0, 1 },
|
.sgid_inherit = { 0, 0, 1 },
|
||||||
.symlink_mode = { 0, 0, 1 },
|
.symlink_mode = { 0, 0, 1 },
|
||||||
.panic_mask = { 0, 0, 256 },
|
.panic_mask = { 0, 0, XFS_PTAG_MASK},
|
||||||
.error_level = { 0, 3, 11 },
|
.error_level = { 0, 3, 11 },
|
||||||
.syncd_timer = { 1*100, 30*100, 7200*100},
|
.syncd_timer = { 1*100, 30*100, 7200*100},
|
||||||
.stats_clear = { 0, 0, 1 },
|
.stats_clear = { 0, 0, 1 },
|
||||||
|
|
Loading…
Add table
Reference in a new issue