)]}'
{
  "log": [
    {
      "commit": "7683fdc1e88644ee8108a1f33faba80545f0024d",
      "tree": "6a06c51fc2344e1f88e31591f978f3944cfe230e",
      "parents": [
        "cc47f66e6b9ec7e7d465f74739a6fc9844593894"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 27 14:28:07 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 11:37:30 2011 +0200"
      },
      "message": "batman-adv: protect the local and the global trans-tables with rcu\n\nThe local and the global translation-tables are now lock free and rcu\nprotected.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nAcked-by: Simon Wunderlich \u003csiwu@hrz.tu-chemnitz.de\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "cc47f66e6b9ec7e7d465f74739a6fc9844593894",
      "tree": "8fbda7f59267bca45f9e887d09ba1de2f3c62f8d",
      "parents": [
        "a73105b8d4c765d9ebfb664d0a66802127d8e4c7"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 27 14:27:57 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 11:37:27 2011 +0200"
      },
      "message": "batman-adv: improved roaming mechanism\n\nWith the current client announcement implementation, in case of roaming,\nan update is triggered on the new AP serving the client. At that point\nthe new information is spread around by means of the OGM broadcasting\nmechanism. Until this operations is not executed, no node is able to\ncorrectly route traffic towards the client. This obviously causes packet\ndrops and introduces a delay in the time needed by the client to recover\nits connections.\n\nA new packet type called ROAMING_ADVERTISEMENT is added to account this\nissue.\n\nThis message is sent in case of roaming from the new AP serving the\nclient to the old one and will contain the client MAC address. In this\nway an out-of-OGM update is immediately committed, so that the old node\ncan update its global translation table. Traffic reaching this node will\nthen be redirected to the correct destination utilising the fresher\ninformation. Thus reducing the packet drops and the connection recovery\ndelay.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "a73105b8d4c765d9ebfb664d0a66802127d8e4c7",
      "tree": "b4b11a4050109d8f042c7ac87a5a6d6d91b5d1d2",
      "parents": [
        "3b27ffb00fbe9d9189715ea13ce8712e2f0cb0c5"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed Apr 27 14:27:44 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 11:37:24 2011 +0200"
      },
      "message": "batman-adv: improved client announcement mechanism\n\nThe client announcement mechanism informs every mesh node in the network\nof any connected non-mesh client, in order to find the path towards that\nclient from any given point in the mesh.\n\nThe old implementation was based on the simple idea of appending a data\nbuffer to each OGM containing all the client MAC addresses the node is\nserving. All other nodes can populate their global translation tables\n(table which links client MAC addresses to node addresses) using this\nMAC address buffer and linking it to the node\u0027s address contained in the\nOGM. A node that wants to contact a client has to lookup the node the\nclient is connected to and its address in the global translation table.\n\nIt is easy to understand that this implementation suffers from several\nissues:\n - big overhead (each and every OGM contains the entire list of\n   connected clients)\n - high latencies for client route updates due to long OGM trip time and\n   OGM losses\n\nThe new implementation addresses these issues by appending client\nchanges (new client joined or a client left) to the OGM instead of\nfilling it with all the client addresses each time. In this way nodes\ncan modify their global tables by means of \"updates\", thus reducing the\noverhead within the OGMs.\n\nTo keep the entire network in sync each node maintains a translation\ntable version number (ttvn) and a translation table checksum. These\nvalues are spread with the OGM to allow all the network participants to\ndetermine whether or not they need to update their translation table\ninformation.\n\nWhen a translation table lookup is performed in order to send a packet\nto a client attached to another node, the destination\u0027s ttvn is added to\nthe payload packet. Forwarding nodes can compare the packet\u0027s ttvn with\ntheir destination\u0027s ttvn (this node could have a fresher information\nthan the source) and re-route the packet if necessary. This greatly\nreduces the packet loss of clients roaming from one AP to the next.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "3b27ffb00fbe9d9189715ea13ce8712e2f0cb0c5",
      "tree": "f1c37577167e4d6eecae2f7c87078fcf26ccfa3e",
      "parents": [
        "b4e1705417c6cc7d46d9020259a2c8f457cf82bd"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Sat May 28 14:51:06 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 11:37:21 2011 +0200"
      },
      "message": "batman-adv: Unify the first 3 bytes in each packet\n\nThe amount of duplicated code in the receive and routing code can be\nreduced when all headers provide the packet type, version and ttl in the\nsame first bytes.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "b4e1705417c6cc7d46d9020259a2c8f457cf82bd",
      "tree": "d057a27c91d0bce396726878a6c8995f0d5b0d3b",
      "parents": [
        "b2c44a53836559b5e2823aa215c979c33bc9e2db"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Wed Jun 15 09:41:37 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 11:37:18 2011 +0200"
      },
      "message": "batman-adv: Reduce usage of char\n\nchar was used in different places to store information without really\nusing the characteristics of that data type or by ignoring the fact that\nchar has not a well defined signedness.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "b2c44a53836559b5e2823aa215c979c33bc9e2db",
      "tree": "4373f6917c6c28b9caab3050e74571afc69bcbde",
      "parents": [
        "db69ecfcb0d4df4d6449172186a8dd20836275ed"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Jun 15 09:41:36 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 11:23:36 2011 +0200"
      },
      "message": "batman-adv: count_real_packets() in batman-adv assumes char is signed\n\ncount_real_packets() in batman-adv assumes char is signed, and returns -1\nthrough it:\n\nnet/batman-adv/routing.c: In function \u0027receive_bat_packet\u0027:\nnet/batman-adv/routing.c:739: warning: comparison is always false due to limited range of data type\n\nUse int instead.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n[sven@narfation.org: Rebase on top of current version]\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "db69ecfcb0d4df4d6449172186a8dd20836275ed",
      "tree": "23f1d343794000d8b55849516dd6519a02cdfdd1",
      "parents": [
        "b8e2dd135c3d8b06a4bc6d52b69317bdcccf4605"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Wed Jun 15 15:17:21 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 10:38:59 2011 +0200"
      },
      "message": "batman-adv: Keep interface_tx as local function\n\ninterface_tx is not used outside of soft-interface.c and thus doesn\u0027t\nneed to be declared inside soft-interface.h\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "b8e2dd135c3d8b06a4bc6d52b69317bdcccf4605",
      "tree": "555c4912e9947cfcb9c2d19641c4745a8da00d89",
      "parents": [
        "ecbd532108cb21d9d3770f73e168bad65d14d9eb"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Wed Jun 15 15:08:59 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon Jun 20 10:38:55 2011 +0200"
      },
      "message": "batman-adv: Move compare_orig to originator.c\n\ncompare_orig is only used in context of orig_node which is managed\ninside originator.c. It is not necessary to keep that function inside\nthe header originator.h.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "ecbd532108cb21d9d3770f73e168bad65d14d9eb",
      "tree": "2755df4a468d6d146e20bed8306e8c76c74f1ce9",
      "parents": [
        "e8958dbf0da377e11f385a9888da3f72e827ab26"
      ],
      "author": {
        "name": "Marek Lindner",
        "email": "lindner_marek@yahoo.de",
        "time": "Thu Jun 09 17:13:09 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jun 09 20:40:38 2011 +0200"
      },
      "message": "batman-adv: use NO_FLAGS define instead of hard-coding 0\n\nThe definition NO_FLAGS was introduced to make the code more\nreadable and shall be used to initialize flag fields.\n\nSigned-off-by: Marek Lindner \u003clindner_marek@yahoo.de\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "e8958dbf0da377e11f385a9888da3f72e827ab26",
      "tree": "bf2c84c423ebdfba4b88afad1fcb7d9a96070902",
      "parents": [
        "3d222bbaa7329e8ef45129e1bd6801000d7e05e4"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat Jun 04 11:26:00 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jun 09 20:40:38 2011 +0200"
      },
      "message": "batman-adv: Use enums for related constants\n\nCodingStyle \"Chapter 12: Macros, Enums and RTL\" recommends to use enums\nfor several related constants. Internal states can be used without\ndefining the actual value, but all values which are visible to the\noutside must be defined as before. Normal values are assigned as usual\nand flags are defined by shifts of a bit.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "3d222bbaa7329e8ef45129e1bd6801000d7e05e4",
      "tree": "ab6db91fb6bea05e116de52228167879e627adae",
      "parents": [
        "e72948eb21d1da0275be1c6e0c7a9a22aa67a5e3"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sun Jun 05 10:20:19 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jun 09 20:40:38 2011 +0200"
      },
      "message": "batman-adv: Rewrite debugfs kobj_to_* helpers as functions\n\nCodingStyle \"Chapter 12: Macros, Enums and RTL\" highly recommends to use\nfunctions instead of macros were possible. This ensures type safety and\nprevents shadowing of other variables.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "e72948eb21d1da0275be1c6e0c7a9a22aa67a5e3",
      "tree": "d55325b914c76a663cd23873b2325c18d743e6af",
      "parents": [
        "6b9aadfa97efa5a73c005c5c4c667359a0c85bec"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat Jun 04 14:00:49 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jun 09 20:40:38 2011 +0200"
      },
      "message": "batman-adv: Fix signedness problem in parse_gw_bandwidth\n\nstrict_strtoul as used in parse_gw_bandwidth is defined for unsigned\nlong and strict_strtol should be used instead for long.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "6b9aadfa97efa5a73c005c5c4c667359a0c85bec",
      "tree": "97162dfad9a7797045d2e841a07aa80ef9a65654",
      "parents": [
        "d1829fa0c380ccf48a7b96795a6d4a01698d02a6"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat Jun 04 12:40:37 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jun 09 20:40:38 2011 +0200"
      },
      "message": "batman-adv: Don\u0027t return value in void function\n\ngw_node_delete is defined with \"void\" as return type, but still tries to\nreturn a value. The called function gw_node_delete is also return as\nvoid and thus doesn\u0027t provide a value for us.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "d1829fa0c380ccf48a7b96795a6d4a01698d02a6",
      "tree": "f9d09ee6e09f700725696a31696168c5c7ec3ba5",
      "parents": [
        "bb899b89f46eb1fd6f62a4c360f6511b9714e479"
      ],
      "author": {
        "name": "Daniele Furlan",
        "email": "daniele.furlan@gmail.com",
        "time": "Tue Jun 07 00:45:55 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu Jun 09 20:40:37 2011 +0200"
      },
      "message": "batman-adv: accept delayed rebroadcasts to avoid bogus routing under heavy load\n\nWhen a link is saturated (re)broadcasts of OGMs are delayed. Under heavy\nload this delay may exceed the orig interval which leads to OGMs being\ndropped (the code would only accept an OGM rebroadcast if it arrived\nbefore the next OGM was broadcasted). With this patch batman-adv will\nalso accept delayed OGMs in order to avoid a bogus influence on the\nrouting metric.\n\nSigned-off-by: Daniele Furlan \u003cdaniele.furlan@gmail.com\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "bb899b89f46eb1fd6f62a4c360f6511b9714e479",
      "tree": "abe2a2d492ef3bc9028d6deb2822abdd21b3c92f",
      "parents": [
        "402196724816875d382099bedb09fdf1f57845bc"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Tue May 10 11:22:37 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:37 2011 +0200"
      },
      "message": "batman-adv: Ensure that we really have route changes in update_route\n\nThe debug output of update_route has tests for \"route deleted\" and \"route\nadded\". All other situations are handled as \"route changed\". This is not\ntrue because neigh_node and curr_router could be both NULL.\n\nThe function is not called in this situation, but the code might be\ninterpreted wrong when reading it without this test.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "402196724816875d382099bedb09fdf1f57845bc",
      "tree": "9f69305b77c222f1cf7f5d4cd8da87c5613d050c",
      "parents": [
        "44e92bc8d6366ebe477cab23199b9f50328d326a"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed May 18 16:47:23 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:36 2011 +0200"
      },
      "message": "batman-adv: a multiline comment should precede the variable it is describing\n\nThis comment has been wrongly put after the variable it refers to and was also bad indented\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nAcked-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "44e92bc8d6366ebe477cab23199b9f50328d326a",
      "tree": "7488776fd7af5f7c1f3e2a3431d0c4829605b5c4",
      "parents": [
        "0bb857511b6a1572ad15dfd7f23d79587d7e2781"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Sat May 21 01:33:07 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:36 2011 +0200"
      },
      "message": "batman-adv: use is_broadcast_ether_addr() instead of compare_eth(.., brd_addr)\n\nInstead of comparing mac addresses with the broadcast address by means\nof compare_eth(), the is_broadcast_ether_addr() kernel function has to be\nused.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nAcked-by: Sven Eckelmann \u003csven@narfation.org\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "0bb857511b6a1572ad15dfd7f23d79587d7e2781",
      "tree": "6eb43658148c45033ba4f57f7ccb02add30262d9",
      "parents": [
        "f5d33d37786af139cecde5af831d64a671bb756b"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Thu May 19 21:43:08 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:35 2011 +0200"
      },
      "message": "batman-adv: Check type of x and y in seq_(before|after)\n\nseq_before and seq_after depend on the fact that both sequence numbers\nhave the same type and thus the same bitwidth. We can ensure that by\ncompile time checking using a compare between the pointer to the\ntemporary buffers which were created using the typeof of both\nparameters. For example gcc would create a warning like\n\"warning: comparison of distinct pointer types lacks a cast\".\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "f5d33d37786af139cecde5af831d64a671bb756b",
      "tree": "6978df634a520e574fbd10ec62c980d3079fdcd3",
      "parents": [
        "728cbc6ac1eef89660875c70a602c1a0ba8df4ff"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Wed May 18 09:20:50 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:35 2011 +0200"
      },
      "message": "batman-adv: move smallest_signed_int(), seq_before() and seq_after() into main.h\n\nsmallest_signed_int(), seq_before() and seq_after() are very useful\nfunctions that help to handle comparisons between sequence numbers.\nHowever they were only defined in vis.c. With this patch every\nbatman-adv function will be able to use them.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "728cbc6ac1eef89660875c70a602c1a0ba8df4ff",
      "tree": "fcdf37937b1f01494400a0e8d57490360c64cdc3",
      "parents": [
        "704509b8d44886cebfbaff1a9813c35dfa986954"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sun May 15 00:50:21 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:34 2011 +0200"
      },
      "message": "batman-adv: Use rcu_dereference_protected by update-side\n\nUsually rcu_dereference isn\u0027t necessary in situations were the\nRCU-protected data structure cannot change, but sparse and lockdep still\nneed a similar functionality for analysis. rcu_dereference_protected\nimplements the reduced version which should be used to support the\ndynamic and static analysis.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "704509b8d44886cebfbaff1a9813c35dfa986954",
      "tree": "7b353f1d4a33b31d55d2a85f8d70882ade1868ce",
      "parents": [
        "958ca5985604a6f13387d32de489365df816558b"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:54 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:33 2011 +0200"
      },
      "message": "batman-adv: Calculate sizeof using variable insead of types\n\nDocumentation/CodingStyle recommends to use the form\n\n\tp \u003d kmalloc(sizeof(*p), ...);\n\nto calculate the size of a struct and not the version where the struct\nname is spelled out to prevent bugs when the type of p changes. This\nalso seems appropriate for manipulation of buffers when they are\ndirectly associated with p.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "958ca5985604a6f13387d32de489365df816558b",
      "tree": "6af620714788fb8dcfdd9d36063d3c0dd19de29f",
      "parents": [
        "5f718c20076f4b47c3dc0f1277aef9966928089c"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:53 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:33 2011 +0200"
      },
      "message": "batman-adv: Remove casts from type x to type x\n\nCasting from pointer like \u0027struct orig_node*\u0027 to \u0027struct orig_node *\u0027\ndoesn\u0027t provide any additional functionality and can be savely removed.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "5f718c20076f4b47c3dc0f1277aef9966928089c",
      "tree": "98c71b56526d9a8ab3edd037db1fa5597e5f7e64",
      "parents": [
        "37a4065ec79dcf172c44cb2741c1b9983ecfc492"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:52 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:32 2011 +0200"
      },
      "message": "batman-adv: Remove explicit casts cast from void* for store\n\nIt is not necessary to cast a void* to the pointer type when we just\nstore it and don\u0027t want to do pointer arithmetic before the actual\nassignment.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "37a4065ec79dcf172c44cb2741c1b9983ecfc492",
      "tree": "c147618cee2f3743ab34ae8195da490a7e73c266",
      "parents": [
        "747e4221a03cde62402b614ca1f8e961b8416130"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:51 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:32 2011 +0200"
      },
      "message": "batman-adv: Only use int up and down gw representation\n\nIt is not save to provide memory for an int and then cast the pointer to\nit to long*. It is better to standardize the up and down gateway\nbandwith representation to simple ints and only use long inside\nconversation routines.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "747e4221a03cde62402b614ca1f8e961b8416130",
      "tree": "98428064fef191a5093e276d5a779b9e801a97f0",
      "parents": [
        "38e3c5f0dae7a3bbb32c3b2bb28c3f2557d40fe9"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:50 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:31 2011 +0200"
      },
      "message": "batman-adv: Add const type qualifier for pointers\n\nbatman-adv uses pointers which are marked as const and should not\nviolate that type qualifier by passing it to functions which force a\ncast to the non-const version.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "38e3c5f0dae7a3bbb32c3b2bb28c3f2557d40fe9",
      "tree": "f0a64eaf3709c5ca1455a1c66ce0a9c22c5c4961",
      "parents": [
        "16f14b45c48f4f1be5857103ee3054114604d98c"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:49 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:30 2011 +0200"
      },
      "message": "batman-adv: Don\u0027t do pointer arithmetic with void*\n\nThe size of void is currently set by gcc to 1, but is not well defined\nin general. Therefore it is more advisable to cast it to char* before\ndoing pointer arithmetic.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "16f14b45c48f4f1be5857103ee3054114604d98c",
      "tree": "14f10ce13c94b620e09bb0ff8f25e62a175b4e1e",
      "parents": [
        "f678bc9883bb28d9d20db01bc0de53efbacc21c5"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:48 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:30 2011 +0200"
      },
      "message": "batman-adv: Remove comparising \u003c 0 for unsigned type\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "f678bc9883bb28d9d20db01bc0de53efbacc21c5",
      "tree": "b28769ae88c15ead24ff4f3e6911014020180279",
      "parents": [
        "d3a547be40008be590c169ff2d5d73cc7fada71d"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:47 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:29 2011 +0200"
      },
      "message": "batman-adv: Print jiffies as unsigned long\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "d3a547be40008be590c169ff2d5d73cc7fada71d",
      "tree": "f844701c2a50e5f7e3138efa94f60d1622ae1ae0",
      "parents": [
        "1b38bed562317701760b84cad12749985ceffb8b"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Sat May 14 23:14:46 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:29 2011 +0200"
      },
      "message": "batman-adv: Annotate functions with format strings\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "1b38bed562317701760b84cad12749985ceffb8b",
      "tree": "bcc3747514600704799eabf32c9f7ef517621966",
      "parents": [
        "e2cbc11c0e1225bd5fe183a967fc80df3db10745"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Tue May 10 11:17:40 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:28 2011 +0200"
      },
      "message": "batman-adv: Use kzalloc rather than kmalloc followed by memset with 0\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "e2cbc11c0e1225bd5fe183a967fc80df3db10745",
      "tree": "5e7bf4845b660067fdfb93e4cee836fa545a621f",
      "parents": [
        "55922c9d1b84b89cb946c777fddccb3247e7df2c"
      ],
      "author": {
        "name": "Antonio Quartulli",
        "email": "ordex@autistici.org",
        "time": "Sun May 08 20:52:57 2011 +0200"
      },
      "committer": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Mon May 30 07:39:27 2011 +0200"
      },
      "message": "batman-adv: move neigh_node-\u003eif_incoming-\u003eif_status check in find_router()\n\nEvery time that find_router() is invoked, if_status has to be compared with\nIF_ACTIVE. Moving this comparison inside find_router() will avoid to write it\neach time.\n\nSigned-off-by: Antonio Quartulli \u003cordex@autistici.org\u003e\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "55922c9d1b84b89cb946c777fddccb3247e7df2c",
      "tree": "800ce0df1466f8ff7b32d2602c6152a07486ef64",
      "parents": [
        "bd1bfe40ac6bdf9593da29b822bc301b77a97d6a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 17:43:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 17:43:36 2011 -0700"
      },
      "message": "Linux 3.0-rc1\n\n.. except there are various scripts that really know that there are\nthree numbers, so it calls itself \"3.0.0-rc1\".\n\nHopefully by the time the final 3.0 is out, we\u0027ll have that extra zero\nall figured out.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd1bfe40ac6bdf9593da29b822bc301b77a97d6a",
      "tree": "332328b76dc4a3d51419c1d1cb23f50eb6c034c8",
      "parents": [
        "cd1acdf1723d71b28175f95b04305f1cc74ce363",
        "3063287053bca5207e121c567b95b2b6f0bdc2c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 14:13:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 14:13:25 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  eCryptfs: Remove ecryptfs_header_cache_2\n  eCryptfs: Cleanup and optimize ecryptfs_lookup_interpose()\n  eCryptfs: Return useful code from contains_ecryptfs_marker\n  eCryptfs: Fix new inode race condition\n  eCryptfs: Cleanup inode initialization code\n  eCryptfs: Consolidate inode functions into inode.c\n"
    },
    {
      "commit": "cd1acdf1723d71b28175f95b04305f1cc74ce363",
      "tree": "7ab58883eccd314be3d8efafd59a124d4ffbb861",
      "parents": [
        "fac04863cef53a69830590b2e1c54345068a9747",
        "9342077011d54f42fa1b88b7bc1f7008dcf5fff9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 14:10:13 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 14:10:13 2011 -0700"
      },
      "message": "Merge branch \u0027pnfs-submit\u0027 of git://git.open-osd.org/linux-open-osd\n\n* \u0027pnfs-submit\u0027 of git://git.open-osd.org/linux-open-osd: (32 commits)\n  pnfs-obj: pg_test check for max_io_size\n  NFSv4.1: define nfs_generic_pg_test\n  NFSv4.1: use pnfs_generic_pg_test directly by layout driver\n  NFSv4.1: change pg_test return type to bool\n  NFSv4.1: unify pnfs_pageio_init functions\n  pnfs-obj: objlayout_encode_layoutcommit implementation\n  pnfs: encode_layoutcommit\n  pnfs-obj: report errors and .encode_layoutreturn Implementation.\n  pnfs: encode_layoutreturn\n  pnfs: layoutret_on_setattr\n  pnfs: layoutreturn\n  pnfs-obj: osd raid engine read/write implementation\n  pnfs: support for non-rpc layout drivers\n  pnfs-obj: define per-inode private structure\n  pnfs: alloc and free layout_hdr layoutdriver methods\n  pnfs-obj: objio_osd device information retrieval and caching\n  pnfs-obj: decode layout, alloc/free lseg\n  pnfs-obj: pnfs_osd XDR client implementation\n  pnfs-obj: pnfs_osd XDR definitions\n  pnfs-obj: objlayoutdriver module skeleton\n  ...\n"
    },
    {
      "commit": "fac04863cef53a69830590b2e1c54345068a9747",
      "tree": "59b9161b442ccd340324a8b42cdace84206014bb",
      "parents": [
        "2ba781ced93922e249dee2ac0751faccb4fb0656"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 14:06:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 14:06:42 2011 -0700"
      },
      "message": "arm gpio drivers: make them \u0027depends on ARM\u0027\n\nWe had a few drivers move from arch/arm into drivers/gpio, but they\ndon\u0027t actually compile without the ARM platform headers etc.  As a\nresult they were messing up allyesconfig on x86.\n\nMake them depend on ARM.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3063287053bca5207e121c567b95b2b6f0bdc2c8",
      "tree": "404c92175f536d20576254a43a7a93b3b02343f2",
      "parents": [
        "778aeb42a708d2a57e491d2cbb5a1e74f61270b9"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 24 05:11:12 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 14:24:25 2011 -0500"
      },
      "message": "eCryptfs: Remove ecryptfs_header_cache_2\n\nNow that ecryptfs_lookup_interpose() is no longer using\necryptfs_header_cache_2 to read in metadata, the kmem_cache can be\nremoved and the ecryptfs_header_cache_1 kmem_cache can be renamed to\necryptfs_header_cache.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "778aeb42a708d2a57e491d2cbb5a1e74f61270b9",
      "tree": "6651d8a2356b9075e6978285cbcfa7aab16e9b7a",
      "parents": [
        "7a86617e553f47761b10f57de472d7262562b7de"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 24 04:56:23 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 14:24:24 2011 -0500"
      },
      "message": "eCryptfs: Cleanup and optimize ecryptfs_lookup_interpose()\n\necryptfs_lookup_interpose() has turned into spaghetti code over the\nyears. This is an effort to clean it up.\n\n - Shorten overly descriptive variable names such as ecryptfs_dentry\n - Simplify gotos and error paths\n - Create helper function for reading plaintext i_size from metadata\n\nIt also includes an optimization when reading i_size from the metadata.\nA complete page-sized kmem_cache_alloc() was being done to read in 16\nbytes of metadata. The buffer for that is now statically declared.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "7a86617e553f47761b10f57de472d7262562b7de",
      "tree": "63ae402692eae9b062b3423b6d081ebe9a192d36",
      "parents": [
        "3b06b3ebf44170c90c893c6c80916db6e922b9f2"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon May 02 00:39:54 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 14:24:24 2011 -0500"
      },
      "message": "eCryptfs: Return useful code from contains_ecryptfs_marker\n\nInstead of having the calling functions translate the true/false return\ncode to either 0 or -EINVAL, have contains_ecryptfs_marker() return 0 or\n-EINVAL so that the calling functions can just reuse the return code.\n\nAlso, rename the function to ecryptfs_validate_marker() to avoid callers\nmistakenly thinking that it returns true/false codes.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3b06b3ebf44170c90c893c6c80916db6e922b9f2",
      "tree": "1da70b311ad7ec7615f3d44ae269ca56a458fc2d",
      "parents": [
        "5ccf92037c7c6e6f28175fd245284923f939259f"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 24 03:49:02 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 14:23:39 2011 -0500"
      },
      "message": "eCryptfs: Fix new inode race condition\n\nOnly unlock and d_add() new inodes after the plaintext inode size has\nbeen read from the lower filesystem. This fixes a race condition that\nwas sometimes seen during a multi-job kernel build in an eCryptfs mount.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d36002\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nReported-by: David \u003cdavid@unsolicited.net\u003e\nTested-by: David \u003cdavid@unsolicited.net\u003e\n"
    },
    {
      "commit": "2ba781ced93922e249dee2ac0751faccb4fb0656",
      "tree": "8b62346278b60d1bc9765dc6691f07219a27d894",
      "parents": [
        "6345d24daf0c1fffe6642081d783cdf653ebaa5c",
        "437cb0dbd104a1564e0e78f0d486b97677f80909"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:44:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:44:33 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86: (43 commits)\n  acer-wmi: support integer return type from WMI methods\n  msi-laptop: fix section mismatch in reference from the function load_scm_model_init\n  acer-wmi: support to set communication device state by new wmid method\n  acer-wmi: allow 64-bits return buffer from WMI methods\n  acer-wmi: check the existence of internal 3G device when set capability\n  platform/x86:delete two unused variables\n  support wlan hotkey on Acer Travelmate 5735Z\n  platform-x86: intel_mid_thermal: Fix memory leak\n  platform/x86: Fix Makefile for intel_mid_powerbtn\n  platform/x86: Simplify intel_mid_powerbtn\n  acer-wmi: Delete out-of-date documentation\n  acerhdf: Clean up includes\n  acerhdf: Drop pointless dependency on THERMAL_HWMON\n  acer-wmi: Update MAINTAINERS\n  wmi: Orphan ACPI-WMI driver\n  tc1100-wmi: Orphan driver\n  acer-wmi: does not allow negative number set to initial device state\n  platform/oaktrail: ACPI EC Extra driver for Oaktrail\n  thinkpad_acpi: Convert printks to pr_\u003clevel\u003e\n  thinkpad_acpi: Correct !CONFIG_THINKPAD_ACPI_VIDEO warning\n  ...\n"
    },
    {
      "commit": "6345d24daf0c1fffe6642081d783cdf653ebaa5c",
      "tree": "415a253621279111bd481d48cbb86174c70b952a",
      "parents": [
        "cab0d85c8dfcad4d799f9c294571440c6f1db091"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:32:28 2011 -0700"
      },
      "message": "mm: Fix boot crash in mm_alloc()\n\nThomas Gleixner reports that we now have a boot crash triggered by\nCONFIG_CPUMASK_OFFSTACK\u003dy:\n\n    BUG: unable to handle kernel NULL pointer dereference at   (null)\n    IP: [\u003cc11ae035\u003e] find_next_bit+0x55/0xb0\n    Call Trace:\n     [\u003cc11addda\u003e] cpumask_any_but+0x2a/0x70\n     [\u003cc102396b\u003e] flush_tlb_mm+0x2b/0x80\n     [\u003cc1022705\u003e] pud_populate+0x35/0x50\n     [\u003cc10227ba\u003e] pgd_alloc+0x9a/0xf0\n     [\u003cc103a3fc\u003e] mm_init+0xec/0x120\n     [\u003cc103a7a3\u003e] mm_alloc+0x53/0xd0\n\nwhich was introduced by commit de03c72cfce5 (\"mm: convert\nmm-\u003ecpu_vm_cpumask into cpumask_var_t\"), and is due to wrong ordering of\nmm_init() vs mm_init_cpumask\n\nThomas wrote a patch to just fix the ordering of initialization, but I\nhate the new double allocation in the fork path, so I ended up instead\ndoing some more radical surgery to clean it all up.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cab0d85c8dfcad4d799f9c294571440c6f1db091",
      "tree": "ba7b348832673f6c7433b9d7481bfcd415f7a7b5",
      "parents": [
        "57ed609d4b64139b4d2cf5f3b4880a573a7905d2",
        "3c5cffb66d8ea94832650fcb55194715b0229088"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:30:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:30:20 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6:\n  [S390] mm: fix mmu_gather rework\n  [S390] mm: fix storage key handling\n"
    },
    {
      "commit": "57ed609d4b64139b4d2cf5f3b4880a573a7905d2",
      "tree": "d824e1ebd33b28c4ccc53e9074064db479b17dc7",
      "parents": [
        "a74d70b63f1a0230831bcca3145d85ae016f9d4c",
        "f133ecca9cbb31b5e6e9bda27cbe3034fbf656df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:29:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:29:28 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  arch/tile: more /proc and /sys file support\n"
    },
    {
      "commit": "437cb0dbd104a1564e0e78f0d486b97677f80909",
      "tree": "e066b3d65eb965ca68ecc8ef14581f2450ad3a61",
      "parents": [
        "139f37f5e14cd883eee2a8a36289f544b5390a44",
        "987dfbaa65b2c3568b85e29d2598da08a011ee09"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Sun May 29 14:27:13 2011 -0400"
      },
      "committer": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Sun May 29 14:27:13 2011 -0400"
      },
      "message": "Merge branch \u0027x86-platform-next\u0027 into x86-platform\n"
    },
    {
      "commit": "a74d70b63f1a0230831bcca3145d85ae016f9d4c",
      "tree": "24392a2843b19e81a1a38d88b34e772bd688502b",
      "parents": [
        "b11b06d90a41766c2d31f0acb8a87aa0f2a7188f",
        "c47d832bc0155153920e507f075647519bad09a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:21:12 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:21:12 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.40\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.40\u0027 of git://linux-nfs.org/~bfields/linux: (22 commits)\n  nfsd: make local functions static\n  NFSD: Remove unused variable from nfsd4_decode_bind_conn_to_session()\n  NFSD: Check status from nfsd4_map_bcts_dir()\n  NFSD: Remove setting unused variable in nfsd_vfs_read()\n  nfsd41: error out on repeated RECLAIM_COMPLETE\n  nfsd41: compare request\u0027s opcnt with session\u0027s maxops at nfsd4_sequence\n  nfsd v4.1 lOCKT clientid field must be ignored\n  nfsd41: add flag checking for create_session\n  nfsd41: make sure nfs server process OPEN with EXCLUSIVE4_1 correctly\n  nfsd4: fix wrongsec handling for PUTFH + op cases\n  nfsd4: make fh_verify responsibility of nfsd_lookup_dentry caller\n  nfsd4: introduce OPDESC helper\n  nfsd4: allow fh_verify caller to skip pseudoflavor checks\n  nfsd: distinguish functions of NFSD_MAY_* flags\n  svcrpc: complete svsk processing on cb receive failure\n  svcrpc: take advantage of tcp autotuning\n  SUNRPC: Don\u0027t wait for full record to receive tcp data\n  svcrpc: copy cb reply instead of pages\n  svcrpc: close connection if client sends short packet\n  svcrpc: note network-order types in svc_process_calldir\n  ...\n"
    },
    {
      "commit": "b11b06d90a41766c2d31f0acb8a87aa0f2a7188f",
      "tree": "be326cde997bcc38b2a9e0a6d6bc7d7ee7b4cbed",
      "parents": [
        "f1d1c9fa8f360990e263bdcb73e35ab6fbdc41fe",
        "fa34ce73072f90ecd90dcc43f29d82e70e5f8676"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:20:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:20:48 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:\n  dm kcopyd: return client directly and not through a pointer\n  dm kcopyd: reserve fewer pages\n  dm io: use fixed initial mempool size\n  dm kcopyd: alloc pages from the main page allocator\n  dm kcopyd: add gfp parm to alloc_pl\n  dm kcopyd: remove superfluous page allocation spinlock\n  dm kcopyd: preallocate sub jobs to avoid deadlock\n  dm kcopyd: avoid pointless job splitting\n  dm mpath: do not fail paths after integrity errors\n  dm table: reject devices without request fns\n  dm table: allow targets to support discards internally\n"
    },
    {
      "commit": "f1d1c9fa8f360990e263bdcb73e35ab6fbdc41fe",
      "tree": "91468535e200f890fd532d5cbb50df59035278e0",
      "parents": [
        "2ff55e98d6e662a4887d2c688a4ab2ae510a97df",
        "176e21ee2ec89cae8d45cf1a850ea45a45428fb8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:20:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:20:02 2011 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.40\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.40\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  SUNRPC: Support for RPC over AF_LOCAL transports\n  SUNRPC: Remove obsolete comment\n  SUNRPC: Use AF_LOCAL for rpcbind upcalls\n  SUNRPC: Clean up use of curly braces in switch cases\n  NFS: Revert NFSROOT default mount options\n  SUNRPC: Rename xs_encode_tcp_fragment_header()\n  nfs,rcu: convert call_rcu(nfs_free_delegation_callback) to kfree_rcu()\n  nfs41: Correct offset for LAYOUTCOMMIT\n  NFS: nfs_update_inode: print current and new inode size in debug output\n  NFSv4.1: Fix the handling of NFS4ERR_SEQ_MISORDERED errors\n  NFSv4: Handle expired stateids when the lease is still valid\n  SUNRPC: Deal with the lack of a SYN_SENT sk-\u003esk_state_change callback...\n"
    },
    {
      "commit": "2ff55e98d6e662a4887d2c688a4ab2ae510a97df",
      "tree": "fcf2ede834a2b61b00cbe7c38fdd34fbf8b2e7b5",
      "parents": [
        "daa94222b638bfe34f745d0982de7a165ce7f67c",
        "d5b72ce15ea99a0b8f0d1973074c584daf92d70e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:19:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:19:45 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus:\n  Squashfs: Fix sanity check patches on big-endian systems\n"
    },
    {
      "commit": "daa94222b638bfe34f745d0982de7a165ce7f67c",
      "tree": "2157ed94339d46f7a2da22e22648a70319e8fdd0",
      "parents": [
        "f310642123e0d32d919c60ca3fab5acd130c4ba3",
        "751516f0a9bad32544f40f471037c0e45fb639c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:19:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:19:16 2011 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:\n  ACPI EC: remove redundant code\n  ACPI: Add D3 cold state\n  ACPI: processor: fix processor_physically_present in UP kernel\n  ACPI: Split out custom_method functionality into an own driver\n  ACPI: Cleanup custom_method debug stuff\n  ACPI EC: enable MSI workaround for Quanta laptops\n  ACPICA: Update to version 20110413\n  ACPICA: Execute an orphan _REG method under the EC device\n  ACPICA: Move ACPI_NUM_PREDEFINED_REGIONS to a more appropriate place\n  ACPICA: Update internal address SpaceID for DataTable regions\n  ACPICA: Add more methods eligible for NULL package element removal\n  ACPICA: Split all internal Global Lock functions to new file - evglock\n  ACPI: EC: add another DMI check for ASUS hardware\n  ACPI EC: remove dead code\n  ACPICA: Fix code divergence of global lock handling\n  ACPICA: Use acpi_os_create_lock interface\n  ACPI: osl, add acpi_os_create_lock interface\n  ACPI:Fix goto flows in thermal-sys\n"
    },
    {
      "commit": "f310642123e0d32d919c60ca3fab5acd130c4ba3",
      "tree": "f3844152e2e8c0fdd01621a400f84c8a159252a0",
      "parents": [
        "ef1d57599dc904fdb31b8e9b5336350d21a1fde1",
        "5d4c47e0195b989f284907358bd5c268a44b91c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:18:09 2011 -0700"
      },
      "message": "Merge branch \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6\n\n* \u0027idle-release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:\n  x86 idle: deprecate mwait_idle() and \"idle\u003dmwait\" cmdline param\n  x86 idle: deprecate \"no-hlt\" cmdline param\n  x86 idle APM: deprecate CONFIG_APM_CPU_IDLE\n  x86 idle floppy: deprecate disable_hlt()\n  x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it\n  x86 idle: clarify AMD erratum 400 workaround\n  idle governor: Avoid lock acquisition to read pm_qos before entering idle\n  cpuidle: menu: fixed wrapping timers at 4.294 seconds\n"
    },
    {
      "commit": "ef1d57599dc904fdb31b8e9b5336350d21a1fde1",
      "tree": "4e3f7d49c5a8c27efd5a1009131f4b3f87eff503",
      "parents": [
        "bc658c96037fc87463f0703ad2ea7c895344cb7e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sun May 29 13:46:08 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:17:34 2011 -0700"
      },
      "message": "cifs/ubifs: Fix shrinker API change fallout\n\nCommit 1495f230fa77 (\"vmscan: change shrinker API by passing\nshrink_control struct\") changed the API of -\u003eshrink(), but missed ubifs\nand cifs instances.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9342077011d54f42fa1b88b7bc1f7008dcf5fff9",
      "tree": "88ef803dae5672d8bb40a563a6d2d301ae2e782f",
      "parents": [
        "5b36c7dc41d87d39e779a84fdc2b44b39bba32ca"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Wed May 25 21:25:29 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 21:03:08 2011 +0300"
      },
      "message": "pnfs-obj: pg_test check for max_io_size\n\nImplement pg_test vector to test for max IO sizes. We calculate\na max_io_size member only once, and cache it in lseg so to not\ndo so on every page insert.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[simplify logic]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "5b36c7dc41d87d39e779a84fdc2b44b39bba32ca",
      "tree": "4b83c833021014fd51fcffbff88eea8069cd9cff",
      "parents": [
        "89a58e32d9105c01022a757fb32ddc3b51bf0025"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 11:45:39 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 21:02:42 2011 +0300"
      },
      "message": "NFSv4.1: define nfs_generic_pg_test\n\nBy default, unless pnfs is used coalesce pages until pg_bsize\n(rsize or wsize) is reached.\n\npnfs layout drivers define their own pg_test methods that use\npnfs_generic_pg_test and need to define their own I/O size\nlimits (e.g. based on the file stripe size).\n\n[Move a check from nfs_pageio_do_add_request to nfs_generic_pg_test]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "89a58e32d9105c01022a757fb32ddc3b51bf0025",
      "tree": "fd04ff022a084339868e81fc9a4679667c2b70bd",
      "parents": [
        "18ad0a9f2ccd260d37dd6bc5fa04c7819def4c84"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 25 20:54:40 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:56:55 2011 +0300"
      },
      "message": "NFSv4.1: use pnfs_generic_pg_test directly by layout driver\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "18ad0a9f2ccd260d37dd6bc5fa04c7819def4c84",
      "tree": "a0936cf11e81969c0f84716ab958cd4728c87f54",
      "parents": [
        "dfed206b8857d41a91ebba030f99e30017a44dda"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 25 21:03:56 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:56:54 2011 +0300"
      },
      "message": "NFSv4.1: change pg_test return type to bool\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "dfed206b8857d41a91ebba030f99e30017a44dda",
      "tree": "ac4c161b548e872e92da36499a2e8c28f5a34aeb",
      "parents": [
        "a0fe8bf427f4987d7b82678292ca03cfd7331467"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed May 25 20:25:22 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:56:43 2011 +0300"
      },
      "message": "NFSv4.1: unify pnfs_pageio_init functions\n\nUse common code for pnfs_pageio_init_{read,write} and use\na common generic pg_test function.\n\nNote that this function always assumes the the layout driver\u0027s\npg_test method is implemented.\n\n[Fix BUG]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "a0fe8bf427f4987d7b82678292ca03cfd7331467",
      "tree": "d995bd164b03dde89da24af979931c2490fe9414",
      "parents": [
        "ac7db7264ac3314cae09893bc838fcb7e83267a4"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 22 19:54:13 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:55:00 2011 +0300"
      },
      "message": "pnfs-obj: objlayout_encode_layoutcommit implementation\n\n* Define API for io-engines to report delta_space_used in IOs\n* Encode the osd-layout specific information of the layoutcommit\n  XDR buffer.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "ac7db7264ac3314cae09893bc838fcb7e83267a4",
      "tree": "7586470df26218daa8d771760615ae0d76e6788a",
      "parents": [
        "adb58535e604a564495a7d50dfb0afa0ddc21bcb"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:53:48 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:55:00 2011 +0300"
      },
      "message": "pnfs: encode_layoutcommit\n\nAdd a layout driver method to encode the layout type specific\nopaque part of layout commit in-line in the xdr stream.\n\nCurrently, the pnfs-objects layout driver uses it to encode metadata hints\nto the MDS and the blocks layout driver to commit provisionally allocated\nextents to the file.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "adb58535e604a564495a7d50dfb0afa0ddc21bcb",
      "tree": "54af4fe9569650342e61dbb314334e3617c48dc2",
      "parents": [
        "04a555498e03b3804e2dec916a4669f5f560e503"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu May 26 21:49:46 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:54:45 2011 +0300"
      },
      "message": "pnfs-obj: report errors and .encode_layoutreturn Implementation.\n\nAn io_state pre-allocates an error information structure for each\npossible osd-device that might error during IO. When IO is done if all\nwas well the io_state is freed. (as today). If the I/O has ended with an\nerror, the io_state is queued on a per-layout err_list. When eventually\nencode_layoutreturn() is called, each error is properly encoded on the\nXDR buffer and only then the io_state is removed from err_list and\nde-allocated.\n\nIt is up to the io_engine to fill in the segment that fault and the type\nof osd_error that occurred. By calling objlayout_io_set_result() for\neach failing device.\n\nIn objio_osd:\n* Allocate io-error descriptors space as part of io_state\n* Use generic objlayout error reporting at end of io.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "04a555498e03b3804e2dec916a4669f5f560e503",
      "tree": "4fab39683df70cee7f7aea7d7718072a811ad153",
      "parents": [
        "8a1636c459cb7a4b32ba4024cd1b2ba21fba6aed"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Sun May 22 19:53:10 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:54:37 2011 +0300"
      },
      "message": "pnfs: encode_layoutreturn\n\nAdd a layout driver method to encode the layout type specific\nopaque part of layout return in-line in the xdr stream.\n\nCurrently the pnfs-objects layout driver uses it to encode i/o error\ninformation on LAYOUTRETURN.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[fixup layout header pointer for encode_layoutreturn]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "8a1636c459cb7a4b32ba4024cd1b2ba21fba6aed",
      "tree": "f9c46f272b98ceb65f997f226d47da68c6fcac6b",
      "parents": [
        "cbe8260369c9f88eafa035cd327dc3e02fad528c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Wed Jul 14 15:43:57 2010 -0400"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:54:36 2011 +0300"
      },
      "message": "pnfs: layoutret_on_setattr\n\nWith the objects layout security model, we have object capabilities\nthat are associated with the layout and we anticipate that the server\nwill issue a cb_layoutrecall for any setattr that changes security\nrelated attributes (user/group/mode/acl) or truncates the file.\n\nTherefore, the layout is returned before issuing the setattr to avoid\nthe anticipated cb_layoutrecall.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "cbe8260369c9f88eafa035cd327dc3e02fad528c",
      "tree": "13316d9b1a761cf58c35e663375b72f6ac07c5d2",
      "parents": [
        "04f83450388e87d86b387cf4a27b81eb7e69de7d"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:52:37 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:54:36 2011 +0300"
      },
      "message": "pnfs: layoutreturn\n\nNFSv4.1 LAYOUTRETURN implementation\n\nCurrently, does not support layout-type payload encoding.\n\nSigned-off-by: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@citi.umich.edu\u003e\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Zhang Jingwang \u003czhangjingwang@nrchpc.ac.cn\u003e\n[call pnfs_return_layout right before pnfs_destroy_layout]\n[remove assert_spin_locked from pnfs_clear_lseg_list]\n[remove wait parameter from the layoutreturn path.]\n[remove return_type field from nfs4_layoutreturn_args]\n[remove range from nfs4_layoutreturn_args]\n[no need to send layoutcommit from _pnfs_return_layout]\n[don\u0027t wait on sync layoutreturn]\n[fix layout stateid in layoutreturn args]\n[fixed NULL deref in _pnfs_return_layout]\n[removed recaim member of nfs4_layoutreturn_args]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "04f83450388e87d86b387cf4a27b81eb7e69de7d",
      "tree": "99c10d6a995ed1e7b872abb0127fc38d6bef9982",
      "parents": [
        "d20581aa4be11407c9eeeb75992df5ef176bba0f"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 22 19:52:19 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:54:15 2011 +0300"
      },
      "message": "pnfs-obj: osd raid engine read/write implementation\n\nWith the use of the in-kernel osd library. Implement read/write\nof data from/to osd-objects according to information specified\nin the objects-layout.\n\nSupport for stripping over mirrors with a received stripe_unit.\nThere are however a few constrains which are not supported:\n 1. Stripe Unit must be a multiple of PAGE_SIZE\n 2. stripe length (stripe_unit * number_of_stripes) can not be\n    bigger then 32bit.\n\nAlso support raid-groups and partial-layout. Partial-layout is\nwhen not all the groups are received on the line, addressing\nonly a partial range of the file.\n\nTODO:\n  Only raid0! raid 4/5/6 support will come at later stage\n\nA none supported layout will send IO through the MDS\n\n[Important fallout from the last rebase]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[gfp_flags]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "d20581aa4be11407c9eeeb75992df5ef176bba0f",
      "tree": "277fdff5bc6ad5a5df105abd092c7179d22554fb",
      "parents": [
        "e51b841dd0be9ff53f740c44c32c32679edcb7c8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:52:03 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:53:51 2011 +0300"
      },
      "message": "pnfs: support for non-rpc layout drivers\n\nNon-rpc layout driver such as for objects and blocks\nimplement their own I/O path and error handling logic.\nTherefore bypass NFS-based error handling for these layout drivers.\n\n[fix lseg ref-count bugs, and null de-refs]\n[Fall out from: non-rpc layout drivers]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[get rid of PNFS_USE_RPC_CODE]\n[get rid of __nfs4_write_done_cb]\n[revert useless change in nfs4_write_done_cb]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "e51b841dd0be9ff53f740c44c32c32679edcb7c8",
      "tree": "03e46d6013fa2a45ad22b3f510267d11e5f8d25a",
      "parents": [
        "636fb9c89d7e216aac3d406e458864420057e981"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:51:48 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:53:51 2011 +0300"
      },
      "message": "pnfs-obj: define per-inode private structure\n\nallocate and deallocate per-inode private pnfs_layout_hdr\nin preparation for I/O implementation.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "636fb9c89d7e216aac3d406e458864420057e981",
      "tree": "4342ccf39c4b4b26bdcf79833c7f98f8b9913262",
      "parents": [
        "b6c05f1693115164c7b797152ac7ea3ef8e5d296"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:51:33 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:53:50 2011 +0300"
      },
      "message": "pnfs: alloc and free layout_hdr layoutdriver methods\n\n[gfp_flags]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "b6c05f1693115164c7b797152ac7ea3ef8e5d296",
      "tree": "24430851c2569f4db76b13f41e82514326fbb878",
      "parents": [
        "09f5bf4e6d0607399c16ec7a2d8d166f31086686"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu May 26 21:45:34 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:53:33 2011 +0300"
      },
      "message": "pnfs-obj: objio_osd device information retrieval and caching\n\nWhen a new layout is received in objio_alloc_lseg all device_ids\nreferenced are retrieved. The device information is queried for from MDS\nand then the osd_device is looked-up from the osd-initiator library. The\ndevices are cached in a per-mount-point list, for later use. At unmount\nall devices are \"put\" back to the library.\n\nobjlayout_get_deviceinfo(), objlayout_put_deviceinfo() middleware\nAPI for retrieving device information given a device_id.\n\nTODO: The device cache can get big. Cap its size. Keep an LRU and start\n      to return devices which were not used, when list gets to big, or\n      when new entries allocation fail.\n\n[pnfs-obj: Bugs in new global-device-cache code]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[gfp_flags]\n[use global device cache]\n[use layout driver in global device cache]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "09f5bf4e6d0607399c16ec7a2d8d166f31086686",
      "tree": "767732b80aaa48a97e86af2c6f0ec7a3120219f2",
      "parents": [
        "f1bc893a89d012649e4e7f43575b2c290e08ee42"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 22 19:50:20 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:53:06 2011 +0300"
      },
      "message": "pnfs-obj: decode layout, alloc/free lseg\n\nobjlayout_alloc_lseg prepares an xdr_stream and calls the\nraid engins objio_alloc_lseg() to allocate a private\npnfs_layout_segment.\n\nobjio_osd.c::objio_alloc_lseg() uses passed xdr_stream to\ndecode and store the layout_segment information in an\nobjio_segment struct, using the pnfs_osd_xdr.h API for\nthe actual parsing the layout xdr.\n\nobjlayout_free_lseg calls objio_free_lseg() to free the\nallocated space.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[gfp_flags]\n[removed \"extern\" from function definitions]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "f1bc893a89d012649e4e7f43575b2c290e08ee42",
      "tree": "2f06cc6c3232292b2dfae6e7e7f3770699f324b4",
      "parents": [
        "38b7c401f6ade50543f246c4bc2c971edf2b19dd"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 22 19:49:57 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:36 2011 +0300"
      },
      "message": "pnfs-obj: pnfs_osd XDR client implementation\n\n* Add the fs/nfs/objlayout/pnfs_osd_xdr_cli.c file, which will\n  include the XDR encode/decode implementations for the pNFS\n  client objlayout driver.\n\n[Wrong type in comments]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "38b7c401f6ade50543f246c4bc2c971edf2b19dd",
      "tree": "48472ff37b91ef9920c3ab448565812f36279430",
      "parents": [
        "c93407d03c3ccf60b33a309e5fcd41cd98969901"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:49:32 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:36 2011 +0300"
      },
      "message": "pnfs-obj: pnfs_osd XDR definitions\n\n* Add the pnfs_osd_xdr.h header\n\n* defintions the pnfs_osd_layout structure including all it\u0027s\n  sub-types and constants.\n* Declare the pnfs_osd_xdr_decode_layout API + all needed\n  inline helpers.\n\n* Define the pnfs_osd_deviceaddr structure and all its subtypes and\n  constants.\n* Declare API for decoding of a pnfs_osd_deviceaddr from XDR stream.\n\n* Define the pnfs_osd_ioerr structure, its substructures and constants.\n* Declare API for encoding of a pnfs_osd_ioerr into XDR stream.\n\n* Define the pnfs_osd_layoutupdate structure and its substructures.\n* Declare API for encoding of a pnfs_osd_layoutupdate into XDR stream.\n\n[Remove server definitions]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "c93407d03c3ccf60b33a309e5fcd41cd98969901",
      "tree": "9ef9cfb8a2c8dd7ae05960469bfef0d396363dc4",
      "parents": [
        "ae50c0b5c6f6fa340f1fe2d244b358145f7e5a15"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:49:06 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:35 2011 +0300"
      },
      "message": "pnfs-obj: objlayoutdriver module skeleton\n\n* Define the PNFS_OBJLAYOUT Kconfig option in the nfs\n  master Kconfig file.\n* Add the objlayout driver to the Kernel\u0027s Kbuild system.\n* Add the fs/nfs/objlayout/Kbuild file for building the\n  objlayoutdriver.ko driver\n* Define fs/nfs/objlayout/objio_osd.c, register the driver on module\n  initialization and unregister on exit.\n\n[pnfs-obj: remove of CONFIG_PNFS fallout]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[added \"unsure\" clause]\n[depend on NFS_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "ae50c0b5c6f6fa340f1fe2d244b358145f7e5a15",
      "tree": "dd4deefa6aa04838ce375053f29c675dbe732d5e",
      "parents": [
        "778b5502fdba5b183553f3f2ef1672ba78ac58b6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Sun May 22 19:48:21 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:34 2011 +0300"
      },
      "message": "pnfs: client stats\n\nA pNFS client auto-negotiates a lot of features (minorversion level,\npNFS layout type, etc.).  This is convenient, but makes certain kinds of\nfailures hard for a user to detect.\n\nFor example, if the client falls back on 4.0, or falls back to MDS IO\nbecause the user didn\u0027t connect to the right iscsi disks before\nmounting, the only symptoms may be reduced performance, which may not be\nnoticed till long after the actual failure, and may be difficult for a\nuser to diagnose.\n\nHowever, such \"failures\" may also be perfectly normal in some cases, so\nwe don\u0027t want to spam the system logs with them.\n\nOne approach would be to put some more information into\n/proc/self/mountstats.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[pnfs: add commit client stats]\n[fixup data types for \"ret\" variables in pnfs_try_to* inline funcs.]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[fix definition of show_pnfs for !CONFIG_PNFS]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: Fix show_sessions in the not CONFIG_NFS_V4_1 case]\n    There is a build error when CONFIG_NFS_V4 is set but\n    CONFIG_NFS_V4_1 is *not* set. show_sessions() prototype\n    was unbalanced between the two cases.\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[pnfs: super.c remove CONFIG_PNFS]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "778b5502fdba5b183553f3f2ef1672ba78ac58b6",
      "tree": "dc37bf3b4f9cdfab7ee16a2b776b6ea2d7653210",
      "parents": [
        "707ed5fdb587c71fdb7ad224ba1d80231f33c974"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:48:02 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:34 2011 +0300"
      },
      "message": "pnfs: Use byte-range for cb_layoutrecall\n\nUse recalled range to invalidate particular layout segments in the layout cache.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "707ed5fdb587c71fdb7ad224ba1d80231f33c974",
      "tree": "a3903d971a59df7fb311fe9ce5cd830c92e2bd34",
      "parents": [
        "fb3296eb4636763918edef2d22e45b85b15d4518"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:47:46 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:33 2011 +0300"
      },
      "message": "pnfs: align layoutget requests on page boundaries\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "fb3296eb4636763918edef2d22e45b85b15d4518",
      "tree": "31c85255ccfa03cbca2d1e4e52028e489276a73b",
      "parents": [
        "f7da7a129d57bfe0f74573dc03531c63e1360fae"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Sun May 22 19:47:26 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:32 2011 +0300"
      },
      "message": "pnfs: Use byte-range for layoutget\n\nAdd offset and count parameters to pnfs_update_layout and use them to get\nthe layout in the pageio path.\n\nOrder cache layout segments in the following order:\n* offset (ascending)\n* length (descending)\n* iomode (RW before READ)\n\nTest byte range against the layout segment in use in pnfs_{read,write}_pg_test\nso not to coalesce pages not using the same layout segment.\n\n[fix lseg ordering]\n[clean up pnfs_find_lseg lseg arg]\n[remove unnecessary FIXME]\n[fix ordering in pnfs_insert_layout]\n[clean up pnfs_insert_layout]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "f7da7a129d57bfe0f74573dc03531c63e1360fae",
      "tree": "6efcd0fbdde9bb816ebc70731f1c47b8335ccfe3",
      "parents": [
        "35c8bb543c9e83197e6375142d1d1c2ee3cf017d"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu May 19 14:16:47 2011 -0400"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:32 2011 +0300"
      },
      "message": "SUNRPC: introduce xdr_init_decode_pages\n\nInitialize xdr_stream and xdr_buf using an array of page pointers\nand length of buffer.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "35c8bb543c9e83197e6375142d1d1c2ee3cf017d",
      "tree": "f0f8a69c1586a8d24526223ed70a922c934f9b87",
      "parents": [
        "1be5683b03a766670b3b629bf6bfeab3ca9239d8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue May 24 18:04:02 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:31 2011 +0300"
      },
      "message": "NFSv4.1: use layout driver in global device cache\n\npnfs deviceids are unique per server, per layout type.\nstruct nfs_client is currently used to distinguish deviceids from\ndifferent nfs servers, yet these may clash between different layout\ntypes on the same server.  Therefore, use the layout driver associated\nwith each deviceid at insertion time to look it up, unhash, or\ndelete it.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "1be5683b03a766670b3b629bf6bfeab3ca9239d8",
      "tree": "613f4c0dea8b0d8447a3158b82b3e2046ee9dcb5",
      "parents": [
        "1775bc342c6eacd6304493cbb2e0cda1a0182246"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Sun May 22 19:47:09 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:52:31 2011 +0300"
      },
      "message": "pnfs: CB_NOTIFY_DEVICEID\n\nNote: This functionlaity is incomplete as all layout segments referring to\nthe \u0027to be removed device id\u0027 need to be reaped, and all in flight I/O drained.\n\n[use be32 res in nfs4_callback_devicenotify]\n[use nfs_client to qualify deviceid for cb_notify_deviceid]\n[use global deviceid cache for CB_NOTIFY_DEVICEID]\n[refactor device cache _lookup_deviceid]\n[refactor device cache _find_get_deviceid]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Bug in new global-device-cache code]\n[layout_driver MUST set free_deviceid_node if using dev-cache]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "5ccf92037c7c6e6f28175fd245284923f939259f",
      "tree": "3d9d551131686c9b0f4c6f7ed31ce4db1dbd0327",
      "parents": [
        "c4f790736ca8d7d86883c5aee2ba1caa15cd8da3"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue May 24 02:16:51 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 12:51:17 2011 -0500"
      },
      "message": "eCryptfs: Cleanup inode initialization code\n\nThe eCryptfs inode get, initialization, and dentry interposition code\nhas two separate paths. One is for when dentry interposition is needed\nafter doing things like a mkdir in the lower filesystem and the other\nis needed after a lookup. Unlocking new inodes and doing a d_add() needs\nto happen at different times, depending on which type of dentry\ninterposing is being done.\n\nThis patch cleans up the inode get and initialization code paths and\nsplits them up so that the locking and d_add() differences mentioned\nabove can be handled appropriately in a later patch.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nTested-by: David \u003cdavid@unsolicited.net\u003e\n"
    },
    {
      "commit": "1775bc342c6eacd6304493cbb2e0cda1a0182246",
      "tree": "b0a884a41f565a41957524146ff6ee51b2b7db7b",
      "parents": [
        "a1eaecbc4c8307e27772d6584ef85a2e93250661"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri May 20 13:47:33 2011 +0200"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 20:50:42 2011 +0300"
      },
      "message": "NFSv4.1: purge deviceid cache on nfs_free_client\n\nUse the pnfs_layoutdriver_type both as a qualifier for the deviceid,\ndistinguishing deviceid from different layout types on the server,\nand for freeing the layout-driver allocated structure containing the\nnfs4_deviceid_node.\n\n[BUG in _deviceid_purge_client]\n[layout_driver MUST set free_deviceid_node if using dev-cache]\n[let ver \u003c 4.1 compile]\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n[removed EXPORT_SYMBOL_GPL(nfs4_deviceid_purge_client)]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "c4f790736ca8d7d86883c5aee2ba1caa15cd8da3",
      "tree": "827e371fb2aff1e9290fbd90ca436d069aaa356d",
      "parents": [
        "139f37f5e14cd883eee2a8a36289f544b5390a44"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon May 23 21:18:20 2011 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Sun May 29 12:49:53 2011 -0500"
      },
      "message": "eCryptfs: Consolidate inode functions into inode.c\n\nThese functions should live in inode.c since their focus is on inodes\nand they\u0027re primarily used by functions in inode.c.\n\nAlso does a simple cleanup of ecryptfs_inode_test() and rolls\necryptfs_init_inode() into ecryptfs_inode_set().\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nTested-by: David \u003cdavid@unsolicited.net\u003e\n"
    },
    {
      "commit": "bc658c96037fc87463f0703ad2ea7c895344cb7e",
      "tree": "eed6d7b83dfa04b242231bb7a5c431348ea92c4d",
      "parents": [
        "139f37f5e14cd883eee2a8a36289f544b5390a44"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sun May 29 10:33:44 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 09:25:48 2011 -0700"
      },
      "message": "mm, rmap: Add yet more comments to page_get_anon_vma/page_lock_anon_vma\n\nInspired by an analysis from Hugh on why again all this doesn\u0027t explode\nin our face.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa34ce73072f90ecd90dcc43f29d82e70e5f8676",
      "tree": "26f9c986da4433fa8ed00a1685e34709997474b2",
      "parents": [
        "5f43ba2950414dc0abf4ac44c397d88069056746"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:13 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:13 2011 +0100"
      },
      "message": "dm kcopyd: return client directly and not through a pointer\n\nReturn client directly from dm_kcopyd_client_create, not through a\nparameter, making it consistent with dm_io_client_create.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5f43ba2950414dc0abf4ac44c397d88069056746",
      "tree": "f80df9947ef30f965d9c33e649d1856f1e47220f",
      "parents": [
        "bda8efec5c706a672e0714d341a342e811f0262a"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:11 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:11 2011 +0100"
      },
      "message": "dm kcopyd: reserve fewer pages\n\nReserve just the minimum of pages needed to process one job.\n\nBecause we allocate pages from page allocator, we don\u0027t need to reserve\na large number of pages.  The maximum job size is SUB_JOB_SIZE and we\ncalculate the number of reserved pages based on this.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "bda8efec5c706a672e0714d341a342e811f0262a",
      "tree": "7daf7b505723f5ed2767353dc3fe53b939c46d87",
      "parents": [
        "d04714580f12379fcf7a0f799e86c92b96dd4e1f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:09 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:09 2011 +0100"
      },
      "message": "dm io: use fixed initial mempool size\n\nReplace the arbitrary calculation of an initial io struct mempool size\nwith a constant.\n\nThe code calculated the number of reserved structures based on the request\nsize and used a \"magic\" multiplication constant of 4.  This patch changes\nit to reserve a fixed number - itself still chosen quite arbitrarily.\nFurther testing might show if there is a better number to choose.\n\nNote that if there is no memory pressure, we can still allocate an\narbitrary number of \"struct io\" structures.  One structure is enough to\nprocess the whole request.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d04714580f12379fcf7a0f799e86c92b96dd4e1f",
      "tree": "3a6c152dcb0d062dadfecd9fb8b1866a0fdbfce5",
      "parents": [
        "f99b55eec795bd0fd577ab3ca06f3acfbe3b1ab1"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:07 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:07 2011 +0100"
      },
      "message": "dm kcopyd: alloc pages from the main page allocator\n\nThis patch changes dm-kcopyd so that it allocates pages from the main\npage allocator with __GFP_NOWARN | __GFP_NORETRY flags (so that it can\nfail in case of memory pressure). If the allocation fails, dm-kcopyd\nallocates pages from its own reserve.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f99b55eec795bd0fd577ab3ca06f3acfbe3b1ab1",
      "tree": "b4e4b21bf5477895ac7f8b8b998847dd8c0686aa",
      "parents": [
        "4cc1b4cffd187a5c5d6264c8d766c49b3c57fb05"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:04 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:04 2011 +0100"
      },
      "message": "dm kcopyd: add gfp parm to alloc_pl\n\nIntroduce a parameter for gfp flags to alloc_pl() for use in following\npatches.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4cc1b4cffd187a5c5d6264c8d766c49b3c57fb05",
      "tree": "98b550b7e3c00fcdf20cc8b0a9c5b9478cb45ac9",
      "parents": [
        "c6ea41fbbe08f270a8edef99dc369faf809d1bd6"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:02 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:02 2011 +0100"
      },
      "message": "dm kcopyd: remove superfluous page allocation spinlock\n\nRemove the spinlock protecting the pages allocation.  The spinlock is only\ntaken on initialization or from single-threaded workqueue.  Therefore, the\nspinlock is useless.\n\nThe spinlock is taken in kcopyd_get_pages and kcopyd_put_pages.\n\nkcopyd_get_pages is only called from run_pages_job, which is only\ncalled from process_jobs called from do_work.\n\nkcopyd_put_pages is called from client_alloc_pages (which is initialization\nfunction) or from run_complete_job. run_complete_job is only called from\nprocess_jobs called from do_work.\n\nAnother spinlock, kc-\u003ejob_lock is taken each time someone pushes or pops\nsome work for the worker thread.  Once we take kc-\u003ejob_lock, we\nguarantee that any written memory is visible to the other CPUs.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c6ea41fbbe08f270a8edef99dc369faf809d1bd6",
      "tree": "34210fcc635c029939d43b3b556314210c7171c5",
      "parents": [
        "a705a34a565a5445bf731bd8006d51ea4d2b4236"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:03:00 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:03:00 2011 +0100"
      },
      "message": "dm kcopyd: preallocate sub jobs to avoid deadlock\n\nThere\u0027s a possible theoretical deadlock in dm-kcopyd because multiple\nallocations from the same mempool are required to finish a request.\nAvoid this by preallocating sub jobs.\n\nThere is a mempool of 512 entries. Each request requires up to 9\nentries from the mempool. If we have at least 57 concurrent requests\nrunning, the mempool may overflow and mempool allocations may start\nblocking until another entry is freed to the mempool. Because the same\nthread is used to free entries to the mempool and allocate entries from\nthe mempool, this may result in a deadlock.\n\nThis patch changes it so that one mempool entry contains all 9 \"struct\nkcopyd_job\" required to fulfill the whole request. The allocation is\ndone only once in dm_kcopyd_copy and no further mempool allocations are\ndone during request processing.\n\nIf dm_kcopyd_copy is not run in the completion thread, this\nimplementation is deadlock-free.\n\nMIN_JOBS needs reducing accordingly and we\u0027ve chosen to reduce it\nfurther to 8.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a705a34a565a5445bf731bd8006d51ea4d2b4236",
      "tree": "84d4761ff62398110a44e630085bc43a97bae805",
      "parents": [
        "6f13f6fba76edc7d0e7580c5deee829d59a41b2f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun May 29 13:02:58 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:02:58 2011 +0100"
      },
      "message": "dm kcopyd: avoid pointless job splitting\n\nDon\u0027t split SUB_JOB_SIZE jobs\n\nIf the job size equals SUB_JOB_SIZE, there is no point in splitting it.\nSplitting it just unnecessarily wastes time, because the split job size\nis SUB_JOB_SIZE too.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6f13f6fba76edc7d0e7580c5deee829d59a41b2f",
      "tree": "f192d41174ac3f97cfec5f8f20ad6021a524b10b",
      "parents": [
        "f4808ca99a203f20b4475601748e44b25a65bdec"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sun May 29 13:02:55 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:02:55 2011 +0100"
      },
      "message": "dm mpath: do not fail paths after integrity errors\n\nIntegrity errors need to be passed to the owner of the integrity\nmetadata for processing. Consequently EILSEQ should be passed up the\nstack.\n\nCc: stable@kernel.org\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f4808ca99a203f20b4475601748e44b25a65bdec",
      "tree": "442641730674c130ec228c626b94606ad4f2e3c7",
      "parents": [
        "4c2593270133708698d4b8cea2dab469479ad13b"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Sun May 29 13:02:52 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 13:02:52 2011 +0100"
      },
      "message": "dm table: reject devices without request fns\n\nThis patch adds a check that a block device has a request function\ndefined before it is used.  Otherwise, misconfiguration can cause an oops.\n\nBecause we are allowing devices with zero size e.g. an offline multipath\ndevice as in commit 2cd54d9bedb79a97f014e86c0da393416b264eb3\n(\"dm: allow offline devices\") there needs to be an additional check\nto ensure devices are initialised.  Some block devices, like a loop\ndevice without a backing file, exist but have no request function.\n\nReproducer is trivial: dm-mirror on unbound loop device\n(no backing file on loop devices)\n\ndmsetup create x --table \"0 8 mirror core 2 8 sync 2 /dev/loop0 0 /dev/loop1 0\"\n\nand mirror resync will immediatelly cause OOps.\n\nBUG: unable to handle kernel NULL pointer dereference at   (null)\n ? generic_make_request+0x2bd/0x590\n ? kmem_cache_alloc+0xad/0x190\n submit_bio+0x53/0xe0\n ? bio_add_page+0x3b/0x50\n dispatch_io+0x1ca/0x210 [dm_mod]\n ? read_callback+0x0/0xd0 [dm_mirror]\n dm_io+0xbb/0x290 [dm_mod]\n do_mirror+0x1e0/0x748 [dm_mirror]\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nReported-by: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4c2593270133708698d4b8cea2dab469479ad13b",
      "tree": "f408edef9145b2f9553cbb2142347fc79023c4ff",
      "parents": [
        "139f37f5e14cd883eee2a8a36289f544b5390a44"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Sun May 29 12:52:55 2011 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Sun May 29 12:52:55 2011 +0100"
      },
      "message": "dm table: allow targets to support discards internally\n\nPermit a target to support discards regardless of whether or not all its\nunderlying devices do.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3c5cffb66d8ea94832650fcb55194715b0229088",
      "tree": "22872361ef884b527855ebe6bf225eaabbae4ca1",
      "parents": [
        "a43a9d93d40a69eceeb4e4a4c860cc20186d475c"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun May 29 12:40:51 2011 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun May 29 12:40:51 2011 +0200"
      },
      "message": "[S390] mm: fix mmu_gather rework\n\nQuite a few functions that get called from the tlb gather code require that\npreemption must be disabled. So disable preemption inside of the called\nfunctions instead.\nThe only drawback is that rcu_table_freelist_finish() doesn\u0027t get necessarily\ncalled on the cpu(s) that filled the free lists. So we may see a delay, until\nwe finally see an rcu callback. However over time this shouldn\u0027t matter.\n\nSo we get rid of lots of \"BUG: using smp_processor_id() in preemptible\"\nmessages.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "a43a9d93d40a69eceeb4e4a4c860cc20186d475c",
      "tree": "36eaef08f89d835091344c2d294926314833024e",
      "parents": [
        "139f37f5e14cd883eee2a8a36289f544b5390a44"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun May 29 12:40:50 2011 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun May 29 12:40:51 2011 +0200"
      },
      "message": "[S390] mm: fix storage key handling\n\npage_get_storage_key() and page_set_storage_key() expect a page address\nand not its page frame number. This got inconsistent with 2d42552d\n\"[S390] merge page_test_dirty and page_clear_dirty\".\n\nResult is that we read/write storage keys from random pages and do not\nhave a working dirty bit tracking at all.\nE.g. SetPageUpdate() doesn\u0027t clear the dirty bit of requested pages, which\nfor example ext4 doesn\u0027t like very much and panics after a while.\n\nUnable to handle kernel paging request at virtual user address (null)\nOops: 0004 [#1] PREEMPT SMP DEBUG_PAGEALLOC\nModules linked in:\nCPU: 1 Not tainted 2.6.39-07551-g139f37f-dirty #152\nProcess flush-94:0 (pid: 1576, task: 000000003eb34538, ksp: 000000003c287b70)\nKrnl PSW : 0704c00180000000 0000000000316b12 (jbd2_journal_file_inode+0x10e/0x138)\n           R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 EA:3\nKrnl GPRS: 0000000000000000 0000000000000000 0000000000000000 0700000000000000\n           0000000000316a62 000000003eb34cd0 0000000000000025 000000003c287b88\n           0000000000000001 000000003c287a70 000000003f1ec678 000000003f1ec000\n           0000000000000000 000000003e66ec00 0000000000316a62 000000003c287988\nKrnl Code: 0000000000316b04: f0a0000407f4       srp     4(11,%r0),2036,0\n           0000000000316b0a: b9020022           ltgr    %r2,%r2\n           0000000000316b0e: a7740015           brc     7,316b38\n          \u003e0000000000316b12: e3d0c0000024       stg     %r13,0(%r12)\n           0000000000316b18: 4120c010           la      %r2,16(%r12)\n           0000000000316b1c: 4130d060           la      %r3,96(%r13)\n           0000000000316b20: e340d0600004       lg      %r4,96(%r13)\n           0000000000316b26: c0e50002b567       brasl   %r14,36d5f4\nCall Trace:\n([\u003c0000000000316a62\u003e] jbd2_journal_file_inode+0x5e/0x138)\n [\u003c00000000002da13c\u003e] mpage_da_map_and_submit+0x2e8/0x42c\n [\u003c00000000002daac2\u003e] ext4_da_writepages+0x2da/0x504\n [\u003c00000000002597e8\u003e] writeback_single_inode+0xf8/0x268\n [\u003c0000000000259f06\u003e] writeback_sb_inodes+0xd2/0x18c\n [\u003c000000000025a700\u003e] writeback_inodes_wb+0x80/0x168\n [\u003c000000000025aa92\u003e] wb_writeback+0x2aa/0x324\n [\u003c000000000025abde\u003e] wb_do_writeback+0xd2/0x274\n [\u003c000000000025ae3a\u003e] bdi_writeback_thread+0xba/0x1c4\n [\u003c00000000001737be\u003e] kthread+0xa6/0xb0\n [\u003c000000000056c1da\u003e] kernel_thread_starter+0x6/0xc\n [\u003c000000000056c1d4\u003e] kernel_thread_starter+0x0/0xc\nINFO: lockdep is turned off.\nLast Breaking-Event-Address:\n [\u003c0000000000316a8a\u003e] jbd2_journal_file_inode+0x86/0x138\n\nReported-by: Sebastian Ott \u003csebott@linux.vnet.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "a1eaecbc4c8307e27772d6584ef85a2e93250661",
      "tree": "940549d45db98a5bcfe22501de0bbe9c96de4c8e",
      "parents": [
        "45df3c8b0f3a58facb125d7631890426706c0bfa"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu May 19 22:14:47 2011 -0400"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 12:09:48 2011 +0300"
      },
      "message": "NFSv4.1: make deviceid cache global\n\nMove deviceid cache from the pnfs files layout driver to the\ngeneric layer in preparation for the objects layout driver.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "45df3c8b0f3a58facb125d7631890426706c0bfa",
      "tree": "36261a558f7822886cd965ea827f5601573650c6",
      "parents": [
        "67d51f65bde233b17de304baec4f7c4d086471fe"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu May 05 08:28:46 2011 +0300"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 12:09:48 2011 +0300"
      },
      "message": "pnfs: resolve header dependency in pnfs.h\n\nSome definitions in the header file depend on nfs_fs.h so pnfs.h can\u0027t\nbe included independently.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "67d51f65bde233b17de304baec4f7c4d086471fe",
      "tree": "d9a5e9f93e9ab85e04350166a94a521c780da229",
      "parents": [
        "3b6445a6f68b839d1b437756b9c72312e33339b2"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri May 20 10:45:05 2011 +0200"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 12:09:47 2011 +0300"
      },
      "message": "NFSv4.1: use struct nfs_client to qualify deviceid\n\ndeviceids are unique per server, per layout type.\nTherefore, in the global cache in the files layout driver\ndeviceids from different servers may clash so we need\nto qualify them with a struct nfs_client that represents\nthe nfs server that returned the deviceid.\n\nIntroduced in 2.6.39 commit ea8eecdd\n\"NFSv4.1 move deviceid cache to filelayout driver\"\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "3b6445a6f68b839d1b437756b9c72312e33339b2",
      "tree": "a9b6ad5a51d948baf7afc8503110791a3dbc3f79",
      "parents": [
        "61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf"
      ],
      "author": {
        "name": "Jim Rees",
        "email": "rees@umich.edu",
        "time": "Tue Feb 22 19:31:57 2011 -0500"
      },
      "committer": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Sun May 29 12:09:46 2011 +0300"
      },
      "message": "NFSv4.1: fix typo in filelayout_check_layout\n\nSigned-off-by: Jim Rees \u003crees@umich.edu\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "d5b72ce15ea99a0b8f0d1973074c584daf92d70e",
      "tree": "ead92ef8a1251f6e1bffd62bd9de9d98daa6c7a2",
      "parents": [
        "d7f2ff6718efa155fd92e481a5960496d084c63f"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun May 29 00:38:46 2011 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun May 29 10:03:09 2011 +0100"
      },
      "message": "Squashfs: Fix sanity check patches on big-endian systems\n\nle64 values should be swapped when accessing on\nbig-endian systems.\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    }
  ],
  "next": "751516f0a9bad32544f40f471037c0e45fb639c9"
}
