On tue, 28 Jan 2014 11:00:54 -0500, Josef Bacik wrote:
>
> On 01/14/2014 07:31 AM, Miao Xie wrote:
>> We are sure that:
>> - one ordered extent just has one csum calculation worker, and no one
>> access the csum list during the csum calculation except the worker.
>> - we don't change the list and free the csum until no one reference
>> to the ordered extent
>> So it is safe to add csum without the lock.
>>
>> Signed-off-by: Miao Xie <miaox@xxxxxxxxxxxxxx>
>> ---
>> fs/btrfs/ordered-data.c | 5 -----
>> 1 files changed, 0 insertions(+), 5 deletions(-)
>>
>> diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c
>> index e4c3d56..396c6d1 100644
>> --- a/fs/btrfs/ordered-data.c
>> +++ b/fs/btrfs/ordered-data.c
>> @@ -280,16 +280,11 @@ void btrfs_add_ordered_sum(struct inode *inode,
>> struct btrfs_ordered_extent *entry,
>> struct btrfs_ordered_sum *sum)
>> {
>> - struct btrfs_ordered_inode_tree *tree;
>> -
>> - tree = &BTRFS_I(inode)->ordered_tree;
>> - spin_lock_irq(&tree->lock);
>> list_add_tail(&sum->list, &entry->list);
>> WARN_ON(entry->csum_bytes_left < sum->len);
>> entry->csum_bytes_left -= sum->len;
>> if (entry->csum_bytes_left == 0)
>> wake_up(&entry->wait);
>> - spin_unlock_irq(&tree->lock);
>> }
>> /*
> This blew up in xfstests so one of your assumptions is incorrect. Thanks,
I think it is because there is a bug in the other place. Please tell me
the case that can reproduce the problem.
Thanks
Miao
>
> Josef
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html