diff options
Diffstat (limited to 'fs/btrfs/super.c')
| -rw-r--r-- | fs/btrfs/super.c | 25 | 
1 files changed, 17 insertions, 8 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index f0857e092a3c..8eb6191d86da 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -51,7 +51,6 @@  #include "print-tree.h"  #include "xattr.h"  #include "volumes.h" -#include "version.h"  #include "export.h"  #include "compression.h"  #include "rcu-string.h" @@ -266,6 +265,9 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,  		return;  	}  	ACCESS_ONCE(trans->transaction->aborted) = errno; +	/* Wake up anybody who may be waiting on this transaction */ +	wake_up(&root->fs_info->transaction_wait); +	wake_up(&root->fs_info->transaction_blocked_wait);  	__btrfs_std_error(root->fs_info, function, line, errno, NULL);  }  /* @@ -776,9 +778,6 @@ find_root:  	if (IS_ERR(new_root))  		return ERR_CAST(new_root); -	if (btrfs_root_refs(&new_root->root_item) == 0) -		return ERR_PTR(-ENOENT); -  	dir_id = btrfs_root_dirid(&new_root->root_item);  setup_root:  	location.objectid = dir_id; @@ -866,7 +865,7 @@ int btrfs_sync_fs(struct super_block *sb, int wait)  		return 0;  	} -	btrfs_wait_ordered_extents(root, 1); +	btrfs_wait_all_ordered_extents(fs_info, 1);  	trans = btrfs_attach_transaction_barrier(root);  	if (IS_ERR(trans)) { @@ -1685,6 +1684,18 @@ static void btrfs_interface_exit(void)  		printk(KERN_INFO "btrfs: misc_deregister failed for control device\n");  } +static void btrfs_print_info(void) +{ +	printk(KERN_INFO "Btrfs loaded" +#ifdef CONFIG_BTRFS_DEBUG +			", debug=on" +#endif +#ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY +			", integrity-checker=on" +#endif +			"\n"); +} +  static int __init init_btrfs_fs(void)  {  	int err; @@ -1733,11 +1744,9 @@ static int __init init_btrfs_fs(void)  	btrfs_init_lockdep(); -#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS +	btrfs_print_info();  	btrfs_test_free_space_cache(); -#endif -	printk(KERN_INFO "%s loaded\n", BTRFS_BUILD_VERSION);  	return 0;  unregister_ioctl:  | 
