/* * netsniff-ng - the packet sniffing beast * Copyright 2012 Markus Amend , Deutsche Flugsicherung GmbH * Subject to the GPL, version 2. * * IPv6 No Next Header described in RFC2460 */ #include #include #include /* for ntohs() */ #include "proto.h" #include "dissector_eth.h" #include "built_in.h" static void no_next_header(struct pkt_buff *pkt __maybe_unused) { /* * The value 59 in the Next Header field of an IPv6 header or any * extension header indicates that there is nothing following that * header. If the Payload Length field of the IPv6 header indicates the * presence of octets past the end of a header whose Next Header field * contains 59, those octets must be ignored, and passed on unchanged if * the packet is forwarded. */ tprintf(" [ No Next Header"); tprintf(" ]\n"); } static void no_next_header_less(struct pkt_buff *pkt __maybe_unused) { tprintf(" No Next Header"); } struct protocol ipv6_no_next_header_ops = { .key = 0x3B, .print_full = no_next_header, .print_less = no_next_header_less, }; er'>master net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2016-08-30 13:51:39 +1000
committerDave Chinner <david@fromorbit.com>2016-08-30 13:51:39 +1000
commitea78d80866ce375defb2fdd1c8a3aafec95e0f85 (patch)
tree5d0f6cbaf755b530f5044f2aee0f37bb7a3b5ff5
parent17de0a9ff3df8f54f2f47746d118112d4e61d973 (diff)
xfs: track log done items directly in the deferred pending work item
Christoph reports slab corruption when a deferred refcount update aborts during _defer_finish(). The cause of this was broken log item state tracking in xfs_defer_pending -- upon an abort, _defer_trans_abort() will call abort_intent on all intent items, including the ones that have already had a done item attached. This is incorrect because each intent item has 2 refcount: the first is released when the intent item is committed to the log; and the second is released when the _done_ item is committed to the log, or by the intent creator if there is no done item. In other words, once we log the done item, responsibility for releasing the intent item's second refcount is transferred to the done item and /must not/ be performed by anything else. The dfp_committed flag should have been tracking whether or not we had a done item so that _defer_trans_abort could decide if it needs to abort the intent item, but due to a thinko this was not the case. Rip it out and track the done item directly so that we do the right thing w.r.t. intent item freeing. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reported-by: Christoph Hellwig <hch@infradead.org> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>