Skip to content

Commit

Permalink
Revert "btrfs: synchronize incompat feature bits with sysfs files"
Browse files Browse the repository at this point in the history
This reverts commit 14e46e0.

This ends up doing sysfs operations from deep in balance (where we
should be GFP_NOFS) and under heavy balance load, we're making races
against sysfs internals.

Revert it for now while we figure things out.

Signed-off-by: Chris Mason <[email protected]>
  • Loading branch information
masoncl committed Jan 29, 2016
1 parent e1c0eba commit e410e34
Show file tree
Hide file tree
Showing 4 changed files with 0 additions and 17 deletions.
7 changes: 0 additions & 7 deletions fs/btrfs/free-space-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
#include "locking.h"
#include "free-space-tree.h"
#include "transaction.h"
#include "sysfs.h"

static int __add_block_group_free_space(struct btrfs_trans_handle *trans,
struct btrfs_fs_info *fs_info,
Expand Down Expand Up @@ -1184,9 +1183,6 @@ int btrfs_create_free_space_tree(struct btrfs_fs_info *fs_info)
}

btrfs_set_fs_compat_ro(fs_info, FREE_SPACE_TREE);
btrfs_sysfs_feature_update(fs_info,
BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE, FEAT_COMPAT_RO);

fs_info->creating_free_space_tree = 0;

ret = btrfs_commit_transaction(trans, tree_root);
Expand Down Expand Up @@ -1255,9 +1251,6 @@ int btrfs_clear_free_space_tree(struct btrfs_fs_info *fs_info)
return PTR_ERR(trans);

btrfs_clear_fs_compat_ro(fs_info, FREE_SPACE_TREE);
btrfs_sysfs_feature_update(fs_info,
BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE, FEAT_COMPAT_RO);

fs_info->free_space_root = NULL;

ret = clear_free_space_tree(trans, free_space_root);
Expand Down
4 changes: 0 additions & 4 deletions fs/btrfs/ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1459,8 +1459,6 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,

if (range->compress_type == BTRFS_COMPRESS_LZO) {
btrfs_set_fs_incompat(root->fs_info, COMPRESS_LZO);
btrfs_sysfs_feature_update(root->fs_info,
BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO, FEAT_INCOMPAT);
}

ret = defrag_count;
Expand Down Expand Up @@ -4069,8 +4067,6 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp)
btrfs_free_path(path);

btrfs_set_fs_incompat(root->fs_info, DEFAULT_SUBVOL);
btrfs_sysfs_feature_update(root->fs_info,
BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL, FEAT_INCOMPAT);
btrfs_end_transaction(trans, root);
out:
mnt_drop_write_file(file);
Expand Down
4 changes: 0 additions & 4 deletions fs/btrfs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@
#include "dev-replace.h"
#include "free-space-cache.h"
#include "backref.h"
#include "sysfs.h"
#include "tests/btrfs-tests.h"

#include "qgroup.h"
Expand Down Expand Up @@ -486,9 +485,6 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
btrfs_clear_opt(info->mount_opt, NODATACOW);
btrfs_clear_opt(info->mount_opt, NODATASUM);
btrfs_set_fs_incompat(info, COMPRESS_LZO);
btrfs_sysfs_feature_update(root->fs_info,
BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO,
FEAT_INCOMPAT);
no_compress = 0;
} else if (strncmp(args[0].from, "no", 2) == 0) {
compress_type = "no";
Expand Down
2 changes: 0 additions & 2 deletions fs/btrfs/volumes.c
Original file line number Diff line number Diff line change
Expand Up @@ -4469,8 +4469,6 @@ static void check_raid56_incompat_flag(struct btrfs_fs_info *info, u64 type)
return;

btrfs_set_fs_incompat(info, RAID56);
btrfs_sysfs_feature_update(info, BTRFS_FEATURE_INCOMPAT_RAID56,
FEAT_INCOMPAT);
}

#define BTRFS_MAX_DEVS(r) ((BTRFS_LEAF_DATA_SIZE(r) \
Expand Down

0 comments on commit e410e34

Please sign in to comment.