]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/btrfs/transaction.c
Btrfs: Back port to 2.6.18-el kernels
[mv-sheeva.git] / fs / btrfs / transaction.c
index 67e4aca36a626729bd4adf49b4911e1bc8b82595..1ad611b9f61b3048e833b535b42f047d0c5734aa 100644 (file)
@@ -169,7 +169,7 @@ int btrfs_write_and_wait_transaction(struct btrfs_trans_handle *trans,
                clear_extent_dirty(dirty_pages, start, end, GFP_NOFS);
                while(start <= end) {
                        index = start >> PAGE_CACHE_SHIFT;
-                       start = (index + 1) << PAGE_CACHE_SHIFT;
+                       start = (u64)(index + 1) << PAGE_CACHE_SHIFT;
                        page = find_lock_page(btree_inode->i_mapping, index);
                        if (!page)
                                continue;
@@ -353,7 +353,6 @@ int btrfs_defrag_root(struct btrfs_root *root, int cacheonly)
 
        if (root->defrag_running)
                return 0;
-
        trans = btrfs_start_transaction(root, 1);
        while (1) {
                root->defrag_running = 1;
@@ -361,7 +360,6 @@ int btrfs_defrag_root(struct btrfs_root *root, int cacheonly)
                nr = trans->blocks_used;
                btrfs_end_transaction(trans, root);
                mutex_unlock(&info->fs_mutex);
-
                btrfs_btree_balance_dirty(info->tree_root, nr);
                cond_resched();
 
@@ -616,12 +614,20 @@ int btrfs_clean_old_snapshots(struct btrfs_root *root)
        }
        return 0;
 }
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
+void btrfs_transaction_cleaner(void *p)
+#else
 void btrfs_transaction_cleaner(struct work_struct *work)
+#endif
 {
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18)
+       struct btrfs_fs_info *fs_info = p;
+#else
        struct btrfs_fs_info *fs_info = container_of(work,
                                                     struct btrfs_fs_info,
                                                     trans_work.work);
 
+#endif
        struct btrfs_root *root = fs_info->tree_root;
        struct btrfs_transaction *cur;
        struct btrfs_trans_handle *trans;
@@ -668,7 +674,7 @@ void __init btrfs_init_transaction_sys(void)
        trans_wq = create_workqueue("btrfs");
 }
 
-void __exit btrfs_exit_transaction_sys(void)
+void btrfs_exit_transaction_sys(void)
 {
        destroy_workqueue(trans_wq);
 }