get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/687889/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 687889,
    "url": "http://patchwork.ozlabs.org/api/patches/687889/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/20161027190150.7880-15-sw@simonwunderlich.de/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20161027190150.7880-15-sw@simonwunderlich.de>",
    "list_archive_url": null,
    "date": "2016-10-27T19:01:47",
    "name": "[14/17] batman-adv: Use proper name for fragments list head",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "6dc13448af596f150c4e149cc52c41f21b4c686b",
    "submitter": {
        "id": 47054,
        "url": "http://patchwork.ozlabs.org/api/people/47054/?format=api",
        "name": "Simon Wunderlich",
        "email": "sw@simonwunderlich.de"
    },
    "delegate": {
        "id": 34,
        "url": "http://patchwork.ozlabs.org/api/users/34/?format=api",
        "username": "davem",
        "first_name": "David",
        "last_name": "Miller",
        "email": "davem@davemloft.net"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/20161027190150.7880-15-sw@simonwunderlich.de/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/687889/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/687889/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming@ozlabs.org",
        "Delivered-To": "patchwork-incoming@ozlabs.org",
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3t4bqb458Bz9s65\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 28 Oct 2016 06:02:35 +1100 (AEDT)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1030389AbcJ0TCc (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tThu, 27 Oct 2016 15:02:32 -0400",
            "from packetmixer.de ([79.140.42.25]:38348 \"EHLO\n\tmail.mail.packetmixer.de\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S941658AbcJ0TCA (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Thu, 27 Oct 2016 15:02:00 -0400",
            "from kero.packetmixer.de (p4FFE5DCC.dip0.t-ipconnect.de\n\t[79.254.93.204])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby mail.mail.packetmixer.de (Postfix) with ESMTPSA id 8524A1F002B;\n\tThu, 27 Oct 2016 21:01:59 +0200 (CEST)"
        ],
        "From": "Simon Wunderlich <sw@simonwunderlich.de>",
        "To": "davem@davemloft.net",
        "Cc": "netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org,\n\tSven Eckelmann <sven@narfation.org>,\n\tSimon Wunderlich <sw@simonwunderlich.de>",
        "Subject": "[PATCH 14/17] batman-adv: Use proper name for fragments list head",
        "Date": "Thu, 27 Oct 2016 21:01:47 +0200",
        "Message-Id": "<20161027190150.7880-15-sw@simonwunderlich.de>",
        "X-Mailer": "git-send-email 2.10.1",
        "In-Reply-To": "<20161027190150.7880-1-sw@simonwunderlich.de>",
        "References": "<20161027190150.7880-1-sw@simonwunderlich.de>",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "From: Sven Eckelmann <sven@narfation.org>\n\nThe batman-adv codebase is using \"list\" for the list node (prev/next) and\n<list content descriptor>+\"_list\" for the head of a list. Not using this\nnaming scheme can up in confusions because list_head is used for both the\nhead of the list and the list node (prev/next) in each item of the list.\n\nSigned-off-by: Sven Eckelmann <sven@narfation.org>\nSigned-off-by: Simon Wunderlich <sw@simonwunderlich.de>\n---\n net/batman-adv/fragmentation.c | 14 +++++++-------\n net/batman-adv/fragmentation.h |  2 +-\n net/batman-adv/originator.c    |  2 +-\n net/batman-adv/types.h         |  6 +++---\n 4 files changed, 12 insertions(+), 12 deletions(-)",
    "diff": "diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c\nindex 1b2f5b9..2b967a3 100644\n--- a/net/batman-adv/fragmentation.c\n+++ b/net/batman-adv/fragmentation.c\n@@ -73,7 +73,7 @@ void batadv_frag_purge_orig(struct batadv_orig_node *orig_node,\n \t\tspin_lock_bh(&chain->lock);\n \n \t\tif (!check_cb || check_cb(chain)) {\n-\t\t\tbatadv_frag_clear_chain(&chain->head);\n+\t\t\tbatadv_frag_clear_chain(&chain->fragment_list);\n \t\t\tchain->size = 0;\n \t\t}\n \n@@ -117,8 +117,8 @@ static bool batadv_frag_init_chain(struct batadv_frag_table_entry *chain,\n \tif (chain->seqno == seqno)\n \t\treturn false;\n \n-\tif (!hlist_empty(&chain->head))\n-\t\tbatadv_frag_clear_chain(&chain->head);\n+\tif (!hlist_empty(&chain->fragment_list))\n+\t\tbatadv_frag_clear_chain(&chain->fragment_list);\n \n \tchain->size = 0;\n \tchain->seqno = seqno;\n@@ -176,7 +176,7 @@ static bool batadv_frag_insert_packet(struct batadv_orig_node *orig_node,\n \tchain = &orig_node->fragments[bucket];\n \tspin_lock_bh(&chain->lock);\n \tif (batadv_frag_init_chain(chain, seqno)) {\n-\t\thlist_add_head(&frag_entry_new->list, &chain->head);\n+\t\thlist_add_head(&frag_entry_new->list, &chain->fragment_list);\n \t\tchain->size = skb->len - hdr_size;\n \t\tchain->timestamp = jiffies;\n \t\tchain->total_size = ntohs(frag_packet->total_size);\n@@ -185,7 +185,7 @@ static bool batadv_frag_insert_packet(struct batadv_orig_node *orig_node,\n \t}\n \n \t/* Find the position for the new fragment. */\n-\thlist_for_each_entry(frag_entry_curr, &chain->head, list) {\n+\thlist_for_each_entry(frag_entry_curr, &chain->fragment_list, list) {\n \t\t/* Drop packet if fragment already exists. */\n \t\tif (frag_entry_curr->no == frag_entry_new->no)\n \t\t\tgoto err_unlock;\n@@ -220,11 +220,11 @@ static bool batadv_frag_insert_packet(struct batadv_orig_node *orig_node,\n \t\t * exceeds the maximum size of one merged packet. Don't allow\n \t\t * packets to have different total_size.\n \t\t */\n-\t\tbatadv_frag_clear_chain(&chain->head);\n+\t\tbatadv_frag_clear_chain(&chain->fragment_list);\n \t\tchain->size = 0;\n \t} else if (ntohs(frag_packet->total_size) == chain->size) {\n \t\t/* All fragments received. Hand over chain to caller. */\n-\t\thlist_move_list(&chain->head, chain_out);\n+\t\thlist_move_list(&chain->fragment_list, chain_out);\n \t\tchain->size = 0;\n \t}\n \ndiff --git a/net/batman-adv/fragmentation.h b/net/batman-adv/fragmentation.h\nindex 3202fe3..b95f619 100644\n--- a/net/batman-adv/fragmentation.h\n+++ b/net/batman-adv/fragmentation.h\n@@ -47,7 +47,7 @@ int batadv_frag_send_packet(struct sk_buff *skb,\n static inline bool\n batadv_frag_check_entry(struct batadv_frag_table_entry *frags_entry)\n {\n-\tif (!hlist_empty(&frags_entry->head) &&\n+\tif (!hlist_empty(&frags_entry->fragment_list) &&\n \t    batadv_has_timed_out(frags_entry->timestamp, BATADV_FRAG_TIMEOUT))\n \t\treturn true;\n \treturn false;\ndiff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c\nindex 6af87c9..518b1ed 100644\n--- a/net/batman-adv/originator.c\n+++ b/net/batman-adv/originator.c\n@@ -1021,7 +1021,7 @@ struct batadv_orig_node *batadv_orig_node_new(struct batadv_priv *bat_priv,\n \tbatadv_orig_node_vlan_put(vlan);\n \n \tfor (i = 0; i < BATADV_FRAG_BUFFER_COUNT; i++) {\n-\t\tINIT_HLIST_HEAD(&orig_node->fragments[i].head);\n+\t\tINIT_HLIST_HEAD(&orig_node->fragments[i].fragment_list);\n \t\tspin_lock_init(&orig_node->fragments[i].lock);\n \t\torig_node->fragments[i].size = 0;\n \t}\ndiff --git a/net/batman-adv/types.h b/net/batman-adv/types.h\nindex 97336ec..d31e7ec 100644\n--- a/net/batman-adv/types.h\n+++ b/net/batman-adv/types.h\n@@ -184,7 +184,7 @@ struct batadv_orig_ifinfo {\n \n /**\n  * struct batadv_frag_table_entry - head in the fragment buffer table\n- * @head: head of list with fragments\n+ * @fragment_list: head of list with fragments\n  * @lock: lock to protect the list of fragments\n  * @timestamp: time (jiffie) of last received fragment\n  * @seqno: sequence number of the fragments in the list\n@@ -192,8 +192,8 @@ struct batadv_orig_ifinfo {\n  * @total_size: expected size of the assembled packet\n  */\n struct batadv_frag_table_entry {\n-\tstruct hlist_head head;\n-\tspinlock_t lock; /* protects head */\n+\tstruct hlist_head fragment_list;\n+\tspinlock_t lock; /* protects fragment_list */\n \tunsigned long timestamp;\n \tu16 seqno;\n \tu16 size;\n",
    "prefixes": [
        "14/17"
    ]
}