lkml.org 
[lkml]   [2010]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC 09/15] PM / Hibernate: user, implement user_ops writer
    Hi!

    > Switch /dev/snapshot writer to sws_module_ops approach so that we
    > can transparently rewrite the rest of the snapshot from pages pulling
    > to their pushing through layers.
    >
    > Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    > Cc: Nigel Cunningham <ncunningham@crca.org.au>
    > Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
    > ---
    > kernel/power/user.c | 113 +++++++++++++++++++++++++++++++++++++++++++++++----
    > 1 files changed, 105 insertions(+), 8 deletions(-)
    >

    > + if (test_bit(TODO_CLOSED, to_do_flags))
    > + return -EIO;
    > +
    > + to_do_buf = buf;
    > + wmb();
    > + set_bit(TODO_WORK, to_do_flags);
    > + wake_up_interruptible(&to_do_wait);

    Uhuh, open-coded barriers... these need to be commented, and I guess
    you just should not play this kind of trickery.

    spnlocks? Normal locks?

    > +
    > + wait_event(to_do_done, !test_bit(TODO_WORK, to_do_flags) ||
    > + (err = test_bit(TODO_CLOSED, to_do_flags)));
    > +
    > + return err ? -EIO : 0;
    > +}
    > +
    > +static int put_user_writer(unsigned int flags, int error)
    > +{
    > + int err = 0;
    > +
    > + if (error)
    > + set_bit(TODO_ERROR, to_do_flags);
    > + set_bit(TODO_FINISH, to_do_flags);
    > + wake_up_interruptible(&to_do_wait);
    > +
    > + wait_event(to_do_done, !test_bit(TODO_FINISH, to_do_flags) ||
    > + (err = test_bit(TODO_CLOSED, to_do_flags)));
    > +
    > + if (!error && err)
    > + error = -EIO;
    > +
    > + return error;
    > +}
    > +
    > struct sws_module_ops user_ops = {
    Pavel

    --
    (english) http://www.livejournal.com/~pavelmachek
    (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


    \
     
     \ /
      Last update: 2010-03-24 21:45    [W:0.052 / U:29.664 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site