Re: [PATCH] IMSM: Add warning message when x8-type device is used

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

 



On Fri, 2016-10-21 at 08:47 -0400, Jes Sorensen wrote:
> Pawel Baldysiak <pawel.baldysiak@xxxxxxxxx> writes:
> > This patch adds the warning message when x8-type device
> > is used with IMSM metadata. x8 device is a special
> > NVMe drive - two of them on a single PCIe card.
> > This card could be a single point of failure for
> > RAID levels different than RAID0. x8 devices have
> > serial number ending with "-A/-B" or "-1/-2".
> >
> > Signed-off-by: Pawel Baldysiak <pawel.baldysiak@xxxxxxxxx>
> > Reviewed-by: Artur Paszkiewicz <artur.paszkiewicz@xxxxxxxxx>
> > ---
> >  super-intel.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 42 insertions(+)
> Hi Pawel,
> 
> When posting a multi-patch series, it would be helpful to have it sent
> with appropriate headers staging the set is X/Y patches and a cover
> letter.
> 
> I normally use -n --cover-letter
Hi Jes,

Sorry about that. Those patches supposed to be sent separately, but I use
one git send-mail command to sent them all. Now I know that this was not
the most clever thing to do :) Please treat them as separate patches.

> 
> > diff --git a/super-intel.c b/super-intel.c
> > index 5c6ab05..e860e75 100644
> > --- a/super-intel.c
> > +++ b/super-intel.c
> > @@ -5139,9 +5139,51 @@ static int add_to_super_imsm(struct supertype *st, mdu_disk_info_t *dk,
> >  	rv = imsm_read_serial(fd, devname, dd->serial);
> >  	if (rv) {
> >  		pr_err("failed to retrieve scsi serial, aborting\n");
> > +		if (dd->devname)
> > +			free(dd->devname);
> >  		free(dd);
> >  		abort();
> >  	}
> > +	if (super->hba && ((super->hba->type == SYS_DEV_NVME) ||
> > +	   (super->hba->type == SYS_DEV_VMD))) {
> > +		int i;
> > +		char *devpath = diskfd_to_devpath(fd);
> > +		char controller_path[PATH_MAX];
> > +
> > +		if (!devpath) {
> > +			pr_err("failed to get devpath, aborting\n");
> > +			if (dd->devname)
> > +				free(dd->devname);
> > +			free(dd);
> > +			return 1;
> > +		}
> > +
> > +		snprintf(controller_path, PATH_MAX-1, "%s/device", devpath);
> > +		free(devpath);
> > +
> > +		if (devpath_to_vendor(controller_path) == 0x8086) {
> > +			/*
> > +			 * If Intel's NVMe drive has serial ended with
> > +			 * "-A","-B","-1" or "-2" it means that this is "x8"
> > +			 * device (double drive on single PCIe card).
> > +			 * User should be warned about potential data loss.
> > +			 */
> > +			for (i = MAX_RAID_SERIAL_LEN-1; i > 0; i--) {
> > +				/* Skip empty character at the end */
> > +				if (dd->serial[i] == 0)
> > +					continue;
> > +
> > +				if (((dd->serial[i] == 'A') || (dd->serial[i] == 'B') ||
> > +				   (dd->serial[i] == '1') || (dd->serial[i] == '2')) &&
> > +				   (dd->serial[i-1] == '-'))
> 
> Minor nit here - please keep this within 80 characters.

Would you like me to resend corrected version?
I saw that those lines are over 80 chars, but I kept it this way.
I think that its more readable right now, but if you prefer I can break those lines.

Thanks
Pawel
> 
> Thanks,
> Jes��.n��������+%������w��{.n�����{����w��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux