2018-06-06 05:42:14 +03:00
// SPDX-License-Identifier: GPL-2.0
2005-04-17 02:20:36 +04:00
/*
2005-11-02 06:58:39 +03:00
* Copyright ( c ) 2001 - 2005 Silicon Graphics , Inc .
* All Rights Reserved .
2005-04-17 02:20:36 +04:00
*/
# ifndef __XFS_SYSCTL_H__
# define __XFS_SYSCTL_H__
# include <linux/sysctl.h>
/*
* Tunable xfs parameters
*/
typedef struct xfs_sysctl_val {
int min ;
int val ;
int max ;
} xfs_sysctl_val_t ;
typedef struct xfs_param {
xfs_sysctl_val_t sgid_inherit ; /* Inherit S_ISGID if process' GID is
* not a member of parent dir GID . */
xfs_sysctl_val_t symlink_mode ; /* Link creat mode affected by umask */
xfs_sysctl_val_t panic_mask ; /* bitmask to cause panic on errors. */
xfs_sysctl_val_t error_level ; /* Degree of reporting for problems */
xfs_sysctl_val_t syncd_timer ; /* Interval between xfssyncd wakeups */
xfs_sysctl_val_t stats_clear ; /* Reset all XFS statistics to zero. */
xfs_sysctl_val_t inherit_sync ; /* Inherit the "sync" inode flag. */
xfs_sysctl_val_t inherit_nodump ; /* Inherit the "nodump" inode flag. */
xfs_sysctl_val_t inherit_noatim ; /* Inherit the "noatime" inode flag. */
xfs_sysctl_val_t xfs_buf_timer ; /* Interval between xfsbufd wakeups. */
xfs_sysctl_val_t xfs_buf_age ; /* Metadata buffer age before flush. */
xfs_sysctl_val_t inherit_nosym ; /* Inherit the "nosymlinks" flag. */
xfs_sysctl_val_t rotorstep ; /* inode32 AG rotoring control knob */
2006-06-09 08:54:19 +04:00
xfs_sysctl_val_t inherit_nodfrg ; /* Inherit the "nodefrag" inode flag. */
2007-07-11 05:09:12 +04:00
xfs_sysctl_val_t fstrm_timer ; /* Filestream dir-AG assoc'n timeout. */
2012-11-06 18:50:47 +04:00
xfs_sysctl_val_t eofb_timer ; /* Interval between eofb scan wakeups */
2016-10-03 19:11:46 +03:00
xfs_sysctl_val_t cowb_timer ; /* Interval between cowb scan wakeups */
2005-04-17 02:20:36 +04:00
} xfs_param_t ;
/*
* xfs_error_level :
*
* How much error reporting will be done when internal problems are
* encountered . These problems normally return an EFSCORRUPTED to their
* caller , with no other information reported .
*
* 0 No error reports
* 1 Report EFSCORRUPTED errors that will cause a filesystem shutdown
* 5 Report all EFSCORRUPTED errors ( all of the above errors , plus any
* additional errors that are known to not cause shutdowns )
*
* xfs_panic_mask bit 0x8 turns the error reports into panics
*/
enum {
/* XFS_REFCACHE_SIZE = 1 */
/* XFS_REFCACHE_PURGE = 2 */
2008-10-30 10:30:48 +03:00
/* XFS_RESTRICT_CHOWN = 3 */
2005-04-17 02:20:36 +04:00
XFS_SGID_INHERIT = 4 ,
XFS_SYMLINK_MODE = 5 ,
XFS_PANIC_MASK = 6 ,
XFS_ERRLEVEL = 7 ,
XFS_SYNCD_TIMER = 8 ,
/* XFS_PROBE_DMAPI = 9 */
/* XFS_PROBE_IOOPS = 10 */
/* XFS_PROBE_QUOTA = 11 */
XFS_STATS_CLEAR = 12 ,
XFS_INHERIT_SYNC = 13 ,
XFS_INHERIT_NODUMP = 14 ,
XFS_INHERIT_NOATIME = 15 ,
XFS_BUF_TIMER = 16 ,
XFS_BUF_AGE = 17 ,
/* XFS_IO_BYPASS = 18 */
XFS_INHERIT_NOSYM = 19 ,
XFS_ROTORSTEP = 20 ,
2006-06-09 08:54:19 +04:00
XFS_INHERIT_NODFRG = 21 ,
2007-07-11 05:09:12 +04:00
XFS_FILESTREAM_TIMER = 22 ,
2005-04-17 02:20:36 +04:00
} ;
extern xfs_param_t xfs_params ;
2014-09-09 05:56:13 +04:00
struct xfs_globals {
2019-07-03 17:33:26 +03:00
# ifdef DEBUG
int pwork_threads ; /* parallel workqueue threads */
# endif
2014-09-09 05:56:13 +04:00
int log_recovery_delay ; /* log recovery delay (secs) */
2018-05-11 07:50:23 +03:00
int mount_delay ; /* mount setup delay (secs) */
2017-06-15 07:29:12 +03:00
bool bug_on_assert ; /* BUG() the kernel on assert failure */
2019-02-18 20:38:49 +03:00
bool always_cow ; /* use COW fork for all overwrites */
2014-09-09 05:56:13 +04:00
} ;
extern struct xfs_globals xfs_globals ;
2005-04-17 02:20:36 +04:00
# ifdef CONFIG_SYSCTL
2008-07-18 11:11:46 +04:00
extern int xfs_sysctl_register ( void ) ;
2005-04-17 02:20:36 +04:00
extern void xfs_sysctl_unregister ( void ) ;
# else
2008-07-18 11:11:46 +04:00
# define xfs_sysctl_register() (0)
2005-04-17 02:20:36 +04:00
# define xfs_sysctl_unregister() do { } while (0)
# endif /* CONFIG_SYSCTL */
# endif /* __XFS_SYSCTL_H__ */