From 5e3f72e1026e372d3aade661a45aae58cc79af2c Mon Sep 17 00:00:00 2001 From: Miao Xie Date: Sun, 27 Mar 2011 16:07:36 +0800 Subject: [PATCH] --- yaml --- r: 243183 b: refs/heads/master c: 1561deda687eef0e95065f1268d680ddc5976ee7 h: refs/heads/master i: 243181: df48691bd7c1fe8e513945923f5b5d5da5ba2811 243179: dc1e51b65790ce31a3dd8b5b2855afc229179c0f 243175: 5bf25450bcd027f894255bfc1474fada1011cef0 243167: a043ac206d6db3a02bd9b2e318d14aea29d1dbde v: v3 --- [refs] | 2 +- trunk/fs/btrfs/disk-io.c | 2 ++ trunk/fs/btrfs/inode.c | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 9f7e80c01ca3..adbc15bc89b6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c055e99eea6e4f614267632fac546e7896c0227b +refs/heads/master: 1561deda687eef0e95065f1268d680ddc5976ee7 diff --git a/trunk/fs/btrfs/disk-io.c b/trunk/fs/btrfs/disk-io.c index b3fc8475870f..5cf3aa7b125c 100644 --- a/trunk/fs/btrfs/disk-io.c +++ b/trunk/fs/btrfs/disk-io.c @@ -1724,6 +1724,8 @@ struct btrfs_root *open_ctree(struct super_block *sb, goto fail_bdi; } + fs_info->btree_inode->i_mapping->flags &= ~__GFP_FS; + INIT_RADIX_TREE(&fs_info->fs_roots_radix, GFP_ATOMIC); INIT_LIST_HEAD(&fs_info->trans_list); INIT_LIST_HEAD(&fs_info->dead_roots); diff --git a/trunk/fs/btrfs/inode.c b/trunk/fs/btrfs/inode.c index 04babaf31a33..06274186b290 100644 --- a/trunk/fs/btrfs/inode.c +++ b/trunk/fs/btrfs/inode.c @@ -2536,6 +2536,8 @@ static void btrfs_read_locked_inode(struct inode *inode) BTRFS_I(inode)->flags = btrfs_inode_flags(leaf, inode_item); alloc_group_block = btrfs_inode_block_group(leaf, inode_item); + if (location.objectid == BTRFS_FREE_SPACE_OBJECTID) + inode->i_mapping->flags &= ~__GFP_FS; /* * try to precache a NULL acl entry for files that don't have @@ -4084,7 +4086,6 @@ struct inode *btrfs_iget(struct super_block *s, struct btrfs_key *location, BTRFS_I(inode)->root = root; memcpy(&BTRFS_I(inode)->location, location, sizeof(*location)); btrfs_read_locked_inode(inode); - inode_tree_add(inode); unlock_new_inode(inode); if (new)