Commit ec8eb376 authored by Josef Bacik's avatar Josef Bacik Committed by David Sterba

btrfs: move BTRFS_FS_STATE* definitions and helpers to fs.h

We're going to use fs.h to hold fs wide related helpers and definitions,
move the FS_STATE enum and related helpers to fs.h, and then update all
files that need these definitions to include fs.h.
Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent bbde07a4
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <crypto/hash.h> #include <crypto/hash.h>
#include "misc.h" #include "misc.h"
#include "ctree.h" #include "ctree.h"
#include "fs.h"
#include "disk-io.h" #include "disk-io.h"
#include "transaction.h" #include "transaction.h"
#include "btrfs_inode.h" #include "btrfs_inode.h"
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "qgroup.h" #include "qgroup.h"
#include "tree-mod-log.h" #include "tree-mod-log.h"
#include "tree-checker.h" #include "tree-checker.h"
#include "fs.h"
static struct kmem_cache *btrfs_path_cachep; static struct kmem_cache *btrfs_path_cachep;
......
...@@ -67,37 +67,6 @@ static inline unsigned long btrfs_chunk_item_size(int num_stripes) ...@@ -67,37 +67,6 @@ static inline unsigned long btrfs_chunk_item_size(int num_stripes)
sizeof(struct btrfs_stripe) * (num_stripes - 1); sizeof(struct btrfs_stripe) * (num_stripes - 1);
} }
/*
* Runtime (in-memory) states of filesystem
*/
enum {
/* Global indicator of serious filesystem errors */
BTRFS_FS_STATE_ERROR,
/*
* Filesystem is being remounted, allow to skip some operations, like
* defrag
*/
BTRFS_FS_STATE_REMOUNTING,
/* Filesystem in RO mode */
BTRFS_FS_STATE_RO,
/* Track if a transaction abort has been reported on this filesystem */
BTRFS_FS_STATE_TRANS_ABORTED,
/*
* Bio operations should be blocked on this filesystem because a source
* or target device is being destroyed as part of a device replace
*/
BTRFS_FS_STATE_DEV_REPLACING,
/* The btrfs_fs_info created for self-tests */
BTRFS_FS_STATE_DUMMY_FS_INFO,
BTRFS_FS_STATE_NO_CSUMS,
/* Indicates there was an error cleaning up a log tree. */
BTRFS_FS_STATE_LOG_CLEANUP_ERROR,
BTRFS_FS_STATE_COUNT
};
#define BTRFS_SUPER_INFO_OFFSET SZ_64K #define BTRFS_SUPER_INFO_OFFSET SZ_64K
#define BTRFS_SUPER_INFO_SIZE 4096 #define BTRFS_SUPER_INFO_SIZE 4096
static_assert(sizeof(struct btrfs_super_block) == BTRFS_SUPER_INFO_SIZE); static_assert(sizeof(struct btrfs_super_block) == BTRFS_SUPER_INFO_SIZE);
...@@ -3224,12 +3193,6 @@ static inline unsigned long get_eb_page_index(unsigned long offset) ...@@ -3224,12 +3193,6 @@ static inline unsigned long get_eb_page_index(unsigned long offset)
#define EXPORT_FOR_TESTS #define EXPORT_FOR_TESTS
#endif #endif
#define BTRFS_FS_ERROR(fs_info) (unlikely(test_bit(BTRFS_FS_STATE_ERROR, \
&(fs_info)->fs_state)))
#define BTRFS_FS_LOG_CLEANUP_ERROR(fs_info) \
(unlikely(test_bit(BTRFS_FS_STATE_LOG_CLEANUP_ERROR, \
&(fs_info)->fs_state)))
/* acl.c */ /* acl.c */
#ifdef CONFIG_BTRFS_FS_POSIX_ACL #ifdef CONFIG_BTRFS_FS_POSIX_ACL
struct posix_acl *btrfs_get_acl(struct inode *inode, int type, bool rcu); struct posix_acl *btrfs_get_acl(struct inode *inode, int type, bool rcu);
...@@ -3327,15 +3290,6 @@ static inline int btrfs_get_verity_descriptor(struct inode *inode, void *buf, ...@@ -3327,15 +3290,6 @@ static inline int btrfs_get_verity_descriptor(struct inode *inode, void *buf,
/* Sanity test specific functions */ /* Sanity test specific functions */
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS #ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
void btrfs_test_destroy_inode(struct inode *inode); void btrfs_test_destroy_inode(struct inode *inode);
static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info)
{
return test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state);
}
#else
static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info)
{
return 0;
}
#endif #endif
static inline bool btrfs_is_data_reloc_root(const struct btrfs_root *root) static inline bool btrfs_is_data_reloc_root(const struct btrfs_root *root)
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "transaction.h" #include "transaction.h"
#include "qgroup.h" #include "qgroup.h"
#include "block-group.h" #include "block-group.h"
#include "fs.h"
/* /*
* HOW DOES THIS WORK * HOW DOES THIS WORK
......
...@@ -6,12 +6,13 @@ ...@@ -6,12 +6,13 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/iversion.h> #include <linux/iversion.h>
#include "ctree.h"
#include "fs.h"
#include "messages.h" #include "messages.h"
#include "misc.h" #include "misc.h"
#include "delayed-inode.h" #include "delayed-inode.h"
#include "disk-io.h" #include "disk-io.h"
#include "transaction.h" #include "transaction.h"
#include "ctree.h"
#include "qgroup.h" #include "qgroup.h"
#include "locking.h" #include "locking.h"
#include "inode-item.h" #include "inode-item.h"
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "sysfs.h" #include "sysfs.h"
#include "zoned.h" #include "zoned.h"
#include "block-group.h" #include "block-group.h"
#include "fs.h"
/* /*
* Device replace overview * Device replace overview
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "zoned.h" #include "zoned.h"
#include "block-group.h" #include "block-group.h"
#include "compression.h" #include "compression.h"
#include "fs.h"
static struct kmem_cache *extent_buffer_cache; static struct kmem_cache *extent_buffer_cache;
......
...@@ -11,9 +11,10 @@ ...@@ -11,9 +11,10 @@
#include <linux/ratelimit.h> #include <linux/ratelimit.h>
#include <linux/error-injection.h> #include <linux/error-injection.h>
#include <linux/sched/mm.h> #include <linux/sched/mm.h>
#include "ctree.h"
#include "fs.h"
#include "messages.h" #include "messages.h"
#include "misc.h" #include "misc.h"
#include "ctree.h"
#include "free-space-cache.h" #include "free-space-cache.h"
#include "transaction.h" #include "transaction.h"
#include "disk-io.h" #include "disk-io.h"
......
...@@ -3,6 +3,37 @@ ...@@ -3,6 +3,37 @@
#ifndef BTRFS_FS_H #ifndef BTRFS_FS_H
#define BTRFS_FS_H #define BTRFS_FS_H
/*
* Runtime (in-memory) states of filesystem
*/
enum {
/* Global indicator of serious filesystem errors */
BTRFS_FS_STATE_ERROR,
/*
* Filesystem is being remounted, allow to skip some operations, like
* defrag
*/
BTRFS_FS_STATE_REMOUNTING,
/* Filesystem in RO mode */
BTRFS_FS_STATE_RO,
/* Track if a transaction abort has been reported on this filesystem */
BTRFS_FS_STATE_TRANS_ABORTED,
/*
* Bio operations should be blocked on this filesystem because a source
* or target device is being destroyed as part of a device replace
*/
BTRFS_FS_STATE_DEV_REPLACING,
/* The btrfs_fs_info created for self-tests */
BTRFS_FS_STATE_DUMMY_FS_INFO,
BTRFS_FS_STATE_NO_CSUMS,
/* Indicates there was an error cleaning up a log tree. */
BTRFS_FS_STATE_LOG_CLEANUP_ERROR,
BTRFS_FS_STATE_COUNT
};
/* Compatibility and incompatibility defines */ /* Compatibility and incompatibility defines */
void __btrfs_set_fs_incompat(struct btrfs_fs_info *fs_info, u64 flag, void __btrfs_set_fs_incompat(struct btrfs_fs_info *fs_info, u64 flag,
const char *name); const char *name);
...@@ -82,4 +113,22 @@ static inline void btrfs_clear_sb_rdonly(struct super_block *sb) ...@@ -82,4 +113,22 @@ static inline void btrfs_clear_sb_rdonly(struct super_block *sb)
clear_bit(BTRFS_FS_STATE_RO, &btrfs_sb(sb)->fs_state); clear_bit(BTRFS_FS_STATE_RO, &btrfs_sb(sb)->fs_state);
} }
#define BTRFS_FS_ERROR(fs_info) (unlikely(test_bit(BTRFS_FS_STATE_ERROR, \
&(fs_info)->fs_state)))
#define BTRFS_FS_LOG_CLEANUP_ERROR(fs_info) \
(unlikely(test_bit(BTRFS_FS_STATE_LOG_CLEANUP_ERROR, \
&(fs_info)->fs_state)))
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info)
{
return test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state);
}
#else
static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info)
{
return 0;
}
#endif
#endif #endif
...@@ -3,8 +3,9 @@ ...@@ -3,8 +3,9 @@
* Copyright (C) 2007 Oracle. All rights reserved. * Copyright (C) 2007 Oracle. All rights reserved.
*/ */
#include "messages.h"
#include "ctree.h" #include "ctree.h"
#include "fs.h"
#include "messages.h"
#include "inode-item.h" #include "inode-item.h"
#include "disk-io.h" #include "disk-io.h"
#include "transaction.h" #include "transaction.h"
......
...@@ -2,9 +2,10 @@ ...@@ -2,9 +2,10 @@
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/iversion.h> #include <linux/iversion.h>
#include "ctree.h"
#include "fs.h"
#include "messages.h" #include "messages.h"
#include "compression.h" #include "compression.h"
#include "ctree.h"
#include "delalloc-space.h" #include "delalloc-space.h"
#include "disk-io.h" #include "disk-io.h"
#include "reflink.h" #include "reflink.h"
......
...@@ -5,8 +5,9 @@ ...@@ -5,8 +5,9 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/uuid.h> #include <linux/uuid.h>
#include "messages.h"
#include "ctree.h" #include "ctree.h"
#include "fs.h"
#include "messages.h"
#include "transaction.h" #include "transaction.h"
#include "disk-io.h" #include "disk-io.h"
#include "print-tree.h" #include "print-tree.h"
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "block-group.h" #include "block-group.h"
#include "qgroup.h" #include "qgroup.h"
#include "misc.h" #include "misc.h"
#include "fs.h"
/* /*
* Structure name Path * Structure name Path
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "../disk-io.h" #include "../disk-io.h"
#include "../qgroup.h" #include "../qgroup.h"
#include "../block-group.h" #include "../block-group.h"
#include "../fs.h"
static struct vfsmount *test_mnt = NULL; static struct vfsmount *test_mnt = NULL;
......
...@@ -12,8 +12,9 @@ ...@@ -12,8 +12,9 @@
#include <linux/posix_acl_xattr.h> #include <linux/posix_acl_xattr.h>
#include <linux/iversion.h> #include <linux/iversion.h>
#include <linux/sched/mm.h> #include <linux/sched/mm.h>
#include "messages.h"
#include "ctree.h" #include "ctree.h"
#include "fs.h"
#include "messages.h"
#include "btrfs_inode.h" #include "btrfs_inode.h"
#include "transaction.h" #include "transaction.h"
#include "xattr.h" #include "xattr.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment