diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-02-04 11:50:15 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-02-04 11:50:15 -0800 | 
| commit | 5787c25240c92df25f34c1abb7f76a96d8615034 (patch) | |
| tree | f3ab0655fc171c21af5de0b9d0e67c298350c30c | |
| parent | 04d740d5f5a3f37d69fef112b061340fcef6a26d (diff) | |
| parent | 9ea064158f4e02e64890ee1261449b01e954e594 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md
Pull MD fix from Shaohua Li:
 "As you know, Neil steps down from MD.  I'm looking after it.  Here are
  some patches queued.
  A build fix from Gayatri and several trival patches from me"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
  md-cluster: delete useless code
  md-cluster: fix missing memory free
  raid6/algos.c : bug fix : Add the missing definitions to the pq.h file
  MD: add myself as MD maintainer
  MD: rename some functions
| -rw-r--r-- | MAINTAINERS | 1 | ||||
| -rw-r--r-- | drivers/md/bitmap.c | 4 | ||||
| -rw-r--r-- | drivers/md/faulty.c | 18 | ||||
| -rw-r--r-- | drivers/md/md-cluster.c | 6 | ||||
| -rw-r--r-- | drivers/md/raid1.c | 21 | ||||
| -rw-r--r-- | drivers/md/raid10.c | 20 | ||||
| -rw-r--r-- | drivers/md/raid5.c | 45 | ||||
| -rw-r--r-- | include/linux/raid/pq.h | 2 | 
8 files changed, 61 insertions, 56 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 5fa8d32b9b2e..a9010d992da3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10154,6 +10154,7 @@ S:	Supported  F:	drivers/media/pci/solo6x10/  SOFTWARE RAID (Multiple Disks) SUPPORT +M:	Shaohua Li <shli@kernel.org>  L:	linux-raid@vger.kernel.org  T:	git git://neil.brown.name/md  S:	Supported diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index 4f22e919787a..d80cce499a56 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c @@ -210,10 +210,6 @@ static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait)  	struct block_device *bdev;  	struct mddev *mddev = bitmap->mddev;  	struct bitmap_storage *store = &bitmap->storage; -	int node_offset = 0; - -	if (mddev_is_clustered(bitmap->mddev)) -		node_offset = bitmap->cluster_slot * store->file_pages;  	while ((rdev = next_active_rdev(rdev, mddev)) != NULL) {  		int size = PAGE_SIZE; diff --git a/drivers/md/faulty.c b/drivers/md/faulty.c index 4a8e15058e8b..685aa2d77e25 100644 --- a/drivers/md/faulty.c +++ b/drivers/md/faulty.c @@ -170,7 +170,7 @@ static void add_sector(struct faulty_conf *conf, sector_t start, int mode)  		conf->nfaults = n+1;  } -static void make_request(struct mddev *mddev, struct bio *bio) +static void faulty_make_request(struct mddev *mddev, struct bio *bio)  {  	struct faulty_conf *conf = mddev->private;  	int failit = 0; @@ -226,7 +226,7 @@ static void make_request(struct mddev *mddev, struct bio *bio)  	generic_make_request(bio);  } -static void status(struct seq_file *seq, struct mddev *mddev) +static void faulty_status(struct seq_file *seq, struct mddev *mddev)  {  	struct faulty_conf *conf = mddev->private;  	int n; @@ -259,7 +259,7 @@ static void status(struct seq_file *seq, struct mddev *mddev)  } -static int reshape(struct mddev *mddev) +static int faulty_reshape(struct mddev *mddev)  {  	int mode = mddev->new_layout & ModeMask;  	int count = mddev->new_layout >> ModeShift; @@ -299,7 +299,7 @@ static sector_t faulty_size(struct mddev *mddev, sector_t sectors, int raid_disk  	return sectors;  } -static int run(struct mddev *mddev) +static int faulty_run(struct mddev *mddev)  {  	struct md_rdev *rdev;  	int i; @@ -327,7 +327,7 @@ static int run(struct mddev *mddev)  	md_set_array_sectors(mddev, faulty_size(mddev, 0, 0));  	mddev->private = conf; -	reshape(mddev); +	faulty_reshape(mddev);  	return 0;  } @@ -344,11 +344,11 @@ static struct md_personality faulty_personality =  	.name		= "faulty",  	.level		= LEVEL_FAULTY,  	.owner		= THIS_MODULE, -	.make_request	= make_request, -	.run		= run, +	.make_request	= faulty_make_request, +	.run		= faulty_run,  	.free		= faulty_free, -	.status		= status, -	.check_reshape	= reshape, +	.status		= faulty_status, +	.check_reshape	= faulty_reshape,  	.size		= faulty_size,  }; diff --git a/drivers/md/md-cluster.c b/drivers/md/md-cluster.c index 0ded8e97751d..dd97d4245822 100644 --- a/drivers/md/md-cluster.c +++ b/drivers/md/md-cluster.c @@ -293,6 +293,7 @@ static void recover_bitmaps(struct md_thread *thread)  dlm_unlock:  		dlm_unlock_sync(bm_lockres);  clear_bit: +		lockres_free(bm_lockres);  		clear_bit(slot, &cinfo->recovery_map);  	}  } @@ -682,8 +683,10 @@ static int gather_all_resync_info(struct mddev *mddev, int total_slots)  		bm_lockres = lockres_init(mddev, str, NULL, 1);  		if (!bm_lockres)  			return -ENOMEM; -		if (i == (cinfo->slot_number - 1)) +		if (i == (cinfo->slot_number - 1)) { +			lockres_free(bm_lockres);  			continue; +		}  		bm_lockres->flags |= DLM_LKF_NOQUEUE;  		ret = dlm_lock_sync(bm_lockres, DLM_LOCK_PW); @@ -858,6 +861,7 @@ static int leave(struct mddev *mddev)  	lockres_free(cinfo->token_lockres);  	lockres_free(cinfo->ack_lockres);  	lockres_free(cinfo->no_new_dev_lockres); +	lockres_free(cinfo->resync_lockres);  	lockres_free(cinfo->bitmap_lockres);  	unlock_all_bitmaps(mddev);  	dlm_release_lockspace(cinfo->lockspace, 2); diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index c4b913409226..4e3843f7d245 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -1044,7 +1044,7 @@ static void raid1_unplug(struct blk_plug_cb *cb, bool from_schedule)  	kfree(plug);  } -static void make_request(struct mddev *mddev, struct bio * bio) +static void raid1_make_request(struct mddev *mddev, struct bio * bio)  {  	struct r1conf *conf = mddev->private;  	struct raid1_info *mirror; @@ -1422,7 +1422,7 @@ read_again:  	wake_up(&conf->wait_barrier);  } -static void status(struct seq_file *seq, struct mddev *mddev) +static void raid1_status(struct seq_file *seq, struct mddev *mddev)  {  	struct r1conf *conf = mddev->private;  	int i; @@ -1439,7 +1439,7 @@ static void status(struct seq_file *seq, struct mddev *mddev)  	seq_printf(seq, "]");  } -static void error(struct mddev *mddev, struct md_rdev *rdev) +static void raid1_error(struct mddev *mddev, struct md_rdev *rdev)  {  	char b[BDEVNAME_SIZE];  	struct r1conf *conf = mddev->private; @@ -2472,7 +2472,8 @@ static int init_resync(struct r1conf *conf)   * that can be installed to exclude normal IO requests.   */ -static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipped) +static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr, +				   int *skipped)  {  	struct r1conf *conf = mddev->private;  	struct r1bio *r1_bio; @@ -2890,7 +2891,7 @@ static struct r1conf *setup_conf(struct mddev *mddev)  }  static void raid1_free(struct mddev *mddev, void *priv); -static int run(struct mddev *mddev) +static int raid1_run(struct mddev *mddev)  {  	struct r1conf *conf;  	int i; @@ -3170,15 +3171,15 @@ static struct md_personality raid1_personality =  	.name		= "raid1",  	.level		= 1,  	.owner		= THIS_MODULE, -	.make_request	= make_request, -	.run		= run, +	.make_request	= raid1_make_request, +	.run		= raid1_run,  	.free		= raid1_free, -	.status		= status, -	.error_handler	= error, +	.status		= raid1_status, +	.error_handler	= raid1_error,  	.hot_add_disk	= raid1_add_disk,  	.hot_remove_disk= raid1_remove_disk,  	.spare_active	= raid1_spare_active, -	.sync_request	= sync_request, +	.sync_request	= raid1_sync_request,  	.resize		= raid1_resize,  	.size		= raid1_size,  	.check_reshape	= raid1_reshape, diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index ce959b4ae4df..1c1447dd3417 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -1442,7 +1442,7 @@ retry_write:  	one_write_done(r10_bio);  } -static void make_request(struct mddev *mddev, struct bio *bio) +static void raid10_make_request(struct mddev *mddev, struct bio *bio)  {  	struct r10conf *conf = mddev->private;  	sector_t chunk_mask = (conf->geo.chunk_mask & conf->prev.chunk_mask); @@ -1484,7 +1484,7 @@ static void make_request(struct mddev *mddev, struct bio *bio)  	wake_up(&conf->wait_barrier);  } -static void status(struct seq_file *seq, struct mddev *mddev) +static void raid10_status(struct seq_file *seq, struct mddev *mddev)  {  	struct r10conf *conf = mddev->private;  	int i; @@ -1562,7 +1562,7 @@ static int enough(struct r10conf *conf, int ignore)  		_enough(conf, 1, ignore);  } -static void error(struct mddev *mddev, struct md_rdev *rdev) +static void raid10_error(struct mddev *mddev, struct md_rdev *rdev)  {  	char b[BDEVNAME_SIZE];  	struct r10conf *conf = mddev->private; @@ -2802,7 +2802,7 @@ static int init_resync(struct r10conf *conf)   *   */ -static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, +static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,  			     int *skipped)  {  	struct r10conf *conf = mddev->private; @@ -3523,7 +3523,7 @@ static struct r10conf *setup_conf(struct mddev *mddev)  	return ERR_PTR(err);  } -static int run(struct mddev *mddev) +static int raid10_run(struct mddev *mddev)  {  	struct r10conf *conf;  	int i, disk_idx, chunk_size; @@ -4617,15 +4617,15 @@ static struct md_personality raid10_personality =  	.name		= "raid10",  	.level		= 10,  	.owner		= THIS_MODULE, -	.make_request	= make_request, -	.run		= run, +	.make_request	= raid10_make_request, +	.run		= raid10_run,  	.free		= raid10_free, -	.status		= status, -	.error_handler	= error, +	.status		= raid10_status, +	.error_handler	= raid10_error,  	.hot_add_disk	= raid10_add_disk,  	.hot_remove_disk= raid10_remove_disk,  	.spare_active	= raid10_spare_active, -	.sync_request	= sync_request, +	.sync_request	= raid10_sync_request,  	.quiesce	= raid10_quiesce,  	.size		= raid10_size,  	.resize		= raid10_resize, diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index a086014dcd49..b4f02c9959f2 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -2496,7 +2496,7 @@ static void raid5_build_block(struct stripe_head *sh, int i, int previous)  	dev->sector = raid5_compute_blocknr(sh, i, previous);  } -static void error(struct mddev *mddev, struct md_rdev *rdev) +static void raid5_error(struct mddev *mddev, struct md_rdev *rdev)  {  	char b[BDEVNAME_SIZE];  	struct r5conf *conf = mddev->private; @@ -2958,7 +2958,7 @@ static int add_stripe_bio(struct stripe_head *sh, struct bio *bi, int dd_idx,  	 * If several bio share a stripe. The bio bi_phys_segments acts as a  	 * reference count to avoid race. The reference count should already be  	 * increased before this function is called (for example, in -	 * make_request()), so other bio sharing this stripe will not free the +	 * raid5_make_request()), so other bio sharing this stripe will not free the  	 * stripe. If a stripe is owned by one stripe, the stripe lock will  	 * protect it.  	 */ @@ -5135,7 +5135,7 @@ static void make_discard_request(struct mddev *mddev, struct bio *bi)  	}  } -static void make_request(struct mddev *mddev, struct bio * bi) +static void raid5_make_request(struct mddev *mddev, struct bio * bi)  {  	struct r5conf *conf = mddev->private;  	int dd_idx; @@ -5225,7 +5225,7 @@ static void make_request(struct mddev *mddev, struct bio * bi)  		new_sector = raid5_compute_sector(conf, logical_sector,  						  previous,  						  &dd_idx, NULL); -		pr_debug("raid456: make_request, sector %llu logical %llu\n", +		pr_debug("raid456: raid5_make_request, sector %llu logical %llu\n",  			(unsigned long long)new_sector,  			(unsigned long long)logical_sector); @@ -5575,7 +5575,8 @@ ret:  	return retn;  } -static inline sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipped) +static inline sector_t raid5_sync_request(struct mddev *mddev, sector_t sector_nr, +					  int *skipped)  {  	struct r5conf *conf = mddev->private;  	struct stripe_head *sh; @@ -6674,7 +6675,7 @@ static int only_parity(int raid_disk, int algo, int raid_disks, int max_degraded  	return 0;  } -static int run(struct mddev *mddev) +static int raid5_run(struct mddev *mddev)  {  	struct r5conf *conf;  	int working_disks = 0; @@ -7048,7 +7049,7 @@ static void raid5_free(struct mddev *mddev, void *priv)  	mddev->to_remove = &raid5_attrs_group;  } -static void status(struct seq_file *seq, struct mddev *mddev) +static void raid5_status(struct seq_file *seq, struct mddev *mddev)  {  	struct r5conf *conf = mddev->private;  	int i; @@ -7864,15 +7865,15 @@ static struct md_personality raid6_personality =  	.name		= "raid6",  	.level		= 6,  	.owner		= THIS_MODULE, -	.make_request	= make_request, -	.run		= run, +	.make_request	= raid5_make_request, +	.run		= raid5_run,  	.free		= raid5_free, -	.status		= status, -	.error_handler	= error, +	.status		= raid5_status, +	.error_handler	= raid5_error,  	.hot_add_disk	= raid5_add_disk,  	.hot_remove_disk= raid5_remove_disk,  	.spare_active	= raid5_spare_active, -	.sync_request	= sync_request, +	.sync_request	= raid5_sync_request,  	.resize		= raid5_resize,  	.size		= raid5_size,  	.check_reshape	= raid6_check_reshape, @@ -7887,15 +7888,15 @@ static struct md_personality raid5_personality =  	.name		= "raid5",  	.level		= 5,  	.owner		= THIS_MODULE, -	.make_request	= make_request, -	.run		= run, +	.make_request	= raid5_make_request, +	.run		= raid5_run,  	.free		= raid5_free, -	.status		= status, -	.error_handler	= error, +	.status		= raid5_status, +	.error_handler	= raid5_error,  	.hot_add_disk	= raid5_add_disk,  	.hot_remove_disk= raid5_remove_disk,  	.spare_active	= raid5_spare_active, -	.sync_request	= sync_request, +	.sync_request	= raid5_sync_request,  	.resize		= raid5_resize,  	.size		= raid5_size,  	.check_reshape	= raid5_check_reshape, @@ -7911,15 +7912,15 @@ static struct md_personality raid4_personality =  	.name		= "raid4",  	.level		= 4,  	.owner		= THIS_MODULE, -	.make_request	= make_request, -	.run		= run, +	.make_request	= raid5_make_request, +	.run		= raid5_run,  	.free		= raid5_free, -	.status		= status, -	.error_handler	= error, +	.status		= raid5_status, +	.error_handler	= raid5_error,  	.hot_add_disk	= raid5_add_disk,  	.hot_remove_disk= raid5_remove_disk,  	.spare_active	= raid5_spare_active, -	.sync_request	= sync_request, +	.sync_request	= raid5_sync_request,  	.resize		= raid5_resize,  	.size		= raid5_size,  	.check_reshape	= raid5_check_reshape, diff --git a/include/linux/raid/pq.h b/include/linux/raid/pq.h index a7a06d1dcf9c..a0118d5929a9 100644 --- a/include/linux/raid/pq.h +++ b/include/linux/raid/pq.h @@ -152,6 +152,8 @@ void raid6_dual_recov(int disks, size_t bytes, int faila, int failb,  # define jiffies	raid6_jiffies()  # define printk 	printf +# define pr_err(format, ...) fprintf(stderr, format, ## __VA_ARGS__) +# define pr_info(format, ...) fprintf(stdout, format, ## __VA_ARGS__)  # define GFP_KERNEL	0  # define __get_free_pages(x, y)	((unsigned long)mmap(NULL, PAGE_SIZE << (y), \  						     PROT_READ|PROT_WRITE,   \  | 
