05 Jan, 2011

1 commit

  • wait_for_completion_*_timeout() can return:

    0: if the wait timed out
    -ve: if the wait was interrupted
    +ve: if the completion was completed.

    As they currently return an 'unsigned long', the last two cases
    are not easily distinguished which can easily result in buggy
    code, as is the case for the recently added
    wait_for_completion_interruptible_timeout() call in
    net/sunrpc/cache.c

    So change them both to return 'long'. As MAX_SCHEDULE_TIMEOUT
    is LONG_MAX, a large +ve return value should never overflow.

    Signed-off-by: NeilBrown
    Cc: Peter Zijlstra
    Cc: J. Bruce Fields
    Cc: Andrew Morton
    Cc: Linus Torvalds
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    NeilBrown
     

27 Oct, 2010

1 commit


30 May, 2010

1 commit


26 Aug, 2008

1 commit


15 Aug, 2008

1 commit


13 Aug, 2008

1 commit

  • XFS object flushing doesn't quite match existing completion semantics. It
    mixed exclusive access with completion. That is, we need to mark an object as
    being flushed before flushing it to disk, and then block any other attempt to
    flush it until the completion occurs. We do this but adding an extra count to
    the completion before we start using them. However, we still need to
    determine if there is a completion in progress, and allow no-blocking attempts
    fo completions to decrement the count.

    To do this we introduce:

    int try_wait_for_completion(struct completion *x)
    returns a failure status if done == 0, otherwise decrements done
    to zero and returns a "started" status. This is provided
    to allow counted completions to begin safely while holding
    object locks in inverted order.

    int completion_done(struct completion *x)
    returns 1 if there is no waiter, 0 if there is a waiter
    (i.e. a completion in progress).

    This replaces the use of semaphores for providing this exclusion
    and completion mechanism.

    SGI-PV: 981498

    SGI-Modid: xfs-linux-melb:xfs-kern:31816a

    Signed-off-by: David Chinner
    Signed-off-by: Lachlan McIlroy

    David Chinner
     

07 Dec, 2007

1 commit


25 Oct, 2007

1 commit


11 Jul, 2006

1 commit


04 Jul, 2006

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds