forked from mirrors/linux
		
	btrfs: remove lock protection for BLOCK_GROUP_FLAG_TO_COPY
We use this during device replace for zoned devices, we were simply taking the lock because it was in a bit field and we needed the lock to be safe with other modifications in the bitfield. With the bit helpers we no longer require that locking. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
		
							parent
							
								
									3349b57fd4
								
							
						
					
					
						commit
						9283b9e09a
					
				
					 3 changed files with 0 additions and 9 deletions
				
			
		| 
						 | 
					@ -545,10 +545,7 @@ static int mark_block_group_to_copy(struct btrfs_fs_info *fs_info,
 | 
				
			||||||
		if (!cache)
 | 
							if (!cache)
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		spin_lock(&cache->lock);
 | 
					 | 
				
			||||||
		set_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
 | 
							set_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
 | 
				
			||||||
		spin_unlock(&cache->lock);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		btrfs_put_block_group(cache);
 | 
							btrfs_put_block_group(cache);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (iter_ret < 0)
 | 
						if (iter_ret < 0)
 | 
				
			||||||
| 
						 | 
					@ -610,9 +607,7 @@ bool btrfs_finish_block_group_to_copy(struct btrfs_device *srcdev,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Last stripe on this device */
 | 
						/* Last stripe on this device */
 | 
				
			||||||
	spin_lock(&cache->lock);
 | 
					 | 
				
			||||||
	clear_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
 | 
						clear_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
 | 
				
			||||||
	spin_unlock(&cache->lock);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return true;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3755,13 +3755,11 @@ int scrub_enumerate_chunks(struct scrub_ctx *sctx,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (sctx->is_dev_replace && btrfs_is_zoned(fs_info)) {
 | 
							if (sctx->is_dev_replace && btrfs_is_zoned(fs_info)) {
 | 
				
			||||||
			spin_lock(&cache->lock);
 | 
					 | 
				
			||||||
			if (!test_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags)) {
 | 
								if (!test_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags)) {
 | 
				
			||||||
				spin_unlock(&cache->lock);
 | 
									spin_unlock(&cache->lock);
 | 
				
			||||||
				btrfs_put_block_group(cache);
 | 
									btrfs_put_block_group(cache);
 | 
				
			||||||
				goto skip;
 | 
									goto skip;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			spin_unlock(&cache->lock);
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6153,9 +6153,7 @@ static bool is_block_group_to_copy(struct btrfs_fs_info *fs_info, u64 logical)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	cache = btrfs_lookup_block_group(fs_info, logical);
 | 
						cache = btrfs_lookup_block_group(fs_info, logical);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spin_lock(&cache->lock);
 | 
					 | 
				
			||||||
	ret = test_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
 | 
						ret = test_bit(BLOCK_GROUP_FLAG_TO_COPY, &cache->runtime_flags);
 | 
				
			||||||
	spin_unlock(&cache->lock);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	btrfs_put_block_group(cache);
 | 
						btrfs_put_block_group(cache);
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue