Excerpts from Miao Xie's message of 2011-03-27 08:27:30 -0400:
> Changelog V1 -> V2:
> - modify the explanation of the deadlock.
> - clear __GFP_FS flag in the free space's page cache.
> 
> diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
> index a039065..57df380 100644
> --- a/fs/btrfs/free-space-cache.c
> +++ b/fs/btrfs/free-space-cache.c
> @@ -88,6 +88,8 @@ struct inode *lookup_free_space_inode(struct btrfs_root 
> *root,
>      }
>      spin_unlock(&block_group->lock);
>  
> +    inode->i_mapping->flags &= ~__GFP_FS;
> +
>      return inode;
>  }
>  

I did this part slightly differently, in btrfs_read_locked_inode.  That
way we know the mask isn't changing while page allocations are taking
place.

-chris
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to