[dm-devel] [PATCH v2 4/6] libmultipath: factor out code to get vpd page data

Benjamin Marzinski bmarzins at redhat.com
Wed Dec 16 23:19:56 UTC 2020


On Wed, Dec 16, 2020 at 09:13:49PM +0000, Martin Wilck wrote:
> On Wed, 2020-11-04 at 00:54 -0600, Benjamin Marzinski wrote:
> > A future patch will reuse the code to get the vpd page data, so
> > factor
> > it out from get_vpd_sgio().
> > 
> > Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
> > ---
> >  libmultipath/discovery.c | 19 +++++++++++++++----
> >  1 file changed, 15 insertions(+), 4 deletions(-)
> > 
> > diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
> > index a97d2998..95ddbbbd 100644
> > --- a/libmultipath/discovery.c
> > +++ b/libmultipath/discovery.c
> > @@ -1319,11 +1319,10 @@ get_vpd_sysfs (struct udev_device *parent,
> > int pg, char * str, int maxlen)
> >  	return len;
> >  }
> >  
> > -int
> > -get_vpd_sgio (int fd, int pg, int vend_id, char * str, int maxlen)
> > +static int
> > +fetch_vpd_page(int fd, int pg, unsigned char *buff)
> >  {
> > -	int len, buff_len;
> > -	unsigned char buff[4096];
> > +	int buff_len;
> >  
> >  	memset(buff, 0x0, 4096);
> 
> I don't know ... I think we shouldn't write any new functions making
> assumptions about the size of buffers passed to them, even if the
> caller is directly next to them in the code.
> 

Fair enough. I'll change that.

-Ben

> >  	if (sgio_get_vpd(buff, 4096, fd, pg) < 0) {
> > @@ -1344,6 +1343,18 @@ get_vpd_sgio (int fd, int pg, int vend_id,
> > char * str, int maxlen)
> >  		condlog(3, "vpd pg%02x page truncated", pg);
> >  		buff_len = 4096;
> >  	}
> > +	return buff_len;
> > +}
> > +
> > +int
> > +get_vpd_sgio (int fd, int pg, int vend_id, char * str, int maxlen)
> > +{
> > +	int len, buff_len;
> > +	unsigned char buff[4096];
> > +
> > +	buff_len = fetch_vpd_page(fd, pg, buff);
> > +	if (buff_len < 0)
> > +		return buff_len;
> >  	if (pg == 0x80)
> >  		len = parse_vpd_pg80(buff, str, maxlen);
> >  	else if (pg == 0x83)
> 
> -- 
> Dr. Martin Wilck <mwilck at suse.com>, Tel. +49 (0)911 74053 2107
> SUSE  Software Solutions Germany GmbH
> HRB 36809, AG Nürnberg GF: Felix
> Imendörffer
> 




More information about the dm-devel mailing list