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 @@ | |||
51 | #include "print-tree.h" | 51 | #include "print-tree.h" |
52 | #include "xattr.h" | 52 | #include "xattr.h" |
53 | #include "volumes.h" | 53 | #include "volumes.h" |
54 | #include "version.h" | ||
55 | #include "export.h" | 54 | #include "export.h" |
56 | #include "compression.h" | 55 | #include "compression.h" |
57 | #include "rcu-string.h" | 56 | #include "rcu-string.h" |
@@ -266,6 +265,9 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans, | |||
266 | return; | 265 | return; |
267 | } | 266 | } |
268 | ACCESS_ONCE(trans->transaction->aborted) = errno; | 267 | ACCESS_ONCE(trans->transaction->aborted) = errno; |
268 | /* Wake up anybody who may be waiting on this transaction */ | ||
269 | wake_up(&root->fs_info->transaction_wait); | ||
270 | wake_up(&root->fs_info->transaction_blocked_wait); | ||
269 | __btrfs_std_error(root->fs_info, function, line, errno, NULL); | 271 | __btrfs_std_error(root->fs_info, function, line, errno, NULL); |
270 | } | 272 | } |
271 | /* | 273 | /* |
@@ -776,9 +778,6 @@ find_root: | |||
776 | if (IS_ERR(new_root)) | 778 | if (IS_ERR(new_root)) |
777 | return ERR_CAST(new_root); | 779 | return ERR_CAST(new_root); |
778 | 780 | ||
779 | if (btrfs_root_refs(&new_root->root_item) == 0) | ||
780 | return ERR_PTR(-ENOENT); | ||
781 | |||
782 | dir_id = btrfs_root_dirid(&new_root->root_item); | 781 | dir_id = btrfs_root_dirid(&new_root->root_item); |
783 | setup_root: | 782 | setup_root: |
784 | location.objectid = dir_id; | 783 | location.objectid = dir_id; |
@@ -866,7 +865,7 @@ int btrfs_sync_fs(struct super_block *sb, int wait) | |||
866 | return 0; | 865 | return 0; |
867 | } | 866 | } |
868 | 867 | ||
869 | btrfs_wait_ordered_extents(root, 1); | 868 | btrfs_wait_all_ordered_extents(fs_info, 1); |
870 | 869 | ||
871 | trans = btrfs_attach_transaction_barrier(root); | 870 | trans = btrfs_attach_transaction_barrier(root); |
872 | if (IS_ERR(trans)) { | 871 | if (IS_ERR(trans)) { |
@@ -1685,6 +1684,18 @@ static void btrfs_interface_exit(void) | |||
1685 | printk(KERN_INFO "btrfs: misc_deregister failed for control device\n"); | 1684 | printk(KERN_INFO "btrfs: misc_deregister failed for control device\n"); |
1686 | } | 1685 | } |
1687 | 1686 | ||
1687 | static void btrfs_print_info(void) | ||
1688 | { | ||
1689 | printk(KERN_INFO "Btrfs loaded" | ||
1690 | #ifdef CONFIG_BTRFS_DEBUG | ||
1691 | ", debug=on" | ||
1692 | #endif | ||
1693 | #ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY | ||
1694 | ", integrity-checker=on" | ||
1695 | #endif | ||
1696 | "\n"); | ||
1697 | } | ||
1698 | |||
1688 | static int __init init_btrfs_fs(void) | 1699 | static int __init init_btrfs_fs(void) |
1689 | { | 1700 | { |
1690 | int err; | 1701 | int err; |
@@ -1733,11 +1744,9 @@ static int __init init_btrfs_fs(void) | |||
1733 | 1744 | ||
1734 | btrfs_init_lockdep(); | 1745 | btrfs_init_lockdep(); |
1735 | 1746 | ||
1736 | #ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS | 1747 | btrfs_print_info(); |
1737 | btrfs_test_free_space_cache(); | 1748 | btrfs_test_free_space_cache(); |
1738 | #endif | ||
1739 | 1749 | ||
1740 | printk(KERN_INFO "%s loaded\n", BTRFS_BUILD_VERSION); | ||
1741 | return 0; | 1750 | return 0; |
1742 | 1751 | ||
1743 | unregister_ioctl: | 1752 | unregister_ioctl: |