[lkml]   [2010]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH v5 1/4] cgroup: implement eventfd-based generic API for notifications
    On Wed, Dec 30, 2009 at 7:57 AM, Kirill A. Shutemov
    <> wrote:
    > This patch introduces write-only file "cgroup.event_control" in every
    > cgroup.

    This looks like a nice generic API for doing event notifications - thanks!

    Sorry I hadn't had a chance to review it before now, due to travelling
    and day-job pressures.

    > +}
    > +
    > +static int cgroup_event_wake(wait_queue_t *wait, unsigned mode,
    > +               int sync, void *key)

    Maybe some comments here indicating how/when it gets called? (And more
    comments for each function generally?)

    > +       if (flags & POLLHUP) {
    > +               spin_lock(&cgrp->event_list_lock);
    > +               list_del(&event->list);
    > +               spin_unlock(&cgrp->event_list_lock);
    > +               schedule_work(&event->remove);

    Comment saying why we can't do the remove immediately in this context?

    > +
    > +fail:
    > +       if (!IS_ERR(cfile))
    > +               fput(cfile);

    cfile is either valid or NULL - it never contains an error value.

    > +
    > +       if (!IS_ERR(efile))
    > +               fput(efile);

    While this is OK currently, it's a bit fragile. efile starts as NULL,
    and IS_ERR(NULL) is false. So if we jump to fail: before trying to do
    the eventfd_fget() then we'll try to fput(NULL), which will oops. This
    works because we don't currently jump to fail: until after
    eventfd_fget(), but someone could add an extra setup step between the
    kzalloc() and the eventfd_fget() which could fail.

    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: 2010-01-07 02:03    [W:0.024 / U:0.348 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site