)]}'
{
  "log": [
    {
      "commit": "b657c95c11088d77fc1bfc9c84d940f778bf9d12",
      "tree": "7e52e73aabbdbc55f644ad26735edc25a652ac32",
      "parents": [
        "a68979b857283daf4acc405e476dcc8812a3ff2b"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Nov 13 14:49:11 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:52 2009 -0800"
      },
      "message": "ocfs2: Wrap inode block reads in a dedicated function.\n\nThe ocfs2 code currently reads inodes off disk with a simple\nocfs2_read_block() call.  Each place that does this has a different set\nof sanity checks it performs.  Some check only the signature.  A couple\nvalidate the block number (the block read vs di-\u003ei_blkno).  A couple\nothers check for VALID_FL.  Only one place validates i_fs_generation.  A\ncouple check nothing.  Even when an error is found, they don\u0027t all do\nthe same thing.\n\nWe wrap inode reading into ocfs2_read_inode_block().  This will validate\nall the above fields, going readonly if they are invalid (they never\nshould be).  ocfs2_read_inode_block_full() is provided for the places\nthat want to pass read_block flags.  Every caller is passing a struct\ninode with a valid ip_blkno, so we don\u0027t need a separate blkno argument\neither.\n\nWe will remove the validation checks from the rest of the code in a\nlater commit, as they are no longer necessary.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a68979b857283daf4acc405e476dcc8812a3ff2b",
      "tree": "6bbf9d235e1ae38f4263f92d4075df6913befc8a",
      "parents": [
        "89c38bd0ade3c567707ed8fce088b253b0369c50"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:17:52 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:52 2009 -0800"
      },
      "message": "ocfs2: add mount option and Kconfig option for acl\n\nThis patch adds the Kconfig option \"CONFIG_OCFS2_FS_POSIX_ACL\"\nand mount options \"acl\" to enable acls in Ocfs2.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "89c38bd0ade3c567707ed8fce088b253b0369c50",
      "tree": "ffc5bf6a8871efa8e7793c552d16ac9fb92f1334",
      "parents": [
        "060bc66dd5017460076d9e808e2198cd532c943d"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:17:41 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:20 2009 -0800"
      },
      "message": "ocfs2: add ocfs2_init_acl in mknod\n\nWe need to get the parent directories acls and let the new child inherit it.\nTo this, we add additional calculations for data/metadata allocation.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "060bc66dd5017460076d9e808e2198cd532c943d",
      "tree": "11b4919c11c6529b783ae553a27a722e22b522b6",
      "parents": [
        "23fc2702bea686569281708ad519b41a11d0a2f4"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:17:29 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:20 2009 -0800"
      },
      "message": "ocfs2: add ocfs2_acl_chmod\n\nThis function is used to update acl xattrs during file mode changes.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "23fc2702bea686569281708ad519b41a11d0a2f4",
      "tree": "a567f38647047836332d1cfc17d7ad0be05c55ef",
      "parents": [
        "929fb014e041c6572c5e8c3686f1e32742b5b953"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:17:18 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:20 2009 -0800"
      },
      "message": "ocfs2: add ocfs2_check_acl\n\nThis function is used to enhance permission checking with POSIX ACLs.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "929fb014e041c6572c5e8c3686f1e32742b5b953",
      "tree": "149328875787dab63ec873cfa06364f4a23ac06d",
      "parents": [
        "4e3e9d027f63488e676bf7700ec515a192e54f69"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:17:04 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:20 2009 -0800"
      },
      "message": "ocfs2: add POSIX ACL API\n\nThis patch adds POSIX ACL(access control lists) APIs in ocfs2. We convert\nstruct posix_acl to many ocfs2_acl_entry and regard them as an extended\nattribute entry.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4e3e9d027f63488e676bf7700ec515a192e54f69",
      "tree": "5726c86a7460dcb8acbc9effe3236050105495da",
      "parents": [
        "534eadddc1de8754a227202c0e747af4973f82ce"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:16:53 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:20 2009 -0800"
      },
      "message": "ocfs2: add ocfs2_xattr_get_nolock\n\nThis function does the work of ocfs2_xattr_get under an open lock.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "534eadddc1de8754a227202c0e747af4973f82ce",
      "tree": "e044976da3644f020ed1da420211cc433dbc0a92",
      "parents": [
        "923f7f3102b80403152e05aee3d55ecfce240440"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:16:41 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:20 2009 -0800"
      },
      "message": "ocfs2: add ocfs2_init_security in during file create\n\nSecurity attributes must be set when creating a new inode.\n\nWe do this in three steps.\n\n- First, get security xattr\u0027s name and value by security_operation\n\n- Calculate and reserve the meta data and clusters needed by this security\n  xattr before starting transaction\n\n- Finally, we set it before add_entry\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "923f7f3102b80403152e05aee3d55ecfce240440",
      "tree": "54184688eb9dcc4ff4521348a31fd8313470d33a",
      "parents": [
        "6c3faba4421e230d77a181c260972229c542dec9"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:16:27 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:20 2009 -0800"
      },
      "message": "ocfs2: add security xattr API\n\nThis patch add security xattr set/get/list APIs to\nsupport security attributes in Ocfs2.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "6c3faba4421e230d77a181c260972229c542dec9",
      "tree": "a36c271b5cd82a696cac6b3c774d62fddb997801",
      "parents": [
        "f5d362022a947e84b0a3dd656d09c6b2322e234f"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:16:03 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:19 2009 -0800"
      },
      "message": "ocfs2: add ocfs2_xattr_set_handle\n\nThis function is used to set xattr\u0027s in a started transaction. It is only\ncalled during inode creation inode for initial security/acl xattrs of the\nnew inode. These xattrs could be put into ibody or extent block, so xattr\nbucket would not be use in this case.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f5d362022a947e84b0a3dd656d09c6b2322e234f",
      "tree": "eb9772da46c5e2566618414eba11845ed13482dc",
      "parents": [
        "fecc01126d7a244b7e9b563c80663ffdca35343b"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:15:44 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:19 2009 -0800"
      },
      "message": "ocfs2: move new inode allocation out of the transaction\n\nMove out inode allocation from ocfs2_mknod_locked() because\nvfs_dq_init() must be called outside of a transaction.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "fecc01126d7a244b7e9b563c80663ffdca35343b",
      "tree": "dbc9144a0f4b6e6997928b2fa2ddeb483f8fd2d7",
      "parents": [
        "85db90e77806d48a19fda77dabe8897d369a1710"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Nov 12 15:16:38 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:19 2009 -0800"
      },
      "message": "ocfs2: turn __ocfs2_remove_inode_range() into ocfs2_remove_btree_range()\n\nThis patch genericizes the high level handling of extent removal.\nocfs2_remove_btree_range() is nearly identical to\n__ocfs2_remove_inode_range(), except that extent tree operations have been\nused where necessary. We update ocfs2_remove_inode_range() to use the\ngeneric helper. Now extent tree based structures have an easy way to\ntruncate ranges.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "85db90e77806d48a19fda77dabe8897d369a1710",
      "tree": "daaceb3943214b83b7784e8f4170c5321d69ea5f",
      "parents": [
        "78f30c314a74b9dc5d7368d96fe4be883d9a3a04"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Nov 12 08:27:01 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:19 2009 -0800"
      },
      "message": "ocfs2/xattr: Merge xattr set transaction.\n\nIn current ocfs2/xattr, the whole xattr set is divided into\nmany steps are many transaction are used, this make the\nxattr set process isn\u0027t like a real transaction, so this\npatch try to merge all the transaction into one. Another\nbenefit is that acl can use it easily now.\n\nI don\u0027t merge the transaction of deleting xattr when we\nremove an inode. The reason is that if we have a large number\nof xattrs and every xattrs has large values(large enough\nfor outside storage), the whole transaction will be very\nhuge and it looks like jbd can\u0027t handle it(I meet with a\njbd complain once). And the old inode removal is also divided\ninto many steps, so I\u0027d like to leave as it is.\n\nNote:\nIn xattr set, I try to avoid ocfs2_extend_trans since if\nthe credits aren\u0027t enough for the extension, it will commit\nall the dirty blocks and create a new transaction which may\nlead to inconsistency in metadata. All ocfs2_extend_trans\nremained are safe now.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "78f30c314a74b9dc5d7368d96fe4be883d9a3a04",
      "tree": "07904e23f2d2c1287869daecc9f27052b71d67a5",
      "parents": [
        "c73f60f900ddf73ec4ea2a143829ab97242c4e8c"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Nov 12 08:27:00 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:19 2009 -0800"
      },
      "message": "ocfs2/xattr: Reserve meta/data at the beginning of ocfs2_xattr_set.\n\nIn ocfs2 xattr set, we reserve metadata and clusters in any place\nthey are needed. It is time-consuming and ineffective, so this\npatch try to reserve metadata and clusters at the beginning of\nocfs2_xattr_set.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c73f60f900ddf73ec4ea2a143829ab97242c4e8c",
      "tree": "6216b45e3bbc2b105b8a54c3db4f5cdd796dcb02",
      "parents": [
        "2891d290aa6eee0821f7e4ad0b1c4ae4d964b0f1"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Nov 12 08:26:59 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:19 2009 -0800"
      },
      "message": "ocfs2/xattr: Move clusters free into dealloc.\n\nMove clusters free process into dealloc context so that\nthey can be freed after the transaction.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2891d290aa6eee0821f7e4ad0b1c4ae4d964b0f1",
      "tree": "2f06b8d3afcf1986d0f041319a8ec08395acdf83",
      "parents": [
        "976331d8789d4d84a11b45b87c520ade83715343"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Nov 12 08:26:58 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:18 2009 -0800"
      },
      "message": "ocfs2: Add clusters free in dealloc_ctxt.\n\nNow in ocfs2 xattr set, the whole process are divided into many small\nparts and they are wrapped into diffrent transactions and it make the\nset doesn\u0027t look like a real transaction. So we want to integrate it\ninto a real one.\n\nIn some cases we will allocate some clusters and free some in just one\ntransaction. e.g, one xattr is larger than inline size, so it and its\nvalue root is stored within the inode while the value is outside in a\ncluster. Then we try to update it with a smaller value(larger than the\nsize of root but smaller than inline size), we may need to free the\noutside cluster while allocate a new bucket(one cluster) since now the\ninode may be full. The old solution will lock the global_bitmap(if the\nlocal alloc failed in stress test) and then the truncate log. This will\ncause a ABBA lock with truncate log flush.\n\nThis patch add the clusters free in dealloc_ctxt, so that we can record\nthe free clusters during the transaction and then free it after we\nrelease the global_bitmap in xattr set.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "976331d8789d4d84a11b45b87c520ade83715343",
      "tree": "c167f7655162e6ddbf62a3680c3272b101f06a45",
      "parents": [
        "757055adc5d41b910bdead925060f077dd2d9169"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Nov 12 08:26:57 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:18 2009 -0800"
      },
      "message": "ocfs2/xattr: Only extend xattr bucket in need.\n\nWhen the first block of a bucket is filled up with xattr\nentries, we normally extend the bucket. But if we are\njust replace one xattr with small length, we don\u0027t need\nto extend it. This is important since we will calculate\nwhat we need before the transaction and in this situation\nno resources will be allocated.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "757055adc5d41b910bdead925060f077dd2d9169",
      "tree": "ac7032ec0d8fec4ec762fa9a0dc6d02a66453e25",
      "parents": [
        "1c32a2fd46ddc01bd86bff56a8f5d98c815750f4"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Nov 06 08:10:48 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:18 2009 -0800"
      },
      "message": "ocfs2/xattr: Only set buffer update if it doesn\u0027t exist in cache.\n\nWhen we call ocfs2_init_xattr_bucket, we deem that the new buffer head\nwill be written to disk immediately, so we just use sb_getblk. But in\nsome cases the buffer may have already been in ocfs2 uptodate cache,\nso we only call ocfs2_set_buffer_uptodate if the buffer head isn\u0027t\nin the cache.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1c32a2fd46ddc01bd86bff56a8f5d98c815750f4",
      "tree": "6451cd228d95d3c07dd5c557b286a7eec9a71614",
      "parents": [
        "02dbf38d19c19016f558fe0dc0c44f8041d3eb8e"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Nov 06 08:10:47 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:18 2009 -0800"
      },
      "message": "ocfs2/xattr: Remove additional bucket allocation in bucket defragment.\n\nJoel has refactored xattr bucket and make xattr bucket a general\nwrapper. So in ocfs2_defrag_xattr_bucket, we have already passed the\nbucket in, so there is no need to allocate a new one and read it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "02dbf38d19c19016f558fe0dc0c44f8041d3eb8e",
      "tree": "a0342ca55b1c39a835a0425e3f8ca13560299776",
      "parents": [
        "161d6f30f18c4a7e2b24705b6690cce3ff276eb9"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 27 18:07:45 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:18 2009 -0800"
      },
      "message": "ocfs2: Use buckets in ocfs2_xattr_set_entry_in_bucket().\n\nThe ocfs2_xattr_set_entry_in_bucket() function is already working on an\nocfs2_xattr_bucket structure, so let\u0027s use the bucket API.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "161d6f30f18c4a7e2b24705b6690cce3ff276eb9",
      "tree": "62c392076a86aa752e4fbc3c2611affad50b22ff",
      "parents": [
        "178eeac354ea28828d5e94a3a7b51368c171d6a5"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 27 15:25:18 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:18 2009 -0800"
      },
      "message": "ocfs2: Use buckets in ocfs2_defrag_xattr_bucket().\n\nUse the ocfs2_xattr_bucket abstraction for reading and writing the\nbucket in ocfs2_defrag_xattr_bucket().\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "178eeac354ea28828d5e94a3a7b51368c171d6a5",
      "tree": "8e3d7b2c923ea2260344dbe76d0b128031ba93c9",
      "parents": [
        "e2356a3f02cfdbce735465a2b40b6dc72a764c26"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 27 15:18:29 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:18 2009 -0800"
      },
      "message": "ocfs2: Use buckets in ocfs2_xattr_create_index_block().\n\nUse the ocfs2_xattr_bucket abstraction in\nocfs2_xattr_create_index_block() and its helpers.  We get more efficient\nreads, a lot less buffer_head munging, and nicer code to boot.  While\nwe\u0027re at it, ocfs2_xattr_update_xattr_search() becomes void.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e2356a3f02cfdbce735465a2b40b6dc72a764c26",
      "tree": "e4824c8d19dc2772beb56a134498a3e88acb9923",
      "parents": [
        "ba937127596ec2c61437006741f7d29999284de4"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 27 15:01:54 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:17 2009 -0800"
      },
      "message": "ocfs2: Use buckets in ocfs2_xattr_bucket_find().\n\nChange the ocfs2_xattr_bucket_find() function to use ocfs2_xattr_bucket\nas its abstraction.  This makes for more efficient reads, as buckets are\nlinear blocks, and also has improved caching characteristics.  It also\nreads better.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ba937127596ec2c61437006741f7d29999284de4",
      "tree": "e5be4c76939ed4d87c256ff17f30e58bbebfb413",
      "parents": [
        "4980c6daba967124ed6420032960abd2b48412e2"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 24 19:13:20 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:17 2009 -0800"
      },
      "message": "ocfs2: Take ocfs2_xattr_bucket structures off of the stack.\n\nThe ocfs2_xattr_bucket structure is a nice abstraction, but it is a bit\nlarge to have on the stack.  Just like ocfs2_path, let\u0027s allocate it\nwith a ocfs2_xattr_bucket_new() function.\n\nWe can now store the inode on the bucket, cleaning up all the other\nbucket functions.  While we\u0027re here, we catch another place or two that\nwasn\u0027t using ocfs2_read_xattr_bucket().\n\nUpdates:\n- No longer allocating xis.bucket, as it will never be used.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4980c6daba967124ed6420032960abd2b48412e2",
      "tree": "c5220ec03222db04972ddba0daaca6c112f51b57",
      "parents": [
        "1224be020f62ada3e19822feeac3840abf80de3e"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 24 18:54:43 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:17 2009 -0800"
      },
      "message": "ocfs2: Copy xattr buckets with a dedicated function.\n\nNow that the places that copy whole buckets are using struct\nocfs2_xattr_bucket, we can do the copy in a dedicated function.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1224be020f62ada3e19822feeac3840abf80de3e",
      "tree": "914ea36d842ef33c444b4bd11dfd5e21dbef6af4",
      "parents": [
        "784b816a9198dc3782c97cde8ddcf52fecdf1797"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 24 18:47:33 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:17 2009 -0800"
      },
      "message": "ocfs2: Wrap journal_access/journal_dirty for xattr buckets.\n\nA common action is to call ocfs2_journal_access() and\nocfs2_journal_dirty() on the buffer heads of an xattr bucket.  Let\u0027s\ncreate nice wrappers.\n\nWhile we\u0027re there, let\u0027s drop the places that try to be smart by writing\nonly the first and last blocks of a bucket.  A bucket is contiguous, so\nwriting the whole thing is actually more efficient.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "784b816a9198dc3782c97cde8ddcf52fecdf1797",
      "tree": "8b6629535ab822a069449118d8925d479d58fdd3",
      "parents": [
        "6dde41d9e7ba62f84cd7e91c0e993500af32ceb6"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 24 17:33:40 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:17 2009 -0800"
      },
      "message": "ocfs2: Improve ocfs2_read_xattr_bucket().\n\nThe ocfs2_read_xattr_bucket() function would read an xattr bucket into a\nlist of buffer heads.  However, we have a nice ocfs2_xattr_bucket\nstructure.  Let\u0027s have it fill that out instead.\n\nIn addition, ocfs2_read_xattr_bucket() would initialize buffer heads for\na bucket that\u0027s never been on disk before.  That\u0027s confusing.  Let\u0027s\ncall that functionality ocfs2_init_xattr_bucket().\n\nThe functions ocfs2_cp_xattr_bucket() and ocfs2_half_xattr_bucket() are\nupdated to use the ocfs2_xattr_bucket structure rather than raw bh\nlists.  That way they can use the new read/init calls.  In addition,\nthey drop the wasted read of an existing target bucket.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "6dde41d9e7ba62f84cd7e91c0e993500af32ceb6",
      "tree": "631cd131bf627a63883a0eca5d612d1472998688",
      "parents": [
        "3e6329463e3a5c311e1d607ff3db735a18b6d67a"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 24 17:16:48 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:17 2009 -0800"
      },
      "message": "ocfs2: Provide a wrapper to brelse() xattr bucket buffers.\n\nA common theme is walking all the buffer heads on an ocfs2_xattr_bucket\nand releasing them.  Let\u0027s wrap that.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "3e6329463e3a5c311e1d607ff3db735a18b6d67a",
      "tree": "9c27f3e08be43e93f69103561f197d2beee22c97",
      "parents": [
        "51def39f0cabd46131c7c4df08751cb0cb9433d1"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 24 17:04:49 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:16 2009 -0800"
      },
      "message": "ocfs2: Convenient access to an xattr bucket\u0027s header.\n\nThe xattr code often wants to access the ocfs2_xattr_header at the start\nof an bucket.  Rather than walk the pointer chains, let\u0027s just create\nanother nice macro.  As a side benefit, we can get rid of the mostly\nspurious -\u003ebu_xh element on the bucket structure.  The idea is ripped\nfrom the ocfs2_path code.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "51def39f0cabd46131c7c4df08751cb0cb9433d1",
      "tree": "d4845849f9e6bdee106c06453161e0c28f1fd429",
      "parents": [
        "9c7759aa670918a48f0c6e06779cd20f2781a2ac"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 24 16:57:21 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:16 2009 -0800"
      },
      "message": "ocfs2: Convenient access to xattr bucket data blocks.\n\nThe xattr code often wants to access the data pointer for blocks in an\nxattr bucket.  This is usually found by dereferencing the bh array\nhanging off of the ocfs2_xattr_bucket structure.  Rather than do this\nall the time, let\u0027s provide a nice little macro.  The idea is ripped\nfrom the ocfs2_path code.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9c7759aa670918a48f0c6e06779cd20f2781a2ac",
      "tree": "da91ec1b046904504b53f9d356c899321ec3f382",
      "parents": [
        "4ac6032d6c92f0ac65cf5bc56b68557b3f099b66"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 24 16:21:03 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:16 2009 -0800"
      },
      "message": "ocfs2: Convenient access to an xattr bucket\u0027s block number.\n\nThe xattr code often wants to know the block number of an xattr bucket.\nThis is usually found by dereferencing the first bh hanging off of the\nocfs2_xattr_bucket structure.  Rather than do this all the time, let\u0027s\nprovide a nice little macro.  The idea is ripped from the ocfs2_path\ncode.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4ac6032d6c92f0ac65cf5bc56b68557b3f099b66",
      "tree": "6625e9d2fe6cd777507023d1dbfac4311aa32192",
      "parents": [
        "fe0bdec68b77020281dc814805edfe594ae89e0f"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Sat Oct 18 19:11:42 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:34:16 2009 -0800"
      },
      "message": "ocfs2: Field prefixes for the xattr_bucket structure\n\nThe ocfs2_xattr_bucket structure keeps track of the buffers for one\nxattr bucket.  Let\u0027s prefix the fields for easier code navigation.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "fe0bdec68b77020281dc814805edfe594ae89e0f",
      "tree": "aeef34a49594cb0478b1104b58ba2dc933c481c5",
      "parents": [
        "099e657625e801adf82054c8050dde5aceb68452",
        "5af75d8d58d0f9f7b7c0515b35786b22892d5f12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 16:32:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 16:32:11 2009 -0800"
      },
      "message": "Merge branch \u0027audit.b61\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b61\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  audit: validate comparison operations, store them in sane form\n  clean up audit_rule_{add,del} a bit\n  make sure that filterkey of task,always rules is reported\n  audit rules ordering, part 2\n  fixing audit rule ordering mess, part 1\n  audit_update_lsm_rules() misses the audit_inode_hash[] ones\n  sanitize audit_log_capset()\n  sanitize audit_fd_pair()\n  sanitize audit_mq_open()\n  sanitize AUDIT_MQ_SENDRECV\n  sanitize audit_mq_notify()\n  sanitize audit_mq_getsetattr()\n  sanitize audit_ipc_set_perm()\n  sanitize audit_ipc_obj()\n  sanitize audit_socketcall\n  don\u0027t reallocate buffer in every audit_sockaddr()\n"
    },
    {
      "commit": "099e657625e801adf82054c8050dde5aceb68452",
      "tree": "d6c28df68ab390fa237b8339c6081e4db380aa5f",
      "parents": [
        "54566b2c1594c2326a645a3551f9d989f7ba3c5e"
      ],
      "author": {
        "name": "Alessandro Zummo",
        "email": "a.zummo@towertech.it",
        "time": "Sun Jan 04 12:00:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "rtc: add alarm/update irq interfaces\n\nAdd standard interfaces for alarm/update irqs enabling.  Drivers are no\nmore required to implement equivalent ioctl code as rtc-dev will provide\nit.\n\nUIE emulation should now be handled correctly and will work even for those\nRTC drivers who cannot be configured to do both UIE and AIE.\n\nSigned-off-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e687d691cb3790d25e31c74f5941fd7c565e9df5",
      "tree": "d606511c734e99fb6e4786d20ab42a8cf1b2232f",
      "parents": [
        "c644f0e4b56f9a2fc066cd0d75a18074d130e4a3"
      ],
      "author": {
        "name": "Bruno Prémont",
        "email": "bonbons@linux-vserver.org",
        "time": "Sun Jan 04 13:11:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "viafb: fix crashes due to 4k stack overflow\n\nThe function viafb_cursor() uses 2 stack-variables of CURSOR_SIZE bits;\nCURSOR_SIZE is defined as (8 * 1024).  Using up twice 1k on stack is too\nmuch for 4k-stack (though it works with 8k-stacks).  Make those two\nvariables kzalloc\u0027ed to preserve stack space.\n\nAlso merge the whole lot of local struct\u0027s in viafb_ioctl into a union so\nthe stack usage gets minimized here as well.  (struct\u0027s are only accessed\nin their indicidual IOCTL case) This second part is only compile-tested as\nI know of no userspace app using the IOCTLs.\n\nSigned-off-by: Bruno Prémont \u003cbonbons@linux-vserver.org\u003e\nCc: \u003cJosephChan@via.com.tw\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c644f0e4b56f9a2fc066cd0d75a18074d130e4a3",
      "tree": "96f5954d7e72a2bf56f4165f4e7569364562f04f",
      "parents": [
        "0a30c5cefa53cbac429dcb2de906c0637b646253"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Jan 04 12:00:48 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: introduce bgl_lock_ptr()\n\nAs suggested by Andreas Dilger, introduce a bgl_lock_ptr() helper in\n\u003clinux/blockgroup_lock.h\u003e and add separate sb_bgl_lock() helpers to\nfilesystem specific header files to break the hidden dependency to\nstruct ext[234]_sb_info.\n\nAlso, while at it, convert the macros to static inlines to try make up\nfor all the times I broke Andrew Morton\u0027s tree.\n\nAcked-by: Andreas Dilger \u003cadilger@sun.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a30c5cefa53cbac429dcb2de906c0637b646253",
      "tree": "b0babe6f5e3b320f4f168975d798180d3be7e3c7",
      "parents": [
        "2e4e27c7d082b2198b63041310609d7191185a9d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Jan 04 12:00:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "spi.h uses/needs device.h\n\nInclude header files as used/needed:\n\n  In file included from drivers/leds/leds-dac124s085.c:16:\n  include/linux/spi/spi.h:66: error: field \u0027dev\u0027 has incomplete type\n  include/linux/spi/spi.h: In function \u0027to_spi_device\u0027:\n  include/linux/spi/spi.h:100: warning: type defaults to \u0027int\u0027 in declaration of \u0027__mptr\u0027\n  ...\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e4e27c7d082b2198b63041310609d7191185a9d",
      "tree": "4b994ab4569e4510ff4dd4d357807121ab802782",
      "parents": [
        "7b574b7b0124ed344911f5d581e9bc2d83bbeb19"
      ],
      "author": {
        "name": "Adam Lackorzynski",
        "email": "adam@os.inf.tu-dresden.de",
        "time": "Sun Jan 04 12:00:46 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "vmalloc.c: fix flushing in vmap_page_range()\n\nThe flush_cache_vmap in vmap_page_range() is called with the end of the\nrange twice.  The following patch fixes this for me.\n\nSigned-off-by: Adam Lackorzynski \u003cadam@os.inf.tu-dresden.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b574b7b0124ed344911f5d581e9bc2d83bbeb19",
      "tree": "6511203310d77359017accb466f3f5e1e90abe13",
      "parents": [
        "7d3b56ba37a95f1f370f50258ed3954c304c524b"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sun Jan 04 12:00:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:19 2009 -0800"
      },
      "message": "cgroups: fix a race between cgroup_clone and umount\n\nThe race is calling cgroup_clone() while umounting the ns cgroup subsys,\nand thus cgroup_clone() might access invalid cgroup_fs, or kill_sb() is\ncalled after cgroup_clone() created a new dir in it.\n\nThe BUG I triggered is BUG_ON(root-\u003enumber_of_cgroups !\u003d 1);\n\n  ------------[ cut here ]------------\n  kernel BUG at kernel/cgroup.c:1093!\n  invalid opcode: 0000 [#1] SMP\n  ...\n  Process umount (pid: 5177, ti\u003de411e000 task\u003de40c4670 task.ti\u003de411e000)\n  ...\n  Call Trace:\n   [\u003cc0493df7\u003e] ? deactivate_super+0x3f/0x51\n   [\u003cc04a3600\u003e] ? mntput_no_expire+0xb3/0xdd\n   [\u003cc04a3ab2\u003e] ? sys_umount+0x265/0x2ac\n   [\u003cc04a3b06\u003e] ? sys_oldumount+0xd/0xf\n   [\u003cc0403911\u003e] ? sysenter_do_call+0x12/0x31\n  ...\n  EIP: [\u003cc0456e76\u003e] cgroup_kill_sb+0x23/0xe0 SS:ESP 0068:e411ef2c\n  ---[ end trace c766c1be3bf944ac ]---\n\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5af75d8d58d0f9f7b7c0515b35786b22892d5f12",
      "tree": "65707c5309133a33140c39145ae91b7c1679a877",
      "parents": [
        "36c4f1b18c8a7d0adb4085e7f531860b837bb6b0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 16 05:59:26 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:42 2009 -0500"
      },
      "message": "audit: validate comparison operations, store them in sane form\n\nDon\u0027t store the field-\u003eop in the messy (and very inconvenient for e.g.\naudit_comparator()) form; translate to dense set of values and do full\nvalidation of userland-submitted value while we are at it.\n\n-\u003eaudit_init_rule() and -\u003eaudit_match_rule() get new values now; in-tree\ninstances updated.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "36c4f1b18c8a7d0adb4085e7f531860b837bb6b0",
      "tree": "2cb0b2d5c77af294c6ff885f4b8190a1377e638a",
      "parents": [
        "e048e02c89db7bd49d1a5fac77a11c8fb3603087"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 15 01:50:28 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:42 2009 -0500"
      },
      "message": "clean up audit_rule_{add,del} a bit\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e048e02c89db7bd49d1a5fac77a11c8fb3603087",
      "tree": "6141e7646cd7c5b1b1334f0f86fbad6ef1bcc6d8",
      "parents": [
        "e45aa212ea81d39b38ba158df344dc3a500153e5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 16 03:51:22 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:42 2009 -0500"
      },
      "message": "make sure that filterkey of task,always rules is reported\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e45aa212ea81d39b38ba158df344dc3a500153e5",
      "tree": "c4d55cda9e8f976d15b6b01a775a3437f932db27",
      "parents": [
        "0590b9335a1c72a3f0defcc6231287f7817e07c8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 15 01:17:50 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:42 2009 -0500"
      },
      "message": "audit rules ordering, part 2\n\nFix the actual rule listing; add per-type lists _not_ used for matching,\nwith all exit,... sitting on one such list.  Simplifies \"do something\nfor all rules\" logics, while we are at it...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0590b9335a1c72a3f0defcc6231287f7817e07c8",
      "tree": "289fa4668ae304f79f7484ac31b2cab0ab8894c1",
      "parents": [
        "1a9d0797b8977d413435277bf9661efbbd584693"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 23:45:27 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "fixing audit rule ordering mess, part 1\n\nProblem: ordering between the rules on exit chain is currently lost;\nall watch and inode rules are listed after everything else _and_\nexit,never on one kind doesn\u0027t stop exit,always on another from\nbeing matched.\n\nSolution: assign priorities to rules, keep track of the current\nhighest-priority matching rule and its result (always/never).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a9d0797b8977d413435277bf9661efbbd584693",
      "tree": "86a99d0d28ef027fc4e6f21054ce8fa05c7ca82e",
      "parents": [
        "57f71a0af4244d9ba3c0bce74b1d2e66e8d520bd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 12:04:02 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "audit_update_lsm_rules() misses the audit_inode_hash[] ones\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "57f71a0af4244d9ba3c0bce74b1d2e66e8d520bd",
      "tree": "c089a97949fc1d459e137b18739c04e9217913d1",
      "parents": [
        "157cf649a735a2f7e8dba0ed08e6e38b6c30d886"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 14:52:57 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "sanitize audit_log_capset()\n\n* no allocations\n* return void\n* don\u0027t duplicate checked for dummy context\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "157cf649a735a2f7e8dba0ed08e6e38b6c30d886",
      "tree": "85895367c24023d363d5ee7b5ed2fb16eaf08721",
      "parents": [
        "564f6993ffef656aebaf46cf2f1f6cb4f5c97207"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 04:57:47 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "sanitize audit_fd_pair()\n\n* no allocations\n* return void\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "564f6993ffef656aebaf46cf2f1f6cb4f5c97207",
      "tree": "0bf1ee553ab1241338fe522ffbaed8cd48e10c99",
      "parents": [
        "c32c8af43b9adde8d6f938d8e6328c13b8de79ac"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 04:02:26 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:41 2009 -0500"
      },
      "message": "sanitize audit_mq_open()\n\n* don\u0027t bother with allocations\n* don\u0027t do double copy_from_user()\n* don\u0027t duplicate parts of check for audit_dummy_context()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c32c8af43b9adde8d6f938d8e6328c13b8de79ac",
      "tree": "6377079bba7530d2aa8a688ebf9ba3e09ae085a7",
      "parents": [
        "20114f71b27cafeb7c7e41d2b0f0b68c3fbb022b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 14 03:46:48 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:40 2009 -0500"
      },
      "message": "sanitize AUDIT_MQ_SENDRECV\n\n* logging the original value of *msg_prio in mq_timedreceive(2)\n  is insane - the argument is write-only (i.e. syscall always\n  ignores the original value and only overwrites it).\n* merge __audit_mq_timed{send,receive}\n* don\u0027t do copy_from_user() twice\n* don\u0027t mess with allocations in auditsc part\n* ... and don\u0027t bother checking !audit_enabled and !context in there -\n  we\u0027d already checked for audit_dummy_context().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "20114f71b27cafeb7c7e41d2b0f0b68c3fbb022b",
      "tree": "fcbb481cfec8c11f103ba07dbb08819de3822d80",
      "parents": [
        "7392906ea915b9a2c14dea32b3604b4e178f82f7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 07:16:12 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:40 2009 -0500"
      },
      "message": "sanitize audit_mq_notify()\n\n* don\u0027t copy_from_user() twice\n* don\u0027t bother with allocations\n* don\u0027t duplicate parts of audit_dummy_context()\n* make it return void\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7392906ea915b9a2c14dea32b3604b4e178f82f7",
      "tree": "1e4fbe56e3738fade213ef805ec274ea74ac6a1b",
      "parents": [
        "e816f370cbadd2afea9f1a42f232d0636137d563"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 06:58:59 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:40 2009 -0500"
      },
      "message": "sanitize audit_mq_getsetattr()\n\n* get rid of allocations\n* make it return void\n* don\u0027t duplicate parts of audit_dummy_context()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e816f370cbadd2afea9f1a42f232d0636137d563",
      "tree": "8a9fe488ced59cd9864fcbf15292641c3b95143c",
      "parents": [
        "a33e6751003c5ade603737d828b1519d980ce392"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 03:47:15 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:40 2009 -0500"
      },
      "message": "sanitize audit_ipc_set_perm()\n\n* get rid of allocations\n* make it return void\n* simplify callers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a33e6751003c5ade603737d828b1519d980ce392",
      "tree": "aa484d033e886945aed78172dbdd4d2fd928bacf",
      "parents": [
        "f3298dc4f2277874d40cb4fc3a6e277317d6603b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 03:40:06 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:39 2009 -0500"
      },
      "message": "sanitize audit_ipc_obj()\n\n* get rid of allocations\n* make it return void\n* simplify callers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f3298dc4f2277874d40cb4fc3a6e277317d6603b",
      "tree": "8ba8f7e7a0597965b2f6c7106718a59cc164eab1",
      "parents": [
        "4f6b434fee2402b3decdeae9d16eb648725ae426"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 10 03:16:51 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:39 2009 -0500"
      },
      "message": "sanitize audit_socketcall\n\n* don\u0027t bother with allocations\n* now that it can\u0027t fail, make it return void\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4f6b434fee2402b3decdeae9d16eb648725ae426",
      "tree": "2b82a9d220509e2fe42c365de5083eb8032880e4",
      "parents": [
        "7d3b56ba37a95f1f370f50258ed3954c304c524b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 19:50:34 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 04 15:14:39 2009 -0500"
      },
      "message": "don\u0027t reallocate buffer in every audit_sockaddr()\n\nNo need to do that more than once per process lifetime; allocating/freeing\non each sendto/accept/etc. is bloody pointless.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7d3b56ba37a95f1f370f50258ed3954c304c524b",
      "tree": "86102527b92f02450aa245f084ffb491c18d2e0a",
      "parents": [
        "269b012321f2f1f8e4648c43a93bf432b42c6668",
        "ab14398abd195af91a744c320a52a1bce814dd1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:04:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:04:39 2009 -0800"
      },
      "message": "Merge branch \u0027cpus4096-for-linus-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (77 commits)\n  x86: setup_per_cpu_areas() cleanup\n  cpumask: fix compile error when CONFIG_NR_CPUS is not defined\n  cpumask: use alloc_cpumask_var_node where appropriate\n  cpumask: convert shared_cpu_map in acpi_processor* structs to cpumask_var_t\n  x86: use cpumask_var_t in acpi/boot.c\n  x86: cleanup some remaining usages of NR_CPUS where s/b nr_cpu_ids\n  sched: put back some stack hog changes that were undone in kernel/sched.c\n  x86: enable cpus display of kernel_max and offlined cpus\n  ia64: cpumask fix for is_affinity_mask_valid()\n  cpumask: convert RCU implementations, fix\n  xtensa: define __fls\n  mn10300: define __fls\n  m32r: define __fls\n  h8300: define __fls\n  frv: define __fls\n  cris: define __fls\n  cpumask: CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS\n  cpumask: zero extra bits in alloc_cpumask_var_node\n  cpumask: replace for_each_cpu_mask_nr with for_each_cpu in kernel/time/\n  cpumask: convert mm/\n  ...\n"
    },
    {
      "commit": "269b012321f2f1f8e4648c43a93bf432b42c6668",
      "tree": "e30ec565db50d4aec570cb52e9b29bd584beb2fd",
      "parents": [
        "f60a0a79846abed04ad5abddb5dafd14b66e1ab0",
        "065a6d68c71af2a3bdd080fa5aa353b76eede8f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:03:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:03:52 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu: (89 commits)\n  AMD IOMMU: remove now unnecessary #ifdefs\n  AMD IOMMU: prealloc_protection_domains should be static\n  kvm/iommu: fix compile warning\n  AMD IOMMU: add statistics about total number of map requests\n  AMD IOMMU: add statistics about allocated io memory\n  AMD IOMMU: add stats counter for domain tlb flushes\n  AMD IOMMU: add stats counter for single iommu domain tlb flushes\n  AMD IOMMU: add stats counter for cross-page request\n  AMD IOMMU: add stats counter for free_coherent requests\n  AMD IOMMU: add stats counter for alloc_coherent requests\n  AMD IOMMU: add stats counter for unmap_sg requests\n  AMD IOMMU: add stats counter for map_sg requests\n  AMD IOMMU: add stats counter for unmap_single requests\n  AMD IOMMU: add stats counter for map_single requests\n  AMD IOMMU: add stats counter for completion wait events\n  AMD IOMMU: add init code for statistic collection\n  AMD IOMMU: add necessary header defines for stats counting\n  AMD IOMMU: add Kconfig entry for statistic collection code\n  AMD IOMMU: use dev_name in iommu_enable function\n  AMD IOMMU: use calc_devid in prealloc_protection_domains\n  ...\n"
    },
    {
      "commit": "f60a0a79846abed04ad5abddb5dafd14b66e1ab0",
      "tree": "4c4e3bc4692e6e8f08d2289f3bcab28035a571a1",
      "parents": [
        "2f983570010a0dcb26d988da02d7ccfad00c807c",
        "b15dd79ea06b04a7ecee95f62ce7b6a3547dbb0a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:02:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:02:18 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (34 commits)\n  V4L/DVB (10173): Missing v4l2_prio_close in radio_release\n  V4L/DVB (10172): add DVB_DEVICE_TYPE\u003d to uevent\n  V4L/DVB (10171): Use usb_set_intfdata\n  V4L/DVB (10170): tuner-simple: prevent possible OOPS caused by divide by zero error\n  V4L/DVB (10168): sms1xxx: fix inverted gpio for lna control on tiger r2\n  V4L/DVB (10167): sms1xxx: add support for inverted gpio\n  V4L/DVB (10166): dvb frontend: stop using non-C99 compliant comments\n  V4L/DVB (10165): Add FE_CAN_2G_MODULATION flag to frontends that support DVB-S2\n  V4L/DVB (10164): Add missing S2 caps flag to S2API\n  V4L/DVB (10163): em28xx: allocate adev together with struct em28xx dev\n  V4L/DVB (10162): tuner-simple: Fix tuner type set message\n  V4L/DVB (10161): saa7134: fix autodetection for AVer TV GO 007 FM Plus\n  V4L/DVB (10160): em28xx: update chip id for em2710\n  V4L/DVB (10157): Add USB ID for the Sil4701 radio from DealExtreme\n  V4L/DVB (10156): saa7134: Add support for Avermedia AVer TV GO 007 FM Plus\n  V4L/DVB (10155): Add TEA5764 radio driver\n  V4L/DVB (10154): saa7134: fix a merge conflict on Behold H6 board\n  V4L/DVB (10153): Add the Beholder H6 card to DVB-T part of sources.\n  V4L/DVB (10152): Change configuration of the Beholder H6 card\n  V4L/DVB (10151): Fix I2C bridge error in zl10353\n  ...\n"
    },
    {
      "commit": "2f983570010a0dcb26d988da02d7ccfad00c807c",
      "tree": "39fd89fd04d940306c02425927fc1308b26357b0",
      "parents": [
        "e9e67a8b579d9605a3d06f7430dbb40465c97bf1"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Sat Jan 03 00:06:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:01:23 2009 -0800"
      },
      "message": "sparseirq: move set/get_timer_rand_state back to .c\n\nthose two functions only used in that C file\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9e67a8b579d9605a3d06f7430dbb40465c97bf1",
      "tree": "cd90f29814359440b0f46995216d523ff5d26730",
      "parents": [
        "ad6b646fe55c40ec193240b974561f0a3775d68d",
        "418f19ea17a99421b22a64e101e14b6a16bed66d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:00:07 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:00:07 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:\n  mmc: warn about voltage mismatches\n  mmc_spi: Add support for OpenFirmware bindings\n  pxamci: fix dma_unmap_sg length\n  mmc_block: ensure all sectors that do not have errors are read\n  drivers/mmc: Move a dereference below a NULL test\n  sdhci: handle built-in sdhci with modular leds class\n  mmc: balanc pci_iomap with pci_iounmap\n  mmc_block: print better error messages\n  mmc: Add mmc_vddrange_to_ocrmask() helper function\n  ricoh_mmc: Handle newer models of Ricoh controllers\n  mmc: Add 8-bit bus width support\n  sdhci: activate led support also when module\n  mmc: trivial annotation of \u0027blocks\u0027\n  pci: use pci_ioremap_bar() in drivers/mmc\n  sdricoh_cs: Add support for Bay Controller devices\n  mmc: at91_mci: reorder timer setup and mmc_add_host() call\n"
    },
    {
      "commit": "ad6b646fe55c40ec193240b974561f0a3775d68d",
      "tree": "d285d0396e9f7b9496976c6845910c04472e159c",
      "parents": [
        "61420f59a589c0668f70cbe725785837c78ece90",
        "006948bafece27265dce72d3158b12af3ff67fce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:59:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:59:13 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:\n  [WATCHDOG] Add support for the WM8350 watchdog\n  [WATCHDOG] Add SMSC SCH311x Watchdog Timer.\n  [WATCHDOG] ib700wdt - add timeout parameter\n"
    },
    {
      "commit": "61420f59a589c0668f70cbe725785837c78ece90",
      "tree": "79ae77d731cd2425677b9527d50079d8cf34c3b2",
      "parents": [
        "d97106ab53f812910a62d18afb9dbe882819c1ba",
        "c742b31c03f37c5c499178f09f57381aa6c70131"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:56:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:56:24 2009 -0800"
      },
      "message": "Merge branch \u0027cputime\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6\n\n* \u0027cputime\u0027 of git://git390.osdl.marist.edu/pub/scm/linux-2.6:\n  [PATCH] fast vdso implementation for CLOCK_THREAD_CPUTIME_ID\n  [PATCH] improve idle cputime accounting\n  [PATCH] improve precision of idle time detection.\n  [PATCH] improve precision of process accounting.\n  [PATCH] idle cputime accounting\n  [PATCH] fix scaled \u0026 unscaled cputime accounting\n"
    },
    {
      "commit": "d97106ab53f812910a62d18afb9dbe882819c1ba",
      "tree": "edd1a2c287b7d98ee7b62e7ea6457c8a10abe016",
      "parents": [
        "3bfacef412b4bc993a8992217e50f1245f2fd3a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:46:17 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:46:17 2009 -0800"
      },
      "message": "Make %p print \u0027(null)\u0027 for NULL pointers\n\nBefore, when we only ever printed out the pointer value itself, a NULL\npointer would never cause issues and might as well be printed out as\njust its numeric value.\n\nHowever, with the extended %p formats, especially %pR, we might validly\nwant to print out resources for debugging.  And sometimes they don\u0027t\neven exist, and the resource pointer is just NULL.  Print it out as\nsuch, rather than oopsing.\n\nThis is a more generic version of a patch done by Trent Piepho (catching\nall %p cases rather than just %pR, and using \"(null)\" instead of\n\"[NULL]\" to match glibc).\n\nRequested-by: Trent Piepho \u003cxyzzy@speakeasy.org\u003e\nAcked-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bfacef412b4bc993a8992217e50f1245f2fd3a6",
      "tree": "bcf92bc34b30383dfc542f9850f59858681556cb",
      "parents": [
        "17580d7f2f632ff8c9786d609508c35c9f56e1f3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Jan 03 07:16:33 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:45:54 2009 -0800"
      },
      "message": "get rid of special-casing the /sbin/loader on alpha\n\n... just make it a binfmt handler like #! one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17580d7f2f632ff8c9786d609508c35c9f56e1f3",
      "tree": "488abddb16d4640f4c27fdcf2c36186c6b70bdcc",
      "parents": [
        "fe30af971d896c144ef4708f97cf9d3186303c42"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Jan 03 07:16:23 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:45:54 2009 -0800"
      },
      "message": "sanitize ifdefs in binfmt_aout\n\nThey are actually alpha vs.  i386/arm/m68k i.e. ecoff vs. aout.\n\nIn the only place where we actually tried to handle arm and i386/m68k in\ndifferent ways (START_DATA() in coredump handling), the arm variant\nworks for all of them (i386 and m68k have u.start_code set to 0).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe30af971d896c144ef4708f97cf9d3186303c42",
      "tree": "c69bd377e0144708415a4967ced8469250acd6ef",
      "parents": [
        "e0b685d39a0404e7f87fb7b7808c3b37a115fe11"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Jan 03 07:16:13 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:45:54 2009 -0800"
      },
      "message": "remove the rudiment of a.out for sparc\n\nit\u0027s been used only in sunos compat\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0b685d39a0404e7f87fb7b7808c3b37a115fe11",
      "tree": "5ccdc48228cac967fc7ff5cc76d9890f73bcd663",
      "parents": [
        "8e3bda0863c1578ddf47a015eac7dc6efb1ef48b"
      ],
      "author": {
        "name": "Hugh Blemings",
        "email": "hugh@blemings.org",
        "time": "Sat Jan 03 16:48:44 2009 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 11:45:54 2009 -0800"
      },
      "message": "Updated contact info for CREDITS file\n\nThis updates some personal info in the CREDITS file.\n\nI\u0027m no longer actively involved in Keyspan driver work so shouldn\u0027t\nreally be listed as a Maintainer here.\n\nI do however field the occasional question on them and as I\u0027m dropping\nthe misc.nu domain, want to ensure people can find me should they need\nto.\n\nSigned-off-by: Hugh Blemings \u003chugh@blemings.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ab14398abd195af91a744c320a52a1bce814dd1e",
      "tree": "5b0284af973e7a3d7d5c648d93965b6434d5c7e6",
      "parents": [
        "8fd2d2d5aaf086cfa3b2e2e58cab96b7afdc9e51"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Fri Jan 02 21:51:32 2009 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:15:42 2009 +0100"
      },
      "message": "x86: setup_per_cpu_areas() cleanup\n\nImpact: cleanup\n\n__alloc_bootmem and __alloc_bootmem_node do panic\nfor us in case of fail so no need for additional\nchecks here.\n\nAlso lets use pr_*() macros for printing.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8fd2d2d5aaf086cfa3b2e2e58cab96b7afdc9e51",
      "tree": "769492a15566e8c5ec4d7f611af378aee3d1e08f",
      "parents": [
        "80855f7361eb68205e6bc1981928629d9b02d5c9"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 18:08:48 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:15:41 2009 +0100"
      },
      "message": "cpumask: fix compile error when CONFIG_NR_CPUS is not defined\n\nCONFIG_NR_CPUS will be defined for all arch\u0027s whether SMP or not, but\nit may not have made it into all arches yet.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "80855f7361eb68205e6bc1981928629d9b02d5c9",
      "tree": "029e78df08989c8d335b67a8031c784136a57539",
      "parents": [
        "2fdf66b491ac706657946442789ec644cc317e1a"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 18:08:47 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:15:40 2009 +0100"
      },
      "message": "cpumask: use alloc_cpumask_var_node where appropriate\n\nImpact: Reduce inter-node memory traffic.\n\nReduces inter-node memory traffic (offloading the global system bus)\nby allocating referenced struct cpumasks on the same node as the\nreferring struct.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2fdf66b491ac706657946442789ec644cc317e1a",
      "tree": "3442c3e1f7bceb870ab1ba2624e21767f8347508",
      "parents": [
        "ee943a82b697456f9d2ac46f1e6d230beedb4b6c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Dec 31 18:08:47 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:15:40 2009 +0100"
      },
      "message": "cpumask: convert shared_cpu_map in acpi_processor* structs to cpumask_var_t\n\nImpact: Reduce memory usage, use new API.\n\nThis is part of an effort to reduce structure sizes for machines\nconfigured with large NR_CPUS.  cpumask_t gets replaced by\ncpumask_var_t, which is either struct cpumask[1] (small NR_CPUS) or\nstruct cpumask * (large NR_CPUS).\n\n(Changes to powernow-k* by \u003ctravis\u003e.)\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ee943a82b697456f9d2ac46f1e6d230beedb4b6c",
      "tree": "33f83cff3d05f5189dc752d98b9ec157f0b75ad5",
      "parents": [
        "9628937d5b37169151c5f6bbd40919c6ac958a46"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Dec 31 18:08:47 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:15:39 2009 +0100"
      },
      "message": "x86: use cpumask_var_t in acpi/boot.c\n\nImpact: reduce stack size, use new API.\n\nReplace cpumask_t with cpumask_var_t.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9628937d5b37169151c5f6bbd40919c6ac958a46",
      "tree": "09e49f6960806e4115b3345ccc4b5745ca784074",
      "parents": [
        "6ca09dfc9f180d038dcef93c167a833f43a8246f"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 18:08:46 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:00:55 2009 +0100"
      },
      "message": "x86: cleanup some remaining usages of NR_CPUS where s/b nr_cpu_ids\n\nImpact: Reduce future system panics due to cpumask operations using NR_CPUS\n\nInsure that code does not look at bits \u003e\u003d nr_cpu_ids as when cpumasks are\nallocated based on nr_cpu_ids, these extra bits will not be defined.\n\nAlso some other minor updates:\n\n   * change in to use cpu accessor function set_cpu_present() instead of\n     directly accessing cpu_present_map w/cpu_clear() [arch/x86/kernel/reboot.c]\n\n   * use cpumask_of() instead of \u0026cpumask_of_cpu() [arch/x86/kernel/reboot.c]\n\n   * optimize some cpu_mask_to_apicid_and functions.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ca09dfc9f180d038dcef93c167a833f43a8246f",
      "tree": "48cd4e6530a7523d7d14d2c18fa7d3bd2ef49a4e",
      "parents": [
        "730cf27246225d56ca1603b2f3c4fdbf882d4e51"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 18:08:45 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 19:00:09 2009 +0100"
      },
      "message": "sched: put back some stack hog changes that were undone in kernel/sched.c\n\nImpact: prevents panic from stack overflow on numa-capable machines.\n\nSome of the \"removal of stack hogs\" changes in kernel/sched.c by using\nnode_to_cpumask_ptr were undone by the early cpumask API updates, and\ncauses a panic due to stack overflow.  This patch undoes those changes\nby using cpumask_of_node() which returns a \u0027const struct cpumask *\u0027.\n\nIn addition, cpu_coregoup_map is replaced with cpu_coregroup_mask further\nreducing stack usage.  (Both of these updates removed 9 FIXME\u0027s!)\n\nAlso:\n   Pick up some remaining changes from the old \u0027cpumask_t\u0027 functions to\n   the new \u0027struct cpumask *\u0027 functions.\n\n   Optimize memory traffic by allocating each percpu local_cpu_mask on the\n   same node as the referring cpu.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "730cf27246225d56ca1603b2f3c4fdbf882d4e51",
      "tree": "46cfe9609956394a11a00e10f3f727e2ba4e4afa",
      "parents": [
        "6bdf197b04b3ae7c85785bc5a9576f1bcb0ac7c0"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 18:08:45 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 18:59:47 2009 +0100"
      },
      "message": "x86: enable cpus display of kernel_max and offlined cpus\n\nImpact: enables /sys/devices/system/cpu/{kernel_max,offline} user interface\n\nBy setting total_cpus, the drivers/base/cpu.c will display the\nvalues of kernel_max (NR_CPUS-1) and the offlined cpu map.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6bdf197b04b3ae7c85785bc5a9576f1bcb0ac7c0",
      "tree": "4bd5fbe09be2a9197ff7ab88d86b21ef895d964d",
      "parents": [
        "263ec6457bb23d57b575ede18ff6c3d11e0b4e96"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 12:50:46 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 18:59:33 2009 +0100"
      },
      "message": "ia64: cpumask fix for is_affinity_mask_valid()\n\nImpact: build fix on ia64\n\nia64\u0027s default_affinity_write() still had old cpumask_t usage:\n\n /home/mingo/tip/kernel/irq/proc.c: In function `default_affinity_write\u0027:\n /home/mingo/tip/kernel/irq/proc.c:114: error: incompatible type for argument 1 of `is_affinity_mask_valid\u0027\n make[3]: *** [kernel/irq/proc.o] Error 1\n make[3]: *** Waiting for unfinished jobs....\n\nupdate it to cpumask_var_t.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "263ec6457bb23d57b575ede18ff6c3d11e0b4e96",
      "tree": "ac9ce48e24b2f37292614a3d363009f1332384cc",
      "parents": [
        "e465b535ce5b2318798c68e1454917204494bfe3"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 13:16:09 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 18:59:25 2009 +0100"
      },
      "message": "cpumask: convert RCU implementations, fix\n\nImpact: cleanup\n\nThis warning:\n\n kernel/rcuclassic.c: In function ‘rcu_start_batch’:\n kernel/rcuclassic.c:397: warning: passing argument 1 of ‘cpumask_andnot’ from incompatible pointer type\n\ntriggers because one usage site of rcp-\u003ecpumask was not converted\nto to_cpumask(rcp-\u003ecpumask). There\u0027s no ill effects of this bug.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e465b535ce5b2318798c68e1454917204494bfe3",
      "tree": "7cd7af9813a1fe2bfb04f9edd149e0f152b6cb1d",
      "parents": [
        "7eb19553369c46cc1fa64caf120cbcab1b597f7c",
        "5ece5c5192d065c229da01e7b347c1d3877b59fa"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 18:54:51 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 18:54:51 2009 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into cpus4096-v2\n"
    },
    {
      "commit": "7eb19553369c46cc1fa64caf120cbcab1b597f7c",
      "tree": "ef1a3beae706b9497c845d0a2557ceb4d2754998",
      "parents": [
        "6092848a2a23b660150a38bc06f59d75838d70c8",
        "8c384cdee3e04d6194a2c2b192b624754f990835"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Dec 31 17:34:16 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 03 18:53:31 2009 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into merge-rr-cpumask\n\nConflicts:\n\tarch/x86/kernel/io_apic.c\n\tkernel/rcuclassic.c\n\tkernel/sched.c\n\tkernel/time/tick-sched.c\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n[ mingo@elte.hu: backmerged typo fix for io_apic.c ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "065a6d68c71af2a3bdd080fa5aa353b76eede8f5",
      "tree": "79a71fc0d517e72909a02b16129c4cfd2e123811",
      "parents": [
        "b0a11f44aba631fd4b898b620c93cc2096f3f15c"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:16:35 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 16:44:15 2009 +0100"
      },
      "message": "AMD IOMMU: remove now unnecessary #ifdefs\n\nThe #ifdef\u0027s are no longer necessary when the iommu-api and the amd\niommu updates are merged together.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "b0a11f44aba631fd4b898b620c93cc2096f3f15c",
      "tree": "71b8965d88d53ddeca2def77e2d74dc1af9fca52",
      "parents": [
        "7398ca79d227f7cd7f2ce23f08624e30081dcb4e",
        "0e93dd883537e628b809a2120854cd591c8935f1"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 16:43:44 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 16:43:44 2009 +0100"
      },
      "message": "Merge branches \u0027iommu/api\u0027 and \u0027iommu/amd\u0027 into for-linus\n"
    },
    {
      "commit": "0e93dd883537e628b809a2120854cd591c8935f1",
      "tree": "a56bf6e421127eac34713b8fc8a2e3d8daa61a77",
      "parents": [
        "8ecaf8f19f0f0627d6ac6d69ed9472e7d307f35b"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@infradead.org",
        "time": "Mon Dec 29 21:45:22 2008 +0530"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 16:41:18 2009 +0100"
      },
      "message": "AMD IOMMU: prealloc_protection_domains should be static\n\nImpact: cleanup, reduce kernel size a bit, avoid sparse warning\n\nFixes sparse warning:\narch/x86/kernel/amd_iommu.c:1299:6: warning: symbol \u0027prealloc_protection_domains\u0027 was not declared. Should it be static?\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "7398ca79d227f7cd7f2ce23f08624e30081dcb4e",
      "tree": "17cf5890a12e25517462e27b86c375663df7341a",
      "parents": [
        "cdc7b83726297b43deed0455d8732163cc59802a"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 16:37:53 2009 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 16:37:53 2009 +0100"
      },
      "message": "kvm/iommu: fix compile warning\n\nThis fixes a compile warning about a variable thats maybe used\nuninitialized in the function.\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "8ecaf8f19f0f0627d6ac6d69ed9472e7d307f35b",
      "tree": "1b2ff78164c6fa11cd2a66060d8bfc1ff2d315f2",
      "parents": [
        "5774f7c5fef2526bfa58eab628fbe91dce5e07b1"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 16:13:04 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:12:00 2009 +0100"
      },
      "message": "AMD IOMMU: add statistics about total number of map requests\n\nImpact: see total number of map requests in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "5774f7c5fef2526bfa58eab628fbe91dce5e07b1",
      "tree": "38d0ab41a4b188572de1773574f1d506bb016234",
      "parents": [
        "18811f55d48e5f3ee70c4744c592f940022fa592"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:57:30 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:12:00 2009 +0100"
      },
      "message": "AMD IOMMU: add statistics about allocated io memory\n\nImpact: see amount of allocated io memory in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "18811f55d48e5f3ee70c4744c592f940022fa592",
      "tree": "626f9661a133e83780f3cc6e7c25691d1cccb970",
      "parents": [
        "f57d98ae6979f7bcbf758023b4716f485385f903"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:48:28 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for domain tlb flushes\n\nImpact: see number of domain tlb flushes in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "f57d98ae6979f7bcbf758023b4716f485385f903",
      "tree": "d49ddb1732237a69e871691d020db3f0b8a20788",
      "parents": [
        "c1858976f5ef05122bb671f678beaf7e1fe1dd74"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:46:29 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for single iommu domain tlb flushes\n\nImpact: see number of single iommu domain tlb flushes in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "c1858976f5ef05122bb671f678beaf7e1fe1dd74",
      "tree": "7476166c4dc3851055d9297f51f956f3e3db3bca",
      "parents": [
        "5d31ee7e08b7713596b999a42e67491bdf3665b3"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:42:39 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for cross-page request\n\nImpact: see number of requests for more than one page in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "5d31ee7e08b7713596b999a42e67491bdf3665b3",
      "tree": "3e1e5f7c99d9f9de14b7bed4f7c5c4f174f8f68b",
      "parents": [
        "c8f0fb36bffa9e21d214a2910b825567d52bfc2c"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:16:38 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for free_coherent requests\n\nImpact: see number of free_coherent requests in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "c8f0fb36bffa9e21d214a2910b825567d52bfc2c",
      "tree": "6bd89aae7d27da187c5bb8484d09527f2c3725d0",
      "parents": [
        "55877a6bcdf0843414eecc658550c6551f5b5e1d"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:14:21 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for alloc_coherent requests\n\nImpact: see number of alloc_coherent requests in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "55877a6bcdf0843414eecc658550c6551f5b5e1d",
      "tree": "360fcc7c677260b372c5875a7b88966f79752eee",
      "parents": [
        "d03f067a9d0a1cc09529427af9a15e15d32ba1de"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:12:14 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for unmap_sg requests\n\nImpact: see number of unmap_sg requests in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "d03f067a9d0a1cc09529427af9a15e15d32ba1de",
      "tree": "6d09e8029cd35ed8bf769cb8af662fbac81a1a30",
      "parents": [
        "146a6917fc30616401a090f55cff2b855ee5b2ab"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:09:48 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for map_sg requests\n\nImpact: see number of map_sg requests in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "146a6917fc30616401a090f55cff2b855ee5b2ab",
      "tree": "b931b7a2d3e8eb049a129216767c66b8586bbdd9",
      "parents": [
        "0f2a86f200bc97ae6cefc5d3ac879094b3fcde48"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:07:12 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for unmap_single requests\n\nImpact: see number of unmap_single requests in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "0f2a86f200bc97ae6cefc5d3ac879094b3fcde48",
      "tree": "a1ae52873ab4bcda1e9db4cb1f0ff67450832d31",
      "parents": [
        "da49f6df726ecaaee87757e8b65a560679d32f99"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 15:05:16 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:59 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for map_single requests\n\nImpact: see number of map_single requests in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "da49f6df726ecaaee87757e8b65a560679d32f99",
      "tree": "e17afeec5a4f7aabaf7754288bfba9caafa0d13e",
      "parents": [
        "7f26508bbb76ce86aad1130ef6b7f1a4bb7de0c2"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 14:59:58 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:58 2009 +0100"
      },
      "message": "AMD IOMMU: add stats counter for completion wait events\n\nImpact: see number of completion wait events in debugfs\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "7f26508bbb76ce86aad1130ef6b7f1a4bb7de0c2",
      "tree": "92efde72a5101c1aed8858272f150c1c281bc3b8",
      "parents": [
        "a9dddbe0497ab0df7ee729e8d4cb0ee2dec3e4ba"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 13:50:21 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:58 2009 +0100"
      },
      "message": "AMD IOMMU: add init code for statistic collection\n\nImpact: create a new debugfs directory\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "a9dddbe0497ab0df7ee729e8d4cb0ee2dec3e4ba",
      "tree": "c86bed8b228e49808948fc7d42dd528b8086b4ef",
      "parents": [
        "2e117604a4e8f3f9cee4aec3373b0382159e152a"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Fri Dec 12 12:33:06 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:58 2009 +0100"
      },
      "message": "AMD IOMMU: add necessary header defines for stats counting\n\nImpact: add defines to make iommu stats collection configurable\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "2e117604a4e8f3f9cee4aec3373b0382159e152a",
      "tree": "e0691ee22ff5ff11fa1a6d2aefb4b1dccace62d6",
      "parents": [
        "a4e267c88b4acfc87ff2ab0cc8e9509878e9aaba"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Thu Dec 11 19:00:12 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:57 2009 +0100"
      },
      "message": "AMD IOMMU: add Kconfig entry for statistic collection code\n\nImpact: adds new Kconfig entry\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    },
    {
      "commit": "a4e267c88b4acfc87ff2ab0cc8e9509878e9aaba",
      "tree": "5f988f95122a0dcaf1d3ab0d34c76fcf0ecca271",
      "parents": [
        "edcb34da259c503a2ffd37e51a658672ba3bc7a2"
      ],
      "author": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Wed Dec 10 20:04:18 2008 +0100"
      },
      "committer": {
        "name": "Joerg Roedel",
        "email": "joerg.roedel@amd.com",
        "time": "Sat Jan 03 14:11:57 2009 +0100"
      },
      "message": "AMD IOMMU: use dev_name in iommu_enable function\n\nImpact: cleanup\n\nSigned-off-by: Joerg Roedel \u003cjoerg.roedel@amd.com\u003e\n"
    }
  ],
  "next": "edcb34da259c503a2ffd37e51a658672ba3bc7a2"
}
