Re: [PATCH 26/35] Unionfs: Privileged operations workqueue

From: Josef Sipek
Date: Fri Dec 08 2006 - 11:01:52 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/