Control: tags -1 patch On Fri, Jun 17, 2016 at 11:28:27PM +0100, Ben Hutchings wrote: > On Fri, 2016-06-17 at 12:27 -0700, Elliott Mitchell wrote: > > Package: linux-source-3.2 > > Version: 3.2.81-1 > > Severity: important > > > > SSIA: > > > > ?? CC????????????fs/fcntl.o > > fs/fcntl.c: In function 'setfl': > > fs/fcntl.c:186:31: error: dereferencing pointer to incomplete type > > fs/fcntl.c:187:30: error: dereferencing pointer to incomplete type > > make[2]: *** [fs/fcntl.o] Error 1 > > make[2]: *** Waiting for unfinished jobs.... > > > > That would be a problem for this update, this hunk of code is new for > > 3.2.81.????Seems someone forgot a header (I'm not yet sure which). > > This code was added as part of the fix for??#627782. ??It builds > successfully in Debian's own configurations. > > It looks like this build failure occurs if CONFIG_MODULES is disabled?? > and you should be able to avoid it by enabling that.
Problem is that was a very deliberate on the particular computer. Unusual, but something that *should* work. I've got a partial patch for general consumption attached. I'm pretty sure the changes done for #627782 are buggy. If someone builds a kernel with AUFS built into the kernel the test in fcntl.c will fail (the test only works if AUFS is a module). -- (\___(\___(\______ --=> 8-) EHM <=-- ______/)___/)___/) \BS ( | ehem+sig...@m5p.com PGP 87145445 | ) / \_CS\ | _____ -O #include <stddisclaimer.h> O- _____ | / _/ 8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445
--- fcntl.c.orig 2016-06-16 10:03:04.000000000 -0700 +++ fcntl.c 2016-06-17 17:58:26.000000000 -0700 @@ -182,10 +182,24 @@ * Since only aufs will implement it, check that the file ops * are implemented by a version of aufs that does. (Ugh.) */ - if (!error && filp->f_op->owner && - !strcmp(filp->f_op->owner->name, "aufs") && - strstr(filp->f_op->owner->version, "+setfl")) +#if defined(CONFIG_MODULES) +#if defined(CONFIG_AUFS_FS) +#if 0 +#if CONFIG_AUFS_FS == "y" +#error "CONFIG_AUFS_FS=y is a known problem, see #627782" +#endif +#endif +#define AUFS_UNLIKELY +#else +#define AUFS_UNLIKELY unlikely +#endif + if (likely(!error) && filp->f_op->owner && + !AUFS_UNLIKELY(strcmp(filp->f_op->owner->name, "aufs")) && + AUFS_UNLIKELY(strstr(filp->f_op->owner->version, "+setfl"))) error = filp->f_op->setfl(filp, arg); +#elif defined(CONFIG_AUFS_FS) +#error "CONFIG_MODULES=n && CONFIG_AUFS_FS=y is a known problem, see #627782" +#endif if (error) return error;