[lkml]   [2003]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH/RFC] New module refcounting for net_proto_family
    In message <> you write:
    > At 07:46 PM 2/17/2003, David S. Miller wrote:
    > >After talking to Alexey, I don't like this patch.
    > >
    > >The new module subsystem was supposed to deal with things
    > >like this cleanly, and this patch is merely a hack to cover
    > >up for it's shortcomings.

    I don't quite understand.

    There are some issue with this patch, however.

    Firstly, the owner field should probably be in struct proto_ops not
    struct socket, where the function pointers are.

    The sk thing looks reasonable at first glance. Getting a reference to
    npf->owner, then holding it for the socket is a little confusing, but
    an obvious optimization over a naive "get, use, drop, get".

    In sys_accept:

    > @@ -1196,9 +1198,13 @@
    > if (!(newsock = sock_alloc()))
    > goto out_put;
    > - newsock->type = sock->type;
    > - newsock->ops = sock->ops;
    > + newsock->type = sock->type;
    > + newsock->ops = sock->ops;
    > + newsock->owner = sock->owner;
    > + try_module_get(sock->owner);
    > + newsock->owner = sock->owner;
    > +
    > err = sock->ops->accept(sock, newsock, sock->file->f_flags);
    > if (err < 0)
    > goto out_release;

    You still need to check the result of try_module_get, and fail if it
    fails. The *only* time this will fail is when someone is doing an
    "rmmod --wait" on the module, which presumably means they really do
    not want you to increase the reference count furthur.

    Hope that helps,
    Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
    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: 2005-03-22 13:33    [W:0.022 / U:84.920 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site