)]}'
{
  "log": [
    {
      "commit": "b377ff13b31778c19203f3089d14080beb40a692",
      "tree": "d872382487128fb0b1f9cfc3e67ac6ffdd9ecd4b",
      "parents": [
        "09b8a7d2af83ae96dc052f9708e50140d06a9b6c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 11 15:22:37 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 11 15:50:28 2009 -0800"
      },
      "message": "ceph: initialize i_size/i_rbytes on snapdir\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "09b8a7d2af83ae96dc052f9708e50140d06a9b6c",
      "tree": "cb863b7cc50846bee4d8e85ec974dca5737de11e",
      "parents": [
        "cdac830313fa6bf2831693af80fefe4aaac11b7d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 11 15:21:27 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 11 15:50:25 2009 -0800"
      },
      "message": "ceph: exclude snapdir from readdir results\n\nIt was hidden from sync readdir, but not the cached dcache version.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cdac830313fa6bf2831693af80fefe4aaac11b7d",
      "tree": "cf5004237a084779ca84130c3303e42e9ea9fa35",
      "parents": [
        "eed0ef2caf928327332da54d23579debe629d5bc"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 10 16:02:23 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 10 16:03:53 2009 -0800"
      },
      "message": "ceph: remove recon_gen logic\n\nWe don\u0027t get an explicit affirmative confirmation that our caps reconnect,\nnor do we necessarily want to pay that cost.  So, take all this code out\nfor now.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "eed0ef2caf928327332da54d23579debe629d5bc",
      "tree": "396319ef2e65cc775b1466f446edc535401c5cea",
      "parents": [
        "685f9a5d14194fc35db73e5e7370740ccc14b64a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 10 14:34:36 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 10 14:34:48 2009 -0800"
      },
      "message": "ceph: separate banner and connect during handshake into distinct stages\n\nWe need to make sure we only swab the address during the banner once.  So\nbreak process_banner out of process_connect, and clean up the surrounding\ncode so that these are distinct phases of the handshake.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "685f9a5d14194fc35db73e5e7370740ccc14b64a",
      "tree": "4c34ac2348149d91ad5e08cd105207810f0afdc9",
      "parents": [
        "fb690390e305ea51e1883b105c7d3c52d7100ba5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 09 12:05:48 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 09 12:06:07 2009 -0800"
      },
      "message": "ceph: do not confuse stale and dead (unreconnected) caps\n\nWe were using the cap_gen to track both stale caps (caps that timed out\ndue to temporarily losing touch with the mds) and dead caps that did not\nreconnect after an MDS failure.  Introduce a recon_gen counter to track\nreconnections to restarted MDSs and kill dead caps based on that instead.\n\nRename gen to cap_gen while we\u0027re at it to make it more clear which is\nwhich.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fb690390e305ea51e1883b105c7d3c52d7100ba5",
      "tree": "c099a71133225b1d22bba976e93dc6ab92a08986",
      "parents": [
        "1654dd0cf5ee1827322aca156af7d96d757201c7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Nov 07 20:18:22 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Nov 07 20:18:22 2009 -0800"
      },
      "message": "ceph: make CRUSH hash function a bucket property\n\nMake the integer hash function a property of the bucket it is used on.  This\nallows us to gracefully add support for new hash functions without starting\nfrom scatch.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1654dd0cf5ee1827322aca156af7d96d757201c7",
      "tree": "ba71b1a1e214b929937f02a1794b3d32b8ff1342",
      "parents": [
        "cfbbcd24a6bfd794295ee7ad76dfbff40ad6b934"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 21:55:25 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 21:55:25 2009 -0800"
      },
      "message": "ceph: make object hash a pg_pool property\n\nThe object will be hashed to a placement seed (ps) based on the pg_pool\u0027s\nhash function.  This allows new hashes to be introduced into an existing\nobject store, or selection of a hash appropriate to the objects that\nwill be stored in a particular pool.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cfbbcd24a6bfd794295ee7ad76dfbff40ad6b934",
      "tree": "26a9640291ae3af1a9f1dd56cd8b3a2e3016b3ff",
      "parents": [
        "c6cf726316abd613cfb7c325d950f3629f964ec6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 16:44:05 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 16:44:05 2009 -0800"
      },
      "message": "ceph: use strong hash function for mapping objects to pgs\n\nWe were using the (weak) dcache hash function, but it was leaving lower\nbits consecutive for consecutive (inode) objects.  We really want to make\nthe object to pg mapping random and uniform, so use a proper hash function\nhere.\n\nThis is Robert Jenkin\u0027s public domain hash function (with some minor\ncleanup):\n\thttp://burtleburtle.net/bob/hash/evahash.html\n\nThis is a protocol revision.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c6cf726316abd613cfb7c325d950f3629f964ec6",
      "tree": "446a686988656a355ee7ff94a43912c94f36ac63",
      "parents": [
        "1bdb70e59026838a79f77c440f8fe480a66e65e8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 16:39:26 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 16:39:26 2009 -0800"
      },
      "message": "ceph: make CRUSH hash functions non-inline\n\nThese are way to big to be inline.  I missed crush/* when doing the inline\naudit for akpm\u0027s review.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1bdb70e59026838a79f77c440f8fe480a66e65e8",
      "tree": "8e3a897f4179e4eaf9a25b125203abe1bc68e6d3",
      "parents": [
        "f28bcfbe660a3246621a367020054d4f1a179cd9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 13:57:49 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Nov 06 13:57:49 2009 -0800"
      },
      "message": "ceph: clean up \u0027osd%d down\u0027 console msg\n\nNo ceph prefix.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f28bcfbe660a3246621a367020054d4f1a179cd9",
      "tree": "9dfadb9a1ab29fa42b41dc2a8098e5128b7d3b34",
      "parents": [
        "6a18be16f7513ea8a4923c161ce073987932cbdb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 11:46:35 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 16:36:12 2009 -0800"
      },
      "message": "ceph: convert port endianness\n\nThe port is informational only, but we should make it correct.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6a18be16f7513ea8a4923c161ce073987932cbdb",
      "tree": "ebd337329a22deb4289379dd7ccfb0e5db6bd72c",
      "parents": [
        "51042122d4f85e0f8ee577a4230f172fcc57c456"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 11:40:05 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 16:36:12 2009 -0800"
      },
      "message": "ceph: fix sparse endian warning\n\nUse the __le macro, even though for -1 it doesn\u0027t matter.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "51042122d4f85e0f8ee577a4230f172fcc57c456",
      "tree": "d5ccf5f84d362b6542a86eab6b6f50112111434b",
      "parents": [
        "63f2d211954b790fea0a9caeae605c7956535af6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 11:39:12 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Nov 04 16:36:07 2009 -0800"
      },
      "message": "ceph: fix endian conversions for ceph_pg\n\nThe endian conversions don\u0027t quite work with the old union ceph_pg.  Just\nmake it a regular struct, and make each field __le.  This is simpler and it\nhas the added bonus of actually working.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "63f2d211954b790fea0a9caeae605c7956535af6",
      "tree": "b49257aa54d9657539eeba014f9ff5f91f8495de",
      "parents": [
        "859e7b149362475672e2a996f29b8f45cbb34d82"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 03 15:17:56 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Nov 03 15:17:56 2009 -0800"
      },
      "message": "ceph: use fixed endian encoding for ceph_entity_addr\n\nWe exchange struct ceph_entity_addr over the wire and store it on disk.\nThe sockaddr_storage.ss_family field, however, is host endianness.  So,\nfix ss_family endianness to big endian when sending/receiving over the\nwire.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "859e7b149362475672e2a996f29b8f45cbb34d82",
      "tree": "ee7a68f0ff01c21f8aca68ee67af203abf69c939",
      "parents": [
        "33aa96e7430d215e2ee779f65cdad0f6d4571fe1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 02 09:32:47 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Nov 02 09:32:47 2009 -0800"
      },
      "message": "ceph: init/destroy bdi in client create/destroy helpers\n\nThis keeps bdi setup/teardown in line with client life cycle.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "33aa96e7430d215e2ee779f65cdad0f6d4571fe1",
      "tree": "00309ddde7506b0c2a86a20f5b579a60623005ab",
      "parents": [
        "63ff78b25c4b204075b5b98afcac6ad3639d43fe"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 01 17:53:24 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 01 17:53:24 2009 -0800"
      },
      "message": "crush: always return a value from crush_bucket_choose\n\nEven when we encounter a corrupt bucket.  We still BUG().  This fixes\nthe warning\n\nfs/ceph/crush/mapper.c: In function \u0027crush_choose\u0027:\nfs/ceph/crush/mapper.c:352: warning: control may reach end of non-void function\n\u0027crush_bucket_choose\u0027 being inlined\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "63ff78b25c4b204075b5b98afcac6ad3639d43fe",
      "tree": "cfe09a50bb1227d5c83c4515f53636208b0eec09",
      "parents": [
        "ff1d1f7179363209b7f1493ea39b666f50d05cf4"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 01 17:51:15 2009 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Nov 01 17:51:15 2009 -0800"
      },
      "message": "ceph: fix uninitialized err variable\n\nFixes warning\nfs/ceph/xattr.c: In function \u0027__build_xattrs\u0027:\nfs/ceph/xattr.c:353: warning: \u0027err\u0027 may be used uninitialized in this function\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ff1d1f7179363209b7f1493ea39b666f50d05cf4",
      "tree": "3031029b3cc7d4c45beed61ebc0885192a306bf0",
      "parents": [
        "645a102581b3639836b17d147c35d574fd6e8267"
      ],
      "author": {
        "name": "Noah Watkins",
        "email": "noah@noahdesu.com",
        "time": "Fri Oct 30 12:57:30 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 30 13:56:14 2009 -0700"
      },
      "message": "ceph: fix intra strip unit length calculation\n\nCommit 645a102581b3639836b17d147c35d574fd6e8267 fixes calculation of object\noffset for layouts with multiple stripes per object. This updates the\ncalculation of the length written to take into account multiple stripes per\nobject.\n\nSigned-off-by: Noah Watkins \u003cnoah@noahdesu.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "645a102581b3639836b17d147c35d574fd6e8267",
      "tree": "f7117157b3f4eb4803189eccd7a5d6464d4fb255",
      "parents": [
        "5600f5ebd318f7af6f4b19a29f08d18bb85264e5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 15:15:05 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 17:45:41 2009 -0700"
      },
      "message": "ceph: fix object striping calculation for non-default striping schemes\n\nWe were incorrectly calculationing of object offset.  If we have multiple\nstripe units per object, we need to shift to the start of the current\nsu in addition to the offset within the su.\n\nAlso rename bno to ono (object number) to avoid some variable naming\nconfusion.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5600f5ebd318f7af6f4b19a29f08d18bb85264e5",
      "tree": "dacf9f162b079f5978446cdd7461a83edf41ef3b",
      "parents": [
        "35e054a66e07f508aa7cfabc7db1757379093689"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 14:57:25 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 17:45:37 2009 -0700"
      },
      "message": "ceph: correct comment to match striping calculation\n\nThe object extent offset is the file offset _modulo_ the stripe unit.\nThe code was correct, the comment was wrong.\n\nReported-by: Noah Watkins \u003cjayhawk@soe.ucsc.edu\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "35e054a66e07f508aa7cfabc7db1757379093689",
      "tree": "3bf161c107ef24352c6ccc09b316b2e8ce0e74d8",
      "parents": [
        "fbbccec9c6218cbc9ff47c6d88bfc6b52079e3ea"
      ],
      "author": {
        "name": "Noah Watkins",
        "email": "noah@noahdesu.com",
        "time": "Wed Oct 28 14:04:48 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 17:44:37 2009 -0700"
      },
      "message": "ceph: remove redundant use of le32_to_cpu\n\nUsing stripe unit size calculated and saved on the stack to avoid\na redundant call to le32_to_cpu.\n\nSigned-off-by: Noah Watkins \u003cnoah@noahdesu.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fbbccec9c6218cbc9ff47c6d88bfc6b52079e3ea",
      "tree": "883496f51f79c49ec7e58888401b88dc356a03e5",
      "parents": [
        "6b8051855d983db8480ff1ea1b02ef2b49203c22"
      ],
      "author": {
        "name": "Noah Watkins",
        "email": "noah@noahdesu.com",
        "time": "Wed Oct 28 11:54:49 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 28 17:44:22 2009 -0700"
      },
      "message": "ceph: replace list_entry with container_of\n\nUsage of non-list.h list_entry function for container_of\nfunctionality replaced with direct use of container_of.\n\nSigned-off-by: Noah Watkins \u003cnoah@noahdesu.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6b8051855d983db8480ff1ea1b02ef2b49203c22",
      "tree": "afb72be534ddd4c474a2ec9b7cf2ea5ab86799bc",
      "parents": [
        "e53c2fe075feda1fd4f009956ac026dc24c3a199"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 27 11:50:50 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 27 11:57:03 2009 -0700"
      },
      "message": "ceph: allocate and parse mount args before client instance\n\nThis simplifies much of the error handling during mount.  It also means\nthat we have the mount args before client creation, and we can initialize\nbased on those options.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e53c2fe075feda1fd4f009956ac026dc24c3a199",
      "tree": "8607bbfb40f6eb1bd9d463b970454faa9623cd0e",
      "parents": [
        "6ca874e92d5e50beb8e351dfd8121947bafc79ec"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 27 10:19:28 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 27 11:17:25 2009 -0700"
      },
      "message": "ceph: fix, clean up string mount arg parsing\n\nClearly demark int and string argument options, and do not try to convert\nstring arguments to ints.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "6ca874e92d5e50beb8e351dfd8121947bafc79ec",
      "tree": "7c23fddf5c2948f9f07cb68d5a0ebf11d4b8614d",
      "parents": [
        "7b813c46021e8f4909772a5bbfb5212bd140764c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 26 22:06:22 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 26 22:07:59 2009 -0700"
      },
      "message": "ceph: silence uninitialized variable warning\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7b813c46021e8f4909772a5bbfb5212bd140764c",
      "tree": "50655ab84f6347ec11a4423f22093fbb7a944e87",
      "parents": [
        "ecb19c4649d7396737eb0d91a475661fe9d7c028"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 26 22:07:53 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 26 22:07:53 2009 -0700"
      },
      "message": "ceph: reduce parse_mount_args stack usage\n\nSince we\u0027ve increased the max mon count, we shouldn\u0027t put the addr array\non the parse_mount_args stack.  Put it on the heap instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ecb19c4649d7396737eb0d91a475661fe9d7c028",
      "tree": "32ff9e8b3a9afffe5c9b7e97f1aef6b367c08dde",
      "parents": [
        "232d4b01319767b3ffa5d08962a81c805962be49"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 22 10:53:02 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 22 10:53:17 2009 -0700"
      },
      "message": "ceph: remove small mon addr limit; use CEPH_MAX_MON where appropriate\n\nGet rid of separate max mon limit; use the system limit instead.  This\nallows mounts when there are lots of mon addrs provided by mount.ceph (as\nwith a host with lots of A/AAAA records).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "232d4b01319767b3ffa5d08962a81c805962be49",
      "tree": "9df213823c817b988c4438e1f81797936c70f48b",
      "parents": [
        "bb097ffaf833a40335b6dd5e4fa6f5ed0b223bdc"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 21 11:21:49 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 21 11:24:36 2009 -0700"
      },
      "message": "ceph: move directory size logic to ceph_getattr\n\nWe can\u0027t fill i_size with rbytes at the fill_file_size stage without\nadding additional checks for directories.  Notably, we want st_blocks\nto remain 0 on directories so that \u0027du\u0027 still works.\n\nFill in i_blocks, i_size specially in ceph_getattr instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bb097ffaf833a40335b6dd5e4fa6f5ed0b223bdc",
      "tree": "27a34a3bfea3843c17810f07591ea0de3e253a3a",
      "parents": [
        "ee7fdfaff7702bd209e3a013b2fc4643233f5465"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 19 16:17:31 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 19 16:17:31 2009 -0700"
      },
      "message": "ceph: v0.17 of client\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ee7fdfaff7702bd209e3a013b2fc4643233f5465",
      "tree": "98affb849897dcefc0b256886f4e43df7aae1052",
      "parents": [
        "8fa9765576875200a7412a5300b5f0537211f038"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 19 11:41:51 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 19 11:42:41 2009 -0700"
      },
      "message": "ceph: include preferred osd in placement seed\n\nMix the preferred osd (if any) into the placement seed that is fed into\nthe CRUSH object placement calculation.  This prevents all the placement\npgs from peering with the same osds.\n\nRev the osd client protocol with this change.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8fa9765576875200a7412a5300b5f0537211f038",
      "tree": "1d6417a0d6731e905dc0cffb09506f1796e58f71",
      "parents": [
        "76e3b390d41db9d69e254a09dd1aedd3e6aac25f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 16 14:44:35 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 16 14:44:43 2009 -0700"
      },
      "message": "ceph: enable readahead\n\nInitialized bdi-\u003era_pages to enable readahead.  Use 512KB default.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "76e3b390d41db9d69e254a09dd1aedd3e6aac25f",
      "tree": "2a2b6586fd36dcef430d1c13e07aa42ceaa51c84",
      "parents": [
        "8f3bc053c610826a657714649ea596f07875db2e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 15 18:13:53 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 15 18:14:44 2009 -0700"
      },
      "message": "ceph: move dirty caps code around\n\nCleanup only.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8f3bc053c610826a657714649ea596f07875db2e",
      "tree": "97823cb2a202439bb9f9839e2d326ac95d728dd0",
      "parents": [
        "07bd10fb9853a41a7f0bb271721cca97d15eccae"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 17:36:07 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 15 18:14:43 2009 -0700"
      },
      "message": "ceph: warn on allocation from msgpool with larger front_len\n\nPass the front_len we need when pulling a message off a msgpool,\nand WARN if it is greater than the pool\u0027s size.  Then try to\nallocate a new message (to continue without failing).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "07bd10fb9853a41a7f0bb271721cca97d15eccae",
      "tree": "e7720633e7ce7be5dd3e9a9f96f1d63e3095b06c",
      "parents": [
        "afcdaea3f2a78ce4873bd7e98a6d603bda23d167"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 17:26:40 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 15 18:14:42 2009 -0700"
      },
      "message": "ceph: correct subscribe_ack msgpool payload size\n\nDefined a struct for the SUBSCRIBE_ACK, and use that to size\nthe msgpool.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "afcdaea3f2a78ce4873bd7e98a6d603bda23d167",
      "tree": "08defc298e2c27816d70bd41c8c3ecc80a82ba79",
      "parents": [
        "cdc35f96277314bbfeefd0505410cabd69aebd8d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 14:27:38 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 15 18:14:35 2009 -0700"
      },
      "message": "ceph: flush dirty caps via the cap_dirty list\n\nPreviously we were flushing dirty caps by passing an extra flag\nwhen traversing the delayed caps list.  Besides being a bit ugly,\nthat can also miss caps that are dirty but didn\u0027t result in a\ncap requeue: notably, mark_caps_dirty().\n\nSeparate the flushing into a separate helper, and traverse the\ncap_dirty list.\n\nThis also brings i_dirty_item in line with i_dirty_caps: we are\non the list IFF caps !\u003d 0.  We carry an inode ref IFF\ndirty_caps|flushing_caps !\u003d 0.\n\nLose the unused return value from __ceph_mark_caps_dirty().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cdc35f96277314bbfeefd0505410cabd69aebd8d",
      "tree": "296cdc331f4a8902f284a7cf72ba29529121a94f",
      "parents": [
        "f2cf418cec8d61df0651a0140a92a8c75246e14f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 14:24:19 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 14:43:56 2009 -0700"
      },
      "message": "ceph: move generic flushing code into helper\n\nBoth callers of __mark_caps_flushing() do the same work; move it\ninto the helper.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f2cf418cec8d61df0651a0140a92a8c75246e14f",
      "tree": "606533d3b5a41d75e6e1954aae1de94ef85df58b",
      "parents": [
        "c89136ea4253c73e89e97f5138bb22d97ad9f564"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 14:09:07 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 14:09:07 2009 -0700"
      },
      "message": "ceph: initialize sb-\u003es_bdi, bdi_unregister after kill_anon_super\n\nWriteback doesn\u0027t work without the bdi set, and writeback on\numount doesn\u0027t work if we unregister the bdi too early.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c89136ea4253c73e89e97f5138bb22d97ad9f564",
      "tree": "ba8080adfaa6f5b84eadd4d65eff70840f9dfe22",
      "parents": [
        "535bbb530764b1b2b3b732837f0e61e1baae7109"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 09:59:09 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 14 09:59:09 2009 -0700"
      },
      "message": "ceph: convert encode/decode macros to inlines\n\nThis avoids the fugly pass by reference and makes the code a bit easier\nto read.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "535bbb530764b1b2b3b732837f0e61e1baae7109",
      "tree": "9e1fae00cbfdae92638f049e20d14863abc33716",
      "parents": [
        "572033069dbc2cff8d4a2d2b34c576e1813fda70"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 13 12:55:26 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 13 12:55:26 2009 -0700"
      },
      "message": "ceph: add version field to message header\n\nThis makes it easier for individual message types to indicate\ntheir particular encoding, and make future changes backward\ncompatible.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "572033069dbc2cff8d4a2d2b34c576e1813fda70",
      "tree": "7fa9bc74fe1025108cc91715285af8e14aa6f883",
      "parents": [
        "8fc57da4d32767cc6096ecaed24636dabefd1dbc"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 21:52:34 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 12 10:29:44 2009 -0700"
      },
      "message": "ceph: remove unused CEPH_MSG_{OSD,MDS}_GETMAP\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8fc57da4d32767cc6096ecaed24636dabefd1dbc",
      "tree": "d69f095c5fb1ba62bf6d6b99c877b6c6c6a3db33",
      "parents": [
        "752727a1b21a462d6ef634d552f180ae692f8947"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 12 10:28:13 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Oct 12 10:29:24 2009 -0700"
      },
      "message": "ceph: ignore trailing data in monamp\n\nThis lets us extend the format more easily.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "752727a1b21a462d6ef634d552f180ae692f8947",
      "tree": "46e59f04e85e160641a71f64fcfbb899dfb7e438",
      "parents": [
        "13e38c8ae771d73bf6d1f0f98e35f99c0f0d48ff"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 16:38:45 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 16:39:30 2009 -0700"
      },
      "message": "ceph: add file layout validation\n\nThis tracks updates to code shared with userspace.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "13e38c8ae771d73bf6d1f0f98e35f99c0f0d48ff",
      "tree": "cdc48759a7edc26e34b00cc0ddffc6ae58bafaf4",
      "parents": [
        "266673db423e6ab247170d6c6d72ec36e530a911"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 16:36:34 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 16:39:27 2009 -0700"
      },
      "message": "ceph: update to mon client protocol v15\n\nThe mon request headers now include session_mon information that must\nbe properly initialized.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "266673db423e6ab247170d6c6d72ec36e530a911",
      "tree": "d86b9d3b3e34fbf2dcc64b21d73145fd962237ac",
      "parents": [
        "81b024e70fed635a2cf5a4bf911db1649bb005f5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 10:31:32 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 11:58:20 2009 -0700"
      },
      "message": "ceph: cancel osd requests before resending them\n\nThis ensures we don\u0027t submit the same request twice if we are kicking a\nspecific osd (as with an osd_reset), or when we hit a transient error and\nresend.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "81b024e70fed635a2cf5a4bf911db1649bb005f5",
      "tree": "67c949621bc90cf2cd2651992e11afb35d87724b",
      "parents": [
        "991abb6ecfc8edf9863aa6a3f43249e63f9d4d4e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 10:29:18 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 11:58:15 2009 -0700"
      },
      "message": "ceph: reset osd session on fault, not peer_reset\n\nThe peer_reset just takes longer (until we reconnect and discover the osd\ndropped the session... which it will).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "991abb6ecfc8edf9863aa6a3f43249e63f9d4d4e",
      "tree": "19484fb1965b1ee2cc61a5e7256d3a5aaba4c5fe",
      "parents": [
        "0ba6478df7c6bef0f4b2625554545f941f89fb97"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 08 22:22:37 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 11:58:11 2009 -0700"
      },
      "message": "ceph: fail gracefully on corrupt osdmap (bad pg_temp mapping)\n\nReturn an error and report a corrupt map instead of crying BUG().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0ba6478df7c6bef0f4b2625554545f941f89fb97",
      "tree": "2b99864e80174ab56cb0d0b42669e45e2c9d86cd",
      "parents": [
        "c1ea8823be69ebebaface912142190e910711984"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 08 16:57:16 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 11:58:07 2009 -0700"
      },
      "message": "ceph: revoke osd request message on request completion\n\nIf an osd has failed or returned and a request has been sent twice, it\u0027s\npossible to get a reply and unregister the request while the request\nmessage is queued for delivery.  Since the message references the caller\u0027s\npage vector, we need to revoke it before completing.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c1ea8823be69ebebaface912142190e910711984",
      "tree": "d834392aebd65a1d538e23b54b63172ca427f29c",
      "parents": [
        "0656d11ba6ffa3dee0e8916a1903f96185651217"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 08 16:55:47 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 09 11:58:03 2009 -0700"
      },
      "message": "ceph: fix osd request submission race\n\nThe osd request submission path registers the request, drops and retakes\nthe request_mutex, then sends it to the OSD.  A racing kick_requests could\nsent it during that interval, causing the same msg to be sent twice and\nBUGing in the msgr.\n\nFix by only sending the message if it hasn\u0027t been touched by other\nthreads.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0656d11ba6ffa3dee0e8916a1903f96185651217",
      "tree": "6ade91a503cdcddfd5ce3b047deb9303b0511594",
      "parents": [
        "e251e288082d5e89604eee1fef0c31bed1fe8f02"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 08 10:25:46 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Oct 08 10:39:08 2009 -0700"
      },
      "message": "ceph: renew mon subscription before it expires\n\nBe conservative: renew subscription once half the interval has expired.\n\nDo not reuse sub expiration to control hunting.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e251e288082d5e89604eee1fef0c31bed1fe8f02",
      "tree": "5da0110e270076238b4bba407de707337d4b723b",
      "parents": [
        "b28813a61d6ffe05ad353a86965607bb7a7fd60f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 07 16:38:19 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 07 16:38:55 2009 -0700"
      },
      "message": "ceph: fix mdsmap decoding when multiple mds\u0027s are present\n\nA misplaced sizeof() around namelen was throwing things off.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b28813a61d6ffe05ad353a86965607bb7a7fd60f",
      "tree": "f416befcd63c5b93b227df4280afb18e00335c27",
      "parents": [
        "b195befd9acb514dd2afb722e63fdd880ed63217"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 07 10:59:34 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 07 10:59:34 2009 -0700"
      },
      "message": "ceph: gracefully avoid empty crush buckets\n\nThis avoids a divide by zero when the input and/or map are\nmalformed.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b195befd9acb514dd2afb722e63fdd880ed63217",
      "tree": "90ad1904d05bef670fb2272d4c347ebc81f84002",
      "parents": [
        "fa0b72e9e2900ee87886aaf8bc4c4701be1e081d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 07 10:59:30 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 07 10:59:30 2009 -0700"
      },
      "message": "ceph: include preferred_osd in file layout virtual xattr\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "fa0b72e9e2900ee87886aaf8bc4c4701be1e081d",
      "tree": "61fd8a0bf6dd27a0ae1bc11bd45e171aefa46fda",
      "parents": [
        "e324b8f991679a43e09dd13500bf1988c0bfc0ea"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 07 10:59:10 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Oct 07 10:59:10 2009 -0700"
      },
      "message": "ceph: show meaningful version on module load\n\nKill the old git revision; print the ceph version and protocol\nversions instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e324b8f991679a43e09dd13500bf1988c0bfc0ea",
      "tree": "2cba0a3ce989db8896bcee2cf2a8327dc4fef3df",
      "parents": [
        "9030aaf9bf0a1eee47a154c316c789e959638b0f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 12:20:56 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 12:21:17 2009 -0700"
      },
      "message": "ceph: document shared files in README\n\nDocument files shared between kernel and user code trees.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9030aaf9bf0a1eee47a154c316c789e959638b0f",
      "tree": "bb6dbc96fd181fd3883157277c4301edfaaf5179",
      "parents": [
        "76aa844d5b2fb8c839180d3f5874e333b297e5fd"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:15 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:15 2009 -0700"
      },
      "message": "ceph: Kconfig, Makefile\n\nKconfig options and Makefile.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "76aa844d5b2fb8c839180d3f5874e333b297e5fd",
      "tree": "f72a83bb98e19629382398b5026296cef9a52d23",
      "parents": [
        "8f4e91dee2a245e4be6942f4a8d83a769e13a47d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:14 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:14 2009 -0700"
      },
      "message": "ceph: debugfs\n\nBasic state information is available via /sys/kernel/debug/ceph,\nincluding instances of the client, fsids, current monitor, mds and osd\nmaps, outstanding server requests, and hooks to adjust debug levels.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8f4e91dee2a245e4be6942f4a8d83a769e13a47d",
      "tree": "6bbb4ea1a42186a0d371dd5c1a1fd03e55f39dbf",
      "parents": [
        "a8e63b7d51cce4557ee7bcd8f51be5cae8547d20"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:14 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:14 2009 -0700"
      },
      "message": "ceph: ioctls\n\nA few Ceph ioctls for getting and setting file layout (striping)\nparameters, and learning the identity and network address of the OSD a\ngiven region of a file is stored on.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a8e63b7d51cce4557ee7bcd8f51be5cae8547d20",
      "tree": "ffb158eada99d022a5837366f0d2ca1ce6f28fd6",
      "parents": [
        "8fc91fd85950d106883852c6d215614ec28cc92d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:13 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:13 2009 -0700"
      },
      "message": "ceph: nfs re-export support\n\nBasic NFS re-export support is included.  This mostly works.  However,\nCeph\u0027s MDS design precludes the ability to generate a (small)\nfilehandle that will be valid forever, so this is of limited utility.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8fc91fd85950d106883852c6d215614ec28cc92d",
      "tree": "d2367bb82957da5ddfb48f64c6fd14e0dac6b4f8",
      "parents": [
        "31b8006e1d79e127a776c9414e3e0b5f9508047e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:13 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:13 2009 -0700"
      },
      "message": "ceph: message pools\n\nThe msgpool is a basic mempool_t-like structure to preallocate\nmessages we expect to receive over the wire.  This ensures we have the\nnecessary memory preallocated to process replies to requests, or to\nprocess unsolicited messages from various servers.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "31b8006e1d79e127a776c9414e3e0b5f9508047e",
      "tree": "9c56f678f8dce4e25690461b078409d657731f77",
      "parents": [
        "963b61eb041e8850807d95f8d7a4c6a454c45000"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:13 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:13 2009 -0700"
      },
      "message": "ceph: messenger library\n\nA generic message passing library is used to communicate with all\nother components in the Ceph file system.  The messenger library\nprovides ordered, reliable delivery of messages between two nodes in\nthe system.\n\nThis implementation is based on TCP.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "963b61eb041e8850807d95f8d7a4c6a454c45000",
      "tree": "00d7926c7b2102c8c19ec9abd95b241b8bff1b7a",
      "parents": [
        "a8599bd821d084d04a3290fffae1071624ec00ea"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:12 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:12 2009 -0700"
      },
      "message": "ceph: snapshot management\n\nCeph snapshots rely on client cooperation in determining which\noperations apply to which snapshots, and appropriately flushing\nsnapshotted data and metadata back to the OSD and MDS clusters.\nBecause snapshots apply to subtrees of the file hierarchy and can be\ncreated at any time, there is a fair bit of bookkeeping required to\nmake this work.\n\nPortions of the hierarchy that belong to the same set of snapshots\nare described by a single \u0027snap realm.\u0027  A \u0027snap context\u0027 describes\nthe set of snapshots that exist for a given file or directory.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "a8599bd821d084d04a3290fffae1071624ec00ea",
      "tree": "e2323ebfad9a49fdb579ff87d1ec3a8694e8c0f5",
      "parents": [
        "ba75bb98cfb93b62c54af25bf67ff90857264bbe"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:12 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:12 2009 -0700"
      },
      "message": "ceph: capability management\n\nThe Ceph metadata servers control client access to inode metadata and\nfile data by issuing capabilities, granting clients permission to read\nand/or write both inode field and file data to OSDs (storage nodes).\nEach capability consists of a set of bits indicating which operations\nare allowed.\n\nIf the client holds a *_SHARED cap, the client has a coherent value\nthat can be safely read from the cached inode.\n\nIn the case of a *_EXCL (exclusive) or FILE_WR capabilities, the client\nis allowed to change inode attributes (e.g., file size, mtime), note\nits dirty state in the ceph_cap, and asynchronously flush that\nmetadata change to the MDS.\n\nIn the event of a conflicting operation (perhaps by another client),\nthe MDS will revoke the conflicting client capabilities.\n\nIn order for a client to cache an inode, it must hold a capability\nwith at least one MDS server.  When inodes are released, release\nnotifications are batched and periodically sent en masse to the MDS\ncluster to release server state.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ba75bb98cfb93b62c54af25bf67ff90857264bbe",
      "tree": "4a966828835dd4639d25442b932072914e77fc9c",
      "parents": [
        "5ecc0a0f8128b1876e8614638deaed49cc8b174c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:11 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:11 2009 -0700"
      },
      "message": "ceph: monitor client\n\nThe monitor cluster is responsible for managing cluster membership\nand state.  The monitor client handles what minimal interaction\nthe Ceph client has with it: checking for updated versions of the\nMDS and OSD maps, getting statfs() information, and unmounting.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5ecc0a0f8128b1876e8614638deaed49cc8b174c",
      "tree": "6b1511b0e3ec2a349a24faebc375548b14ee137a",
      "parents": [
        "f24e9980eb860d8600cbe5ef3d2fd9295320d229"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:11 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:11 2009 -0700"
      },
      "message": "ceph: CRUSH mapping algorithm\n\nCRUSH is a pseudorandom data distribution function designed to map\ninputs onto a dynamic hierarchy of devices, while minimizing the\nextent to which inputs are remapped when the devices are added or\nremoved.  It includes some features that are specifically useful for\nstorage, most notably the ability to map each input onto a set of N\ndevices that are separated across administrator-defined failure\ndomains.  CRUSH is used to distribute data across the cluster of Ceph\nstorage nodes.\n\nMore information about CRUSH can be found in this paper:\n\n    http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f24e9980eb860d8600cbe5ef3d2fd9295320d229",
      "tree": "10f43450ad2cd4d799dd02d33c02d4ed8bef39d6",
      "parents": [
        "2f2dc053404febedc9c273452d9d518fb31fde72"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:10 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:10 2009 -0700"
      },
      "message": "ceph: OSD client\n\nThe OSD client is responsible for reading and writing data from/to the\nobject storage pool.  This includes determining where objects are\nstored in the cluster, and ensuring that requests are retried or\nredirected in the event of a node failure or data migration.\n\nIf an OSD does not respond before a timeout expires, keepalive\nmessages are sent across the lossless, ordered communications channel\nto ensure that any break in the TCP is discovered.  If the session\ndoes reset, a reconnection is attempted and affected requests are\nresent (by the message transport layer).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2f2dc053404febedc9c273452d9d518fb31fde72",
      "tree": "286ff35153d0b52349e035a69f3f795fdcb0afb6",
      "parents": [
        "1d3576fd10f0d7a104204267b81cf84a07028dad"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:09 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:09 2009 -0700"
      },
      "message": "ceph: MDS client\n\nThe MDS (metadata server) client is responsible for submitting\nrequests to the MDS cluster and parsing the response.  We decide which\nMDS to submit each request to based on cached information about the\ncurrent partition of the directory hierarchy across the cluster.  A\nstateful session is opened with each MDS before we submit requests to\nit, and a mutex is used to control the ordering of messages within\neach session.\n\nAn MDS request may generate two responses.  The first indicates the\noperation was a success and returns any result.  A second reply is\nsent when the operation commits to disk.  Note that locking on the MDS\nensures that the results of updates are visible only to the updating\nclient before the operation commits.  Requests are linked to the\ncontaining directory so that an fsync will wait for them to commit.\n\nIf an MDS fails and/or recovers, we resubmit requests as needed.  We\nalso reconnect existing capabilities to a recovering MDS to\nreestablish that shared session state.  Old dentry leases are\ninvalidated.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1d3576fd10f0d7a104204267b81cf84a07028dad",
      "tree": "4567d205f28255ca7211b82c962ad42fd55e733b",
      "parents": [
        "124e68e74099090e28da5518f73fda878e7e8232"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:09 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:09 2009 -0700"
      },
      "message": "ceph: address space operations\n\nThe ceph address space methods are concerned primarily with managing\nthe dirty page accounting in the inode, which (among other things)\nmust keep track of which snapshot context each page was dirtied in,\nand ensure that dirty data is written out to the OSDs in snapshort\norder.\n\nA writepage() on a page that is not currently writeable due to\nsnapshot writeback ordering constraints is ignored (it was presumably\ncalled from kswapd).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "124e68e74099090e28da5518f73fda878e7e8232",
      "tree": "392c4861271b7c5ea1049832828c42a4c6ec9916",
      "parents": [
        "2817b000b02c5f0c05af67c01fb2684e1381d6ef"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:08 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:08 2009 -0700"
      },
      "message": "ceph: file operations\n\nFile open and close operations, and read and write methods that ensure\nwe have obtained the proper capabilities from the MDS cluster before\nperforming IO on a file.  We take references on held capabilities for\nthe duration of the read/write to avoid prematurely releasing them\nback to the MDS.\n\nWe implement two main paths for read and write: one that is buffered\n(and uses generic_aio_{read,write}), and one that is fully synchronous\nand blocking (operating either on a __user pointer or, if O_DIRECT,\ndirectly on user pages).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "2817b000b02c5f0c05af67c01fb2684e1381d6ef",
      "tree": "32efd3c3cddde6824d4f1e44deb5e7694899dbe1",
      "parents": [
        "355da1eb7a1f91c276b991764e951bbcd8047599"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:08 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:08 2009 -0700"
      },
      "message": "ceph: directory operations\n\nDirectory operations, including lookup, are defined here.  We take\nadvantage of lookup intents when possible.  For the most part, we just\nneed to build the proper requests for the metadata server(s) and\npass things off to the mds_client.\n\nThe results of most operations are normally incorporated into the\nclient\u0027s cache when the reply is parsed by ceph_fill_trace().\nHowever, if the MDS replies without a trace (e.g., when retrying an\nupdate after an MDS failure recovery), some operation-specific cleanup\nmay be needed.\n\nWe can validate cached dentries in two ways.  A per-dentry lease may\nbe issued by the MDS, or a per-directory cap may be issued that acts\nas a lease on the entire directory.  In the latter case, a \u0027gen\u0027 value\nis used to determine which dentries belong to the currently leased\ndirectory contents.\n\nWe normally prepopulate the dcache and icache with readdir results.\nThis makes subsequent lookups and getattrs avoid any server\ninteraction.  It also lets us satisfy readdir operation by peeking at\nthe dcache IFF we hold the per-directory cap/lease, previously\nperformed a readdir, and haven\u0027t dropped any of the resulting\ndentries.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "355da1eb7a1f91c276b991764e951bbcd8047599",
      "tree": "18b30761cbbeaa2b104957f5d50fb4c5296a52c5",
      "parents": [
        "16725b9d2a2e3d0fd2b0034482e2eb0a2d78050f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:08 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:08 2009 -0700"
      },
      "message": "ceph: inode operations\n\nInode cache and inode operations.  We also include routines to\nincorporate metadata structures returned by the MDS into the client\ncache, and some helpers to deal with file capabilities and metadata\nleases.  The bulk of that work is done by fill_inode() and\nfill_trace().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "16725b9d2a2e3d0fd2b0034482e2eb0a2d78050f",
      "tree": "ced2f4d3dbe13c7a9c64510d6ec235b703191a5c",
      "parents": [
        "c30dbb9cc7fc75ab1d0ee6fb084ba4684f7a665d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:07 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:07 2009 -0700"
      },
      "message": "ceph: super.c\n\nMount option parsing, client setup and teardown, and a few odds and\nends (e.g., statfs).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c30dbb9cc7fc75ab1d0ee6fb084ba4684f7a665d",
      "tree": "7e702615046c0c866bb0229c731f86916c526115",
      "parents": [
        "de57606c23afded22202825b3db8a5d61859f198"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:07 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:07 2009 -0700"
      },
      "message": "ceph: ref counted buffer\n\nstruct ceph_buffer is a simple ref-counted buffer.  We transparently\nchoose between kmalloc for small buffers and vmalloc for large ones.\n\nThis is currently used only for allocating memory for xattr data.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "de57606c23afded22202825b3db8a5d61859f198",
      "tree": "87ca160cf9655161dbd3c42b1bdc23c4b5584e1d",
      "parents": [
        "0dee3c28af2fbe22ca62739a7f57da5435d35793"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:07 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:07 2009 -0700"
      },
      "message": "ceph: client types\n\nWe first define constants, types, and prototypes for the kernel client\nproper.\n\nA few subsystems are defined separately later: the MDS, OSD, and\nmonitor clients, and the messaging layer.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0dee3c28af2fbe22ca62739a7f57da5435d35793",
      "tree": "dd5992a4abc86c5931ce36258b972dbf48ab355d",
      "parents": [
        "7ad920b504a980adcab4d3f6b85695526e6fd7bb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:06 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:06 2009 -0700"
      },
      "message": "ceph: on-wire types\n\nThese headers describe the types used to exchange messages between the\nCeph client and various servers.  All types are little-endian and\npacked.  These headers are shared between the kernel and userspace, so\nall types are in terms of e.g. __u32.\n\nAdditionally, we define a few magic values to identify the current\nversion of the protocol(s) in use, so that discrepancies to be\ndetected on mount.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7ad920b504a980adcab4d3f6b85695526e6fd7bb",
      "tree": "213e1e1dc9ab8c392b9168a11130af135114fe8b",
      "parents": [
        "17d857be649a21ca90008c6dc425d849fa83db5c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:05 2009 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Oct 06 11:31:05 2009 -0700"
      },
      "message": "ceph: documentation\n\nMount options, syntax.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "17d857be649a21ca90008c6dc425d849fa83db5c",
      "tree": "031bc7fd6f6df704cb7aa114bf051cc1561f9c4f",
      "parents": [
        "b3b75cef705708402b5d381a30fa17f89e0549b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 14:57:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 14:57:48 2009 -0700"
      },
      "message": "Linux 2.6.32-rc1\n"
    },
    {
      "commit": "b3b75cef705708402b5d381a30fa17f89e0549b4",
      "tree": "aa663da52c34201559560ef9b20049646fd1af0e",
      "parents": [
        "f278a2f7bbc2239f479eaf63d0b3ae573b1d746c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 14:46:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 14:46:05 2009 -0700"
      },
      "message": "alpha: Fix duplicate \u003casm/thread_info.h\u003e include\n\n.. duplicated by merging the same fix twice, for details see commit\n0d9df2515dbceb67d343c0f10fd3ff218380d524 (\"Merge\ngit://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes\")\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f278a2f7bbc2239f479eaf63d0b3ae573b1d746c",
      "tree": "c768ba0ccfefa0be7d9e330b3d86100e0c48472b",
      "parents": [
        "569ec4cc779c8aae03a4659939d08822c9e4a242"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Sun Sep 27 16:00:42 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 13:35:16 2009 -0700"
      },
      "message": "tty: Fix regressions caused by commit b50989dc\n\nThe following commit made console open fails while booting:\n\n\tcommit b50989dc444599c8b21edc23536fc305f4e9b7d5\n\tAuthor: Alan Cox \u003calan@linux.intel.com\u003e\n\tDate:   Sat Sep 19 13:13:22 2009 -0700\n\n\ttty: make the kref destructor occur asynchronously\n\nDue to tty release routines run in a workqueue now, error like the\nfollowing will be reported while booting:\n\nINIT open /dev/console Input/output error\n\nIt also causes hibernation regression to appear as reported at\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d14229\n\nThe reason is that now there\u0027s latency issue with closing, but when\nwe open a \"closing not finished\" tty, -EIO will be returned.\n\nFix it as per the following Alan\u0027s suggestion:\n\n  Fun but it\u0027s actually not a bug and the fix is wrong in itself as\n  the port may be closing but not yet being destructed, in which case\n  it seems to do the wrong thing.  Opening a tty that is closing (and\n  could be closing for long periods) is supposed to return -EIO.\n\n  I suspect a better way to deal with this and keep the old console\n  timing is to split tty-\u003eshutdown into two functions.\n\n  tty-\u003eshutdown() - called synchronously just before we dump the tty\n  onto the waitqueue for destruction\n\n  tty-\u003ecleanup() - called when the destructor runs.\n\n  We would then do the shutdown part which can occur in IRQ context\n  fine, before queueing the rest of the release (from tty-\u003emagic \u003d 0\n  ...  the end) to occur asynchronously\n\n  The USB update in -next would then need a call like\n\n       if (tty-\u003ecleanup)\n               tty-\u003ecleanup(tty);\n\n  at the top of the async function and the USB shutdown to be split\n  between shutdown and cleanup as the USB resource cleanup and final\n  tidy cannot occur synchronously as it needs to sleep.\n\n  In other words the logic becomes\n\n       final kref put\n               make object unfindable\n\n       async\n               clean it up\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\n[ rjw: Rebased on top of 2.6.31-git, reworked the changelog. ]\nSigned-off-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\n[ Changed serial naming to match new rules, dropped tty_shutdown as per\n  comments from Alan Stern  - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "569ec4cc779c8aae03a4659939d08822c9e4a242",
      "tree": "00feee49785c9485e25490a81be9da027c3eb1d8",
      "parents": [
        "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:58:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:58:36 2009 -0700"
      },
      "message": "ACPI: kill \"unused variable ‘i’\" warning\n\nCommit 3d5b6fb47a8e68fa311ca2c3447e7f8a7c3a9cf3 (\"ACPI: Kill overly\nverbose \"power state\" log messages\") removed the actual use of this\nvariable, but didn\u0027t remove the variable itself, resulting in build\nwarnings like\n\n  drivers/acpi/processor_idle.c: In function ‘acpi_processor_power_init’:\n  drivers/acpi/processor_idle.c:1169: warning: unused variable ‘i’\n\nJust get rid of the now unused variable.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f5071020d5ec89b5d095aa488db604adb921aec",
      "tree": "8d70c104b436d1ab6bdadf4cd618386802c37316",
      "parents": [
        "73964f6bc8e378715887592abe8a512f403db6a8",
        "7403f41f19574d6805197e9b97dfa7592003be10"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 10:39:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 10:39:04 2009 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  hrtimer: Eliminate needless reprogramming of clock events device\n"
    },
    {
      "commit": "73964f6bc8e378715887592abe8a512f403db6a8",
      "tree": "c4aaab48d36ed06243542518ff644c654bdaf586",
      "parents": [
        "9d98ece16f1a1df0f456a2ee9429d03e82e839a2",
        "e56d953d190061938b31cabbe01b7f3d76c60bd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 10:38:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 10:38:48 2009 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:\n  ACPI: IA64\u003dy ACPI\u003dn build fix\n  ACPI: Kill overly verbose \"power state\" log messages\n  ACPI: fix Compaq Evo N800c (Pentium 4m) boot hang regression\n  ACPI: Clarify resource conflict message\n  thinkpad-acpi: fix CONFIG_THINKPAD_ACPI_HOTKEY_POLL build problem\n"
    },
    {
      "commit": "9d98ece16f1a1df0f456a2ee9429d03e82e839a2",
      "tree": "3fabf9162cf855a4440bba7ab482360b77f1d7f7",
      "parents": [
        "ba77d20ff56028128259a9282d06b938073f169c",
        "d949f36f1865c60239d4265b50c4b75354fcb8f3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 10:38:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 10:38:34 2009 -0700"
      },
      "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: Fix hwpoison code related build failure on 32-bit NUMAQ\n"
    },
    {
      "commit": "e56d953d190061938b31cabbe01b7f3d76c60bd0",
      "tree": "a086109960584c7f88d8936eac76ad3c30274f4e",
      "parents": [
        "3d5b6fb47a8e68fa311ca2c3447e7f8a7c3a9cf3"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Sep 27 04:17:21 2009 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Sep 27 04:17:21 2009 -0400"
      },
      "message": "ACPI: IA64\u003dy ACPI\u003dn build fix\n\nia64\u0027s sim_defconfig uses CONFIG_ACPI\u003dn\nwhich now #define\u0027s acpi_disabled in \u003clinux/acpi.h\u003e\n\nSo we shouldn\u0027t re-define it here in \u003casm/acpi.h\u003e\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3d5b6fb47a8e68fa311ca2c3447e7f8a7c3a9cf3",
      "tree": "bd82e3774eb6aeee253c49bc8e10a723f8ff816a",
      "parents": [
        "3e2ada5867b7e9fa0b296d30fa8f3726ebd0a8b7"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Thu Sep 24 14:52:36 2009 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Sep 27 04:01:40 2009 -0400"
      },
      "message": "ACPI: Kill overly verbose \"power state\" log messages\n\nI was recently lucky enough to get a 64-CPU system, so my kernel log\nends up with 64 lines like:\n\n    ACPI: CPU0 (power states: C1[C1] C2[C3])\n\nThis is pretty useless clutter because this info is already available\nafter boot from both /sys/devices/system/cpu/cpu*/cpuidle/state?/ as\nwell as /proc/acpi/processor/CPU*/power.\n\nSo just delete the code that prints the C-states in processor_idle.c.\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d949f36f1865c60239d4265b50c4b75354fcb8f3",
      "tree": "176a784ce7f6a71dc3ff544b70606f71025a13d8",
      "parents": [
        "0d9df2515dbceb67d343c0f10fd3ff218380d524"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 09:35:07 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Sep 27 09:55:11 2009 +0200"
      },
      "message": "x86: Fix hwpoison code related build failure on 32-bit NUMAQ\n\nThis build failure triggers:\n\n In file included from include/linux/suspend.h:8,\n                 from arch/x86/kernel/asm-offsets_32.c:11,\n                 from arch/x86/kernel/asm-offsets.c:2:\n include/linux/mm.h:503:2: error: #error SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH \u003e BITS_PER_LONG - NR_PAGEFLAGS\n\nBecause due to the hwpoison page flag we ran out of page\nflags on 32-bit.\n\nDont turn on hwpoison on 32-bit NUMA (it\u0027s rare in any\ncase).\n\nAlso clean up the Kconfig dependencies in the generic MM\ncode by introducing ARCH_SUPPORTS_MEMORY_FAILURE.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3e2ada5867b7e9fa0b296d30fa8f3726ebd0a8b7",
      "tree": "ab7031e3e640892c04d85f093a7b01ff780f2b1f",
      "parents": [
        "14f03343ad1080c2fea29ab2c13f05b976c4584e"
      ],
      "author": {
        "name": "Zhao Yakui",
        "email": "yakui.zhao@intel.com",
        "time": "Sun Sep 27 03:30:51 2009 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Sep 27 03:43:42 2009 -0400"
      },
      "message": "ACPI: fix Compaq Evo N800c (Pentium 4m) boot hang regression\n\nDon\u0027t disable ARB_DISABLE when the familary ID is 0x0F.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d14211\n\nThis was a 2.6.31 regression, and so this patch\nneeds to be applied to 2.6.31.stable\n\nSigned-off-by: Zhao Yakui \u003cyakui.zhao@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "14f03343ad1080c2fea29ab2c13f05b976c4584e",
      "tree": "ec3b36bc0a274ea382f5816a6919d82a59ac110f",
      "parents": [
        "b684a3637e0887683a0a3d6fd471fc41d7c1606a"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Tue Sep 08 15:31:46 2009 +0200"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Sep 27 03:12:13 2009 -0400"
      },
      "message": "ACPI: Clarify resource conflict message\n\nThe message \"ACPI: Device needs an ACPI driver\" is misleading. The\ndevice _may_ need an ACPI driver, if the BIOS implemented a custom\nAPI for the device in question (which, AFAIK, can\u0027t be checked.) If\nnot, then either a generic ACPI driver may be used (for example\n\"thermal\"), or nothing can be done (other than a white list).\n\nI propose to reword the message to:\n\nACPI: If an ACPI driver is available for this device, you should use\nit instead of the native driver\n\nwhich I think is more correct. Comments and suggestions welcome.\n\nI also added a message warning about possible problems and system\ninstability when users pass acpi_enforce_resources\u003dlax, as suggested\nby Len.\n\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nCc: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: Alan Jenkins \u003csourcejedi.lkml@googlemail.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "b684a3637e0887683a0a3d6fd471fc41d7c1606a",
      "tree": "8dd84010d99afb089139098044226f53e08e1053",
      "parents": [
        "0d9df2515dbceb67d343c0f10fd3ff218380d524"
      ],
      "author": {
        "name": "Henrique de Moraes Holschuh",
        "email": "hmh@hmh.eng.br",
        "time": "Sat Sep 26 21:42:49 2009 -0300"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Sep 27 02:13:06 2009 -0400"
      },
      "message": "thinkpad-acpi: fix CONFIG_THINKPAD_ACPI_HOTKEY_POLL build problem\n\nFix this problem when CONFIG_THINKPAD_ACPI_HOTKEY_POLL is undefined:\n\n  CHECK   drivers/platform/x86/thinkpad_acpi.c\ndrivers/platform/x86/thinkpad_acpi.c:1968:21: error: not an lvalue\n  CC [M]  drivers/platform/x86/thinkpad_acpi.o\ndrivers/platform/x86/thinkpad_acpi.c: In function \u0027tpacpi_hotkey_driver_mask_set\u0027:\ndrivers/platform/x86/thinkpad_acpi.c:1968: error: lvalue required as left operand of assignment\n\nReported-by: Noah Dain \u003cnoahdain@gmail.com\u003e\nReported-by: Audrius Kazukauskas \u003caudrius@neutrino.lt\u003e\nSigned-off-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ba77d20ff56028128259a9282d06b938073f169c",
      "tree": "a88789b94dd8d404aa2747b9974768166c7baa67",
      "parents": [
        "0d9df2515dbceb67d343c0f10fd3ff218380d524",
        "2c86963b093c1a0887dfc6b32c6e5ea3a80f2922"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 13:39:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 13:39:21 2009 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:\n  [IA64] implement ticket locks for Itanium\n"
    },
    {
      "commit": "0d9df2515dbceb67d343c0f10fd3ff218380d524",
      "tree": "9b0f96173e1f63eacb72d7a527177771e6ff46a1",
      "parents": [
        "cce1d9f23213f3a8a43b6038df84a665aa8d8612",
        "de078ef55c74d02ee93d44513da5ee88a089d71d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:51:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:51:54 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:\n  alpha: fix build after vmlinux.lds.S cleanup\n  mips: fix build of vmlinux.lds\n"
    },
    {
      "commit": "cce1d9f23213f3a8a43b6038df84a665aa8d8612",
      "tree": "0ef75bc1641f7202763591a91fc6030898470f7b",
      "parents": [
        "d910fc786014ac3fb72f837c329c112e0c7a9aea",
        "f16a5dba01ed942f427f56b0d1128251721275a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:50:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:50:47 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.o-hand.com/linux-rpurdie-leds\n\n* \u0027for-linus\u0027 of git://git.o-hand.com/linux-rpurdie-leds:\n  leds: move leds-clevo-mail\u0027s probe function to .devinit.text\n  leds: Fix indentation in LEDS_LP3944 Kconfig entry\n  leds: Fix LED names \n  leds: Fix leds-pca9532 whitespace issues\n  leds: fix coding style in worker thread code for ledtrig-gpio.\n  leds: gpio-leds: fix typographics fault\n  leds: Add WM831x status LED driver\n"
    },
    {
      "commit": "d910fc786014ac3fb72f837c329c112e0c7a9aea",
      "tree": "32f6c6eb4fdcf60fc0384f94502862cb24b8ab38",
      "parents": [
        "1d1764c39815db55e10b2d78732db4d6dd9d6039",
        "a7998cecf5073e0755feeb7fd50b2bdc08dea6bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:49:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:49:42 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.o-hand.com/linux-rpurdie-backlight\n\n* \u0027for-linus\u0027 of git://git.o-hand.com/linux-rpurdie-backlight:\n  backlight: new driver for ADP5520/ADP5501 MFD PMICs\n  backlight: extend event support to also support poll()\n  backlight/eeepc-laptop: Update the backlight state when we change brightness\n  backlight/acpi: Update the backlight state when we change brightness\n  backlight: Allow drivers to update the core, and generate events on changes\n  backlight: switch to da903x driver to dev_pm_ops\n  backlight: Add support for the Avionic Design Xanthos backlight device.\n  backlight: spi driver for LMS283GF05 LCD\n  backlight: move hp680-bl\u0027s probe function to .devinit.text\n  backlight: Add support for new Apple machines.\n  backlight: mbp_nvidia_bl: add support for MacBookAir 1,1\n  backlight: Add WM831x backlight driver\n\nTrivial conflicts due to \u0027#ifdef CONFIG_PM\u0027 differences in\ndrivers/video/backlight/da903x_bl.c\n"
    },
    {
      "commit": "1d1764c39815db55e10b2d78732db4d6dd9d6039",
      "tree": "4511bd9b696d86eae2922239407a9655abf6c80b",
      "parents": [
        "3b383767c41be070cae24875789d97b42a3e71a8"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Sep 26 19:37:22 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:17:19 2009 -0700"
      },
      "message": "headers: kref.h redux\n\n* remove asm/atomic.h inclusion from kref.h -- not needed, linux/types.h\n  is enough for atomic_t\n* remove linux/kref.h inclusion from files which do not need it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b383767c41be070cae24875789d97b42a3e71a8",
      "tree": "414a2c3aa750fd25b84f477e2b9cdca17086602a",
      "parents": [
        "49e70dda359660f20fa21d03bfae132e15c78195",
        "9beba3c54dd180a26a1da2027cfbe9edfaf9c40e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:15:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:15:53 2009 -0700"
      },
      "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  futex: Add memory barrier commentary to futex_wait_queue_me()\n  futex: Fix wakeup race by setting TASK_INTERRUPTIBLE before queue_me()\n  futex: Correct futex_q woken state commentary\n  futex: Make function kernel-doc commentary consistent\n  futex: Correct queue_me and unqueue_me commentary\n  futex: Correct futex_wait_requeue_pi() commentary\n"
    },
    {
      "commit": "49e70dda359660f20fa21d03bfae132e15c78195",
      "tree": "a21498cdd419bbfd08729fed7d161a4d68c865c9",
      "parents": [
        "179b9145d58eb7158d4053a8308b9fc4608a6d6b",
        "725b13685c61168f71825b3fb67d96d2d7aa3b0f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:15:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:15:33 2009 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf tools: Dont use openat()\n  perf tools: Fix buffer allocation\n  perf tools: .gitignore +\u003d perf*.html\n  perf tools: Handle relative paths while loading module symbols\n  perf tools: Fix module symbol loading bug\n  perf_event, x86: Fix \u0027perf sched record\u0027 crashing the machine\n  perf_event: Update PERF_EVENT_FORK header definition\n  perf stat: Fix zero total printouts\n"
    },
    {
      "commit": "179b9145d58eb7158d4053a8308b9fc4608a6d6b",
      "tree": "6f63a64c2811135e6edca885f5a2c79f50ba7465",
      "parents": [
        "4187e7e9f1294afdcb3be5d00aa74412a1c2ded8",
        "89133f93508137231251543d1732da638e6022e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:14:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:14:41 2009 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  clocksource: Resume clocksource without taking the clocksource mutex\n"
    },
    {
      "commit": "4187e7e9f1294afdcb3be5d00aa74412a1c2ded8",
      "tree": "1d4b3447cb2a7407d97e51ee5c48069d6b92c9e3",
      "parents": [
        "5bb241b325d7d91bc4ec0b394f31dffb17fe7978",
        "115e8a288252ef748f34f8b7c1115c563d702eda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:13:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:13:54 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  modules, tracing: Remove stale struct marker signature from module_layout()\n  tracing/workqueue: Use %pf in workqueue trace events\n  tracing: Fix a comment and a trivial format issue in tracepoint.h\n  tracing: Fix failure path in ftrace_regex_open()\n  tracing: Fix failure path in ftrace_graph_write()\n  tracing: Check the return value of trace_get_user()\n  tracing: Fix off-by-one in trace_get_user()\n"
    },
    {
      "commit": "5bb241b325d7d91bc4ec0b394f31dffb17fe7978",
      "tree": "1bd68903871185173c47a95fef1bf76c848a1c62",
      "parents": [
        "76e0134f4154aeadac833c2daea32102c64c0bb0",
        "704daf55c7297e727021063cb5d8ba1c55b84426"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:13:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:13:35 2009 -0700"
      },
      "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: Remove redundant non-NUMA topology functions\n  x86: early_printk: Protect against using the same device twice\n  x86: Reduce verbosity of \"PAT enabled\" kernel message\n  x86: Reduce verbosity of \"TSC is reliable\" message\n  x86: mce: Use safer ways to access MCE registers\n  x86: mce, inject: Use real inject-msg in raise_local\n  x86: mce: Fix thermal throttling message storm\n  x86: mce: Clean up thermal throttling state tracking code\n  x86: split NX setup into separate file to limit unstack-protected code\n  xen: check EFER for NX before setting up GDT mapping\n  x86: Cleanup linker script using new linker script macros.\n  x86: Use section .data.page_aligned for the idt_table.\n  x86: convert to use __HEAD and HEAD_TEXT macros.\n  x86: convert compressed loader to use __HEAD and HEAD_TEXT macros.\n  x86: fix fragile computation of vsyscall address\n"
    },
    {
      "commit": "76e0134f4154aeadac833c2daea32102c64c0bb0",
      "tree": "0b0fe59fd655a7ca43b77629f3ba98e6cc876db2",
      "parents": [
        "bfebb1406329667f2cccb50fad1de87f573b2c1a",
        "e96c9284bdffa1f1d39a502c3d3b71fd8cce7014"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:12:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 26 10:12:03 2009 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (32 commits)\n  ACPI: i2c-scmi: don\u0027t use acpi_device_uid()\n  ACPI: simplify building device HID/CID list\n  ACPI: remove acpi_device_uid() and related stuff\n  ACPI: remove acpi_device.flags.hardware_id\n  ACPI: remove acpi_device.flags.compatible_ids\n  ACPI: maintain a single list of _HID and _CID IDs\n  ACPI: make sure every acpi_device has an ID\n  ACPI: use acpi_device_hid() when possible\n  ACPI: fix synthetic HID for \\_SB_\n  ACPI: handle re-enumeration, when acpi_devices might already exist\n  ACPI: factor out device type and status checking\n  ACPI: add acpi_bus_get_status_handle()\n  ACPI: use acpi_walk_namespace() to enumerate devices\n  ACPI: identify device tree root by null parent pointer, not ACPI_BUS_TYPE\n  ACPI: enumerate namespace before adding functional fixed hardware devices\n  ACPI: convert acpi_bus_scan() to operate on an acpi_handle\n  ACPI: add acpi_bus_get_parent() and remove \"parent\" arguments\n  ACPI: remove unnecessary argument checking\n  ACPI: remove redundant \"type\" arguments\n  ACPI: remove acpi_device_set_context() \"type\" argument\n  ...\n"
    }
  ],
  "next": "bfebb1406329667f2cccb50fad1de87f573b2c1a"
}
