)]}'
{
  "commit": "206a134b4d8abf57cd34dffacf993869355b9aac",
  "tree": "ffe4724ce1957243de3eaa2e123b25c883c53412",
  "parents": [
    "dd47f96c077b4516727e497e4b6fd47a06778c0a"
  ],
  "author": {
    "name": "Chuck Lever",
    "email": "chuck.lever@oracle.com",
    "time": "Thu Dec 03 15:58:56 2009 -0500"
  },
  "committer": {
    "name": "Trond Myklebust",
    "email": "Trond.Myklebust@netapp.com",
    "time": "Thu Dec 03 15:58:56 2009 -0500"
  },
  "message": "SUNRPC: Check explicitly for tk_status \u003d\u003d 0 in call_transmit_status()\n\nThe success case, where task-\u003etk_status \u003d\u003d 0, is by far the most\nfrequent case in call_transmit_status().\n\nThe default: arm of the switch statement in call_transmit_status()\nhandles the 0 case.  default: was moved close to the top of the switch\nstatement in call_transmit_status() under the theory that the compiler\nplaces object code for the earliest arms of a switch statement first,\nmaking the CPU do less work.\n\nThe default: arm of a switch statement, however, is executed only\nafter all the other cases have been checked.  Even if the compiler\nrearranges the object code, the default: arm is the \"last resort\",\nmeaning all of the other cases have been explicitly exhausted.  That\nmakes the current arrangement about as inefficient as it gets for the\ncommon case.\n\nTo fix this, add an explicit check for zero before the switch\nstatement.  That forces the compiler to do the zero check first, no\nmatter what optimizations it might try to do to the switch statement.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "38829e20500bf787aa59189501aaf7ce323a113c",
      "old_mode": 33188,
      "old_path": "net/sunrpc/clnt.c",
      "new_id": "7bcd931e06eeec82505e04c03df98bfd43931e65",
      "new_mode": 33188,
      "new_path": "net/sunrpc/clnt.c"
    }
  ]
}
