int clear_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
                     unsigned bits, int wake, int delete,
-                    struct extent_state **cached, gfp_t mask)
+                    struct extent_state **cached)
 {
        return __clear_extent_bit(tree, start, end, bits, wake, delete,
-                                 cached, mask, NULL);
+                                 cached, GFP_NOFS, NULL);
 }
 
 int clear_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
        if (err == -EEXIST) {
                if (failed_start > start)
                        clear_extent_bit(tree, start, failed_start - 1,
-                                        EXTENT_LOCKED, 1, 0, NULL, GFP_NOFS);
+                                        EXTENT_LOCKED, 1, 0, NULL);
                return 0;
        }
        return 1;
                                 unsigned long page_ops)
 {
        clear_extent_bit(&BTRFS_I(inode)->io_tree, start, end, clear_bits, 1, 0,
-                        NULL, GFP_NOFS);
+                        NULL);
 
        __process_pages_contig(inode->i_mapping, locked_page,
                               start >> PAGE_SHIFT, end >> PAGE_SHIFT,
        clear_extent_bit(tree, start, end,
                         EXTENT_LOCKED | EXTENT_DIRTY | EXTENT_DELALLOC |
                         EXTENT_DO_ACCOUNTING,
-                        1, 1, &cached_state, GFP_NOFS);
+                        1, 1, &cached_state);
        return 0;
 }
 
 
                unsigned bits, struct extent_changeset *changeset);
 int clear_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
                     unsigned bits, int wake, int delete,
-                    struct extent_state **cached, gfp_t mask);
+                    struct extent_state **cached);
 int __clear_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
                     unsigned bits, int wake, int delete,
                     struct extent_state **cached, gfp_t mask,
 
 static inline int unlock_extent(struct extent_io_tree *tree, u64 start, u64 end)
 {
-       return clear_extent_bit(tree, start, end, EXTENT_LOCKED, 1, 0, NULL,
-                               GFP_NOFS);
+       return clear_extent_bit(tree, start, end, EXTENT_LOCKED, 1, 0, NULL);
 }
 
 static inline int unlock_extent_cached(struct extent_io_tree *tree, u64 start,
        if (bits & EXTENT_LOCKED)
                wake = 1;
 
-       return clear_extent_bit(tree, start, end, bits, wake, 0, NULL,
-                       GFP_NOFS);
+       return clear_extent_bit(tree, start, end, bits, wake, 0, NULL);
 }
 
 int set_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
 {
        return clear_extent_bit(tree, start, end,
                                EXTENT_DIRTY | EXTENT_DELALLOC |
-                               EXTENT_DO_ACCOUNTING, 0, 0, NULL, GFP_NOFS);
+                               EXTENT_DO_ACCOUNTING, 0, 0, NULL);
 }
 
 int convert_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
 
                clear_extent_bit(&inode->io_tree, start_pos, last_pos,
                                 EXTENT_DIRTY | EXTENT_DELALLOC |
                                 EXTENT_DO_ACCOUNTING | EXTENT_DEFRAG,
-                                0, 0, cached_state, GFP_NOFS);
+                                0, 0, cached_state);
                *lockstart = start_pos;
                *lockend = last_pos;
                ret = 1;
 
        ret = btrfs_search_slot(trans, root, &key, path, 0, 1);
        if (ret < 0) {
                clear_extent_bit(&BTRFS_I(inode)->io_tree, 0, inode->i_size - 1,
-                                EXTENT_DIRTY | EXTENT_DELALLOC, 0, 0, NULL,
-                                GFP_NOFS);
+                                EXTENT_DIRTY | EXTENT_DELALLOC, 0, 0, NULL);
                goto fail;
        }
        leaf = path->nodes[0];
                        clear_extent_bit(&BTRFS_I(inode)->io_tree, 0,
                                         inode->i_size - 1,
                                         EXTENT_DIRTY | EXTENT_DELALLOC, 0, 0,
-                                        NULL, GFP_NOFS);
+                                        NULL);
                        btrfs_release_path(path);
                        goto fail;
                }
        ret = btrfs_wait_ordered_range(inode, 0, (u64)-1);
        if (ret)
                clear_extent_bit(&BTRFS_I(inode)->io_tree, 0, inode->i_size - 1,
-                                EXTENT_DIRTY | EXTENT_DELALLOC, 0, 0, NULL,
-                                GFP_NOFS);
+                                EXTENT_DIRTY | EXTENT_DELALLOC, 0, 0, NULL);
 
        return ret;
 }
 
        u64 cur_end;
 
        clear_extent_bit(&BTRFS_I(inode)->io_tree, start, end, EXTENT_LOCKED,
-                        1, 0, NULL, GFP_NOFS);
+                        1, 0, NULL);
        while (start < end) {
                async_cow = kmalloc(sizeof(*async_cow), GFP_NOFS);
                BUG_ON(!async_cow); /* -ENOMEM */
 
                clear_extent_bit(io_tree, ordered_extent->file_offset,
                        ordered_extent->file_offset + ordered_extent->len - 1,
-                       EXTENT_DEFRAG, 0, 0, &cached_state, GFP_NOFS);
+                       EXTENT_DEFRAG, 0, 0, &cached_state);
        }
 
        if (nolock)
                                 ordered_extent->len - 1,
                                 clear_bits,
                                 (clear_bits & EXTENT_LOCKED) ? 1 : 0,
