[lkml]   [2006]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 26/35] Unionfs: Privileged operations workqueue

    On Dec 6 2006 12:32, Josef Sipek wrote:
    >> > >+int __init init_sioq(void)
    >> >
    >> > Although it's just me, I'd prefer sioq_init(), sioq_exit(),
    >> > sioq_run(), etc. to go in hand with what most drivers use as naming
    >> > (i.e. <modulename> "_" <function>).
    >> That makes sense.
    >Hrm. Looking at the code, I noticed that the opposite is true:
    >The last one in particular...

    I smell a big conspiracy! So yet again it's mixed mixed

    fs$ grep __init */*.c | grep -v ' init_'
    sysfs/mount.c:int __init sysfs_init(void)
    sysv/inode.c:int __init sysv_init_icache(void)
    proc/vmcore.c:static int __init vmcore_init(void)
    proc/nommu.c:static int __init proc_nommu_init(void)
    proc/proc_misc.c:void __init proc_misc_init(void)
    proc/proc_tty.c:void __init proc_tty_init(void)
    proc/root.c:void __init proc_root_init(void)

    >> > >+void __unionfs_mknod(void *data)
    >> > >+{
    >> > >+ struct sioq_args *args = data;
    >> > >+ struct mknod_args *m = &args->mknod;
    >> >
    >> > Care to make that: const struct mknod_args *m = &args->mknod;?
    >> > (Same for other places)
    >> Right.
    >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

    struct inode;
    struct dentry;

    struct mknod_args {
    struct inode *parent;
    struct dentry *dentry;
    int mode;
    int dev;

    extern int vfs_mknod(struct inode *, struct dentry *, int, int /*dev_t*/);

    int main(void) {
    const struct mknod_args *m;
    vfs_mknod(m->parent, m->dentry, m->mode, m->dev);
    return 0;

    As undefined-behavior as it looks, it's got the const and vfs_mknod, as well as
    an approximation of dev_t. It throws no warnings when compiled with `gcc -Wall
    -c test.c`. Did I miss something?

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-12-06 19:59    [W:0.053 / U:0.256 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site