On Mon, Apr 09, 2012 at 09:37:08AM +0800, Liu Bo wrote:
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index a844204..1b692c2 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -3844,6 +3844,7 @@ again:
>  
>               spin_lock(&root->fs_info->free_chunk_lock);
>               avail = root->fs_info->free_chunk_space;
> +             spin_unlock(&root->fs_info->free_chunk_lock);
>  
>               /*
>                * If we have dup, raid1 or raid10 then only half of the free
> @@ -3854,17 +3855,6 @@ again:
>                              BTRFS_BLOCK_GROUP_RAID10))
>                       avail >>= 1;
>  
> -             /*
> -              * If we aren't flushing don't let us overcommit too much, say
> -              * 1/8th of the space.  If we can flush, let it overcommit up to
> -              * 1/2 of the space.
> -              */
> -             if (flush)
> -                     avail >>= 3;
> -             else
> -                     avail >>= 1;
> -              spin_unlock(&root->fs_info->free_chunk_lock);
> -
>               if (used + num_bytes < space_info->total_bytes + avail) {
>                       space_info->bytes_may_use += orig_bytes;
>                       trace_btrfs_space_reservation(root->fs_info,

Hangs during xfstests/013 with freshly made fs with just -o space_cache
mount:

$ btrfs fi df /mnt/a1
Data, RAID0: total=4.00GB, used=652.00KB
Data: total=8.00MB, used=0.00
System, RAID1: total=8.00MB, used=4.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=1.00GB, used=52.00KB
Metadata: total=8.00MB, used=0.00

/root/xfstests/ltp/fsstress -r -v -m 8 -n 1000 -d /mnt/a1/fsstress.26492.1

[<ffffffffa004e845>] btrfs_start_ordered_extent+0x85/0x140 [btrfs]
[<ffffffffa004ea44>] btrfs_wait_ordered_extents+0x144/0x230 [btrfs]
[<ffffffffa0004962>] btrfs_sync_fs+0x52/0x100 [btrfs]
[<ffffffff81172983>] __sync_filesystem+0x63/0x90
[<ffffffff811729cf>] sync_one_sb+0x1f/0x30
[<ffffffff81147611>] iterate_supers+0xf1/0x100
[<ffffffff811728d0>] sync_filesystems+0x20/0x30
[<ffffffff81172a76>] sys_sync+0x26/0x40
[<ffffffff818a65a9>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to