Subject: Re: [PATCH] block: fix part_pack_uuid() build error

From: Andrew Morton <[email-masked]>
Date: Mon, 25 Feb 2013 15:18:27 -0800

On Mon, 25 Feb 2013 15:16:38 -0800
Andrew Morton <[email-masked]> wrote:

> On Sun, 24 Feb 2013 10:15:44 -0500
> Mimi Zohar <[email-masked]> wrote:
> 
> > Fix a build error when CONFIG_BLOCK is not enabled, by defining
> > a wrapper called blk_part_pack_uuid().  The wrapper returns
> > -EINVAL, when CONFIG_BLOCK is not defined.
> > 
> > security/integrity/ima/ima_policy.c:538:4: error: implicit declaration
> > of function 'part_pack_uuid' [-Werror=implicit-function-declaration]
> > 
> > ...
> >
> > diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
> > index b27535a..399433a 100644
> > --- a/security/integrity/ima/ima_policy.c
> > +++ b/security/integrity/ima/ima_policy.c
> >  			ima_log_string(ab, "fsuuid", args[0].from);
> >  
> >  			if (memchr_inv(entry->fsuuid, 0x00,
> > -			    sizeof(entry->fsuuid))) {
> > +				       sizeof(entry->fsuuid))) {
> >  				result = -EINVAL;
> >  				break;
> >  			}
> >  
> > -			part_pack_uuid(args[0].from, entry->fsuuid);
> > -			entry->flags |= IMA_FSUUID;
> > -			result = 0;
> > +			result = blk_part_pack_uuid(args[0].from,
> > +						    entry->fsuuid);
> > +			if (!result)
> > +				entry->flags |= IMA_FSUUID;
> 
> This will cause ima_parse_rule() to newly return -EINVAL if the fsuuid=
> option is used when CONFIG_BLOCK=n.
> 
> This functional change was not changelogged, forcing me to ask: was it
> deliberate or was it accidental?
> 
> And it is a non-back-compatible change, introducing some potential to
> break existing userspace code.  Is the risk considered acceptable?  If
> so, why?

ah, I see that the fsuuid stuff is new in 3.9, so there are no issues.