Ignore:
Timestamp:
Apr 21, 2017, 4:28:29 AM (2 months ago)
Author:
brainslayer
Message:

update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-3.18/net/unix/garbage.c

    r29101 r31885  
    153153                struct unix_sock *u = unix_sk(s);
    154154
     155                BUG_ON(!atomic_long_read(&u->inflight));
    155156                BUG_ON(list_empty(&u->link));
    156157                if (atomic_long_dec_and_test(&u->inflight))
     
    359360        list_del(&cursor);
    360361
     362        /* Now gc_candidates contains only garbage.  Restore original
     363         * inflight counters for these as well, and remove the skbuffs
     364         * which are creating the cycle(s).
     365         */
     366        skb_queue_head_init(&hitlist);
     367        list_for_each_entry(u, &gc_candidates, link)
     368                scan_children(&u->sk, inc_inflight, &hitlist);
     369
    361370        /*
    362371         * not_cycle_list contains those sockets which do not make up a
     
    369378        }
    370379
    371         /*
    372          * Now gc_candidates contains only garbage.  Restore original
    373          * inflight counters for these as well, and remove the skbuffs
    374          * which are creating the cycle(s).
    375          */
    376         skb_queue_head_init(&hitlist);
    377         list_for_each_entry(u, &gc_candidates, link)
    378         scan_children(&u->sk, inc_inflight, &hitlist);
    379 
    380380        spin_unlock(&unix_gc_lock);
    381381
Note: See TracChangeset for help on using the changeset viewer.