diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-05 13:21:15 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-04-05 13:21:15 -0700 | 
| commit | 795d580baec0d5386b83a8b557df47c20810e86b (patch) | |
| tree | d0387c37562e9e27a4f43cf7ae425319cbdad359 /fs/btrfs/ordered-data.c | |
| parent | 449cedf099b23a250e7d61982e35555ccb871182 (diff) | |
| parent | 109f6aef5fc436f355ad027f4d97bd696df2049a (diff) | |
| download | olio-linux-3.10-795d580baec0d5386b83a8b557df47c20810e86b.tar.xz olio-linux-3.10-795d580baec0d5386b83a8b557df47c20810e86b.zip  | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
  Btrfs: add check for changed leaves in setup_leaf_for_split
  Btrfs: create snapshot references in same commit as snapshot
  Btrfs: fix small race with delalloc flushing waitqueue's
  Btrfs: use add_to_page_cache_lru, use __page_cache_alloc
  Btrfs: fix chunk allocate size calculation
  Btrfs: kill max_extent mount option
  Btrfs: fail to mount if we have problems reading the block groups
  Btrfs: check btrfs_get_extent return for IS_ERR()
  Btrfs: handle kmalloc() failure in inode lookup ioctl
  Btrfs: dereferencing freed memory
  Btrfs: Simplify num_stripes's calculation logical for __btrfs_alloc_chunk()
  Btrfs: Add error handle for btrfs_search_slot() in btrfs_read_chunk_tree()
  Btrfs: Remove unnecessary finish_wait() in wait_current_trans()
  Btrfs: add NULL check for do_walk_down()
  Btrfs: remove duplicate include in ioctl.c
Fix trivial conflict in fs/btrfs/compression.c due to slab.h include
cleanups.
Diffstat (limited to 'fs/btrfs/ordered-data.c')
| -rw-r--r-- | fs/btrfs/ordered-data.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c index ecb22ff7d1f..a127c0ebb2d 100644 --- a/fs/btrfs/ordered-data.c +++ b/fs/btrfs/ordered-data.c @@ -302,6 +302,7 @@ static int __btrfs_remove_ordered_extent(struct inode *inode,  				struct btrfs_ordered_extent *entry)  {  	struct btrfs_ordered_inode_tree *tree; +	struct btrfs_root *root = BTRFS_I(inode)->root;  	struct rb_node *node;  	tree = &BTRFS_I(inode)->ordered_tree; @@ -311,12 +312,13 @@ static int __btrfs_remove_ordered_extent(struct inode *inode,  	set_bit(BTRFS_ORDERED_COMPLETE, &entry->flags);  	spin_lock(&BTRFS_I(inode)->accounting_lock); +	WARN_ON(!BTRFS_I(inode)->outstanding_extents);  	BTRFS_I(inode)->outstanding_extents--;  	spin_unlock(&BTRFS_I(inode)->accounting_lock);  	btrfs_unreserve_metadata_for_delalloc(BTRFS_I(inode)->root,  					      inode, 1); -	spin_lock(&BTRFS_I(inode)->root->fs_info->ordered_extent_lock); +	spin_lock(&root->fs_info->ordered_extent_lock);  	list_del_init(&entry->root_extent_list);  	/* @@ -328,7 +330,7 @@ static int __btrfs_remove_ordered_extent(struct inode *inode,  	    !mapping_tagged(inode->i_mapping, PAGECACHE_TAG_DIRTY)) {  		list_del_init(&BTRFS_I(inode)->ordered_operations);  	} -	spin_unlock(&BTRFS_I(inode)->root->fs_info->ordered_extent_lock); +	spin_unlock(&root->fs_info->ordered_extent_lock);  	return 0;  }  |