)]}'
{
  "commit": "a9bb79128aa659f97b774b97c9bb1bdc74444595",
  "tree": "20208e66195581568e5c68f838897199d224fa90",
  "parents": [
    "43b752daae9445a3b2b075a236840d801fce1593"
  ],
  "author": {
    "name": "Hefty, Sean",
    "email": "sean.hefty@intel.com",
    "time": "Mon May 09 22:06:10 2011 -0700"
  },
  "committer": {
    "name": "Roland Dreier",
    "email": "roland@purestorage.com",
    "time": "Mon May 09 22:06:10 2011 -0700"
  },
  "message": "RDMA/cma: Add an ID_REUSEADDR option\n\nLustre requires that clients bind to a privileged port number before\nconnecting to a remote server.  On larger clusters (typically more\nthan about 1000 nodes), the number of privileged ports is exhausted,\nresulting in lustre being unusable.\n\nTo handle this, we add support for reusable addresses to the rdma_cm.\nThis mimics the behavior of the socket option SO_REUSEADDR.  A user\nmay set an rdma_cm_id to reuse an address before calling\nrdma_bind_addr() (explicitly or implicitly).  If set, other\nrdma_cm_id\u0027s may be bound to the same address, provided that they all\nhave reuse enabled, and there are no active listens.\n\nIf rdma_listen() is called on an rdma_cm_id that has reuse enabled, it\nwill only succeed if there are no other id\u0027s bound to that same\naddress.  The reuse option is exported to user space.  The behavior of\nthe kernel reuse implementation was verified against that given by\nsockets.\n\nThis patch is derived from a path by Ira Weiny \u003cweiny2@llnl.gov\u003e\n\nSigned-off-by: Sean Hefty \u003csean.hefty@intel.com\u003e\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "eff5e46f005cbba483dfe2055a70fe9e92a7e1ab",
      "old_mode": 33188,
      "old_path": "drivers/infiniband/core/cma.c",
      "new_id": "99dde874fbbdf53e93675643ac1b1e1bba372bd9",
      "new_mode": 33188,
      "new_path": "drivers/infiniband/core/cma.c"
    },
    {
      "type": "modify",
      "old_id": "ec1e9da1488b321df67b7d77fe2921e364276115",
      "old_mode": 33188,
      "old_path": "drivers/infiniband/core/ucma.c",
      "new_id": "b3fa798525b2a1d8d3df793f41fe255eacf676dd",
      "new_mode": 33188,
      "new_path": "drivers/infiniband/core/ucma.c"
    },
    {
      "type": "modify",
      "old_id": "4fae903046483f7882cebfeea6777ee43dd37038",
      "old_mode": 33188,
      "old_path": "include/rdma/rdma_cm.h",
      "new_id": "169f7a53fb0c696cf7cbb9f441a4e5fe021641bd",
      "new_mode": 33188,
      "new_path": "include/rdma/rdma_cm.h"
    },
    {
      "type": "modify",
      "old_id": "1d165022c02d55880b16b42111ba590983141bab",
      "old_mode": 33188,
      "old_path": "include/rdma/rdma_user_cm.h",
      "new_id": "fc82c1896f751a0e9f1c94c6761433f7ac7a8ad6",
      "new_mode": 33188,
      "new_path": "include/rdma/rdma_user_cm.h"
    }
  ]
}