-                                0, &cached_state, GFP_NOFS);
+                                0, &cached_state);
        }
 
        if (trans)
        clear_extent_bit(&BTRFS_I(inode)->io_tree, block_start, block_end,
                          EXTENT_DIRTY | EXTENT_DELALLOC |
                          EXTENT_DO_ACCOUNTING | EXTENT_DEFRAG,
-                         0, 0, &cached_state, GFP_NOFS);
+                         0, 0, &cached_state);
 
        ret = btrfs_set_extent_delalloc(inode, block_start, block_end, 0,
                                        &cached_state, 0);
                clear_extent_bit(io_tree, start, end,
                                 EXTENT_LOCKED | EXTENT_DIRTY |
                                 EXTENT_DELALLOC | EXTENT_DO_ACCOUNTING |
-                                EXTENT_DEFRAG, 1, 1,
-                                &cached_state, GFP_NOFS);
+                                EXTENT_DEFRAG, 1, 1, &cached_state);
 
                cond_resched();
                spin_lock(&io_tree->lock);
        if (lockstart < lockend) {
                clear_extent_bit(&BTRFS_I(inode)->io_tree, lockstart,
                                 lockend, unlock_bits, 1, 0,
-                                &cached_state, GFP_NOFS);
+                                &cached_state);
        } else {
                free_extent_state(cached_state);
        }
 
 unlock_err:
        clear_extent_bit(&BTRFS_I(inode)->io_tree, lockstart, lockend,
-                        unlock_bits, 1, 0, &cached_state, GFP_NOFS);
+                        unlock_bits, 1, 0, &cached_state);
 err:
        if (dio_data)
                current->journal_info = dio_data;
                                         EXTENT_DIRTY | EXTENT_DELALLOC |
                                         EXTENT_DELALLOC_NEW |
                                         EXTENT_LOCKED | EXTENT_DO_ACCOUNTING |
-                                        EXTENT_DEFRAG, 1, 0, &cached_state,
-                                        GFP_NOFS);
+                                        EXTENT_DEFRAG, 1, 0, &cached_state);
                /*
                 * whoever cleared the private bit is responsible
                 * for the finish_ordered_io
                                 EXTENT_LOCKED | EXTENT_DIRTY |
                                 EXTENT_DELALLOC | EXTENT_DELALLOC_NEW |
                                 EXTENT_DO_ACCOUNTING | EXTENT_DEFRAG, 1, 1,
-                                &cached_state, GFP_NOFS);
+                                &cached_state);
 
                __btrfs_releasepage(page, GFP_NOFS);
        }
        clear_extent_bit(&BTRFS_I(inode)->io_tree, page_start, end,
                          EXTENT_DIRTY | EXTENT_DELALLOC |
                          EXTENT_DO_ACCOUNTING | EXTENT_DEFRAG,
-                         0, 0, &cached_state, GFP_NOFS);
+                         0, 0, &cached_state);
 
        ret = btrfs_set_extent_delalloc(inode, page_start, end, 0,
                                        &cached_state, 0);
 
        clear_extent_bit(&BTRFS_I(inode)->io_tree, page_start,
                          page_end - 1, EXTENT_DIRTY | EXTENT_DELALLOC |
                          EXTENT_DO_ACCOUNTING | EXTENT_DEFRAG, 0, 0,
-                         &cached_state, GFP_NOFS);
+                         &cached_state);
 
        if (i_done != page_cnt) {
                spin_lock(&BTRFS_I(inode)->lock);
 
        ULIST_ITER_INIT(&uiter);
        while ((unode = ulist_next(&reserved->range_changed, &uiter)))
                clear_extent_bit(&BTRFS_I(inode)->io_tree, unode->val,
-                                unode->aux, EXTENT_QGROUP_RESERVED, 0, 0, NULL,
-                                GFP_NOFS);
+                                unode->aux, EXTENT_QGROUP_RESERVED, 0, 0, NULL);
        extent_changeset_release(reserved);
        return ret;
 }
 
                               BTRFS_MAX_EXTENT_SIZE >> 1,
                               (BTRFS_MAX_EXTENT_SIZE >> 1) + sectorsize - 1,
                               EXTENT_DELALLOC | EXTENT_DIRTY |
-                              EXTENT_UPTODATE, 0, 0,
-                              NULL, GFP_KERNEL);
+                              EXTENT_UPTODATE, 0, 0, NULL);
        if (ret) {
                test_msg("clear_extent_bit returned %d\n", ret);
                goto out;
                               BTRFS_MAX_EXTENT_SIZE + sectorsize,
                               BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize - 1,
                               EXTENT_DIRTY | EXTENT_DELALLOC |
-                              EXTENT_UPTODATE, 0, 0,
-                              NULL, GFP_KERNEL);
+                              EXTENT_UPTODATE, 0, 0, NULL);
        if (ret) {
                test_msg("clear_extent_bit returned %d\n", ret);
                goto out;
        /* Empty */
        ret = clear_extent_bit(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
                               EXTENT_DIRTY | EXTENT_DELALLOC |
-                              EXTENT_UPTODATE, 0, 0,
-                              NULL, GFP_KERNEL);
+                              EXTENT_UPTODATE, 0, 0, NULL);
        if (ret) {
                test_msg("clear_extent_bit returned %d\n", ret);
                goto out;
        if (ret)
                clear_extent_bit(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
                                 EXTENT_DIRTY | EXTENT_DELALLOC |
-                                EXTENT_UPTODATE, 0, 0,
-                                NULL, GFP_KERNEL);
+                                EXTENT_UPTODATE, 0, 0, NULL);
        iput(inode);
        btrfs_free_dummy_root(root);
        btrfs_free_dummy_fs_info(fs_info);
 
                 * it's safe to do it (through clear_btree_io_tree()).
                 */
                err = clear_extent_bit(dirty_pages, start, end,
-                                      EXTENT_NEED_WAIT,
-                                      0, 0, &cached_state, GFP_NOFS);
+                                      EXTENT_NEED_WAIT, 0, 0, &cached_state);
                if (err == -ENOMEM)
                        err = 0;
                if (!err)