On 01/28/2014 09:25 PM, Miao Xie wrote:
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 <mi...@cn.fujitsu.com>
---
   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.

It was one of the btrfs tests, I think btrfs/005 maybe? Turn on slab debugging, that seemed to make a difference. Thanks,

Josef
--
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