forked from mirrors/linux
		
	btrfs: remove unused raid56 functions which were dedicated for scrub
Since the scrub rework, the following RAID56 functions are no longer called: - raid56_add_scrub_pages() - raid56_alloc_missing_rbio() - raid56_submit_missing_rbio() Those functions are all utilized by scrub to handle missing device cases for RAID56. However the new scrub code handle them in a completely different way: - If it's data stripe, go recovery path through btrfs_submit_bio() - If it's P/Q stripe, it would be handled through raid56_parity_submit_scrub_rbio() And that function would handle dev-replace and repair properly. Thus we can safely remove those functions. Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
		
							parent
							
								
									13a62fd997
								
							
						
					
					
						commit
						aca43fe839
					
				
					 2 changed files with 0 additions and 54 deletions
				
			
		| 
						 | 
					@ -2376,23 +2376,6 @@ struct btrfs_raid_bio *raid56_parity_alloc_scrub_rbio(struct bio *bio,
 | 
				
			||||||
	return rbio;
 | 
						return rbio;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Used for both parity scrub and missing. */
 | 
					 | 
				
			||||||
void raid56_add_scrub_pages(struct btrfs_raid_bio *rbio, struct page *page,
 | 
					 | 
				
			||||||
			    unsigned int pgoff, u64 logical)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	const u32 sectorsize = rbio->bioc->fs_info->sectorsize;
 | 
					 | 
				
			||||||
	int stripe_offset;
 | 
					 | 
				
			||||||
	int index;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	ASSERT(logical >= rbio->bioc->full_stripe_logical);
 | 
					 | 
				
			||||||
	ASSERT(logical + sectorsize <= rbio->bioc->full_stripe_logical +
 | 
					 | 
				
			||||||
				       BTRFS_STRIPE_LEN * rbio->nr_data);
 | 
					 | 
				
			||||||
	stripe_offset = (int)(logical - rbio->bioc->full_stripe_logical);
 | 
					 | 
				
			||||||
	index = stripe_offset / sectorsize;
 | 
					 | 
				
			||||||
	rbio->bio_sectors[index].page = page;
 | 
					 | 
				
			||||||
	rbio->bio_sectors[index].pgoff = pgoff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * We just scrub the parity that we have correct data on the same horizontal,
 | 
					 * We just scrub the parity that we have correct data on the same horizontal,
 | 
				
			||||||
 * so we needn't allocate all pages for all the stripes.
 | 
					 * so we needn't allocate all pages for all the stripes.
 | 
				
			||||||
| 
						 | 
					@ -2764,33 +2747,3 @@ void raid56_parity_submit_scrub_rbio(struct btrfs_raid_bio *rbio)
 | 
				
			||||||
	if (!lock_stripe_add(rbio))
 | 
						if (!lock_stripe_add(rbio))
 | 
				
			||||||
		start_async_work(rbio, scrub_rbio_work_locked);
 | 
							start_async_work(rbio, scrub_rbio_work_locked);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
/* The following code is used for dev replace of a missing RAID 5/6 device. */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct btrfs_raid_bio *
 | 
					 | 
				
			||||||
raid56_alloc_missing_rbio(struct bio *bio, struct btrfs_io_context *bioc)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	struct btrfs_fs_info *fs_info = bioc->fs_info;
 | 
					 | 
				
			||||||
	struct btrfs_raid_bio *rbio;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	rbio = alloc_rbio(fs_info, bioc);
 | 
					 | 
				
			||||||
	if (IS_ERR(rbio))
 | 
					 | 
				
			||||||
		return NULL;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	rbio->operation = BTRFS_RBIO_REBUILD_MISSING;
 | 
					 | 
				
			||||||
	bio_list_add(&rbio->bio_list, bio);
 | 
					 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	 * This is a special bio which is used to hold the completion handler
 | 
					 | 
				
			||||||
	 * and make the scrub rbio is similar to the other types
 | 
					 | 
				
			||||||
	 */
 | 
					 | 
				
			||||||
	ASSERT(!bio->bi_iter.bi_size);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	set_rbio_range_error(rbio, bio);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return rbio;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void raid56_submit_missing_rbio(struct btrfs_raid_bio *rbio)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	start_async_work(rbio, recover_rbio_work);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -187,19 +187,12 @@ void raid56_parity_recover(struct bio *bio, struct btrfs_io_context *bioc,
 | 
				
			||||||
			   int mirror_num);
 | 
								   int mirror_num);
 | 
				
			||||||
void raid56_parity_write(struct bio *bio, struct btrfs_io_context *bioc);
 | 
					void raid56_parity_write(struct bio *bio, struct btrfs_io_context *bioc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void raid56_add_scrub_pages(struct btrfs_raid_bio *rbio, struct page *page,
 | 
					 | 
				
			||||||
			    unsigned int pgoff, u64 logical);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct btrfs_raid_bio *raid56_parity_alloc_scrub_rbio(struct bio *bio,
 | 
					struct btrfs_raid_bio *raid56_parity_alloc_scrub_rbio(struct bio *bio,
 | 
				
			||||||
				struct btrfs_io_context *bioc,
 | 
									struct btrfs_io_context *bioc,
 | 
				
			||||||
				struct btrfs_device *scrub_dev,
 | 
									struct btrfs_device *scrub_dev,
 | 
				
			||||||
				unsigned long *dbitmap, int stripe_nsectors);
 | 
									unsigned long *dbitmap, int stripe_nsectors);
 | 
				
			||||||
void raid56_parity_submit_scrub_rbio(struct btrfs_raid_bio *rbio);
 | 
					void raid56_parity_submit_scrub_rbio(struct btrfs_raid_bio *rbio);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct btrfs_raid_bio *
 | 
					 | 
				
			||||||
raid56_alloc_missing_rbio(struct bio *bio, struct btrfs_io_context *bioc);
 | 
					 | 
				
			||||||
void raid56_submit_missing_rbio(struct btrfs_raid_bio *rbio);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int btrfs_alloc_stripe_hash_table(struct btrfs_fs_info *info);
 | 
					int btrfs_alloc_stripe_hash_table(struct btrfs_fs_info *info);
 | 
				
			||||||
void btrfs_free_stripe_hash_table(struct btrfs_fs_info *info);
 | 
					void btrfs_free_stripe_hash_table(struct btrfs_fs_info *info);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue