26 Nov, 2015

1 commit


16 Apr, 2015

1 commit

  • The seq_printf return value, because it's frequently misused,
    will eventually be converted to void.

    See: commit 1f33c41c03da ("seq_file: Rename seq_overflow() to
    seq_has_overflowed() and make public")

    Signed-off-by: Joe Perches
    Cc: Lars Ellenberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

11 Jul, 2014

2 commits


23 Mar, 2013

1 commit

  • New helper to be able to consolidate more updates
    into a single transaction.
    Without this, we can only grab a single refcount
    on an updated element while preparing a transaction.

    lc_get_cumulative - like lc_get; also finds to-be-changed elements
    @lc: the lru cache to operate on
    @enr: the label to look up

    Unlike lc_get this also returns the element for @enr, if it is belonging to
    a pending transaction, so the return values are like for lc_get(),
    plus:

    pointer to an element already on the "to_be_changed" list.
    In this case, the cache was already marked %LC_DIRTY.

    Caller needs to make sure that the pending transaction is completed,
    before proceeding to actually use this element.

    Signed-off-by: Philipp Reisner
    Signed-off-by: Lars Ellenberg

    Fixed up by Jens to export lc_get_cumulative().

    Signed-off-by: Jens Axboe

    Lars Ellenberg
     

28 Feb, 2013

1 commit

  • I'm not sure why, but the hlist for each entry iterators were conceived

    list_for_each_entry(pos, head, member)

    The hlist ones were greedy and wanted an extra parameter:

    hlist_for_each_entry(tpos, pos, head, member)

    Why did they need an extra pos parameter? I'm not quite sure. Not only
    they don't really need it, it also prevents the iterator from looking
    exactly like the list iterator, which is unfortunate.

    Besides the semantic patch, there was some manual work required:

    - Fix up the actual hlist iterators in linux/list.h
    - Fix up the declaration of other iterators based on the hlist ones.
    - A very small amount of places were using the 'node' parameter, this
    was modified to use 'obj->member' instead.
    - Coccinelle didn't handle the hlist_for_each_entry_safe iterator
    properly, so those had to be fixed up manually.

    The semantic patch which is mostly the work of Peter Senna Tschudin is here:

    @@
    iterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;

    type T;
    expression a,c,d,e;
    identifier b;
    statement S;
    @@

    -T b;

    [akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]
    [akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]
    [akpm@linux-foundation.org: checkpatch fixes]
    [akpm@linux-foundation.org: fix warnings]
    [akpm@linux-foudnation.org: redo intrusive kvm changes]
    Tested-by: Peter Senna Tschudin
    Acked-by: Paul E. McKenney
    Signed-off-by: Sasha Levin
    Cc: Wu Fengguang
    Cc: Marcelo Tosatti
    Cc: Gleb Natapov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sasha Levin
     

14 Oct, 2011

4 commits


25 May, 2011

1 commit

  • This has no actual effect, since sizeof(struct hlist_head) ==
    sizeof(struct hlist_head *), but it's still the wrong type to use.

    The semantic match that finds this problem:
    //
    @@
    type T;
    identifier x;
    @@
    T *x;
    ...
    * x = kzalloc(... * sizeof(T*) * ..., ...);
    //

    [akpm@linux-foundation.org: use kcalloc()]
    Signed-off-by: Ilia Mirkin
    Acked-by: Lars Ellenberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ilia Mirkin
     

02 Oct, 2009

1 commit