On Fri, Dec 08, 2006 at 11:38:13AM +0100, Jan Engelhardt wrote: > > On Dec 7 2006 21:17, Josef Sipek wrote: > >> >> > >+void __unionfs_mknod(void *data) > >> >> > >+{ > >> >> > >+ struct sioq_args *args = data; > >> >> > >+ struct mknod_args *m = &args->mknod; > > ... > ||||| vfs_mknod(m->parent, m->dentry, m->mode, m->dev); > > >> >If I make the *args = data line const, then gcc (4.1) yells about modifying > >> >a const variable 3 lines down.. > >> > > >> >args->err = vfs_mknod(m->parent, m->dentry, m->mode, m->dev); > >> > > >> >Sure, I could cast, but that seems like adding cruft for no good reason. > >> > >> No I despise casts more than missing consts. Why would gcc throw a warning? > >> Let's take this super simple program > > > >No, this program doesn't tickle the problem.. Try to compile this one: > > The members of m (i.e. m->*) are not modified as for as __unionfs_mknod goes. > vfs_mknod may only modify the members of m->parent (i.e. m->parent->*) Yes they are. The return value is passed through a member of m. Josef "Jeff" Sipek. -- The box said "Windows XP or better required". So I installed Linux. - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html