)]}'
{
  "log": [
    {
      "commit": "dd453dfd70538cadc02cb47ff8d8cfd0cb8cf435",
      "tree": "c55174fec4f6c7ddd803a598bcd755ec87e7ff0e",
      "parents": [
        "e10e0cfc2f27364c73b28adbd3c8688d97049e73"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:41 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd: pass nfsd4_compound_state* to nfs4_preprocess_{state,seq}id_op\n\nCurrently we only use cstate-\u003ecurrent_fh,\nwill also be used by nfsd41 code.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e10e0cfc2f27364c73b28adbd3c8688d97049e73",
      "tree": "bc674e4140ea34b7893c14425ad43a930655743c",
      "parents": [
        "bf864a31d50e3e94d6e76537b97d664913906ff8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:38 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd41: destroy_session operation\n\nImplement the destory_session operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\n[use sessionid_lock spin lock]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bf864a31d50e3e94d6e76537b97d664913906ff8",
      "tree": "8de829d0cdc0c88fe523fc4a288b8e16eedc6a2e",
      "parents": [
        "38eb76a54d803e6792816623651b1a9cb85f8d01"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:35 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:19 2009 -0700"
      },
      "message": "nfsd41: non-page DRC for solo sequence responses\n\nA session inactivity time compound (lease renewal) or a compound where the\nsequence operation has sa_cachethis set to FALSE do not require any pages\nto be held in the v4.1 DRC. This is because struct nfsd4_slot is already\ncaching the session information.\n\nAdd logic to the nfs41 server to not cache response pages for solo sequence\nresponses.\n\nReturn nfserr_replay_uncached_rep on the operation following the sequence\noperation when sa_cachethis is FALSE.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use cstate session in nfsd4_replay_cache_entry]\n[nfsd41: rename nfsd4_no_page_in_cache]\n[nfsd41 rename nfsd4_enc_no_page_replay]\n[nfsd41 nfsd4_is_solo_sequence]\n[nfsd41 change nfsd4_not_cached return]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[changed return type to bool]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 drop parens in nfsd4_is_solo_sequence call]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[changed \"\u003d\u003d 0\" to \"!\"]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "38eb76a54d803e6792816623651b1a9cb85f8d01",
      "tree": "090f34b2d92bd92637dabf0fc287cbf544c0cb38",
      "parents": [
        "ec6b5d7b5064fde27aee798b81107ea3a830de85"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:32 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:18 2009 -0700"
      },
      "message": "nfsd41: Add a create session replay cache\n\nReplace the nfs4_client cl_seqid field with a single struct nfs41_slot used\nfor the create session replay cache.\n\nThe CREATE_SESSION slot sets the sl_session pointer to NULL. Otherwise, the\nslot and it\u0027s replay cache are used just like the session slots.\n\nFix unconfirmed create_session replay response by initializing the\ncreate_session slot sequence id to 0.\n\nA future patch will set the CREATE_SESSION cache when a SEQUENCE operation\npreceeds the CREATE_SESSION operation. This compound is currently only cached\nin the session slot table.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: revert portion of nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@netpp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "ec6b5d7b5064fde27aee798b81107ea3a830de85",
      "tree": "de1571b6773201268796fe5bf3db9bb0f8d23812",
      "parents": [
        "14778a133e3be332be77d981552a79260a61ee17"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:28 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:18 2009 -0700"
      },
      "message": "nfsd41: create_session operation\n\nImplement the create_session operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nLook up the client id (generated by the server on exchange_id,\ngiven by the client on create_session).\nIf neither a confirmed or unconfirmed client is found\nthen the client id is stale\nIf a confirmed cilent is found (i.e. we already received\ncreate_session for it) then compare the sequence id\nto determine if it\u0027s a replay or possibly a mis-ordered rpc.\nIf the seqid is in order, update the confirmed client seqid\nand procedd with updating the session parameters.\n\nIf an unconfirmed client_id is found then verify the creds\nand seqid.  If both match move the client id to confirmed state\nand proceed with processing the create_session.\n\nCurrently, we do not support persistent sessions, and RDMA.\n\nalloc_init_session generates a new sessionid and creates\na session structure.\n\nNFSD_PAGES_PER_SLOT is used for the max response cached calculation, and for\nthe counting of DRC pages using the hard limits set in struct srv_serv.\n\nA note on NFSD_PAGES_PER_SLOT:\n\nOther patches in this series allow for NFSD_PAGES_PER_SLOT + 1 pages to be\ncached in a DRC slot when the response size is less than NFSD_PAGES_PER_SLOT *\nPAGE_SIZE but xdr_buf pages are used. e.g. a READDIR operation will encode a\nsmall amount of data in the xdr_buf head, and then the READDIR in the xdr_buf\npages.  So, the hard limit calculation use of pages by a session is\nunderestimated by the number of cached operations using the xdr_buf pages.\n\nYet another patch caches no pages for the solo sequence operation, or any\ncompound where cache_this is False.  So the hard limit calculation use of\npages by a session is overestimated by the number of these operations in the\ncache.\n\nTODO: improve resource pre-allocation and negotiate session\nparameters accordingly.  Respect and possibly adjust\nbackchannel attributes.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Dean Hildebrand \u003cdhildeb@us.ibm.com\u003e\n[nfsd41: remove headerpadsz from channel attributes]\nOur client and server only support a headerpadsz of 0.\n[nfsd41: use DRC limits in fore channel init]\n[nfsd41: do not change CREATE_SESSION back channel attrs]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[use sessionid_lock spin lock]\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 remove sl_session from alloc_init_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[simplify nfsd4_encode_create_session error handling]\n[nfsd41: fix comment style in init_forechannel_attrs]\n[nfsd41: allocate struct nfsd4_session and slot table in one piece]\n[nfsd41: no need to INIT_LIST_HEAD in alloc_init_session just prior to list_add]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "da3846a2866ddf239311766ff434a82e7b4ac701",
      "tree": "c40d6c1754999f1f572f12c4fa68f281a93b040c",
      "parents": [
        "c3d06f9ce8544fecfe13e377d1e2c2e47fe18dbc"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:22 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: nfsd DRC logic\n\nReplay a request in nfsd4_sequence.\nAdd a minorversion to struct nfsd4_compound_state.\n\nPass the current slot to nfs4svc_encode_compound res via struct\nnfsd4_compoundres to set an NFSv4.1 DRC entry.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use cstate session in nfs4svc_encode_compoundres]\n[nfsd41 replace nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c3d06f9ce8544fecfe13e377d1e2c2e47fe18dbc",
      "tree": "f34acde5f484a8374065295e205921e1860da65c",
      "parents": [
        "074fe897536f095309c5aaffcf912952882ab2cb"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:18 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: hard page limit for DRC\n\nUse no more than 1/128th of the number of free pages at nfsd startup for the\nv4.1 DRC.\n\nThis is an arbitrary default which should probably end up under the control\nof an administrator.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[moved added fields in struct svc_serv under CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[fix set_max_drc calculation of sv_drc_max_pages]\n[moved NFSD_DRC_SIZE_SHIFT\u0027s declaration up in header file]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "074fe897536f095309c5aaffcf912952882ab2cb",
      "tree": "d4bb2fff645a2df1dbdec4af6787359d888a3695",
      "parents": [
        "f9bb94c4c60f6e1d1717077bfddb614f03a607d1"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:15 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:17 2009 -0700"
      },
      "message": "nfsd41: DRC save, restore, and clear functions\n\nCache all the result pages, including the rpc header in rq_respages[0],\nfor a request in the slot table cache entry.\n\nCache the statp pointer from nfsd_dispatch which points into rq_respages[0]\njust past the rpc header. When setting a cache entry, calculate and save the\nlength of the nfs data minus the rpc header for rq_respages[0].\n\nWhen replaying a cache entry, replace the cached rpc header with the\nreplayed request rpc result header, unless there is not enough room in the\ncached results first page. In that case, use the cached rpc header.\n\nThe sessions fore channel maxresponse size cached is set to NFSD_PAGES_PER_SLOT\n* PAGE_SIZE. For compounds we are cacheing with operations such as READDIR\nthat use the xdr_buf-\u003epages to hold data, we choose to cache the extra page of\ndata rather than copying data from xdr_buf-\u003epages into the xdr_buf-\u003ehead page.\n\n[nfsd41: limit cache to maxresponsesize_cached]\n[nfsd41: mv nfsd4_set_statp under CONFIG_NFSD_V4_1]\n[nfsd41: rename nfsd4_move_pages]\n[nfsd41: rename page_no variable]\n[nfsd41: rename nfsd4_set_cache_entry]\n[nfsd41: fix nfsd41_copy_replay_data comment]\n[nfsd41: add to nfsd4_set_cache_entry]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b85d4c01b76f6969a085d07a767fa45225cb14be",
      "tree": "5441d0f6bcec52fab3b81ad4887239ff784c5ad9",
      "parents": [
        "a1bcecd29cdf1670df6908a620add4211c0abb7a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:28:08 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:16 2009 -0700"
      },
      "message": "nfsd41: sequence operation\n\nImplement the sequence operation conforming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-26\n\nCheck for stale clientid (as derived from the sessionid).\nEnforce slotid range and exactly-once semantics using\nthe slotid and seqid.\n\nIf everything went well renew the client lease and\nmark the slot INPROGRESS.\n\nAdd a struct nfsd4_slot pointer to struct nfsd4_compound_state.\nTo be used for sessions DRC replay.\n\n[nfsd41: rename sequence catchthis to cachethis]\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\n[pulled some code to set cstate-\u003eslot from \"nfsd DRC logic\"]\n[use sessionid_lock spin lock]\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd: add a struct nfsd4_slot pointer to struct nfsd4_compound_state]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: add nfsd4_session pointer to nfsd4_compound_state]\n[nfsd41: set cstate session]\n[nfsd41: use cstate session in nfsd4_sequence]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[simplify nfsd4_encode_sequence error handling]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a1bcecd29cdf1670df6908a620add4211c0abb7a",
      "tree": "a4323b21675db5a47a45f5d292fef468b9786007",
      "parents": [
        "0733d21338747483985a5964e852af160d88e429"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:05 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:15 2009 -0700"
      },
      "message": "nfsd41: match clientid establishment method\n\nWe need to distinguish between client names provided by NFSv4.0 clients\nSETCLIENTID and those provided by NFSv4.1 via EXCHANGE_ID when looking\nup the clientid by string.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[nfsd41: use boolean values for use_exchange_id argument]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: simplify match_clientid_establishment logic]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0733d21338747483985a5964e852af160d88e429",
      "tree": "fb8014cc66d3bfc33e1b7cc6a0da369bccc34cd3",
      "parents": [
        "069b6ad4bb20abf175ea7875e82e8002154773af"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:28:01 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:15 2009 -0700"
      },
      "message": "nfsd41: exchange_id operation\n\nImplement the exchange_id operation confoming to\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-28\n\nBased on the client provided name, hash a client id.\nIf a confirmed one is found, compare the op\u0027s creds and\nverifier.  If the creds match and the verifier is different\nthen expire the old client (client re-incarnated), otherwise,\nif both match, assume it\u0027s a replay and ignore it.\n\nIf an unconfirmed client is found, then copy the new creds\nand verifer if need update, otherwise assume replay.\n\nThe client is moved to a confirmed state on create_session.\n\nIn the nfs41 branch set the exchange_id flags to\nEXCHGID4_FLAG_USE_NON_PNFS | EXCHGID4_FLAG_SUPP_MOVED_REFER\n(pNFS is not supported, Referrals are supported,\nMigration is not.).\n\nAddress various scenarios from section 18.35 of the spec:\n\n1. Check for EXCHGID4_FLAG_UPD_CONFIRMED_REC_A and set\n   EXCHGID4_FLAG_CONFIRMED_R as appropriate.\n\n2. Return error codes per 18.35.4 scenarios.\n\n3. Update client records or generate new client ids depending on\n   scenario.\n\nNote: 18.35.4 case 3 probably still needs revisiting.  The handling\nseems not quite right.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Andy Adamosn \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use utsname for major_id (and copy to server_scope)]\n[nfsd41: fix handling of various exchange id scenarios]\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: reverse use of EXCHGID4_INVAL_FLAG_MASK_A]\n[simplify nfsd4_encode_exchange_id error handling]\n[nfsd41: embed an xdr_netobj in nfsd4_exchange_id]\n[nfsd41: return nfserr_serverfault for spa_how \u003d\u003d SP4_MACH_CRED]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "069b6ad4bb20abf175ea7875e82e8002154773af",
      "tree": "e3a933d4c7f0444d29f9266fc5aa77f6e87f5a69",
      "parents": [
        "2db134eb3b39faefc7fbfb200156d175edba2f68"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:58 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: proc stubs\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2db134eb3b39faefc7fbfb200156d175edba2f68",
      "tree": "dd07afee13667410cb64dba1de3a80c54d1bd989",
      "parents": [
        "5282fd724b667b7d65f2e41e405a825e58a78813"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:55 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: xdr infrastructure\n\nDefine nfsd41_dec_ops vector and add it to nfsd4_minorversion for\nminorversion 1.\n\nNote: nfsd4_enc_ops vector is shared for v4.0 and v4.1\nsince we don\u0027t need to filter out obsolete ops as this is\ndone in the decoding phase.\n\nexchange_id, create_session, destroy_session, and sequence ops are\nimplemented as stubs returning nfserr_opnotsupp at this stage.\n\n[was nfsd41: xdr stubs]\n[get rid of CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5282fd724b667b7d65f2e41e405a825e58a78813",
      "tree": "6603d2895c789db0e2244e9966f3a2246a6addb9",
      "parents": [
        "c4bf7868064ce8b9c75d8049d077e593c20602b3"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:52 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:14 2009 -0700"
      },
      "message": "nfsd41: sessionid hashing\n\nSimple sessionid hashing using its monotonically increasing sequence number.\n\nLocking considerations:\nsessionid_hashtbl access is controlled by the sessionid_lock spin lock.\nIt must be taken for insert, delete, and lookup.\nnfsd4_sequence looks up the session id and if the session is found,\nit calls nfsd4_get_session (still under the sessionid_lock).\nnfsd4_destroy_session calls nfsd4_put_session after unhashing\nit, so when the session\u0027s kref reaches zero it\u0027s going to get freed.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[we don\u0027t use a prime for sessionid hash table size]\n[use sessionid_lock spin lock]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9fb870702d02c05f9410423bfff3f63e46e26180",
      "tree": "849fd556192da4b34cc872a36f8ad415e87775c6",
      "parents": [
        "7116ed6b9973021ff43edeb10f4cb834db94000f"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:46 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:13 2009 -0700"
      },
      "message": "nfsd41: introduce nfs4_client cl_sessions list\n\n[get rid of CONFIG_NFSD_V4_1]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7116ed6b9973021ff43edeb10f4cb834db94000f",
      "tree": "fb47a0d182cbf2afb87f482ac03d1a1763f8ee3b",
      "parents": [
        "10add806c38c022d18af48f3ec28c91b4eaf7bb3"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:43 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:13 2009 -0700"
      },
      "message": "nfsd41: sessions basic data types\n\nThis patch provides basic data structures representing the nfs41\nsessions and slots, plus helpers for keeping a reference count\non the session and freeing it.\n\nNote that our server only support a headerpadsz of 0 and\nit ignores backchannel attributes at the moment.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: remove headerpadsz from channel attributes]\n[nfsd41: embed nfsd4_channel in nfsd4_session]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: use bool inuse for slot state]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41 remove sl_session from nfsd4_slot]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "10add806c38c022d18af48f3ec28c91b4eaf7bb3",
      "tree": "d0d141a89d5eac49e337021e1d6d9c451cc4e896",
      "parents": [
        "18df1884a872a2cc405a578cfd0d3adc8d227277"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Apr 03 08:27:40 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:12 2009 -0700"
      },
      "message": "nfsd41: define nfs41 error codes\n\nDefine all error code present in\nhttp://tools.ietf.org/html/draft-ietf-nfsv4-minorversion1-29.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: clean up error code definitions]\n[nfsd41: change NFSERR_REPLAY_ME]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "18df1884a872a2cc405a578cfd0d3adc8d227277",
      "tree": "fe6406c9797757d034f63208f3231fa7b7f331cb",
      "parents": [
        "2f425878b6a71571341dcd3f9e9d1a6f6355da9c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Apr 03 08:27:36 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:12 2009 -0700"
      },
      "message": "nfs41: common protocol definitions\n\nDefine all NFSv4.1 common operation and error code constants.\n\nNote that some of the definitions are used by both the nfs41 client\nand the server code. This patch is duplicated in the nfs41 and nfsd41\nsessions patchset.\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: add exchange id flags]\nSigned-off-by: Mike Sager \u003csager@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[removed server-only hunk changing NFSERR_REPLAY_ME]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: add SEQ4_XX to nfs41-common-protocol]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfs41: generic error code update]\n[nfs41: reverse EXCHGID4_INVAL_FLAG_MASK_{A,R}]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2f425878b6a71571341dcd3f9e9d1a6f6355da9c",
      "tree": "52735958c1614458bd6b459040f977dfc3c3e9a9",
      "parents": [
        "20766016329eb4985c2c8b2a1b2333e0f865fdf9"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:32 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:12 2009 -0700"
      },
      "message": "nfsd: don\u0027t use the deferral service, return NFS4ERR_DELAY\n\nOn an NFSv4.1 server cache miss that causes an upcall, NFS4ERR_DELAY will be\nreturned. It is up to the NFSv4.1 client to resend only the operations that\nhave not been processed.\n\nInitialize rq_usedeferral to 1 in svc_process(). It sill be turned off in\nnfsd4_proc_compound() only when NFSv4.1 Sessions are used.\n\nNote: this isn\u0027t an adequate solution on its own. It\u0027s acceptable as a way\nto get some minimal 4.1 up and working, but we\u0027re going to have to find a\nway to avoid returning DELAY in all common cases before 4.1 can really be\nconsidered ready.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: reverse rq_nodeferral negative logic]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[sunrpc: initialize rq_usedeferral]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e354d571bb481f1d71f2c3004b9ff570b32e83bd",
      "tree": "f55f172d7412c0853187f8cb3c2e1a9fdce4d411",
      "parents": [
        "42d671c78f6486c932b68a50f88768c7b4e57ebf"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Sat Mar 28 11:30:52 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Mar 29 16:20:12 2009 -0400"
      },
      "message": "nfsd: embed nfsd4_current_state in nfsd4_compoundres\n\nRemove the allocation of struct nfsd4_compound_state.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "42d671c78f6486c932b68a50f88768c7b4e57ebf",
      "tree": "092d5bb768f86235be43fd5cbf4bfd114680ac2f",
      "parents": [
        "b5cbc369db39d9080f4932db8607aea1e1654d4d"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Fri Mar 27 02:32:47 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Mar 27 19:48:36 2009 -0400"
      },
      "message": "Fix a build warning about leaking CONFIG_NFSD to userspace.\n\nFix a build warning about leaking CONFIG_NFSD to userspace.\n\nThe nfsd_stats data structure does not need to be available to\nuserspace; no kernel interface uses it.  So move it inside #ifdef\n__KERNEL__ and the warning goes away.\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2795e53b4ed5d1f49d2283f416c922f55ec7d461",
      "tree": "cba9e5c2bcbbf7da75b4c73c7398b20a770262d2",
      "parents": [
        "0953e620de0538cbd081f1b45126f6098112a598"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 12 12:07:14 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 18:13:28 2009 -0400"
      },
      "message": "SUNRPC: Clean up static inline functions in svc_xprt.h\n\nClean up:  Enable the use of const arguments in higher level svc_ APIs\nby adding const to the arguments of the helper functions in svc_xprt.h\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "03cf6c9f49a8fea953d38648d016e3f46e814991",
      "tree": "c7e639bd9fb775af1919d2442d0bf2306dfbfca7",
      "parents": [
        "59a252ff8c0f2fa32c896f69d56ae33e641ce7ad"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Tue Jan 13 21:26:36 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:42 2009 -0400"
      },
      "message": "knfsd: add file to export stats about nfsd pools\n\nAdd /proc/fs/nfsd/pool_stats to export to userspace various\nstatistics about the operation of rpc server thread pools.\n\nThis patch is based on a forward-ported version of\nknfsd-add-pool-thread-stats which has been shipping in the SGI\n\"Enhanced NFS\" product since 2006 and which was previously\nposted:\n\nhttp://article.gmane.org/gmane.linux.nfs/10375\n\nIt has also been updated thus:\n\n * moved EXPORT_SYMBOL() to near the function it exports\n * made the new struct struct seq_operations const\n * used SEQ_START_TOKEN instead of ((void *)1)\n * merged fix from SGI PV 990526 \"sunrpc: use dprintk instead of\n   printk in svc_pool_stats_*()\" by Harshula Jayasuriya.\n * merged fix from SGI PV 964001 \"Crash reading pool_stats before\n   nfsds are started\".\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: Harshula Jayasuriya \u003charshula@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "59a252ff8c0f2fa32c896f69d56ae33e641ce7ad",
      "tree": "f79089d44737e5f050cc4869b42829650096747f",
      "parents": [
        "8bbfa9f3889b643fc7de82c0c761ef17097f8faf"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Tue Jan 13 21:26:35 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:41 2009 -0400"
      },
      "message": "knfsd: avoid overloading the CPU scheduler with enormous load averages\n\nAvoid overloading the CPU scheduler with enormous load averages\nwhen handling high call-rate NFS loads.  When the knfsd bottom half\nis made aware of an incoming call by the socket layer, it tries to\nchoose an nfsd thread and wake it up.  As long as there are idle\nthreads, one will be woken up.\n\nIf there are lot of nfsd threads (a sensible configuration when\nthe server is disk-bound or is running an HSM), there will be many\nmore nfsd threads than CPUs to run them.  Under a high call-rate\nlow service-time workload, the result is that almost every nfsd is\nrunnable, but only a handful are actually able to run.  This situation\ncauses two significant problems:\n\n1. The CPU scheduler takes over 10% of each CPU, which is robbing\n   the nfsd threads of valuable CPU time.\n\n2. At a high enough load, the nfsd threads starve userspace threads\n   of CPU time, to the point where daemons like portmap and rpc.mountd\n   do not schedule for tens of seconds at a time.  Clients attempting\n   to mount an NFS filesystem timeout at the very first step (opening\n   a TCP connection to portmap) because portmap cannot wake up from\n   select() and call accept() in time.\n\nDisclaimer: these effects were observed on a SLES9 kernel, modern\nkernels\u0027 schedulers may behave more gracefully.\n\nThe solution is simple: keep in each svc_pool a counter of the number\nof threads which have been woken but have not yet run, and do not wake\nany more if that count reaches an arbitrary small threshold.\n\nTesting was on a 4 CPU 4 NIC Altix using 4 IRIX clients, each with 16\nsynthetic client threads simulating an rsync (i.e. recursive directory\nlisting) workload reading from an i386 RH9 install image (161480\nregular files in 10841 directories) on the server.  That tree is small\nenough to fill in the server\u0027s RAM so no disk traffic was involved.\nThis setup gives a sustained call rate in excess of 60000 calls/sec\nbefore being CPU-bound on the server.  The server was running 128 nfsds.\n\nProfiling showed schedule() taking 6.7% of every CPU, and __wake_up()\ntaking 5.2%.  This patch drops those contributions to 3.0% and 2.2%.\nLoad average was over 120 before the patch, and 20.9 after.\n\nThis patch is a forward-ported version of knfsd-avoid-nfsd-overload\nwhich has been shipping in the SGI \"Enhanced NFS\" product since 2006.\nIt has been posted before:\n\nhttp://article.gmane.org/gmane.linux.nfs/10374\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "31dec2538e45e9fff2007ea1f4c6bae9f78db724",
      "tree": "c2b42679c73c1c6f31312f38a1b1d049e918d635",
      "parents": [
        "1e685ec270cb97680be4eb8cf6b615f5f7f1403a"
      ],
      "author": {
        "name": "David Shaw",
        "email": "dshaw@jabberwocky.com",
        "time": "Thu Mar 05 20:16:14 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:40 2009 -0400"
      },
      "message": "Short write in nfsd becomes a full write to the client\n\nIf a filesystem being written to via NFS returns a short write count\n(as opposed to an error) to nfsd, nfsd treats that as a success for\nthe entire write, rather than the short count that actually succeeded.\n\nFor example, given a 8192 byte write, if the underlying filesystem\nonly writes 4096 bytes, nfsd will ack back to the nfs client that all\n8192 bytes were written.  The nfs client does have retry logic for\nshort writes, but this is never called as the client is told the\ncomplete write succeeded.\n\nThere are probably other ways it could happen, but in my case it\nhappened with a fuse (filesystem in userspace) filesystem which can\nrather easily have a partial write.\n\nHere is a patch to properly return the short write count to the\nclient.\n\nSigned-off-by: David Shaw \u003cdshaw@jabberwocky.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8b671b80707e4fc76adfe4387df07b3be1007c1e",
      "tree": "d9dafb3a1174dfeb84f72ba56a04625204aab415",
      "parents": [
        "d7fdcfe0aaaf6dffca6fa857bab374182fe7ca8b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Feb 22 14:51:34 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:38 2009 -0400"
      },
      "message": "nfsd4: remove use of mutex for file_hashtable\n\nAs part of reducing the scope of the client_mutex, and in order to\nremove the need for mutexes from the callback code (so that callbacks\ncan be done as asynchronous rpc calls), move manipulations of the\nfile_hashtable under the recall_lock.\n\nUpdate the relevant comments while we\u0027re here.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Alexandros Batsakis \u003cbatsakis@netapp.com\u003e\nReviewed-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n"
    },
    {
      "commit": "6150ef0dc7f734366d297e2eb5697ae458a1ea19",
      "tree": "0a11653b66953b808d2a1a98dc8da0f649c875f3",
      "parents": [
        "7e0f7cf582abd6c85232331dfe726a4e4b0fd98e"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 13:36:16 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:37 2009 -0400"
      },
      "message": "nfsd4: remove unused CHECK_FH flag\n\nAll users now pass this, so it\u0027s meaningless.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "203a8c8e66278a5936a230edaac29017e50c88fb",
      "tree": "93165a85d0ff93271f23f2a753c93d0df754d138",
      "parents": [
        "3e633079e377d2b527a8390f63ceb887b5cabfbf"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Feb 21 13:29:14 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:18 2009 -0400"
      },
      "message": "nfsd4: separate delegreturn case from preprocess_stateid_op\n\nDelegreturn is enough a special case for preprocess_stateid_op to\nwarrant just open-coding it in delegreturn.\n\nThere should be no change in behavior here; we\u0027re just reshuffling code.\n\nThanks to Yang Hongyang for catching a critical typo.\n\nReviewed-by: Yang Hongyang \u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "77f18f5e4ebdea35ec3d92343b0ed7546dc87637",
      "tree": "dd9a97818130a8596b1833c82a625b3ed9cf9186",
      "parents": [
        "4ac35c2f794503d3acda20d98e89cf63f6e94332"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 11 17:16:58 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:51 2009 -0400"
      },
      "message": "nfs: replace uses of __constant_{endian}\n\nThe base versions handle constant folding now, none of these headers\nare exported to userspace, so the __ prefixed versions are not\nnecessary.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6c02eaa1d1e53b9b2cc27d0c6fff3e57da4b611f",
      "tree": "af558f47858043d7c326c5b3d889c9447e65aaac",
      "parents": [
        "a4773c08f2872626cb923433284488fbe8acb0ae"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 17:30:51 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:49 2009 -0400"
      },
      "message": "nfsd4: use helper for copying delegation filehandle\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a4773c08f2872626cb923433284488fbe8acb0ae",
      "tree": "772342b775cef615b19060158900981e0985ff9f",
      "parents": [
        "13024b7b4097d33fe6bba34b1c83602e88753270"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 02 17:23:10 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:49 2009 -0400"
      },
      "message": "nfsd4: use helper for copying filehandles for replay\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "76a67ec6fb79ff3570dcb5342142c16098299911",
      "tree": "45bfd454d59ce611a103d6b63fff08a5cb5d2194",
      "parents": [
        "84f09f46b4ee9e4e9b6381f8af31817516d2091b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Mar 16 18:34:20 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Mar 17 14:55:55 2009 -0400"
      },
      "message": "nfsd: nfsd should drop CAP_MKNOD for non-root\n\nSince creating a device node is normally an operation requiring special\nprivilege, Igor Zhbanov points out that it is surprising (to say the\nleast) that a client can, for example, create a device node on a\nfilesystem exported with root_squash.\n\nSo, make sure CAP_MKNOD is among the capabilities dropped when an nfsd\nthread handles a request from a non-root user.\n\nReported-by: Igor Zhbanov \u003cizh1979@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "fbd8104c2eb2f00a031a3e472a0fc08e40d04c0b",
      "tree": "87e8e36ee01cae870372d318c352400746f32680",
      "parents": [
        "18553c38bcdef9b0cc69a784cd033a8a21bfa012",
        "1522ac3ec95ff0230e7aa516f86b674fdf72866c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 15 13:34:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 15 13:34:56 2009 -0700"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-arm\n\n* master.kernel.org:/home/rmk/linux-2.6-arm: (23 commits)\n  [ARM] Fix virtual to physical translation macro corner cases\n  [ARM] update mach-types\n  [ARM] 5421/1: ftrace: fix crash due to tracing of __naked functions\n  MX1 fix include\n  [ARM] 5419/1: ep93xx: fix build warnings about struct i2c_board_info\n  [ARM] 5418/1: restore lr before leaving mcount\n  ARM: OMAP: board-omap3beagle: set i2c-3 to 100kHz\n  ARM: OMAP: Allow I2C bus driver to be compiled as a module\n  ARM: OMAP: sched_clock() corrected\n  ARM: OMAP: Fix compile error if pm.h is included\n  [ARM] orion5x: pass dram mbus data to xor driver\n  [ARM] S3C64XX: Fix s3c64xx_setrate_clksrc\n  [ARM] S3C64XX: sparse warnings in arch/arm/plat-s3c64xx/irq.c\n  [ARM] S3C64XX: sparse warnings in arch/arm/plat-s3c64xx/s3c6400-clock.c\n  [ARM] S3C64XX: Fix USB host clock mux list\n  [ARM] S3C64XX: Fix name of USB host clock.\n  [ARM] S3C64XX: Rename IRQ_UHOST to IRQ_USBH\n  [ARM] S3C64XX: Do gpiolib configuration earlier\n  [ARM] S3C64XX: Staticise s3c64xx_init_irq_eint()\n  [ARM] SMDK6410: Declare iodesc table static\n  ...\n"
    },
    {
      "commit": "18553c38bcdef9b0cc69a784cd033a8a21bfa012",
      "tree": "03b2b4f92a5ccb3416adb69196248751e3a1d0c2",
      "parents": [
        "326d8519fc97be186c55ac605c3a7c957c758ae1",
        "bfbd442f69ec9c58590ffc6e93ac8d6809caa48b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 13:43:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 13:43:18 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Fix Xilinx SystemACE driver to handle empty CF slot\n  block: fix memory leak in bio_clone()\n  block: Add gfp_mask parameter to bio_integrity_clone()\n"
    },
    {
      "commit": "87092698c665e0a358caf9825ae13114343027e8",
      "tree": "4003d12a76e1cd5b50d275a0aef536d4a86d0092",
      "parents": [
        "041b62374c7fedc11a8a1eeda2868612d3d1436c"
      ],
      "author": {
        "name": "un\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Mon Mar 09 10:40:52 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Mar 14 21:06:51 2009 +0100"
      },
      "message": "block: Add gfp_mask parameter to bio_integrity_clone()\n\nStricter gfp_mask might be required for clone allocation.\nFor example, request-based dm may clone bio in interrupt context\nso it has to use GFP_ATOMIC.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "228b5b7e840f79c8751614ae2b83e97e361634ce",
      "tree": "cf441170c2bd22a70daa5a411ea26bf149aef2bb",
      "parents": [
        "37e79a43acf963676fc358e7c9154c0d42c4f569",
        "5fa0ae19822d60307059ee64b80ba9e5effdce58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 12:01:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 12:01:37 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (31 commits)\n  [SCSI] qla2xxx: Update version number to 8.03.00-k4.\n  [SCSI] qla2xxx: Correct overwrite of pre-assigned init-control-block structure size.\n  [SCSI] qla2xxx: Correct truncation in return-code status checking.\n  [SCSI] qla2xxx: Correct vport delete bug.\n  [SCSI] qla2xxx: Use correct value for max vport in LOOP topology.\n  [SCSI] qla2xxx: Correct address range checking for option-rom updates.\n  [SCSI] fcoe: Change fcoe receive thread nice value from 19 (lowest priority) to -20\n  [SCSI] fcoe: fix handling of pending queue, prevent out of order frames (v3)\n  [SCSI] fcoe: Out of order tx frames was causing several check condition SCSI status\n  [SCSI] fcoe: fix kfree(skb)\n  [SCSI] fcoe: ETH_P_8021Q is already in if_ether and fcoe is not using it anyway\n  [SCSI] libfc: do not change the fh_rx_id of a recevied frame\n  [SCSI] fcoe: Correct fcoe_transports initialization vs. registration\n  [SCSI] fcoe: Use setup_timer() and mod_timer()\n  [SCSI] libfc, fcoe: Remove unnecessary cast by removing inline wrapper\n  [SCSI] libfc, fcoe: Cleanup function formatting and minor typos\n  [SCSI] libfc, fcoe: Fix kerneldoc comments\n  [SCSI] libfc: Cleanup libfc_function_template comments\n  [SCSI] libfc: check for err when recv and state is incorrect\n  [SCSI] libfc: rename rp to rdata in fc_disc_new_target()\n  ...\n"
    },
    {
      "commit": "f1823acfbcc7d29029d6db757644bc820664af37",
      "tree": "bf7839d0976f90c638b4f7806be8ee16f3b786a7",
      "parents": [
        "ff9cb43ce09a9069f0ec95375d2f403578ec4977",
        "9f4c899c0d90e1b51b6864834f3877b47c161a0e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 12:00:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 12:00:18 2009 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix the fix to Bugzilla #11061, when IPv6 isn\u0027t defined...\n  SUNRPC: xprt_connect() don\u0027t abort the task if the transport isn\u0027t bound\n  SUNRPC: Fix an Oops due to socket not set up yet...\n  Bug 11061, NFS mounts dropped\n  NFS: Handle -ESTALE error in access()\n  NLM: Fix GRANT callback address comparison when IPv6 is enabled\n  NLM: Shrink the IPv4-only version of nlm_cmp_addr()\n  NFSv3: Fix posix ACL code\n  NFS: Fix misparsing of nfsv4 fs_locations attribute (take 2)\n  SUNRPC: Tighten up the task locking rules in __rpc_execute()\n"
    },
    {
      "commit": "5d82720a7f41f0c877e026c7d17e3bf20ccdbae0",
      "tree": "47ec22f0bdf7b5eaa79eef17dbacedc29b1123c2",
      "parents": [
        "3eb76c1ccde496c3c0bfda23d1c803e40b762ce6"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Mar 13 21:16:13 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Mar 13 21:16:13 2009 +0100"
      },
      "message": "ide: save the returned value of dma_map_sg\n\ndma_map_sg could return a value different to \u0027nents\u0027 argument of\ndma_map_sg so the ide stack needs to save it for the later usage\n(e.g. for_each_sg).\n\nThe ide stack also needs to save the original sg_nents value for\npci_unmap_sg.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\n[bart: backport to Linus\u0027 tree]\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "0b80e3adc289de13cc70b33d90812ef136b6ea01",
      "tree": "316be5cb417bc244cb6480ff02dff141e70f2afa",
      "parents": [
        "188de5ec56dc27e0556ad1bc41ec6bd84418d7bf",
        "45e575ab9bfada5a5ef1b6174f8e749b1ecf0864"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 12 16:34:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 12 16:34:59 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  cpumask: mm_cpumask for accessing the struct mm_struct\u0027s cpu_vm_mask.\n  cpumask: tsk_cpumask for accessing the struct task_struct\u0027s cpus_allowed.\n"
    },
    {
      "commit": "446c92b2901bedb3725d29b4e73def8aba623ffc",
      "tree": "5669761e042f8321214ca5a975fec536fa5f0efd",
      "parents": [
        "9311c593f24f28de2a339da602644f0f7ae0fc60"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Thu Mar 12 18:03:16 2009 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Mar 12 21:33:03 2009 +0000"
      },
      "message": "[ARM] 5421/1: ftrace: fix crash due to tracing of __naked functions\n\nThis is a fix for the following crash observed in 2.6.29-rc3:\nhttp://lkml.org/lkml/2009/1/29/150\n\nOn ARM it doesn\u0027t make sense to trace a naked function because then\nmcount is called without stack and frame pointer being set up and there\nis no chance to restore the lr register to the value before mcount was\ncalled.\n\nReported-by: Matthias Kaehlcke \u003cmatthias@kaehlcke.net\u003e\nTested-by: Matthias Kaehlcke \u003cmatthias@kaehlcke.net\u003e\n\nCc: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@home.goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "45e575ab9bfada5a5ef1b6174f8e749b1ecf0864",
      "tree": "00d1346d11fe554cf505b287eb2b9445d97c3596",
      "parents": [
        "76e6eee03353f01bfca707d4dbb1f10a4ee27dc0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Mar 12 14:35:44 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Mar 12 14:35:44 2009 +1030"
      },
      "message": "cpumask: mm_cpumask for accessing the struct mm_struct\u0027s cpu_vm_mask.\n\nThis allows us to change the representation (to a dangling bitmap or\ncpumask_var_t) without breaking all the callers: they can use\nmm_cpumask() now and won\u0027t see a difference as the changes roll into\nlinux-next.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "76e6eee03353f01bfca707d4dbb1f10a4ee27dc0",
      "tree": "6b0378b1da6ae16e04d19f3c742b7863716b8e14",
      "parents": [
        "99adcd9d67aaf04e28f5ae96df280f236bde4b66"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Mar 12 14:35:43 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Mar 12 14:35:44 2009 +1030"
      },
      "message": "cpumask: tsk_cpumask for accessing the struct task_struct\u0027s cpus_allowed.\n\nThis allows us to change the representation (to a dangling bitmap or\ncpumask_var_t) without breaking all the callers: they can use\ntsk_cpumask() now and won\u0027t see a difference as the changes roll into\nlinux-next.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "260cf8a2cbe022131a4850ea6175ed716dc2663c",
      "tree": "d4473926881ff9a58ec21edcbc4b964c055d09cd",
      "parents": [
        "16b71fdf97599f1b1b7f38418ee9922d9f117396"
      ],
      "author": {
        "name": "Pantelis Koukousoulas",
        "email": "pktoss@gmail.com",
        "time": "Tue Mar 10 13:16:14 2009 +0200"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@linux.ie",
        "time": "Wed Mar 11 12:18:48 2009 +1000"
      },
      "message": "drm: fix EDID parser problem with positive/negative hsync/vsync\n\nComparing the layouts of struct detail_pixel_timing with\nx.org\u0027s struct detailed_timings and how those are handled,\nit appears that the hsync_positive and vsync_positive\nfields are backwards.\n\nThis patch fixes https://bugs.freedesktop.org/show_bug.cgi?id\u003d20019\nfor me. It was tested on 2 monitors, LG FLATRON L225WS 22\" and\na YAKUMO 17\" for which more details are unknown.\n\nSigned-off-by: Pantelis Koukousoulas \u003cpktoss@gmail.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "78851e1aa4c3b796d5f0bb11b445016726302b44",
      "tree": "f3ab7900494d6e98d95211e90a5bcdcee66bd13b",
      "parents": [
        "ae46141ff08f1965b17c531b571953c39ce8b9e2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Mar 10 20:33:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:19 2009 -0400"
      },
      "message": "NLM: Shrink the IPv4-only version of nlm_cmp_addr()\n\nClean up/micro-optimatization:  Make the AF_INET-only version of\nnlm_cmp_addr() smaller.  This matches the style of\nnlm_privileged_requester(), and makes the AF_INET-only version of\nnlm_cmp_addr() nearly the same size as it was before IPv6 support.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ae46141ff08f1965b17c531b571953c39ce8b9e2",
      "tree": "12e9b19461fb00c7ba21d93272ddd470ca0e82b0",
      "parents": [
        "ef95d31e6de6be9602ce950b85fb7ab8af46ae42"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:18 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:18 2009 -0400"
      },
      "message": "NFSv3: Fix posix ACL code\n\nFix a memory leak due to allocation in the XDR layer. In cases where the\nRPC call needs to be retransmitted, we end up allocating new pages without\nclearing the old ones. Fix this by moving the allocation into\nnfs3_proc_setacls().\n\nAlso fix an issue discovered by Kevin Rudd, whereby the amount of memory\nreserved for the acls in the xdr_buf-\u003ehead was miscalculated, and causing\ncorruption.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c826a3145736e3baabebccfd0aecfbb6dae059f2",
      "tree": "4c156c85a8eec039973b369cff052206da128cbe",
      "parents": [
        "e904158159e9812d06646767b7c81846dc3b05e6"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Fri Feb 27 10:56:27 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Mar 10 09:09:21 2009 -0500"
      },
      "message": "[SCSI] fcoe: Out of order tx frames was causing several check condition SCSI status\n\nframes followed by these errors in log.\n\n\t[sdp] Result: hostbyte\u003dDID_OK driverbyte\u003dDRIVER_SENSE,SUGGEST_OK\n\t[sdp] Sense Key : Aborted Command [current]\n\t[sdp] Add. Sense: Data phase error\n\nThis was causing some test apps to exit due to write failure under heavy\nload.\n\nThis was due to a race around adding and removing tx frame skb in\nfcoe_pending_queue, Chris Leech helped me to find that brief unlocking\nperiod when pulling skb from fcoe_pending_queue in various contexts\n(fcoe_watchdog and fcoe_xmit) and then adding skb back into fcoe_pending_queue\nup on a failed fcoe_start_io could change skb/tx frame order in\nfcoe_pending_queue. Thanks Chris.\n\nThis patch allows only single context to pull skb from fcoe_pending_queue\nat any time to prevent above described ordering issue/race by use of\nfcoe_pending_queue_active flag.\n\nThis patch simplified fcoe_watchdog with modified fcoe_check_wait_queue by\nuse of FCOE_LOW_QUEUE_DEPTH instead previously used several conditionals\nto clear and set lp-\u003eqfull.\n\nI think FCOE_MAX_QUEUE_DEPTH with FCOE_LOW_QUEUE_DEPTH  will work better\nin re/setting lp-\u003eqfull and these could be fine tuned for performance.\n\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "74846bf85e42b4ba851d3f0dd67aa1df245895f9",
      "tree": "a5dcf0b3d125be5bf7a90ab0bc22430758c8bff7",
      "parents": [
        "422819cfa3a2605a0b3bdc33aaef0bc2feaeaada"
      ],
      "author": {
        "name": "Yi Zou",
        "email": "yi.zou@intel.com",
        "time": "Fri Feb 27 10:56:16 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Mar 10 09:07:09 2009 -0500"
      },
      "message": "[SCSI] fcoe: ETH_P_8021Q is already in if_ether and fcoe is not using it anyway\n\nSigned-off-by: Yi Zou \u003cyi.zou@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "fc47ff6b1b27fb736f255ed8cd490356e0cd228f",
      "tree": "6be2387ebfcff7a1a729061b35f1ea6fdd115a46",
      "parents": [
        "b2ab99c9a300e572105d6db7f6efe0a4d1572167"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:55 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Mar 10 09:05:35 2009 -0500"
      },
      "message": "[SCSI] libfc, fcoe: Remove unnecessary cast by removing inline wrapper\n\nComment from \"Andrew Morton \u003cakpm@linux-foundation.org\u003e\"\n\n\u003e +{\n\u003e +     return (struct fcoe_softc *)lport_priv(lp);\n\nunneeded/undesirable cast of void*.  There are probably zillions of\ninstances of this - there always are.\n\nThis whole inline function was unnecessary. The FCoE layer knows\nthat it\u0027s data structure is stored in the lport private data, it\ncan just access it from lport_priv().\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "34f42a070fc98f5dc07e9fa2338b7b8d1dc347eb",
      "tree": "7e08edd537159be8a4fa341e7022cafd6f13b9e4",
      "parents": [
        "0ae4d4ae47d2ccbcad813b0d6d8fe12590c7d648"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:45 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Mar 10 09:04:40 2009 -0500"
      },
      "message": "[SCSI] libfc, fcoe: Fix kerneldoc comments\n\n1) Added \u0027()\u0027 for function names in kerneldoc comments\n\n2) Changed comment bookends from \u0027**/\u0027 to \u0027*/\u0027. The comment on the the\n   mailing list was that \u0027**/\u0027 \"is consistently unconventional.  Not\n   wrong, just odd.\" The Documentation/kernel-doc-nano-HOWTO.txt\n   states that kerneldoc comment blocks should end with \u0027**/\u0027 but most\n   (if not all) instance I found under drivers/scsi/ were only using\n   the \u0027*/\u0027 so I converted to that style.\n\n3) Removed incorrect linebreaks in kerneldoc comments where found\n\n4) Removed a few unnecessary blank comment lines in kerneldoc comment\n   blocks\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "99adcd9d67aaf04e28f5ae96df280f236bde4b66",
      "tree": "4fd43e20697199bd2884a21a8d469f0ff6632cbd",
      "parents": [
        "2d5516cbb9daf7d0e342a2e3b0fc6f8c39a81205",
        "753b7aea8e4611433c13ac157f944d8b4bf42482"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 09 13:23:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 09 13:23:59 2009 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] Add p4-clockmod sysfs-ui removal to feature-removal schedule.\n  Revert \"[CPUFREQ] Disable sysfs ui for p4-clockmod.\"\n"
    },
    {
      "commit": "129f8ae9b1b5be94517da76009ea956e89104ce8",
      "tree": "f79cbe8397dd2578349d3aefe25dc72f26eab291",
      "parents": [
        "694593e3374a67d95ece6a275a1f181644c2c4d8"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Mar 09 15:07:33 2009 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Mar 09 15:07:33 2009 -0400"
      },
      "message": "Revert \"[CPUFREQ] Disable sysfs ui for p4-clockmod.\"\n\nThis reverts commit e088e4c9cdb618675874becb91b2fd581ee707e6.\n\nRemoving the sysfs interface for p4-clockmod was flagged as a\nregression in bug 12826.\n\nCourse of action:\n - Find out the remaining causes of overheating, and fix them\n   if possible. ACPI should be doing the right thing automatically.\n   If it isn\u0027t, we need to fix that.\n - mark p4-clockmod ui as deprecated\n - try again with the removal in six months.\n\nIt\u0027s not really feasible to printk about the deprecation, because\nit needs to happen at all the sysfs entry points, which means adding\na lot of strcmp(\"p4-clockmod\".. calls to the core, which.. bleuch.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "df0b4a5080ca668636831b641a6356500fb5c637",
      "tree": "aaab82b392b4e1fdc672ab55efb017c91fdc6616",
      "parents": [
        "39a3478c1c0122640b1a0ead0d7cccd0804b1750",
        "c0350024723b4a69e38655816484d934aca8eb30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 09 09:15:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 09 09:15:40 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (29 commits)\n  p54: fix race condition in memory management\n  cfg80211: test before subtraction on unsigned\n  iwlwifi: fix error flow in iwl*_pci_probe\n  rt2x00 : more devices to rt73usb.c\n  rt2x00 : more devices to rt2500usb.c\n  bonding: Fix device passed into -\u003endo_neigh_setup().\n  vlan: Fix vlan-in-vlan crashes.\n  net: Fix missing dev-\u003eneigh_setup in register_netdevice().\n  tmspci: fix request_irq race\n  pkt_sched: act_police: Fix a rate estimator test.\n  tg3: Fix 5906 link problems\n  SCTP: change sctp_ctl_sock_init() to try IPv4 if IPv6 fails\n  IPv6: add \"disable\" module parameter support to ipv6.ko\n  sungem: another error printed one too early\n  aoe: error printed 1 too early\n  net pcmcia: worklimit reaches -1\n  net: more timeouts that reach -1\n  net: fix tokenring license\n  dm9601: new vendor/product IDs\n  netlink: invert error code in netlink_set_err()\n  ...\n"
    },
    {
      "commit": "5dc18f51a2c06ddab708184e30b7967fb71c1784",
      "tree": "b080f2a651f694f523491487bf92d28c3c63d981",
      "parents": [
        "fd6ec5f3acfe7e94469d83374b83ff183953fa45",
        "7cbd4877e5b167b56a3d6033b926a9f925186e12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:23:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:23:05 2009 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx:\n  dmatest: fix use after free in dmatest_exit\n  ipu_idmac: fix spinlock type\n  iop-adma, mv_xor: fix mem leak on self-test setup failure\n  fsldma: fix off by one in dma_halt\n  I/OAT: fail self-test if callback test reaches timeout\n  I/OAT: update driver version and copyright dates\n  I/OAT: list usage cleanup\n  I/OAT: set tcp_dma_copybreak to 256k for I/OAT ver.3\n  I/OAT: cancel watchdog before dma remove\n  I/OAT: fail initialization on zero channels detection\n  I/OAT: do not set DCACTRL_CMPL_WRITE_ENABLE for I/OAT ver.3\n  I/OAT: add verification for proper APICID_TAG_MAP setting by BIOS\n  dmaengine: update kerneldoc\n"
    },
    {
      "commit": "fd6ec5f3acfe7e94469d83374b83ff183953fa45",
      "tree": "6f7aa80a8e95c054424d9e8229da3df0dd694ecd",
      "parents": [
        "83d5a325107cd0befa2b863e795675bc8ff881d7",
        "d42ad15b759d05a87f22b484af63987eff38ea88"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:22:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:22:22 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:\n  ata: add CFA specific identify data words\n  remove stale comment from \u003clinux/hdreg.h\u003e\n  AT91: initialize Compact Flash on AT91SAM9263 cpu\n  ide: add at91_ide driver\n  ide: allow to wrap interrupt handler\n  ide-iops: fix odd-length ATAPI PIO transfers\n  ide: NULL noise: drivers/ide/ide-*.c\n  ide: expiry() returns int, negative expiry() return values won\u0027t be noticed\n"
    },
    {
      "commit": "83d5a325107cd0befa2b863e795675bc8ff881d7",
      "tree": "64cd1a69d726b19e70783f2b350baf3f8aa38489",
      "parents": [
        "d0cdb070ced5453fd1790d83c32bdc59d8ff9375",
        "968e594afdbc40b4270f9d4032ae8350475749d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:22:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:22:01 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  libata: Don\u0027t trust current capacity values in identify words 57-58\n  libata: make sure port is thawed when skipping resets\n  sata_nv: fix module parameter description\n  ahci: Add the Device IDs for MCP89 and remove IDs of MCP7B to/from ahci.c\n  libata: don\u0027t use on-stack sense buffer\n  libata: align ap-\u003esector_buf\n  libata: fix dma_unmap_sg misuse\n  libata: change drive ready wait after hard reset to 5s\n"
    },
    {
      "commit": "2a50b2560ee956808da0b644cb529608dee65274",
      "tree": "7065f72e76919f571580378b3758acc1355564dd",
      "parents": [
        "ba933beb11b46b6d90d53b7220858148d8687ab1",
        "ab96ddec7213004b632d24dc2cdcd2df5f16f50b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:14:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 08 10:14:19 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: serio - fix protocol number for TouchIT213\n"
    },
    {
      "commit": "ab96ddec7213004b632d24dc2cdcd2df5f16f50b",
      "tree": "49ed4e8989cd16a033b5d4318a6d1fbd24e8c416",
      "parents": [
        "9ab7b25e6a30d2292bd6d4913b71c918ee1e21b4"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Mar 07 13:39:22 2009 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Mar 07 18:41:38 2009 -0800"
      },
      "message": "Input: serio - fix protocol number for TouchIT213\n\nProtocol 0x37 has been reserved for iNexio devices and Sahara\nwas supposed to get 0x38.\n\nReported-by: Claudio Nieder \u003cprivate@claudio.ch\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0ae4d4ae47d2ccbcad813b0d6d8fe12590c7d648",
      "tree": "a58434d723ef74a7282c29835dec8496326a14a9",
      "parents": [
        "efaf5c085dd2d31757b0ff7886970dfddd8d1808"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:39 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:45:32 2009 -0600"
      },
      "message": "[SCSI] libfc: Cleanup libfc_function_template comments\n\nMade the comments more like the comments for struct scsi_host_template.\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "5101ff99f59aefb72e0c96e82aa32048ac9f8425",
      "tree": "83fba57c7cf542eed4466265619632e7d804eb88",
      "parents": [
        "f7db2c150cf5082cf74555f30a1305938041de80"
      ],
      "author": {
        "name": "Robert Love",
        "email": "robert.w.love@intel.com",
        "time": "Fri Feb 27 10:55:18 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:41:01 2009 -0600"
      },
      "message": "[SCSI] libfc: Don\u0027t violate transport template for rogue port creation\n\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "6755db1cd4587084be85f860b7aa7c0cc9d776dc",
      "tree": "cdc50e934f61d73a7aa8f5fdc5c454e0375071b9",
      "parents": [
        "bc0e17f691085315ae9303eb5b0883fe16dfe6b1"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Fri Feb 27 10:55:02 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:39:34 2009 -0600"
      },
      "message": "[SCSI] libfc: rport retry on LS_RJT from certain ELS\n\nThis allows any rport ELS to retry on LS_RJT.\n\nThe rport error handling would only retry on resource allocation failures\nand exchange timeouts.  I have a target that will occasionally reject PLOGI\nwhen we do a quick LOGO/PLOGI.  When a critical ELS was rejected, libfc would\nfail silently leaving the rport in a dead state.\n\nThe retry count and delay are managed by fc_rport_error_retry.  If the retry\ncount is exceeded fc_rport_error will be called.  When retrying is not the\ncorrect course of action, fc_rport_error can be called directly.\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "bc0e17f691085315ae9303eb5b0883fe16dfe6b1",
      "tree": "53138e80aec810604d4eca4626e4f8df65376ccc",
      "parents": [
        "a7e84f2b83f17f8f11da34ccef3ba5a862dc0182"
      ],
      "author": {
        "name": "Vasu Dev",
        "email": "vasu.dev@intel.com",
        "time": "Fri Feb 27 10:54:57 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:37:49 2009 -0600"
      },
      "message": "[SCSI] libfc, fcoe: fixed locking issues with lport-\u003elp_mutex around lport-\u003elink_status\n\nThe fcoe_xmit could call fc_pause in case the pending skb queue len is larger\nthan FCOE_MAX_QUEUE_DEPTH, the fc_pause was trying to grab lport-\u003elp_muex to\nchange lport-\u003elink_status and that had these issues :-\n\n1. The fcoe_xmit was getting called with bh disabled, thus causing\n\"BUG: scheduling while atomic\" when grabbing lport-\u003elp_muex with bh disabled.\n\n2. fc_linkup and fc_linkdown function calls lport_enter function with\nlport-\u003elp_mutex held and these enter function in turn calls fcoe_xmit to send\nlport related FC frame, e.g. fc_linkup \u003d\u003e fc_lport_enter_flogi to send flogi\nreq. In this case grabbing the same lport-\u003elp_mutex again in fc_puase from\nfcoe_xmit would cause deadlock.\n\nThe lport-\u003elp_mutex was used for setting FC_PAUSE in fcoe_xmit path but\nFC_PAUSE bit was not used anywhere beside just setting and clear this\nbit in lport-\u003elink_status, instead used a separate field qfull in fc_lport\nto eliminate need for lport-\u003elp_mutex to track pending queue full condition\nand in turn avoid above described two locking issues.\n\nAlso added check for lp-\u003eqfull in fc_fcp_lport_queue_ready to trigger\nSCSI_MLQUEUE_HOST_BUSY when lp-\u003eqfull is set to prevent more scsi-ml cmds\nwhile lp-\u003eqfull is set.\n\nThis patch eliminated FC_LINK_UP and FC_PAUSE and instead used dedicated\nfields in fc_lport for this, this simplified all related conditional\ncode.\n\nAlso removed fc_pause and fc_unpause functions and instead used newly added\nlport-\u003eqfull directly in fcoe.\n\nSigned-off-by: Vasu Dev \u003cvasu.dev@intel.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "1f6ff364ceda516f88351a8ab640e656beed0b26",
      "tree": "227a5f6e39372eaf3c898d1de8feb2b88df707b0",
      "parents": [
        "33dd6f92a1a7ad85c54d47fd9d73371a32c0bde4"
      ],
      "author": {
        "name": "Abhijeet Joglekar",
        "email": "abjoglek@cisco.com",
        "time": "Fri Feb 27 10:54:35 2009 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Mar 06 15:35:47 2009 -0600"
      },
      "message": "[SCSI] libfc: Pass lport in exch_mgr_reset\n\nfc_exch_mgr structure is private to fc_exch.c. To export exch_mgr_reset to\ntransport, transport needs access to the exch manager. Change\nexch_mgr_reset to use lport param which is the shared structure between\nlibFC and transport.\n\nAlternatively, fc_exch_mgr definition can be moved to libfc.h so that lport\ncan be accessed from mp*.\n\nSigned-off-by: Abhijeet Joglekar \u003cabjoglek@cisco.com\u003e\nSigned-off-by: Robert Love \u003crobert.w.love@intel.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "d42ad15b759d05a87f22b484af63987eff38ea88",
      "tree": "51ee423598e434624b8dc0db41d9b88022ea4833",
      "parents": [
        "ebcad5aaea26da3cb2ca90b7f31a67a027eb60db"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Thu Mar 05 17:20:55 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Mar 05 17:20:55 2009 +0100"
      },
      "message": "ata: add CFA specific identify data words\n\nDeclare CFA specific identify data words 162 and 163 for future use.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n[bart: update patch summary/description]\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "ebcad5aaea26da3cb2ca90b7f31a67a027eb60db",
      "tree": "cff7c96fa8573c241074689cf8c399e71bc97fb5",
      "parents": [
        "e565f206082a725108a75bcf00bbe3db21a56474"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Mar 05 16:10:59 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Mar 05 16:10:59 2009 +0100"
      },
      "message": "remove stale comment from \u003clinux/hdreg.h\u003e\n\nHDIO_GET_IDENTITY returns 256 words currently.\n\nNoticed by Norman Diamond.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "849d7130001ab740a5a4778a561049841fdd77c9",
      "tree": "c7031ed3d3aa24270d0f001d3616698aeb3fe39a",
      "parents": [
        "a509538d4fb4f99cdf0a095213d57cc3b2347615"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "stf_xl@wp.pl",
        "time": "Thu Mar 05 16:10:57 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Thu Mar 05 16:10:57 2009 +0100"
      },
      "message": "ide: allow to wrap interrupt handler\n\nSigned-off-by: Stanislaw Gruszka \u003cstf_xl@wp.pl\u003e\nCc: Andrew Victor \u003clinux@maxim.org.za\u003e\n[bart: minor checkpatch.pl / CodingStyle fixups]\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "84bda12af31f930e4200c5244aa111de2485d7b0",
      "tree": "08d214bf7a1ce56e8c994e7970513bfb4b215e3d",
      "parents": [
        "5825627c9463581fd9e70f8285685889ae5bb9bb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Mar 02 18:53:26 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Mar 05 07:25:02 2009 -0500"
      },
      "message": "libata: align ap-\u003esector_buf\n\nap-\u003esector_buf is used as DMA target and should at least be aligned on\ncacheline.  This caused problems on some embedded machines.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5825627c9463581fd9e70f8285685889ae5bb9bb",
      "tree": "321a20a0e25aee8f32254b13730f423f6b434486",
      "parents": [
        "e7d3ef13d52a126438f687a1a32da65ff926ed57"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Feb 27 17:35:43 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Mar 05 07:24:57 2009 -0500"
      },
      "message": "libata: fix dma_unmap_sg misuse\n\nlibata passes the returned value of dma_map_sg() to\ndma_unmap_sg(),which is the misuse of dma_unmap_sg().\n\nDMA-mapping.txt says:\n\nTo unmap a scatterlist, just call:\n\n\tpci_unmap_sg(pdev, sglist, nents, direction);\n\nAgain, make sure DMA activity has already finished.\n\nPLEASE NOTE:  The \u0027nents\u0027 argument to the pci_unmap_sg call must be\n              the _same_ one you passed into the pci_map_sg call,\n\t      it should _NOT_ be the \u0027count\u0027 value _returned_ from the\n              pci_map_sg call.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "e7d3ef13d52a126438f687a1a32da65ff926ed57",
      "tree": "b4eb90e422f33fe6bb8756fcaadbd19863eae649",
      "parents": [
        "559595a985e106d2fa9f0c79b7f5805453fed593"
      ],
      "author": {
        "name": "Stuart Hayes",
        "email": "stuart_hayes@dell.com",
        "time": "Wed Mar 04 11:59:46 2009 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Mar 05 07:24:42 2009 -0500"
      },
      "message": "libata: change drive ready wait after hard reset to 5s\n\nThis fixes problems during resume with drives that take longer than 1s to\nbe ready.  The ATA-6 spec appears to allow 5 seconds for a drive to be\nready.\n\nOn one affected system, this patch changes \"PM: resume devices took...\"\nmessage from 17 seconds to 4 seconds, and gets rid of a lot of ugly\ntimeout/error messages.\n\nWithout this patch, the libata code moves on after 1s, tries to send a\nsoft reset (which the drive doesn\u0027t see because it isn\u0027t ready) which also\ntimes out, then an IDENTIFY command is sent to the drive which times out,\nand finally the error handler will try to send another hard reset which\nwill finally get things working.\n\nSigned-off-by: Stuart Hayes \u003cstuart_hayes@dell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "77827a7cf3aa415f8afec6d9d0537dda8de90ef1",
      "tree": "503ab81e2b997e3625360b380f1cd18f923a6454",
      "parents": [
        "9d40bbda599def1e1d155d7f7dca14fe8744bd2b",
        "559595a985e106d2fa9f0c79b7f5805453fed593"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 04 23:59:54 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 04 23:59:54 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n"
    },
    {
      "commit": "9d40bbda599def1e1d155d7f7dca14fe8744bd2b",
      "tree": "d246fbaec294830ecab0bb4b3b38d925abb5ffd8",
      "parents": [
        "54acd0efab072cb70e87206329d561b297f93bbb"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 04 23:46:25 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Mar 04 23:46:25 2009 -0800"
      },
      "message": "vlan: Fix vlan-in-vlan crashes.\n\nAs analyzed by Patrick McHardy, vlan needs to reset it\u0027s\nnetdev_ops pointer in it\u0027s -\u003einit() function but this\nleaves the compat method pointers stale.\n\nAdd a netdev_resync_ops() and call it from the vlan code.\n\nAny other driver which changes -\u003enetdev_ops after register_netdevice()\nwill need to call this new function after doing so too.\n\nWith help from Patrick McHardy.\n\nTested-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "219f170a85fee524fa528ef75a0432b79af95d0b",
      "tree": "13489998c59c5d7ac6d46b7835c7f4a6ccfab2e6",
      "parents": [
        "3024e4a99744f5b59704a6570524a312f94f010f",
        "54e991242850edc8c53f71fa5aa3ba7a93ce38f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 03 14:33:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 03 14:33:20 2009 -0800"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: don\u0027t allow setuid to succeed if the user does not have rt bandwidth\n  sched_rt: don\u0027t start timer when rt bandwidth disabled\n"
    },
    {
      "commit": "b24746c7be75384d182845375c96433d713981bb",
      "tree": "fdb0371d9e59c94e18c946a88c4aa3bcfa4af9b1",
      "parents": [
        "f41bf2ab998daaa2ac27348d5813e0ae21c57ded",
        "a682604838763981613e42015cd0e39f2989d6bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 03 14:32:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 03 14:32:04 2009 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: Teach RCU that idle task is not quiscent state at boot\n"
    },
    {
      "commit": "17edde520927070a6bf14a6a75027c0b843443e5",
      "tree": "dcd940213c93bc943c670f48aa52ec8571351912",
      "parents": [
        "2f20d2e667ab1ca44cde5fb361386dff5bb6081d"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Sun Feb 22 00:11:09 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 03 01:14:27 2009 -0800"
      },
      "message": "netns: Remove net_alive\n\nIt turns out that net_alive is unnecessary, and the original problem\nthat led to it being added was simply that the icmp code thought\nit was a network device and wound up being unable to handle packets\nwhile there were still packets in the network namespace.\n\nNow that icmp and tcp have been fixed to properly register themselves\nthis problem is no longer present and we have a stronger guarantee\nthat packets will not arrive in a network namespace then that provided\nby net_alive in netif_receive_skb.  So remove net_alive allowing\npacket reception run a little faster.\n\nAdditionally document the strong reason why network namespace cleanup\nis safe so that if something happens again someone else will have\na chance of figuring it out.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2d44947a56f7a567f2e9250dc458a6288d774f9c",
      "tree": "9156958b53ef544b314c9af708f43a6e425dfc72",
      "parents": [
        "359aa09be9b2b343e01306cb4a6f29d7159d7498",
        "5ce04e3de8c36ba37c56e94e3c4dc7973c7f546c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 02 15:47:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 02 15:47:01 2009 -0800"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  fix warning in io_mapping_map_wc()\n  x86: i915 needs pgprot_writecombine() and is_io_mapping_possible()\n"
    },
    {
      "commit": "5ce04e3de8c36ba37c56e94e3c4dc7973c7f546c",
      "tree": "3a87dd2eeb07fe9fc5eaa10479a14cfbe9d07008",
      "parents": [
        "92b9af9e4f144535c65aee673cfad309f25fa465"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Sun Mar 01 08:53:27 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 02 09:43:32 2009 +0100"
      },
      "message": "fix warning in io_mapping_map_wc()\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "709ab3261e3ed789c0bb31c6ab53c9eccb276522",
      "tree": "206e2d9fb761b01ff33c6633ed9f5a668f12422a",
      "parents": [
        "5c2522218059ca1f4174a568923b988aad3ddfda"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Fri Feb 27 10:01:42 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 01 00:19:36 2009 -0800"
      },
      "message": "net headers: export dcbnl.h\n\nThe DCB netlink interface is required for building the userspace tools\navailable at e1000.sourceforge.net\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5c2522218059ca1f4174a568923b988aad3ddfda",
      "tree": "37f76dee62bbfb94b42a8f38b372942ef5c803c4",
      "parents": [
        "4ead443163b798661c2a2ede5e512e116a9e41e7"
      ],
      "author": {
        "name": "Chris Leech",
        "email": "christopher.leech@intel.com",
        "time": "Fri Feb 27 10:01:36 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 01 00:19:35 2009 -0800"
      },
      "message": "net headers: cleanup dcbnl.h\n\n1) add an include for \u003clinux/types.h\u003e\n2) change dcbmsg.dcb_family from unsigned char to __u8 to be more\n   consistent with use of kernel types\n\nSigned-off-by: Chris Leech \u003cchristopher.leech@intel.com\u003e\nAcked-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18963caaf55240d6a0491bdb27b7fef2882ffb15",
      "tree": "d0e4365cae0ce401ba826809f4eef0bd755f4f2d",
      "parents": [
        "98f8948f13b4d27c3695c49ac9a970a77166f9ee",
        "778ef1e6cbb049c9bcbf405936ee6f2b6e451892"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 28 15:36:58 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 28 15:36:58 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n"
    },
    {
      "commit": "535d8e8f19376518e52e64f511440e502acda150",
      "tree": "06c1ab74b5e7b319a2474cae73cb1a6e77d281e0",
      "parents": [
        "6febf65b2965858507e4d55afad20b24b2ad9a91",
        "f6be37fdc62d0c0214bc49815d1180ebfbd716e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:43:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:43:05 2009 -0800"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: enable DMAR by default\n  xen: disable interrupts early, as start_kernel expects\n  gpu/drm, x86, PAT: io_mapping_create_wc and resource_size_t\n  gpu/drm, x86, PAT: Handle io_mapping_create_wc() errors in a clean way\n  x86, Voyager: fix compile by lifting the degeneracy of phys_cpu_present_map\n  x86, doc: fix references to Documentation/x86/i386/boot.txt\n"
    },
    {
      "commit": "5170836679185357dc1b7660bad13287b39e1e33",
      "tree": "0b470820e11df7c7eef7e3161657aefe90c7c35e",
      "parents": [
        "8ca2f156b06bdcbfd1ab543355279246d05e2499"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 27 14:03:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:21 2009 -0800"
      },
      "message": "Fix recursive lock in free_uid()/free_user_ns()\n\nfree_uid() and free_user_ns() are corecursive when CONFIG_USER_SCHED\u003dn,\nbut free_user_ns() is called from free_uid() by way of uid_hash_remove(),\nwhich requires uidhash_lock to be held.  free_user_ns() then calls\nfree_uid() to complete the destruction.\n\nFix this by deferring the destruction of the user_namespace.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54e991242850edc8c53f71fa5aa3ba7a93ce38f5",
      "tree": "7f136214aab690a8ee4a294ca9c1a7e01de0dc49",
      "parents": [
        "cac64d00c256e65776d575e82aaf540632b66178"
      ],
      "author": {
        "name": "Dhaval Giani",
        "email": "dhaval@linux.vnet.ibm.com",
        "time": "Fri Feb 27 15:13:54 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 27 11:11:53 2009 +0100"
      },
      "message": "sched: don\u0027t allow setuid to succeed if the user does not have rt bandwidth\n\nImpact: fix hung task with certain (non-default) rt-limit settings\n\nCorey Hickey reported that on using setuid to change the uid of a\nrt process, the process would be unkillable and not be running.\nThis is because there was no rt runtime for that user group. Add\nin a check to see if a user can attach an rt task to its task group.\nOn failure, return EINVAL, which is also returned in\nCONFIG_CGROUP_SCHED.\n\nReported-by: Corey Hickey \u003cbugfood-ml@fatooh.org\u003e\nSigned-off-by: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e42807918d17e8c93bf14fbb74be84b141334c1",
      "tree": "55b15f0f6b2c666efeb938d064f24fdd268faf40",
      "parents": [
        "5e4c91c84b194b26cf592779e451f4b5be777cba"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Feb 23 09:03:10 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 26 10:45:48 2009 +0100"
      },
      "message": "block: reduce stack footprint of blk_recount_segments()\n\nblk_recalc_rq_segments() requires a request structure passed in, which\nwe don\u0027t have from blk_recount_segments(). So the latter allocates one on\nthe stack, using \u003e 400 bytes of stack for that. This can cause us to spill\nover one page of stack from ext4 at least:\n\n 0)     4560     400   blk_recount_segments+0x43/0x62\n 1)     4160      32   bio_phys_segments+0x1c/0x24\n 2)     4128      32   blk_rq_bio_prep+0x2a/0xf9\n 3)     4096      32   init_request_from_bio+0xf9/0xfe\n 4)     4064     112   __make_request+0x33c/0x3f6\n 5)     3952     144   generic_make_request+0x2d1/0x321\n 6)     3808      64   submit_bio+0xb9/0xc3\n 7)     3744      48   submit_bh+0xea/0x10e\n 8)     3696     368   ext4_mb_init_cache+0x257/0xa6a [ext4]\n 9)     3328     288   ext4_mb_regular_allocator+0x421/0xcd9 [ext4]\n10)     3040     160   ext4_mb_new_blocks+0x211/0x4b4 [ext4]\n11)     2880     336   ext4_ext_get_blocks+0xb61/0xd45 [ext4]\n12)     2544      96   ext4_get_blocks_wrap+0xf2/0x200 [ext4]\n13)     2448      80   ext4_da_get_block_write+0x6e/0x16b [ext4]\n14)     2368     352   mpage_da_map_blocks+0x7e/0x4b3 [ext4]\n15)     2016     352   ext4_da_writepages+0x2ce/0x43c [ext4]\n16)     1664      32   do_writepages+0x2d/0x3c\n17)     1632     144   __writeback_single_inode+0x162/0x2cd\n18)     1488      96   generic_sync_sb_inodes+0x1e3/0x32b\n19)     1392      16   sync_sb_inodes+0xe/0x10\n20)     1376      48   writeback_inodes+0x69/0xb3\n21)     1328     208   balance_dirty_pages_ratelimited_nr+0x187/0x2f9\n22)     1120     224   generic_file_buffered_write+0x1d4/0x2c4\n23)      896     176   __generic_file_aio_write_nolock+0x35f/0x393\n24)      720      80   generic_file_aio_write+0x6c/0xc8\n25)      640      80   ext4_file_write+0xa9/0x137 [ext4]\n26)      560     320   do_sync_write+0xf0/0x137\n27)      240      48   vfs_write+0xb3/0x13c\n28)      192      64   sys_write+0x4c/0x74\n29)      128     128   system_call_fastpath+0x16/0x1b\n\nSplit the segment counting out into a __blk_recalc_rq_segments() helper\nto avoid allocating an onstack request just for checking the physical\nsegment count.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a682604838763981613e42015cd0e39f2989d6bb",
      "tree": "29eae425e484edc494807702696c240ce09ba3f5",
      "parents": [
        "694593e3374a67d95ece6a275a1f181644c2c4d8"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Feb 25 18:03:42 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 04:08:14 2009 +0100"
      },
      "message": "rcu: Teach RCU that idle task is not quiscent state at boot\n\nThis patch fixes a bug located by Vegard Nossum with the aid of\nkmemcheck, updated based on review comments from Nick Piggin,\nIngo Molnar, and Andrew Morton.  And cleans up the variable-name\nand function-name language.  ;-)\n\nThe boot CPU runs in the context of its idle thread during boot-up.\nDuring this time, idle_cpu(0) will always return nonzero, which will\nfool Classic and Hierarchical RCU into deciding that a large chunk of\nthe boot-up sequence is a big long quiescent state.  This in turn causes\nRCU to prematurely end grace periods during this time.\n\nThis patch changes the rcutree.c and rcuclassic.c rcu_check_callbacks()\nfunction to ignore the idle task as a quiescent state until the\nsystem has started up the scheduler in rest_init(), introducing a\nnew non-API function rcu_idle_now_means_idle() to inform RCU of this\ntransition.  RCU maintains an internal rcu_idle_cpu_truthful variable\nto track this state, which is then used by rcu_check_callback() to\ndetermine if it should believe idle_cpu().\n\nBecause this patch has the effect of disallowing RCU grace periods\nduring long stretches of the boot-up sequence, this patch also introduces\nJosh Triplett\u0027s UP-only optimization that makes synchronize_rcu() be a\nno-op if num_online_cpus() returns 1.  This allows boot-time code that\ncalls synchronize_rcu() to proceed normally.  Note, however, that RCU\ncallbacks registered by call_rcu() will likely queue up until later in\nthe boot sequence.  Although rcuclassic and rcutree can also use this\nsame optimization after boot completes, rcupreempt must restrict its\nuse of this optimization to the portion of the boot sequence before the\nscheduler starts up, given that an rcupreempt RCU read-side critical\nsection may be preeempted.\n\nIn addition, this patch takes Nick Piggin\u0027s suggestion to make the\nsystem_state global variable be __read_mostly.\n\nChanges since v4:\n\no\tChanges the name of the introduced function and variable to\n\tbe less emotional.  ;-)\n\nChanges since v3:\n\no\tWARN_ON(nr_context_switches() \u003e 0) to verify that RCU\n\tswitches out of boot-time mode before the first context\n\tswitch, as suggested by Nick Piggin.\n\nChanges since v2:\n\no\tCreated rcu_blocking_is_gp() internal-to-RCU API that\n\tdetermines whether a call to synchronize_rcu() is itself\n\ta grace period.\n\no\tThe definition of rcu_blocking_is_gp() for rcuclassic and\n\trcutree checks to see if but a single CPU is online.\n\no\tThe definition of rcu_blocking_is_gp() for rcupreempt\n\tchecks to see both if but a single CPU is online and if\n\tthe system is still in early boot.\n\n\tThis allows rcupreempt to again work correctly if running\n\ton a single CPU after booting is complete.\n\no\tAdded check to rcupreempt\u0027s synchronize_sched() for there\n\tbeing but one online CPU.\n\nTested all three variants both SMP and !SMP, booted fine, passed a short\nrcutorture test on both x86 and Power.\n\nLocated-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nTested-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nTested-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8fed43684174b68f04d01d1210fd00536af790df",
      "tree": "df8d5f87c68526267d0ae320173814ed3f417fd5",
      "parents": [
        "d3dd7107f4d843d0f01d0f77d49a7c5449130577"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Wed Feb 25 20:28:24 2009 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Wed Feb 25 20:28:24 2009 +0100"
      },
      "message": "ide: fix refcounting in device drivers\n\nDuring host driver module removal del_gendisk() results in a final\nput on drive-\u003egendev and freeing the drive by drive_release_dev().\n\nConvert device drivers from using struct kref to use struct device\nso device driver\u0027s object holds reference on -\u003egendev and prevents\ndrive from prematurely going away.\n\nAlso fix -\u003eremove methods to not erroneously drop reference on a\nhost driver by using only put_device() instead of ide*_put().\n\nReported-by: Stanislaw Gruszka \u003cstf_xl@wp.pl\u003e\nTested-by: Stanislaw Gruszka \u003cstf_xl@wp.pl\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "c15d8a6499d04e5d2cac07f8120f207bb275f60f",
      "tree": "4cde78329a06fdf07e3d780881481d9ae1d021fb",
      "parents": [
        "490213556ad5bc1b46857bce1bc2c6db41d3e63d",
        "e08fb4f6d1dc95eff5b3fc1d0412bcb5afcae7f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 25 09:49:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 25 09:49:30 2009 -0800"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:\n  drm/i915: convert DRM_ERROR to DRM_DEBUG in phys object pwrite path\n  drm/i915: make hw page ioremap use ioremap_wc\n  drm: edid revision 0 is valid\n  drm: Correct unbalanced drm_vblank_put() during mode setting.\n  drm: disable encoders before re-routing them\n  drm: Fix ordering of bit fields in EDID structure leading huge vsync values.\n  drm: Fix shifts of EDID vsync offset/width fields.\n  drm/i915: handle bogus VBT panel timing\n  drm/i915: remove PLL debugging messages\n"
    },
    {
      "commit": "60042600c57be5737cd9d6869e7144f7fe786274",
      "tree": "8b789dd736a98e3671be6e7c405c4800625fb30d",
      "parents": [
        "6aa03ab06978e97b3e0720f83280d7841051916b",
        "084eb960e81505680a9963665722d1bfd94af6a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 25 09:31:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 25 09:31:21 2009 -0800"
      },
      "message": "Merge git://git.infradead.org/iommu-2.6\n\n* git://git.infradead.org/iommu-2.6:\n  intel-iommu: fix endless \"Unknown DMAR structure type\" loop\n  VT-d: handle Invalidation Queue Error to avoid system hang\n  intel-iommu: fix build error with INTR_REMAP\u003dy and DMAR\u003dn\n"
    },
    {
      "commit": "4ab0d47d0ab311eb181532c1ecb6d02905685071",
      "tree": "48b1a6cc01b65bab1442e05a971220366f998976",
      "parents": [
        "6644107d57a8fa82b47e4c55da4d9d91a612f29c"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Tue Feb 24 17:35:12 2009 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 13:09:51 2009 +0100"
      },
      "message": "gpu/drm, x86, PAT: io_mapping_create_wc and resource_size_t\n\nio_mapping_create_wc should take a resource_size_t parameter in place of\nunsigned long. With unsigned long, there will be no way to map greater than 4GB\naddress in i386/32 bit.\n\nOn x86, greater than 4GB addresses cannot be mapped on i386 without PAE. Return\nerror for such a case.\n\nPatch also adds a structure for io_mapping, that saves the base, size and\ntype on HAVE_ATOMIC_IOMAP archs, that can be used to verify the offset on\nio_mapping_map calls.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Dave Airlie \u003cairlied@redhat.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Eric Anholt \u003ceric@anholt.net\u003e\nCc: Keith Packard \u003ckeithp@keithp.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7bec756c74b1a5079d5074144bb77a6b3e7d7783",
      "tree": "704b5ffbb921f6798e5c29df369c64561d4d425c",
      "parents": [
        "fe56cf45f951b3810313584605c1d8a4f20b33a4"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon Feb 23 16:09:34 2009 -0800"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@linux.ie",
        "time": "Wed Feb 25 14:42:23 2009 +1000"
      },
      "message": "drm: disable encoders before re-routing them\n\nIn some cases we may receive a mode config that has a different\nCRTC\u003c-\u003eencoder map that the current configuration.  In that case, we\nneed to disable any re-routed encoders before setting the mode,\notherwise they may not pick up the new CRTC (if the output types are\nincompatible for example).\n\nTested-by: Kristian Høgsberg \u003ckrh@bitplanet.net\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Dave Airlie \u003cairlied@linux.ie\u003e\n"
    },
    {
      "commit": "fe56cf45f951b3810313584605c1d8a4f20b33a4",
      "tree": "84b6c8bb6178e7ccd4a5fe890d0945b58ddff4f1",
      "parents": [
        "c8766ac5933d6ee75e7ce379a1eb5ceb451fcb83"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon Feb 23 15:36:41 2009 -0800"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@linux.ie",
        "time": "Wed Feb 25 14:11:00 2009 +1000"
      },
      "message": "drm: Fix ordering of bit fields in EDID structure leading huge vsync values.\n\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nReviewed-by: Eric Anholt \u003ceric@anholt.net\u003e\nSigned-off-by: Dave Airlie \u003cairlied@linux.ie\u003e\n"
    },
    {
      "commit": "8b6f92b1bd187b4f57296e5cf2e43ba883dd1968",
      "tree": "c40dd93f36c1859c3cf610f1f6065ce75aedb1c0",
      "parents": [
        "467388f29fc9cebfb70e7a187107b6b5d772cb44",
        "325fb5b4d26038cba665dd0d8ee09555321061f0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 24 13:49:05 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 24 13:49:05 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6\n"
    },
    {
      "commit": "cd97f39b7cdf1c8a9c9f52865eec795b7f0c811d",
      "tree": "010cd2255376a95120da810a1600bbd8d4d7d1c3",
      "parents": [
        "a746b578d8406b2db0e9f0d040061bc1f78433cf"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Tue Feb 24 19:19:49 2009 +0100"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Tue Feb 24 19:19:49 2009 +0100"
      },
      "message": "i2c-dev: Clarify the unit of ioctl I2C_TIMEOUT\n\nThe unit in which user-space can set the bus timeout value is jiffies\nfor historical reasons (back when HZ was always 100.) This is however\nnot good because user-space doesn\u0027t know how long a jiffy lasts. The\ntimeout value should instead be set in a fixed time unit. Given the\noriginal value of HZ, this unit should be 10 ms, for compatibility.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\n"
    },
    {
      "commit": "d38e84ee39783e00bd0b83a8dd19e54709950912",
      "tree": "c98f6804c6fd7c32238602173a78b04210703042",
      "parents": [
        "20f4d6c3a2a23c5d7d9cc7f42fbb943ca7a03d1f",
        "486a87f1e5624096bd1c09e9e716239597d48dca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 23 14:36:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 23 14:36:05 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  netns: fix double free at netns creation\n  veth : add the set_mac_address capability\n  sunlance: Beyond ARRAY_SIZE of ib-\u003ebtx_ring\n  sungem: another error printed one too early\n  ISDN: fix sc/shmem printk format warning\n  SMSC: timeout reaches -1\n  smsc9420: handle magic field of ethtool_eeprom\n  sundance: missing parentheses?\n  smsc9420: fix another postfixed timeout\n  wimax/i2400m: driver loads firmware v1.4 instead of v1.3\n  vlan: Update skb-\u003emac_header in __vlan_put_tag().\n  cxgb3: Add support for PCI ID 0x35.\n  tcp: remove obsoleted comment about different passes\n  TG3: \u0026\u0026/|| confusion\n  ATM: misplaced parentheses?\n  net/mv643xx: don\u0027t disable the mib timer too early and lock properly\n  net/mv643xx: use GFP_ATOMIC while atomic\n  atl1c: Atheros L1C Gigabit Ethernet driver\n  net: Kill skb_truesize_check(), it only catches false-positives.\n  net: forcedeth: Fix wake-on-lan regression\n"
    },
    {
      "commit": "770824bdc421ff58a64db608294323571c949f4c",
      "tree": "2fbeef604fe982bf322249a53a95dd2ff851d5f4",
      "parents": [
        "936577c61d0c10b8929608a92c98d839b22053bc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Feb 22 18:38:50 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 22 10:33:44 2009 -0800"
      },
      "message": "PM: Split up sysdev_[suspend|resume] from device_power_[down|up]\n\nMove the sysdev_suspend/resume from the callee to the callers, with\nno real change in semantics, so that we can rework the disabling of\ninterrupts during suspend/hibernation.\n\nThis is based on an earlier patch from Linus.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "adfafefd104d840ee4461965f22624d77532675b",
      "tree": "6c6ba553a2b11703bf5952bd789905ea37c4fc4f",
      "parents": [
        "460c1338fc05add0e8050d4945a46f207b13a5fc",
        "403f307576396f3362fbb65af190885b6036c72c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:26 2009 -0800"
      },
      "message": "Merge branch \u0027hibernate\u0027\n\n* hibernate:\n  PM: Fix suspend_console and resume_console to use only one semaphore\n  PM: Wait for console in resume\n  PM: Fix pm_notifiers during user mode hibernation\n  swsusp: clean up shrink_all_zones()\n  swsusp: dont fiddle with swappiness\n  PM: fix build for CONFIG_PM unset\n  PM/hibernate: fix \"swap breaks after hibernation failures\"\n  PM/resume: wait for device probing to finish\n  Consolidate driver_probe_done() loops into one place\n"
    },
    {
      "commit": "216773a787c3c46ef26bf1742c1fdba37d26be45",
      "tree": "aac387553fd53cb0c06b5cc2ee86329ce793bed6",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Feb 14 01:59:06 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 14:17:17 2009 -0800"
      },
      "message": "Consolidate driver_probe_done() loops into one place\n\nthere\u0027s a few places that currently loop over driver_probe_done(), and\nI\u0027m about to add another one. This patch abstracts it into a helper\nto reduce duplication.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nAcked-by: Greg KH \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ec77fc93ca8731368fbe8e71f805c0569d4bcee",
      "tree": "22bfee5226f29860c3529cf31b377e27e9422d6b",
      "parents": [
        "be71cb5b526709b8e42c707dc9e8c5b034ac8d1c",
        "3d16118dc825a654043dfe3e14371fdf2976994d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 18:04:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 18:04:53 2009 -0800"
      },
      "message": "Merge branch \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (26 commits)\n  drm/radeon: update sarea copies of last_ variables on resume.\n  drm/i915: Keep refs on the object over the lifetime of vmas for GTT mmap.\n  drm/i915: take struct mutex around fb unref\n  drm: Use spread spectrum when the bios tells us it\u0027s ok.\n  drm: Collapse identical i8xx_clock() and i9xx_clock().\n  drm: Bring PLL limits in sync with DDX values.\n  drm: Add locking around cursor gem operations.\n  drm: Propagate failure from setting crtc base.\n  drm: Check for a NULL encoder when reverting on error path\n  drm/i915: Cleanup the hws on ringbuffer constrution failure.\n  drm/i915: Don\u0027t add panel_fixed_mode to the probed modes list at LVDS init.\n  drm: Release user fbs in drm_release\n  drm/i915: Unpin the fb on error during construction.\n  drm/i915: Unpin the hws if we fail to kmap.\n  drm/i915: Unpin the ringbuffer if we fail to ioremap it.\n  drm/i915: unpin for an invalid memory domain.\n  drm/i915: Release and unlock on mmap_gtt error path.\n  drm/i915: Set framebuffer alignment based upon the fence constraints.\n  drm: Do not leak a new reference for flink() on an existing name\n  drm/i915: Fix potential AB-BA deadlock in i915_gem_execbuffer()\n  ...\n"
    },
    {
      "commit": "b6adea334c6c89d5e6c94f9196bbf3a279cb53bd",
      "tree": "fa4360d5522309a8dd9a3fced5e0f8b53de90d85",
      "parents": [
        "3cf311409d37d904335eb720e8a6b2c17bee6698"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Fri Feb 20 15:38:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:57:50 2009 -0800"
      },
      "message": "8250: fix boot hang with serial console when using with Serial Over Lan port\n\nIntel 8257x Ethernet boards have a feature called Serial Over Lan.\n\nThis feature works by emulating a serial port, and it is detected by\nkernel as a normal 8250 port.  However, this emulation is not perfect, as\nalso noticed on changeset 7500b1f602aad75901774a67a687ee985d85893f.\n\nBefore this patch, the kernel were trying to check if the serial TX is\ncapable of work using IRQ\u0027s.\n\nThis were done with a code similar this:\n\n        serial_outp(up, UART_IER, UART_IER_THRI);\n        lsr \u003d serial_in(up, UART_LSR);\n        iir \u003d serial_in(up, UART_IIR);\n        serial_outp(up, UART_IER, 0);\n\n        if (lsr \u0026 UART_LSR_TEMT \u0026\u0026 iir \u0026 UART_IIR_NO_INT)\n\t\tup-\u003ebugs |\u003d UART_BUG_TXEN;\n\nThis works fine for other 8250 ports, but, on 8250-emulated SoL port, the\nchip is a little lazy to down UART_IIR_NO_INT at UART_IIR register.\n\nDue to that, UART_BUG_TXEN is sometimes enabled.  However, as TX IRQ keeps\nworking, and the TX polling is now enabled, the driver miss-interprets the\nIRQ received later, hanging up the machine until a key is pressed at the\nserial console.\n\nThis is the 6 version of this patch.  Previous versions were trying to\nintroduce a large enough delay between serial_outp and serial_in(up,\nUART_IIR), but not taking forever.  However, the needed delay couldn\u0027t be\nsafely determined.\n\nAt the experimental tests, a delay of 1us solves most of the cases, but\nstill hangs sometimes.  Increasing the delay to 5us was better, but still\ndoesn\u0027t solve.  A very high delay of 50 ms seemed to work every time.\n\nHowever, poking around with delays and pray for it to be enough doesn\u0027t\nseem to be a good approach, even for a quirk.\n\nSo, instead of playing with random large arbitrary delays, let\u0027s just\ndisable UART_BUG_TXEN for all SoL ports.\n\n[akpm@linux-foundation.org: fix warnings]\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01b24fee285b098c74318a8be801ef3711ec18d7",
      "tree": "60403f86f2198f4c5f81a1447e4bf3f107ede7d3",
      "parents": [
        "f6fcba7014f9cc535fa75ef98c008b24e49e2212"
      ],
      "author": {
        "name": "Michael Buesch",
        "email": "mb@bu3sch.de",
        "time": "Fri Feb 20 15:38:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:57:49 2009 -0800"
      },
      "message": "spi_bitbang: add more lowlevel function documentation\n\nThis adds more documentation of the lowlevel API to avoid future bugs.\n\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ef0e5ba467366125f04b423f4638baca54a4fc1",
      "tree": "cfe7b95c7b19b1d5b2a8534fa9791d6026e49dcd",
      "parents": [
        "d9190913b71831f5e3d04de62cfb1fd069a9db35"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Feb 20 15:38:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:57:48 2009 -0800"
      },
      "message": "slab: introduce kzfree()\n\nkzfree() is a wrapper for kfree() that additionally zeroes the underlying\nmemory before releasing it to the slab allocator.\n\nCurrently there is code which memset()s the memory region of an object\nbefore releasing it back to the slab allocator to make sure\nsecurity-sensitive data are really zeroed out after use.\n\nThese callsites can then just use kzfree() which saves some code, makes\nusers greppable and allows for a stupid destructor that isn\u0027t necessarily\naware of the actual object size.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab00b3e5210954cbaff9207db874a9f03197e3ba",
      "tree": "68359cf341eb58cefa9d8c91200e6d137ff2007c",
      "parents": [
        "496818f08a78476abdb307e241911536221239fc"
      ],
      "author": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Wed Feb 11 14:01:46 2009 -0800"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Fri Feb 20 12:21:13 2009 +1000"
      },
      "message": "drm/i915: Keep refs on the object over the lifetime of vmas for GTT mmap.\n\nThis fixes potential fault at fault time if the object was unreferenced\nwhile the mapping still existed.  Now, while the mmap_offset only lives\nfor the lifetime of the object, the object also stays alive while a vma\nexists that needs it.\n\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Eric Anholt \u003ceric@anholt.net\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    }
  ],
  "next": "5c3b82e2b229e78eb32f4ea12d16f3ebeeab3fc7"
}
