Re: [PATCH V2] raid1: ensure write behind bio has less than BIO_MAX_VECS sectors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 8/19/21 4:55 PM, Christoph Hellwig wrote:
On Wed, Aug 18, 2021 at 03:37:38PM +0800, Guoqing Jiang wrote:
  	for (i = 0;  i < disks; i++) {
  		struct md_rdev *rdev = rcu_dereference(conf->mirrors[i].rdev);
+
+		if (test_bit(WriteMostly, &mirror->rdev->flags))
+			write_behind = true;
How does this condition relate to the ones used for actually calling
alloc_behind_master_bio?  It looks related, but as someone not familiar
with the code I can't really verify if this is correct, so a comment
explaining it might be useful.

How about this?

+               /*
+                * The write-behind io is only attempted on drives marked as
+                * write-mostly, which means we will allocate write behind
+                * bio later.
+                */
                if (test_bit(WriteMostly, &mirror->rdev->flags))
                        write_behind = true;

+	/*
+	 * When using a bitmap, we may call alloc_behind_master_bio below.
+	 * alloc_behind_master_bio allocates a copy of the data payload a page
+	 * at a time and thus needs a new bio that can fit the whole payload
+	 * this bio in page sized chunks.
+	 */
+	if (write_behind && bitmap)
+		max_sectors = min_t(int, max_sectors, BIO_MAX_VECS * PAGE_SECTORS);
Overly long line here.

I can change it given you still prefer the  limitation is 80 characters.

Thanks,
Guoqing



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux