)]}'
{
  "log": [
    {
      "commit": "964f5369667b342994fe3f384e9ba41d404ee796",
      "tree": "ad8a5f942af0696d69fb58abf05773c19d05e58b",
      "parents": [
        "79d25767583e4e086f8309bfd1f502660a64fe7f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 09:47:13 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:12 2009 -0400"
      },
      "message": "fs/qnx4: sanitize includes\n\nfs-internal parts of qnx4_fs.h taken to fs/qnx4/qnx4.h, includes adjusted,\nqnx4_fs.h doesn\u0027t need unifdef anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79d25767583e4e086f8309bfd1f502660a64fe7f",
      "tree": "f13414f324d859f82c604bb4027a4aab19bed909",
      "parents": [
        "d5aacad548db1ff547adf35d0a77eb2a8ed4fe14"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 09:30:08 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Sanitize qnx4 fsync handling\n\n* have directory operations use mark_buffer_dirty_inode(),\n  so that sync_mapping_buffers() would get those.\n* make qnx4_write_inode() honour its last argument.\n* get rid of insane copies of very ancient \"walk the indirect blocks\"\n  in qnx4/fsync - they never matched the actual fs layout and, fortunately,\n  never\u0027d been called.  Again, all this junk is not needed; -\u003efsync()\n  should just do sync_mapping_buffers + sync_inode (and if we implement\n  block allocation for qnx4, we\u0027ll need to use mark_buffer_dirty_inode()\n  for extent blocks)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d5aacad548db1ff547adf35d0a77eb2a8ed4fe14",
      "tree": "fbdf12dbacde76a1bb57738f1f67b87a673ddff2",
      "parents": [
        "337eb00a2c3a421999c39c94ce7e33545ee8baa7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 14:56:44 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "New helper - simple_fsync()\n\nwrites associated buffers, then does sync_inode() to write\nthe inode itself (and to make it clean).  Depends on\n-\u003ewrite_inode() honouring the second argument.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8688b8635266cf98f00c6b0350ea2dbe7c42c321",
      "tree": "d49153695f4637f5671fe5c10810b93959e65ccf",
      "parents": [
        "f95022161d23ee661a48af8f280472209f513a67"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue May 26 05:45:04 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:10 2009 -0400"
      },
      "message": "linux/magic.h: move cramfs magic out of cramfs_fs.h\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCC: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "28ad0c118b0ed98b042d362acfe0017591921138",
      "tree": "71a8954cbd50216c11c5c3557efcb7535c433e0a",
      "parents": [
        "9fd5746fd3d7838bf6ff991d50f1257057d1156f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 21 16:01:02 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:09 2009 -0400"
      },
      "message": "fs: Rearrange inode structure elements to avoid waste due to padding\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: linux-fsdevel@vger.kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9fd5746fd3d7838bf6ff991d50f1257057d1156f",
      "tree": "e0afe14ea9415b0e54c40703bb44acfec100a4b3",
      "parents": [
        "ebc1ac164560a241d9bf1b7519062910c3f90a01"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 21 16:01:00 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:09 2009 -0400"
      },
      "message": "fs: Remove i_cindex from struct inode\n\nThe only user of the i_cindex element in the inode structure is used\nis by the firewire drivers.  As part of an attempt to slim down the\ninode structure to save memory --- since a typical Linux system will\nhave hundreds of thousands if not millions of inodes cached, a\nreduction in the size inode has high leverage.\n\nThe firewire driver does not need i_cindex in any fast path, so it\u0027s\nsimple enough to calculate when it is needed, instead of wasting space\nin the inode structure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: krh@redhat.com\nCc: stefanr@s5r6.in-berlin.de\nCc: linux-fsdevel@vger.kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "62c6943b4b1e818aea60c11c5a68a50785b83119",
      "tree": "ecdbb1c63d5c37b42f7074e4c53beaaa850ada2b",
      "parents": [
        "443b94baaa16771e98b29ca7c24f1e305738ffca"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 07 03:12:29 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "Trim a bit of crap from fs.h\n\ndo_remount_sb() is fs/internal.h fodder, fsync_no_super() is long gone.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f3da392e9ff14b9f388e74319e6d195848991c07",
      "tree": "d9e7660e5c0b4524aeaafcc5b89a9d68a7ca3817",
      "parents": [
        "8c85e125124a473d6f3e9bb187b0b84207f81d91"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 04 03:32:03 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "dcache: extrace and use d_unlinked()\n\nd_unlinked() will be used in middle-term to ban checkpointing when opened\nbut unlinked file is detected, and in long term, to detect such situation\nand special case on it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c3f8a40c1cd5591b882497d1d00d43d0e5bb4698",
      "tree": "8280d4c7748be5d3b2b96c6bd11a643280d0b232",
      "parents": [
        "850b201b087f5525a0a7278551c2bcd0423c3b26"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:55 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "quota: Introduce writeout_quota_sb() (version 4)\n\nIntroduce this function which just writes all the quota structures but\navoids all the syncing and cache pruning work to expose quota structures\nto userspace. Use this function from __sync_filesystem when wait \u003d\u003d 0.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "850b201b087f5525a0a7278551c2bcd0423c3b26",
      "tree": "a076f135430380d2ffaeb041ee53d09352cb2752",
      "parents": [
        "60b0680fa236ac4e17ce31a50048c9d75f9ec831"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Apr 27 16:43:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "quota: cleanup dquota sync functions (version 4)\n\nCurrently the VFS calls vfs_dq_sync to sync out disk quotas for a given\nsuperblock.  This is a small wrapper around sync_dquots which for the\ncase of a non-NULL superblock is a small wrapper around quota_sync_sb.\n\nJust make quota_sync_sb global (rename it to sync_quota_sb) and call it\ndirectly.  Also call it directly for those cases in quota.c that have a\nsuperblock and leave sync_dquots purely an iterator over sync_quota_sb and\nremove it\u0027s superblock argument.\n\nTo make this nicer move the check for the lack of a quota_sync method\nfrom the callers into sync_quota_sb.\n\n[folded build fix from Alexander Beregalov \u003ca.beregalov@gmail.com\u003e]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "60b0680fa236ac4e17ce31a50048c9d75f9ec831",
      "tree": "c8ca34340a173326694247eab779e713c57202c2",
      "parents": [
        "c15c54f5f056ee4819da9fde59a5f2cd45445f23"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:53 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "vfs: Rename fsync_super() to sync_filesystem() (version 4)\n\nRename the function so that it better describe what it really does. Also\nremove the unnecessary include of buffer_head.h.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c15c54f5f056ee4819da9fde59a5f2cd45445f23",
      "tree": "0b8d142f0b8d44b71bf7ff9db7a373f90d0556a3",
      "parents": [
        "5cee5815d1564bbbd505fea86f4550f1efdb5cd0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:52 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "vfs: Move syncing code from super.c to sync.c (version 4)\n\nMove sync_filesystems(), __fsync_super(), fsync_super() from\nsuper.c to sync.c where it fits better.\n\n[build fixes folded]\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5cee5815d1564bbbd505fea86f4550f1efdb5cd0",
      "tree": "ba99c38932dc534bf56f0d7dcfeeca153f50b007",
      "parents": [
        "429479f031322a0cc5c921ffb2321a51718dc875"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:51 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:03 2009 -0400"
      },
      "message": "vfs: Make sys_sync() use fsync_super() (version 4)\n\nIt is unnecessarily fragile to have two places (fsync_super() and do_sync())\ndoing data integrity sync of the filesystem. Alter __fsync_super() to\naccommodate needs of both callers and use it. So after this patch\n__fsync_super() is the only place where we gather all the calls needed to\nproperly send all data on a filesystem to disk.\n\nNice bonus is that we get a complete livelock avoidance and write_supers()\nis now only used for periodic writeback of superblocks.\n\nsync_blockdevs() introduced a couple of patches ago is gone now.\n\n[build fixes folded]\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "429479f031322a0cc5c921ffb2321a51718dc875",
      "tree": "6741f7f1bfa1d889bbc4f44ab0489de97a3e47c0",
      "parents": [
        "bfe881255c74800147523b59c85328a1a826ba21"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:50 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:03 2009 -0400"
      },
      "message": "vfs: Make __fsync_super() a static function (version 4)\n\n__fsync_super() does the same thing as fsync_super(). So change the only\ncaller to use fsync_super() and make __fsync_super() static. This removes\nunnecessarily duplicated call to sync_blockdev() and prepares ground\nfor the changes to __fsync_super() in the following patches.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "876a9f76abbcb775f8d21cbc99fa161f9e5937f1",
      "tree": "971a1ac276c365a53ef1563c9d9f71013a563f09",
      "parents": [
        "864d7c4c068f23642efe91b33be3a84afe5f71e0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 28 18:05:55 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "remove s_async_list\n\nRemove the unused s_async_list in the superblock, a leftover of the\nbroken async inode deletion code that leaked into mainline.  Having this\nin the middle of the sync/unmount path is not helpful for the following\ncleanups.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "96029c4e09ccbd73a6d0ed2b29e80bf2586ad7ef",
      "tree": "032d2ac7024250c18487a2c7122af68fe56567ff",
      "parents": [
        "d3ef3d7351ccfbef3e5d926efc5ee332136f40d4"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Sun Apr 26 20:25:55 2009 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "fs: introduce mnt_clone_write\n\nThis patch speeds up lmbench lat_mmap test by about another 2% after the\nfirst patch.\n\nBefore:\n avg \u003d 462.286\n std \u003d 5.46106\n\nAfter:\n avg \u003d 453.12\n std \u003d 9.58257\n\n(50 runs of each, stddev gives a reasonable confidence)\n\nIt does this by introducing mnt_clone_write, which avoids some heavyweight\noperations of mnt_want_write if called on a vfsmount which we know already\nhas a write count; and mnt_want_write_file, which can call mnt_clone_write\nif the file is open for write.\n\nAfter these two patches, mnt_want_write and mnt_drop_write go from 7% on\nthe profile down to 1.3% (including mnt_clone_write).\n\n[AV: mnt_want_write_file() should take file alone and derive mnt from it;\nnot only all callers have that form, but that\u0027s the only mnt about which\nwe know that it\u0027s already held for write if file is opened for write]\n\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3ef3d7351ccfbef3e5d926efc5ee332136f40d4",
      "tree": "bd875a2b267ae03b350e259675ccb1a04453b9b9",
      "parents": [
        "3174c21b74b56c6a53fddd41a30fd6f757a32bd0"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Sun Apr 26 20:25:54 2009 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "fs: mnt_want_write speedup\n\nThis patch speeds up lmbench lat_mmap test by about 8%. lat_mmap is set up\nbasically to mmap a 64MB file on tmpfs, fault in its pages, then unmap it.\nA microbenchmark yes, but it exercises some important paths in the mm.\n\nBefore:\n avg \u003d 501.9\n std \u003d 14.7773\n\nAfter:\n avg \u003d 462.286\n std \u003d 5.46106\n\n(50 runs of each, stddev gives a reasonable confidence, but there is quite\na bit of variation there still)\n\nIt does this by removing the complex per-cpu locking and counter-cache and\nreplaces it with a percpu counter in struct vfsmount. This makes the code\nmuch simpler, and avoids spinlocks (although the msync is still pretty\ncostly, unfortunately). It results in about 900 bytes smaller code too. It\ndoes increase the size of a vfsmount, however.\n\nIt should also give a speedup on large systems if CPUs are frequently operating\non different mounts (because the existing scheme has to operate on an atomic in\nthe struct vfsmount when switching between mounts). But I\u0027m most interested in\nthe single threaded path performance for the moment.\n\n[AV: minor cleanup]\n\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3174c21b74b56c6a53fddd41a30fd6f757a32bd0",
      "tree": "2fc978162ecc591e3005afd820663c7c869999de",
      "parents": [
        "1c755af4df75996b0dd4b7e6cacaf9d57a6ef2ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 13:19:18 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "Move junk from proc_fs.h to fs/proc/internal.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1c755af4df75996b0dd4b7e6cacaf9d57a6ef2ef",
      "tree": "0a75e35164912f53b21ca48b829cabdfa6ea507d",
      "parents": [
        "79ed0226198c628133530b179a90dbf42b1c2eba"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 14:06:57 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch lookup_mnt()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9393bd07cf218ca51d0e627653f906a9d76a9131",
      "tree": "402205fe6336028df48cd65b31da0482f0b0bb41",
      "parents": [
        "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:58:15 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_down()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151",
      "tree": "a628f8db3bd587df6e2a918216aa64946b506e6f",
      "parents": [
        "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:28:19 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "Switch collect_mounts() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9",
      "tree": "710a8bba0a4f3738b32e4e5230ccf3665cd1b815",
      "parents": [
        "e64c390ca0b60fd2119331ef1fa888d7ea27e424"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:26:48 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch follow_up() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e64c390ca0b60fd2119331ef1fa888d7ea27e424",
      "tree": "f1fc964af0abc20b2325cea513cbafdf09537c39",
      "parents": [
        "91c9fa8f75877c0c1e455c23e8f8206c91c8f77f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:00:46 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch rqst_exp_parent()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91c9fa8f75877c0c1e455c23e8f8206c91c8f77f",
      "tree": "ee26e614577b079102327393832b2ed503a4b527",
      "parents": [
        "5bf3bd2b5cb68ba43c91f5bd0ac043543fba2558"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:42:05 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch rqst_exp_get_by_name()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a737871108de9ba8930f7650d549f1383767f8b",
      "tree": "d4a8c5d7da4624c4a8973a4c9369af7a915dca05",
      "parents": [
        "9b4a9b14a793bc69b505ed916051f6f32db13bb8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 11:49:53 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:59 2009 -0400"
      },
      "message": "Cache root in nameidata\n\nNew field: nd-\u003eroot.  When pathname resolution wants to know the root,\ncheck if nd-\u003eroot.mnt is non-NULL; use nd-\u003eroot if it is, otherwise\ncopy current-\u003efs-\u003eroot there.  After path_walk() is finished, we check\nif we\u0027d got a cached value in nd-\u003eroot and drop it.  Before calling\npath_walk() we should either set nd-\u003eroot.mnt to NULL *or* copy (and\npin down) some path to nd-\u003eroot.  In the latter case we won\u0027t be\nlooking at current-\u003efs-\u003eroot at all.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "73422811d290c628b4ddbf6830e5cd6fa42e84f1",
      "tree": "9308c36ee82a8217b02848372896209335c69575",
      "parents": [
        "a525890cb6a2949b644d212ae290b658967d3919"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Sun May 10 16:05:39 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:58 2009 -0400"
      },
      "message": "reiserfs: allow exposing privroot w/ xattrs enabled\n\nThis patch adds an -oexpose_privroot option to allow access to the privroot.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3bb66d7f8cc31537a3170c9bb82b38e538b984c5",
      "tree": "e7174a8e9b805e056c3b0e510789a611ce4eeb1c",
      "parents": [
        "512626a04e72aca60effe111fa0333ed0b195d21",
        "a092ee20fd33d2df0990dcbf2235afc181612818"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:22:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:22:55 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify:\n  fsnotify: allow groups to set freeing_mark to null\n  inotify/dnotify: should_send_event shouldn\u0027t match on FS_EVENT_ON_CHILD\n  dnotify: do not bother to lock entry-\u003elock when reading mask\n  dnotify: do not use ?true:false when assigning to a bool\n  fsnotify: move events should indicate the event was on a child\n  inotify: reimplement inotify using fsnotify\n  fsnotify: handle filesystem unmounts with fsnotify marks\n  fsnotify: fsnotify marks on inodes pin them in core\n  fsnotify: allow groups to add private data to events\n  fsnotify: add correlations between events\n  fsnotify: include pathnames with entries when possible\n  fsnotify: generic notification queue and waitq\n  dnotify: reimplement dnotify using fsnotify\n  fsnotify: parent event notification\n  fsnotify: add marks to inodes so groups can interpret how to handle those inodes\n  fsnotify: unified filesystem notification backend\n"
    },
    {
      "commit": "512626a04e72aca60effe111fa0333ed0b195d21",
      "tree": "c22e23b0dcc2dd2ff5a9a96a007de6799e9223de",
      "parents": [
        "8a1ca8cedd108c8e76a6ab34079d0bbb4f244799",
        "3aa27bbe7a6536d1ec859d3a97caf3319b5081b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Add the corresponding MAINTAINERS entry\n  kmemleak: Simple testing module for kmemleak\n  kmemleak: Enable the building of the memory leak detector\n  kmemleak: Remove some of the kmemleak false positives\n  kmemleak: Add modules support\n  kmemleak: Add kmemleak_alloc callback from alloc_large_system_hash\n  kmemleak: Add the vmalloc memory allocation/freeing hooks\n  kmemleak: Add the slub memory allocation/freeing hooks\n  kmemleak: Add the slob memory allocation/freeing hooks\n  kmemleak: Add the slab memory allocation/freeing hooks\n  kmemleak: Add documentation on the memory leak detector\n  kmemleak: Add the base support\n\nManual conflict resolution (with the slab/earlyboot changes) in:\n\tdrivers/char/vt.c\n\tinit/main.c\n\tmm/slab.c\n"
    },
    {
      "commit": "8a1ca8cedd108c8e76a6ab34079d0bbb4f244799",
      "tree": "636c715524f1718599209cc289908ea44b6cb859",
      "parents": [
        "b640f042faa2a2fad6464f259a8afec06e2f6386",
        "940010c5a314a7bd9b498593bc6ba1718ac5aec5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:01:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:01:07 2009 -0700"
      },
      "message": "Merge branch \u0027perfcounters-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perfcounters-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (574 commits)\n  perf_counter: Turn off by default\n  perf_counter: Add counter-\u003eid to the throttle event\n  perf_counter: Better align code\n  perf_counter: Rename L2 to LL cache\n  perf_counter: Standardize event names\n  perf_counter: Rename enums\n  perf_counter tools: Clean up u64 usage\n  perf_counter: Rename perf_counter_limit sysctl\n  perf_counter: More paranoia settings\n  perf_counter: powerpc: Implement generalized cache events for POWER processors\n  perf_counters: powerpc: Add support for POWER7 processors\n  perf_counter: Accurate period data\n  perf_counter: Introduce struct for sample data\n  perf_counter tools: Normalize data using per sample period data\n  perf_counter: Annotate exit ctx recursion\n  perf_counter tools: Propagate signals properly\n  perf_counter tools: Small frequency related fixes\n  perf_counter: More aggressive frequency adjustment\n  perf_counter/x86: Fix the model number of Intel Core2 processors\n  perf_counter, x86: Correct some event and umask values for Intel processors\n  ...\n"
    },
    {
      "commit": "b640f042faa2a2fad6464f259a8afec06e2f6386",
      "tree": "44a2943f91859422a207612229031a767c0accd5",
      "parents": [
        "871fa90791a6f83dd8e2e489feb9534a8c02088d",
        "b8ec757390282e21d349bf6b602a8cb182da0429"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 12:25:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 12:25:06 2009 -0700"
      },
      "message": "Merge branch \u0027topic/slab/earlyboot\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027topic/slab/earlyboot\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  vgacon: use slab allocator instead of the bootmem allocator\n  irq: use kcalloc() instead of the bootmem allocator\n  sched: use slab in cpupri_init()\n  sched: use alloc_cpumask_var() instead of alloc_bootmem_cpumask_var()\n  memcg: don\u0027t use bootmem allocator in setup code\n  irq/cpumask: make memoryless node zero happy\n  x86: remove some alloc_bootmem_cpumask_var calling\n  vt: use kzalloc() instead of the bootmem allocator\n  sched: use kzalloc() instead of the bootmem allocator\n  init: introduce mm_init()\n  vmalloc: use kzalloc() instead of alloc_bootmem()\n  slab: setup allocators earlier in the boot sequence\n  bootmem: fix slab fallback on numa\n  bootmem: use slab if bootmem is no longer available\n"
    },
    {
      "commit": "ff52cc2158b32b3b979ca7802b1fd7c70f36e13c",
      "tree": "1156b8a138adef3698636bf28ad3a739c3c5bff3",
      "parents": [
        "63c882a05416e18de6fb59f7dd6da48f3bbe8273"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 11:09:47 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:54 2009 -0400"
      },
      "message": "fsnotify: move events should indicate the event was on a child\n\nfsnotify tells its listeners explicitly when an event happened on the given\ninode verses on the child of the given inode.  (see __fsnotify_parent)\nHowever, the semantics of fsnotify_move() are such that we deliver events\ndirectly to the two parent directories in question (old_dir and new_dir)\ndirectly without using the __fsnotify_parent() call.  fsnotify should be\nadding FS_EVENT_ON_CHILD for the notifications to these parents.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "63c882a05416e18de6fb59f7dd6da48f3bbe8273",
      "tree": "b09cca0e3a996690c8965d9281cb1f386edd657b",
      "parents": [
        "164bc6195139047faaf5ada1278332e99494803b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:02:01 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:54 2009 -0400"
      },
      "message": "inotify: reimplement inotify using fsnotify\n\nReimplement inotify_user using fsnotify.  This should be feature for feature\nexactly the same as the original inotify_user.  This does not make any changes\nto the in kernel inotify feature used by audit.  Those patches (and the eventual\nremoval of in kernel inotify) will come after the new inotify_user proves to be\nworking correctly.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "164bc6195139047faaf5ada1278332e99494803b",
      "tree": "fdc0e31f9dc15796a4777ed917533091797b8b69",
      "parents": [
        "1ef5f13c6c8acd3fd10db9f1743f3b4cf30a4abb"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:58 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:54 2009 -0400"
      },
      "message": "fsnotify: handle filesystem unmounts with fsnotify marks\n\nWhen an fs is unmounted with an fsnotify mark entry attached to one of its\ninodes we need to destroy that mark entry and we also (like inotify) send\nan unmount event.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e4aff117368cfdd3567ee41844d216d079b55173",
      "tree": "c467bc38edc7ba3154bbf6875dca635b855e1c8c",
      "parents": [
        "47882c6f51e8ef41fbbe2bbb746a1ea3228dd7ca"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:50 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:54 2009 -0400"
      },
      "message": "fsnotify: allow groups to add private data to events\n\ninotify needs per group information attached to events.  This patch allows\ngroups to attach private information and implements a callback so that\ninformation can be freed when an event is being destroyed.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "47882c6f51e8ef41fbbe2bbb746a1ea3228dd7ca",
      "tree": "d3dd3e8d0e4d3e3793f32107077839f787e35fcd",
      "parents": [
        "62ffe5dfba056f7ba81d710fee9f28c58a42fdd6"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:47 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:54 2009 -0400"
      },
      "message": "fsnotify: add correlations between events\n\nAs part of the standard inotify events it includes a correlation cookie\nbetween two dentry move operations.  This patch includes the same behaviour\nin fsnotify events.  It is needed so that inotify userspace can be\nimplemented on top of fsnotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "62ffe5dfba056f7ba81d710fee9f28c58a42fdd6",
      "tree": "ac0d4afc641bdc8ff76779545fde9c6ae539bdaf",
      "parents": [
        "a2d8bc6cb4a3024661baf877242f123787d0c054"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:43 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "fsnotify: include pathnames with entries when possible\n\nWhen inotify wants to send events to a directory about a child it includes\nthe name of the original file.  This patch collects that filename and makes\nit available for notification.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a2d8bc6cb4a3024661baf877242f123787d0c054",
      "tree": "4ff3f93877a8992d5383c14fb6012ab9b1954660",
      "parents": [
        "3c5119c05d624f95f4967d16b38c9624b816bdb9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:37 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "fsnotify: generic notification queue and waitq\n\ninotify needs to do asyc notification in which event information is stored\non a queue until the listener is ready to receive it.  This patch\nimplements a generic notification queue for inotify (and later fanotify) to\nstore events to be sent at a later time.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3c5119c05d624f95f4967d16b38c9624b816bdb9",
      "tree": "0b5f66106aea38e52adf62958762b0a975607322",
      "parents": [
        "c28f7e56e9d95fb531dc3be8df2e7f52bee76d21"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:33 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "dnotify: reimplement dnotify using fsnotify\n\nReimplement dnotify using fsnotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c28f7e56e9d95fb531dc3be8df2e7f52bee76d21",
      "tree": "efce13ed8c4f5b312ef0b77950489d52ef5a039a",
      "parents": [
        "3be25f49b9d6a97eae9bcb96d3292072b7658bd8"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:29 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "fsnotify: parent event notification\n\ninotify and dnotify both use a similar parent notification mechanism.  We\nadd a generic parent notification mechanism to fsnotify for both of these\nto use.  This new machanism also adds the dentry flag optimization which\nexists for inotify to dnotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3be25f49b9d6a97eae9bcb96d3292072b7658bd8",
      "tree": "36f7d96481a47a6bde3c2f961346e940698111e0",
      "parents": [
        "90586523eb4b349806887c62ee70685a49415124"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:26 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:53 2009 -0400"
      },
      "message": "fsnotify: add marks to inodes so groups can interpret how to handle those inodes\n\nThis patch creates a way for fsnotify groups to attach marks to inodes.\nThese marks have little meaning to the generic fsnotify infrastructure\nand thus their meaning should be interpreted by the group that attached\nthem to the inode\u0027s list.\n\ndnotify and inotify  will make use of these markings to indicate which\ninodes are of interest to their respective groups.  But this implementation\nhas the useful property that in the future other listeners could actually\nuse the marks for the exact opposite reason, aka to indicate which inodes\nit had NO interest in.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "90586523eb4b349806887c62ee70685a49415124",
      "tree": "2ba6da637f897bbb2309b141b81801e4151d87b0",
      "parents": [
        "c9059598ea8981d02356eead3188bf7fa4d717b8"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu May 21 17:01:20 2009 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Jun 11 14:57:52 2009 -0400"
      },
      "message": "fsnotify: unified filesystem notification backend\n\nfsnotify is a backend for filesystem notification.  fsnotify does\nnot provide any userspace interface but does provide the basis\nneeded for other notification schemes such as dnotify.  fsnotify\ncan be extended to be the backend for inotify or the upcoming\nfanotify.  fsnotify provides a mechanism for \"groups\" to register for\nsome set of filesystem events and to then deliver those events to\nthose groups for processing.\n\nfsnotify has a number of benefits, the first being actually shrinking the size\nof an inode.  Before fsnotify to support both dnotify and inotify an inode had\n\n        unsigned long           i_dnotify_mask; /* Directory notify events */\n        struct dnotify_struct   *i_dnotify; /* for directory notifications */\n        struct list_head        inotify_watches; /* watches on this inode */\n        struct mutex            inotify_mutex;  /* protects the watches list\n\nBut with fsnotify this same functionallity (and more) is done with just\n\n        __u32                   i_fsnotify_mask; /* all events for this inode */\n        struct hlist_head       i_fsnotify_mark_entries; /* marks on this inode */\n\nThat\u0027s right, inotify, dnotify, and fanotify all in 64 bits.  We used that\nmuch space just in inotify_watches alone, before this patch set.\n\nfsnotify object lifetime and locking is MUCH better than what we have today.\ninotify locking is incredibly complex.  See 8f7b0ba1c8539 as an example of\nwhat\u0027s been busted since inception.  inotify needs to know internal semantics\nof superblock destruction and unmounting to function.  The inode pinning and\nvfs contortions are horrible.\n\nno fsnotify implementers do allocation under locks.  This means things like\nf04b30de3 which (due to an overabundance of caution) changes GFP_KERNEL to\nGFP_NOFS can be reverted.  There are no longer any allocation rules when using\nor implementing your own fsnotify listener.\n\nfsnotify paves the way for fanotify.  In brief fanotify is a notification\nmechanism that delivers the lisener both an \u0027event\u0027 and an open file descriptor\nto the object in question.  This means that fanotify is pathname agnostic.\nSome on lkml may not care for the original companies or users that pushed for\nTALPA, but fanotify was designed with flexibility and input for other users in\nmind.  The readahead group expressed interest in fanotify as it could be used\nto profile disk access on boot without breaking the audit system.  The desktop\nsearch groups have also expressed interest in fanotify as it solves a number\nof the race conditions and problems present with managing inotify when more\nthan a limited number of specific files are of interest.  fanotify can provide\nfor a userspace access control system which makes it a clean interface for AV\nvendors to hook without trying to do binary patching on the syscall table,\nLSM, and everywhere else they do their things today.  With this patch series\nfanotify can be implemented in less than 1200 lines of easy to review code.\nAlmost all of which is the socket based user interface.\n\nThis patch series builds fsnotify to the point that it can implement\ndnotify and inotify_user.  Patches exist and will be sent soon after\nacceptance to finish the in kernel inotify conversion (audit) and implement\nfanotify.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c9059598ea8981d02356eead3188bf7fa4d717b8",
      "tree": "03e73b20a30e988da7c6a3e0ad93b2dc5843274d",
      "parents": [
        "0a33f80a8373eca7f4bea3961d1346c3815fa5ed",
        "b0fd271d5fba0b2d00888363f3869e3f9b26caa9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:52:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 11:10:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block: (153 commits)\n  block: add request clone interface (v2)\n  floppy: fix hibernation\n  ramdisk: remove long-deprecated \"ramdisk\u003d\" boot-time parameter\n  fs/bio.c: add missing __user annotation\n  block: prevent possible io_context-\u003erefcount overflow\n  Add serial number support for virtio_blk, V4a\n  block: Add missing bounce_pfn stacking and fix comments\n  Revert \"block: Fix bounce limit setting in DM\"\n  cciss: decode unit attention in SCSI error handling code\n  cciss: Remove no longer needed sendcmd reject processing code\n  cciss: change SCSI error handling routines to work with interrupts enabled.\n  cciss: separate error processing and command retrying code in sendcmd_withirq_core()\n  cciss: factor out fix target status processing code from sendcmd functions\n  cciss: simplify interface of sendcmd() and sendcmd_withirq()\n  cciss: factor out core of sendcmd_withirq() for use by SCSI error handling code\n  cciss: Use schedule_timeout_uninterruptible in SCSI error handling code\n  block: needs to set the residual length of a bidi request\n  Revert \"block: implement blkdev_readpages\"\n  block: Fix bounce limit setting in DM\n  Removed reference to non-existing file Documentation/PCI/PCI-DMA-mapping.txt\n  ...\n\nManually fix conflicts with tracing updates in:\n\tblock/blk-sysfs.c\n\tdrivers/ide/ide-atapi.c\n\tdrivers/ide/ide-cd.c\n\tdrivers/ide/ide-floppy.c\n\tdrivers/ide/ide-tape.c\n\tinclude/trace/events/block.h\n\tkernel/trace/blktrace.c\n"
    },
    {
      "commit": "d3d07d941fd80c173b6d690ded00ee5fb8302e06",
      "tree": "f1a82c956e393df9933c8544bb564ef1735384ee",
      "parents": [
        "6cd8e300b49332eb9eeda45816c711c198d31505",
        "54ff328b46e58568c4b3350c2fa3223ef862e5a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:08:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:08:33 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (266 commits)\n  sh: Tie sparseirq in to Kconfig.\n  sh: Wire up sys_rt_tgsigqueueinfo.\n  sh: Fix sys_pwritev() syscall table entry for sh32.\n  sh: Fix sh4a llsc-based cmpxchg()\n  sh: sh7724: Add JPU support\n  sh: sh7724: INTC setting update\n  sh: sh7722 clock framework rewrite\n  sh: sh7366 clock framework rewrite\n  sh: sh7343 clock framework rewrite\n  sh: sh7724 clock framework rewrite V3\n  sh: sh7723 clock framework rewrite V2\n  sh: add enable()/disable()/set_rate() to div6 code\n  sh: add AP325RXA mode pin configuration\n  sh: add Migo-R mode pin configuration\n  sh: sh7722 mode pin definitions\n  sh: sh7724 mode pin comments\n  sh: sh7723 mode pin V2\n  sh: rework mode pin code\n  sh: clock div6 helper code\n  sh: clock div4 frequency table offset fix\n  ...\n"
    },
    {
      "commit": "6cd8e300b49332eb9eeda45816c711c198d31505",
      "tree": "246faf935687066da6efc6506ed71a04e61a2f02",
      "parents": [
        "ddbb868493abdb71d6c0e3ff93f735923842de38",
        "09f8ca74ae6c2d78b2c7f6c0751ed0cbe815a3d9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:03:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:03:30 2009 -0700"
      },
      "message": "Merge branch \u0027kvm-updates/2.6.31\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\n* \u0027kvm-updates/2.6.31\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (138 commits)\n  KVM: Prevent overflow in largepages calculation\n  KVM: Disable large pages on misaligned memory slots\n  KVM: Add VT-x machine check support\n  KVM: VMX: Rename rmode.active to rmode.vm86_active\n  KVM: Move \"exit due to NMI\" handling into vmx_complete_interrupts()\n  KVM: Disable CR8 intercept if tpr patching is active\n  KVM: Do not migrate pending software interrupts.\n  KVM: inject NMI after IRET from a previous NMI, not before.\n  KVM: Always request IRQ/NMI window if an interrupt is pending\n  KVM: Do not re-execute INTn instruction.\n  KVM: skip_emulated_instruction() decode instruction if size is not known\n  KVM: Remove irq_pending bitmap\n  KVM: Do not allow interrupt injection from userspace if there is a pending event.\n  KVM: Unprotect a page if #PF happens during NMI injection.\n  KVM: s390: Verify memory in kvm run\n  KVM: s390: Sanity check on validity intercept\n  KVM: s390: Unlink vcpu on destroy - v2\n  KVM: s390: optimize float int lock: spin_lock_bh --\u003e spin_lock\n  KVM: s390: use hrtimer for clock wakeup from idle - v2\n  KVM: s390: Fix memory slot versus run - v3\n  ...\n"
    },
    {
      "commit": "3296ca27f50ecbd71db1d808c7a72d311027f919",
      "tree": "833eaa58b2013bda86d4bd95faf6efad7a2d5ca4",
      "parents": [
        "e893123c7378192c094747dadec326b7c000c190",
        "73fbad283cfbbcf02939bdbda31fc4a30e729cca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (44 commits)\n  nommu: Provide mmap_min_addr definition.\n  TOMOYO: Add description of lists and structures.\n  TOMOYO: Remove unused field.\n  integrity: ima audit dentry_open failure\n  TOMOYO: Remove unused parameter.\n  security: use mmap_min_addr indepedently of security models\n  TOMOYO: Simplify policy reader.\n  TOMOYO: Remove redundant markers.\n  SELinux: define audit permissions for audit tree netlink messages\n  TOMOYO: Remove unused mutex.\n  tomoyo: avoid get+put of task_struct\n  smack: Remove redundant initialization.\n  integrity: nfsd imbalance bug fix\n  rootplug: Remove redundant initialization.\n  smack: do not beyond ARRAY_SIZE of data\n  integrity: move ima_counts_get\n  integrity: path_check update\n  IMA: Add __init notation to ima functions\n  IMA: Minimal IMA policy and boot param for TCB IMA policy\n  selinux: remove obsolete read buffer limit from sel_read_bool\n  ...\n"
    },
    {
      "commit": "27951daa71f1c91300ae4de9441916d1ffe2b078",
      "tree": "72d9ecde8c784c0837b7caf64b97fac5ffd5a424",
      "parents": [
        "59c288ffb6dfb55bdd6bfe6826ab6203ff791930",
        "e8e7526c3c0863be25ab03a0871ee0978de5ba50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:00:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:00:03 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (28 commits)\n  ide-tape: fix debug call\n  alim15x3: Remove historical hacks, re-enable init_hwif for PowerPC\n  ide-dma: don\u0027t reset request fields on dma_timeout_retry()\n  ide: drop rq-\u003edata handling from ide_map_sg()\n  ide-atapi: kill unused fields and callbacks\n  ide-tape: simplify read/write functions\n  ide-tape: use byte size instead of sectors on rw issue functions\n  ide-tape: unify r/w init paths\n  ide-tape: kill idetape_bh\n  ide-tape: use standard data transfer mechanism\n  ide-tape: use single continuous buffer\n  ide-atapi,tape,floppy: allow -\u003epc_callback() to change rq-\u003edata_len\n  ide-tape,floppy: fix failed command completion after request sense\n  ide-pm: don\u0027t abuse rq-\u003edata\n  ide-cd,atapi: use bio for internal commands\n  ide-atapi: convert ide-{floppy,tape} to using preallocated sense buffer\n  ide-cd: convert to using generic sense request\n  ide: add helpers for preparing sense requests\n  ide-cd: don\u0027t abuse rq-\u003ebuffer\n  ide-atapi: don\u0027t abuse rq-\u003ebuffer\n  ...\n"
    },
    {
      "commit": "38c7fed2f5ffee17e1fa3e0f78b0e1bf43d52d13",
      "tree": "52544d8dcfadbd5347872eae23939fe387d7c78b",
      "parents": [
        "a5f4f52e82114e85aa1a066bd1a450acc19a464d"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon May 25 15:10:58 2009 +0300"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Thu Jun 11 19:27:07 2009 +0300"
      },
      "message": "x86: remove some alloc_bootmem_cpumask_var calling\n\nNow that we set up the slab allocator earlier, we can get rid of some\nalloc_bootmem_cpumask_var() calls in boot code.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "2e1483c995bbd0fa6cbd055ad76088a520799ba4",
      "tree": "4b555ae3452a80e3cebd7adcab83b019d1ca1b60",
      "parents": [
        "4f2294b6dc88d99295230d97fef2c9863cec44c3"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:24:13 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:04:18 2009 +0100"
      },
      "message": "kmemleak: Remove some of the kmemleak false positives\n\nThere are allocations for which the main pointer cannot be found but\nthey are not memory leaks. This patch fixes some of them. For more\ninformation on false positives, see Documentation/kmemleak.txt.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "d5cff635290aec9ad7e6ee546aa4fae895361cbb",
      "tree": "172d99e0775a2e858d6cfa3ba0a197ecfdd03fce",
      "parents": [
        "04f70336c80c43a15e617b36c2043dfa0ad6ed0f"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:22:40 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:03:29 2009 +0100"
      },
      "message": "kmemleak: Add the slab memory allocation/freeing hooks\n\nThis patch adds the callbacks to kmemleak_(alloc|free) functions from\nthe slab allocator. The patch also adds the SLAB_NOLEAKTRACE flag to\navoid recursive calls to kmemleak when it allocates its own data\nstructures.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "3c7b4e6b8be4c16f1e6e5c558e33b7ff0db2dfaf",
      "tree": "3722fc5220bf8d611def5618758b05160ff05312",
      "parents": [
        "991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:22:39 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:03:28 2009 +0100"
      },
      "message": "kmemleak: Add the base support\n\nThis patch adds the base support for the kernel memory leak\ndetector. It traces the memory allocation/freeing in a way similar to\nthe Boehm\u0027s conservative garbage collector, the difference being that\nthe unreferenced objects are not freed but only shown in\n/sys/kernel/debug/kmemleak. Enabling this feature introduces an\noverhead to memory allocations.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "49c355617f603b8e71ec117c1f940152a998528a",
      "tree": "6b5e373003371bbe8c587a9fdda7bc4f0e791b03",
      "parents": [
        "991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d",
        "f0e8527726b9e56649b9eafde3bc0fbc4dd2dd47"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:57:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:57:47 2009 -0700"
      },
      "message": "Merge branch \u0027serial-from-alan\u0027\n\n* serial-from-alan: (79 commits)\n  moxa: prevent opening unavailable ports\n  imx: serial: use tty_encode_baud_rate to set true rate\n  imx: serial: add IrDA support to serial driver\n  imx: serial: use rational library function\n  lib: isolate rational fractions helper function\n  imx: serial: handle initialisation failure correctly\n  imx: serial: be sure to stop xmit upon shutdown\n  imx: serial: notify higher layers in case xmit IRQ was not called\n  imx: serial: fix one bit field type\n  imx: serial: fix whitespaces (no changes in functionality)\n  tty: use prepare/finish_wait\n  tty: remove sleep_on\n  sierra: driver interface blacklisting\n  sierra: driver urb handling improvements\n  tty: resolve some sierra breakage\n  timbuart: Fix the termios logic\n  serial: Added Timberdale UART driver\n  tty: Add URL for ttydev queue\n  devpts: unregister the file system on error\n  tty: Untangle termios and mm mutex dependencies\n  ...\n"
    },
    {
      "commit": "940010c5a314a7bd9b498593bc6ba1718ac5aec5",
      "tree": "d141e08ced08c40c6a8e3ab2cdecde5ff14e560f",
      "parents": [
        "8dc8e5e8bc0ce00b0f656bf972f67cd8a72759e5",
        "991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:55:42 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:55:42 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perfcounters/core\n\nConflicts:\n\tarch/x86/kernel/irqinit.c\n\tarch/x86/kernel/irqinit_64.c\n\tarch/x86/kernel/traps.c\n\tarch/x86/mm/fault.c\n\tinclude/linux/sched.h\n\tkernel/exit.c\n"
    },
    {
      "commit": "cca3f454a85ff42d426401bce7ac804541b2bd03",
      "tree": "743b60d71cd4babb65619556db4101595a5fc18b",
      "parents": [
        "a308444ceb576d3089f9ca0dfd097eba6f1e623f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 14:57:55 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:54:45 2009 +0200"
      },
      "message": "perf_counter: Add counter-\u003eid to the throttle event\n\nSo as to be able to distuinguish between multiple counters.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a308444ceb576d3089f9ca0dfd097eba6f1e623f",
      "tree": "2cff57810e3362c829fab5a42cd0afafb4500aad",
      "parents": [
        "8be6e8f3c3a13900169f1141870562d0c723b010"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 14:44:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:54:42 2009 +0200"
      },
      "message": "perf_counter: Better align code\n\nWhitespace and comment bits. Also update copyrights.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\n"
    },
    {
      "commit": "8be6e8f3c3a13900169f1141870562d0c723b010",
      "tree": "0041b2557561ada3566bd309f0b3153e31a9854c",
      "parents": [
        "f4dbfa8f3131a84257223393905f7efad0ca5996"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 14:19:11 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:54:17 2009 +0200"
      },
      "message": "perf_counter: Rename L2 to LL cache\n\nThe top (fastest) and last level (biggest) caches are the most\ninteresting ones, performance wise.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\n[ Fixed the Nehalem LL table to LLC Reference/Miss events ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4dbfa8f3131a84257223393905f7efad0ca5996",
      "tree": "67bb2666868c4449c2fa9ba6dc931721f60deb6c",
      "parents": [
        "1c432d899d32d36371ee4ee310fa3609cf0e5742"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 14:06:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:54:15 2009 +0200"
      },
      "message": "perf_counter: Standardize event names\n\nPure renames only, to PERF_COUNT_HW_* and PERF_COUNT_SW_*.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c432d899d32d36371ee4ee310fa3609cf0e5742",
      "tree": "cd2891fb0c8a03a5b8ac1100b23687d02a981b25",
      "parents": [
        "729ff5e2aaf181f5d3ab849337fce406cd19b1d9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 13:19:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:53:41 2009 +0200"
      },
      "message": "perf_counter: Rename enums\n\nRename the perf enums to be in the \u0027perf_\u0027 namespace and strictly\nenumerate the ABI bits.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8759ef32d992fc6c0bcbe40fca7aa302190918a5",
      "tree": "316df64d3456597bf7f8ef7508654c82faf6a5fe",
      "parents": [
        "9f322ad064f9210e7d472dfe77e702274d5c9dba"
      ],
      "author": {
        "name": "Oskar Schirmer",
        "email": "os@emlix.com",
        "time": "Thu Jun 11 14:51:15 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:51:08 2009 -0700"
      },
      "message": "lib: isolate rational fractions helper function\n\nProvide a helper function to determine optimum numerator\ndenominator value pairs taking into account restricted\nregister size. Useful especially with PLL and other clock\nconfigurations.\n\nSigned-off-by: Oskar Schirmer \u003cos@emlix.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34aec591847c696339189b070cce2a11f901cfea",
      "tree": "b371a780186becf6daba7c229cb74821b020a879",
      "parents": [
        "e960bf73ddd73714bcfbadb1717e53ecda9924cb"
      ],
      "author": {
        "name": "Richard Röjfors",
        "email": "richard.rojfors.ext@mocean-labs.com",
        "time": "Thu Jun 11 14:05:39 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:51:06 2009 -0700"
      },
      "message": "serial: Added Timberdale UART driver\n\nDriver for the UART found in the Timberdale FPGA\n\nSigned-off-by: Richard Röjfors \u003crichard.rojfors.ext@mocean-labs.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08e0992f60ad44025a8a8b8a821838ca4a562686",
      "tree": "7afa60d668a0559282a2492fb36c88238a035b60",
      "parents": [
        "257a6e8cc7f9274f0af090494a3f1ee06548b5bd"
      ],
      "author": {
        "name": "Florian Fainelli",
        "email": "florian@openwrt.org",
        "time": "Thu Jun 11 13:21:24 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:51:03 2009 -0700"
      },
      "message": "serial: add support for the TI AR7 internal UART\n\nThis patch adds support for the TI AR7 internal UART.\n\nSigned-off-by: Florian Fainelli \u003cflorian@openwrt.org\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c65c9bc3efa5589f691276bb9db689119a711222",
      "tree": "ccb86ffb28ecafa77623fb2789faae8e4c1e2c4b",
      "parents": [
        "e8b70e7d3e86319a8b2aaabde3866833d92cd80f"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu Jun 11 12:50:12 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:51:01 2009 -0700"
      },
      "message": "tty: rewrite the ldisc locking\n\nThere are several pretty much unfixable races in the old ldisc code, especially\nwith respect to pty behaviour and also to hangup. It\u0027s easier to rewrite the\ncode than simply try and patch it up.\n\nThis patch\n- splits the ldisc from the tty (so we will be able to refcount it more cleanly\n  later)\n- introduces a mutex lock for ldisc changing on an active device\n- fixes the complete mess that hangup caused\n- implements hopefully correct setldisc/close/hangup locking\n\nThere are still some problems around pty pairs that have always been there but\nat least it is now possible to understand the code and fix further problems.\n\nThis fixes the following known bugs\n- hang up can leak ldisc references\n- hang up may not call open/close on ldisc in a matched way\n- pty/tty pairs can deadlock during an ldisc change\n- reading the ldisc proc files can cause every ldisc to be loaded\n\nand probably a few other of the mysterious ldisc race reports.\n\nI\u0027m sure it also adds the odd new one.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8b70e7d3e86319a8b2aaabde3866833d92cd80f",
      "tree": "dac8e7b42f553ee3a9a0920e20b5a39da197b13a",
      "parents": [
        "5f0878acba7db24323f5ba4055ec9a96895bb150"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu Jun 11 12:48:02 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:51:01 2009 -0700"
      },
      "message": "tty: Extract various bits of ldisc code\n\nBefore trying to tackle the ldisc bugs the code needs to be a good deal\nmore readable, so do the simple extractions of routines first.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38db89799bdf11625a831c5af33938dcb11908b6",
      "tree": "c50eff175df0fbe9270ef461962030d6bdfad674",
      "parents": [
        "5b0ed5263cb089500052f8c1ab6e0706bebf0d83"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu Jun 11 12:44:17 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:59 2009 -0700"
      },
      "message": "tty: throttling race fix\n\nThe tty throttling code can race due to the lock drops. It takes very high\nloads but this has been observed and verified by Rob Duncan.\n\nThe basic problem is that on an SMP box we can go\n\n\tCPU #1\t\t\t\tCPU #2\n\tneed to throttle ?\n\tsuppose we should\t\tbuffer space cleared\n\t\t\t\t\tare we throttled\n\t\t\t\t\tyes ? - unthrottle\n\tcall throttle method\n\nThis changeet take the termios lock to protect against this. The termios\nlock isn\u0027t the initial obvious candidate but many implementations of throttle\nmethods already need to poke around their own termios structures (and nobody\nreally locks them against a racing change of flow control).\n\nThis does mean that anyone who is setting tty-\u003elow_latency \u003d 1 and then\ncalling tty_flip_buffer_push from their unthrottle method is going to end up\ncollapsing in a pile of locks. However we\u0027ve removed all the known bogus\nusers of low_latency \u003d 1 and such use isn\u0027t safe anyway for other reasons so\ncatching it would be an improvement.\n\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70fd8fdecc4430ffcede7704dd812d4054d1faf9",
      "tree": "469eb4272489224e5b9a8baeed7d925c2bae1281",
      "parents": [
        "c3301a5c04800bcf8afc8a815bf9e570a4e25a08"
      ],
      "author": {
        "name": "Andre Przywara",
        "email": "andre.przywara@amd.com",
        "time": "Thu Jun 11 12:41:57 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:58 2009 -0700"
      },
      "message": "8250_pci: add the OXCB950 chip to the 8250 PCI driver.\n\nThis adds support for the following serial controller chip:\nOxford Semiconductor OXCB950 for PCI Cardbus interface\nhttp://www.transdimension.com/products/serial/OXCB950.html\n\non this card:\nExSys EX-1370 1 port high-speed serial card for ExpressCard/34 slot\n\nSigned-off-by: Andre Przywara \u003candre.przywara@amd.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70beaed22cbe12979e55d99b370e147e2e168562",
      "tree": "487a4b932fff430aec50711c60fe51593a6669de",
      "parents": [
        "6e47e069eb4dffa88ad91ddfc3fd85f32c35654b"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Jun 11 12:39:12 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:58 2009 -0700"
      },
      "message": "serial: refactor ASYNC_ flags\n\nDefine ASYNCB_* flags which are bit numbers of the ASYNC_* flags.\nThis is useful for {test,set,clear}_bit.\n\nAlso convert each ASYNC_% to be (1 \u003c\u003c ASYNCB_%) and define masks\nwith the macros, not constants.\n\nTested with:\n#include \"PATH_TO_KERNEL/include/linux/serial.h\"\nstatic struct {\n        unsigned int new, old;\n} as[] \u003d {\n        { ASYNC_HUP_NOTIFY, 0x0001 },\n        { ASYNC_FOURPORT, 0x0002 },\n...\n\t{ ASYNC_BOOT_ONLYMCA, 0x00400000 },\n        { ASYNC_INTERNAL_FLAGS, 0xFFC00000 }\n};\n...\n        for (a \u003d 0; a \u003c ARRAY_SIZE(as); a++)\n                if (as[a].old !\u003d as[a].new)\n                        printf(\"%.8x !\u003d %.8x\\n\", as[a].old, as[a].new);\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08a951e1693e324bd035b194002a82b9057fd9c5",
      "tree": "6fd8d672f2322e89765bbb87ccd8f178bc8d346d",
      "parents": [
        "2693f485c22d18474c077f12fd0f797ee8679b33"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Jun 11 12:33:40 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:57 2009 -0700"
      },
      "message": "tty: cyclades, remove typedefs\n\nThey are unused anyway.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "101b81590d8df0a74c33cf739886247c0a13f4af",
      "tree": "29ae8b31fa7ccfaeb790a2eabcd014a9656f81bf",
      "parents": [
        "97e87f8ebe978e881c7325ba490574bd5500b133"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Jun 11 12:30:10 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:57 2009 -0700"
      },
      "message": "tty: cyclades, cache HW version\n\nStore HW version locally to not read it all the time in interrupts\nand alike.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97e87f8ebe978e881c7325ba490574bd5500b133",
      "tree": "272dea45cc1a3d020a9290c46fbdf7ec866fbd34",
      "parents": [
        "5ba5a5d21204f61ff655b322a90ed91c75194e4b"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jirislaby@gmail.com",
        "time": "Thu Jun 11 12:29:27 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:57 2009 -0700"
      },
      "message": "tty: cyclades, plx9060 casts cleanup\n\nRemove ugly all-over-the-code casts of ctl_addr to 9060 space.\nAdd an union to the cyclades_card structure, which contains\na pointer to both 9050 and 9060 spaces.\n\nThe 9050 space layout is unknown, so let it still as a void\n__iomem pointer.\n\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "335f8514f200e63d689113d29cb7253a5c282967",
      "tree": "11504d090e8e2cd3c1ada3e6765f69f216065d00",
      "parents": [
        "1ec739be75a6cb961a46ba0b1982d0edb7f27558"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 11 12:26:29 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:56 2009 -0700"
      },
      "message": "tty: Bring the usb tty port structure into more use\n\nThis allows us to clean stuff up, but is probably also going to cause\nsome app breakage with buggy apps as we now implement proper POSIX behaviour\nfor USB ports matching all the other ports. This does also mean other apps\nthat break on USB will now work properly.\n\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ec739be75a6cb961a46ba0b1982d0edb7f27558",
      "tree": "b9e75b3171d1a5b715465b82c9cb2b711e6d5550",
      "parents": [
        "fcc8ac1825d3d0fb81f73bc1a80ebc863168bb56"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 11 12:25:25 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:56 2009 -0700"
      },
      "message": "tty: Implement a drain delay in the tty port\n\nWe need this for devices that cannot flush and wait, but which do not order\ndata and modem events. Without it we will hang up before all the data\nclears the hardware. Needed for the USB changes.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fcc8ac1825d3d0fb81f73bc1a80ebc863168bb56",
      "tree": "737f7209430fd319ca257df62c9b1e64587d5a8b",
      "parents": [
        "65a29f60e121ae5116ac1736b50a237bf2db3225"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 11 12:24:17 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 08:50:56 2009 -0700"
      },
      "message": "tty: Add carrier processing on close to the tty_port core\n\nSome drivers implement this internally, others miss it out. Push the\nbehaviour into the core code as that way everyone will do it consistently.\n\nUpdate the dtr rts method to raise or lower depending upon flags. Having a\nsingle method in this style fits most of the implementations more cleanly than\ntwo funtions.\n\nWe need this in place before we tackle the USB side\n\nSigned-off-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df58ab24bf26b166874bfb18b3b5a2e0a8e63179",
      "tree": "388b2fb9d94864c9bd6d6ab9329c31760b7366ae",
      "parents": [
        "0764771dab80d7b84b9a271bee7f1b21a04a3f0c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 11:25:05 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 16:48:38 2009 +0200"
      },
      "message": "perf_counter: Rename perf_counter_limit sysctl\n\nRename perf_counter_limit to perf_counter_max_sample_rate and\nprohibit creation of counters with a known higher sample\nfrequency.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0764771dab80d7b84b9a271bee7f1b21a04a3f0c",
      "tree": "36cb6400e257393208779a95b4868df2f9af6cf6",
      "parents": [
        "106b506c3a8b74daa5751e83ed3e46438fcf9a52"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 11:18:36 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 16:48:38 2009 +0200"
      },
      "message": "perf_counter: More paranoia settings\n\nRename the perf_counter_priv knob to perf_counter_paranoia (because\npriv can be read as private, as opposed to privileged) and provide\none more level:\n\n 0 - permissive\n 1 - restrict cpu counters to privilidged contexts\n 2 - restrict kernel-mode code counting and profiling\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0fd271d5fba0b2d00888363f3869e3f9b26caa9",
      "tree": "0ffd49c013476e3dc96c8bcb2ddc4c1828797be5",
      "parents": [
        "5e50b9ef975219304cc91d601530994861585bfe"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Thu Jun 11 13:10:16 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 11 13:11:05 2009 +0200"
      },
      "message": "block: add request clone interface (v2)\n\nThis patch adds the following 2 interfaces for request-stacking drivers:\n\n  - blk_rq_prep_clone(struct request *clone, struct request *orig,\n\t\t      struct bio_set *bs, gfp_t gfp_mask,\n\t\t      int (*bio_ctr)(struct bio *, struct bio*, void *),\n\t\t      void *data)\n      * Clones bios in the original request to the clone request\n        (bio_ctr is called for each cloned bios.)\n      * Copies attributes of the original request to the clone request.\n        The actual data parts (e.g. -\u003ecmd, -\u003ebuffer, -\u003esense) are not\n        copied.\n\n  - blk_rq_unprep_clone(struct request *clone)\n      * Frees cloned bios from the clone request.\n\nRequest stacking drivers (e.g. request-based dm) need to make a clone\nrequest for a submitted request and dispatch it to other devices.\n\nTo allocate request for the clone, request stacking drivers may not\nbe able to use blk_get_request() because the allocation may be done\nin an irq-disabled context.\nSo blk_rq_prep_clone() takes a request allocated by the caller\nas an argument.\n\nFor each clone bio in the clone request, request stacking drivers\nshould be able to set up their own completion handler.\nSo blk_rq_prep_clone() takes a callback function which is called\nfor each clone bio, and a pointer for private data which is passed\nto the callback.\n\nNOTE:\nblk_rq_prep_clone() doesn\u0027t copy any actual data of the original\nrequest.  Pages are shared between original bios and cloned bios.\nSo caller must not complete the original request before the clone\nrequest.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cf9fe114e3b37e14fc8434d5abb192e35df551b1",
      "tree": "0f82879295dc792f9df1a3ce79e143a3c073510f",
      "parents": [
        "c1d0d32a603ed06377f404adf2c538de33bb3634",
        "991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 11 09:01:14 2009 +0300"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Thu Jun 11 09:01:14 2009 +0300"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "862366118026a358882eefc70238dbcc3db37aac",
      "tree": "4eb62bc10327a5afac064a95a091ea05ecd2acc1",
      "parents": [
        "57eee9ae7bbcfb692dc96c739a5184adb6349733",
        "511b01bdf64ad8a38414096eab283c7784aebfc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)\n  Revert \"x86, bts: reenable ptrace branch trace support\"\n  tracing: do not translate event helper macros in print format\n  ftrace/documentation: fix typo in function grapher name\n  tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n  tracing: add protection around module events unload\n  tracing: add trace_seq_vprint interface\n  tracing: fix the block trace points print size\n  tracing/events: convert block trace points to TRACE_EVENT()\n  ring-buffer: fix ret in rb_add_time_stamp\n  ring-buffer: pass in lockdep class key for reader_lock\n  tracing: add annotation to what type of stack trace is recorded\n  tracing: fix multiple use of __print_flags and __print_symbolic\n  tracing/events: fix output format of user stack\n  tracing/events: fix output format of kernel stack\n  tracing/trace_stack: fix the number of entries in the header\n  ring-buffer: discard timestamps that are at the start of the buffer\n  ring-buffer: try to discard unneeded timestamps\n  ring-buffer: fix bug in ring_buffer_discard_commit\n  ftrace: do not profile functions when disabled\n  tracing: make trace pipe recognize latency format flag\n  ...\n"
    },
    {
      "commit": "8f40642ad315c553bab4ae800766ade07e574a77",
      "tree": "24d68827f8034bc9fea8e8e8c27cdf6a40417b68",
      "parents": [
        "20f3f3ca499d2c211771ba552685398b65d83859",
        "12d161147f828192b5bcc33166f468a827832767"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:50:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:50:52 2009 -0700"
      },
      "message": "Merge branch \u0027signal-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027signal-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: hookup sys_rt_tgsigqueueinfo\n  signals: implement sys_rt_tgsigqueueinfo\n  signals: split do_tkill\n"
    },
    {
      "commit": "20f3f3ca499d2c211771ba552685398b65d83859",
      "tree": "41b460196a0860e11d12e33e3172463973cb0078",
      "parents": [
        "769f3e8c384795cc350e2aae27de2a12374d19d4",
        "41c51c98f588edcdf6141cff1895df738e03ddd4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:50:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:50:03 2009 -0700"
      },
      "message": "Merge branch \u0027rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: rcu_sched_grace_period(): kill the bogus flush_signals()\n  rculist: use list_entry_rcu in places where it\u0027s appropriate\n  rculist.h: introduce list_entry_rcu() and list_first_entry_rcu()\n  rcu: Update RCU tracing documentation for __rcu_pending\n  rcu: Add __rcu_pending tracing to hierarchical RCU\n  RCU: make treercu be default\n"
    },
    {
      "commit": "73fbad283cfbbcf02939bdbda31fc4a30e729cca",
      "tree": "7c89fe13e1b4a2c7f2d60f4ea6eaf69c14bccab7",
      "parents": [
        "769f3e8c384795cc350e2aae27de2a12374d19d4",
        "35f2c2f6f6ae13ef23c4f68e6d3073753077ca43"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "9e350de37ac9607012fcf9c5314a28fbddf8f43c",
      "tree": "d0f311bcf49d887e6d488ea72b2913cb00eaf910",
      "parents": [
        "df1a132bf3d3508f863336c80a27806a2ac947e0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 10 21:34:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 02:39:02 2009 +0200"
      },
      "message": "perf_counter: Accurate period data\n\nWe currently log hw.sample_period for PERF_SAMPLE_PERIOD, however this is\nincorrect. When we adjust the period, it will only take effect the next\ncycle but report it for the current cycle. So when we adjust the period\nfor every cycle, we\u0027re always wrong.\n\nSolve this by keeping track of the last_period.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "df1a132bf3d3508f863336c80a27806a2ac947e0",
      "tree": "2aa26b9c5d0528e816a80bd3b58c9b2442670d5c",
      "parents": [
        "ea1900e571d40a3ce60c835c2f21e1fd8c5cb663"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 10 21:02:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 02:39:02 2009 +0200"
      },
      "message": "perf_counter: Introduce struct for sample data\n\nFor easy extension of the sample data, put it in a structure.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7241d771419b8a8671ebc46a043c324ccb0dcf7",
      "tree": "77f1bc9c635e2ac29396816ce9ef9cbdb6853884",
      "parents": [
        "3f6280ddf25fa656d0e17960588e52bee48a7547",
        "04dce7d9d429ea5ea04e9432d1726c930f4d67da"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:19:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:19:40 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  spinlock: Add missing __raw_spin_lock_flags() stub for UP\n  mutex: add atomic_dec_and_mutex_lock(), fix\n  locking, rtmutex.c: Documentation cleanup\n  mutex: add atomic_dec_and_mutex_lock()\n"
    },
    {
      "commit": "3f6280ddf25fa656d0e17960588e52bee48a7547",
      "tree": "006854e51246e400c248a9722418bc7a7cce2dbf",
      "parents": [
        "75063600fd7b27fe447112c27997f100b9e2f99b",
        "92db1e6af747faa129e236d68386af26a0efc12b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:19:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:19:14 2009 -0700"
      },
      "message": "Merge branch \u0027iommu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027iommu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (61 commits)\n  amd-iommu: remove unnecessary \"AMD IOMMU: \" prefix\n  amd-iommu: detach device explicitly before attaching it to a new domain\n  amd-iommu: remove BUS_NOTIFY_BOUND_DRIVER handling\n  dma-debug: simplify logic in driver_filter()\n  dma-debug: disable/enable irqs only once in device_dma_allocations\n  dma-debug: use pr_* instead of printk(KERN_* ...)\n  dma-debug: code style fixes\n  dma-debug: comment style fixes\n  dma-debug: change hash_bucket_find from first-fit to best-fit\n  x86: enable GART-IOMMU only after setting up protection methods\n  amd_iommu: fix lock imbalance\n  dma-debug: add documentation for the driver filter\n  dma-debug: add dma_debug_driver kernel command line\n  dma-debug: add debugfs file for driver filter\n  dma-debug: add variables and checks for driver filter\n  dma-debug: fix debug_dma_sync_sg_for_cpu and debug_dma_sync_sg_for_device\n  dma-debug: use sg_dma_len accessor\n  dma-debug: use sg_dma_address accessor instead of using dma_address directly\n  amd-iommu: don\u0027t free dma adresses below 512MB with CONFIG_IOMMU_STRESS\n  amd-iommu: don\u0027t preallocate page tables with CONFIG_IOMMU_STRESS\n  ...\n"
    },
    {
      "commit": "75063600fd7b27fe447112c27997f100b9e2f99b",
      "tree": "9a495bc5ec6570b0eb7e0d1f77ef23d97b33656b",
      "parents": [
        "be15f9d63b97da0065187696962331de6cd9de9e",
        "2070887fdeacd9c13f3e805e3f0086c9f22a4d93"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:16:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:16:48 2009 -0700"
      },
      "message": "Merge branch \u0027futexes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027futexes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  futex: fix restart in wait_requeue_pi\n  futex: fix restart for early wakeup in futex_wait_requeue_pi()\n  futex: cleanup error exit\n  futex: remove the wait queue\n  futex: add requeue-pi documentation\n  futex: remove FUTEX_REQUEUE_PI (non CMP)\n  futex: fix futex_wait_setup key handling\n  sparc64: extend TI_RESTART_BLOCK space by 8 bytes\n  futex: fixup unlocked requeue pi case\n  futex: add requeue_pi functionality\n  futex: split out futex value validation code\n  futex: distangle futex_requeue()\n  futex: add FUTEX_HAS_TIMEOUT flag to restart.futex.flags\n  rt_mutex: add proxy lock routines\n  futex: split out fixup owner logic from futex_lock_pi()\n  futex: split out atomic logic from futex_lock_pi()\n  futex: add helper to find the top prio waiter of a futex\n  futex: separate futex_wait_queue_me() logic from futex_wait()\n"
    },
    {
      "commit": "be15f9d63b97da0065187696962331de6cd9de9e",
      "tree": "cc85c72e92afccfdcdfa851c4694a93f4ea22b84",
      "parents": [
        "595dc54a1da91408a52c4b962f3deeb1109aaca0",
        "a789ed5fb6d0256c4177c2cc27e06520ddbe4d4c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:16:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:16:27 2009 -0700"
      },
      "message": "Merge branch \u0027x86-xen-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-xen-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (42 commits)\n  xen: cache cr0 value to avoid trap\u0027n\u0027emulate for read_cr0\n  xen/x86-64: clean up warnings about IST-using traps\n  xen/x86-64: fix breakpoints and hardware watchpoints\n  xen: reserve Xen start_info rather than e820 reserving\n  xen: add FIX_TEXT_POKE to fixmap\n  lguest: update lazy mmu changes to match lguest\u0027s use of kvm hypercalls\n  xen: honour VCPU availability on boot\n  xen: add \"capabilities\" file\n  xen: drop kexec bits from /sys/hypervisor since kexec isn\u0027t implemented yet\n  xen/sys/hypervisor: change writable_pt to features\n  xen: add /sys/hypervisor support\n  xen/xenbus: export xenbus_dev_changed\n  xen: use device model for suspending xenbus devices\n  xen: remove suspend_cancel hook\n  xen/dev-evtchn: clean up locking in evtchn\n  xen: export ioctl headers to userspace\n  xen: add /dev/xen/evtchn driver\n  xen: add irq_from_evtchn\n  xen: clean up gate trap/interrupt constants\n  xen: set _PAGE_NX in __supported_pte_mask before pagetable construction\n  ...\n"
    },
    {
      "commit": "bb7762961d3ce745688e9050e914c1d3f980268d",
      "tree": "e841f58cd6188cc44583cd055798b4475a4d68f0",
      "parents": [
        "48c72d1ab4ec86789a23aed0b0b5f31ac083c0c6",
        "35d5a9a61490bf39d2e48d7f499c8c801a39ebe9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:13:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 16:13:20 2009 -0700"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (22 commits)\n  x86: fix system without memory on node0\n  x86, mm: Fix node_possible_map logic\n  mm, x86: remove MEMORY_HOTPLUG_RESERVE related code\n  x86: make sparse mem work in non-NUMA mode\n  x86: process.c, remove useless headers\n  x86: merge process.c a bit\n  x86: use sparse_memory_present_with_active_regions() on UMA\n  x86: unify 64-bit UMA and NUMA paging_init()\n  x86: Allow 1MB of slack between the e820 map and SRAT, not 4GB\n  x86: Sanity check the e820 against the SRAT table using e820 map only\n  x86: clean up and and print out initial max_pfn_mapped\n  x86/pci: remove rounding quirk from e820_setup_gap()\n  x86, e820, pci: reserve extra free space near end of RAM\n  x86: fix typo in address space documentation\n  x86: 46 bit physical address support on 64 bits\n  x86, mm: fault.c, use printk_once() in is_errata93()\n  x86: move per-cpu mmu_gathers to mm/init.c\n  x86: move max_pfn_mapped and max_low_pfn_mapped to setup.c\n  x86: unify noexec handling\n  x86: remove (null) in /sys kernel_page_tables\n  ...\n"
    },
    {
      "commit": "99e97b860e14c64760855198e91d1166697131a7",
      "tree": "fadc8368c3f784bff92fba82d983e7861559cf9d",
      "parents": [
        "82782ca77d1bfb32b0334cce40a25b91bd8ec016",
        "f04d82b7e0c63d0251f9952a537a4bc4d73aa1a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 15:32:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 15:32:59 2009 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: fix typo in sched-rt-group.txt file\n  ftrace: fix typo about map of kernel priority in ftrace.txt file.\n  sched: properly define the sched_group::cpumask and sched_domain::span fields\n  sched, timers: cleanup avenrun users\n  sched, timers: move calc_load() to scheduler\n  sched: Don\u0027t export sched_mc_power_savings on multi-socket single core system\n  sched: emit thread info flags with stack trace\n  sched: rt: document the risk of small values in the bandwidth settings\n  sched: Replace first_cpu() with cpumask_first() in ILB nomination code\n  sched: remove extra call overhead for schedule()\n  sched: use group_first_cpu() instead of cpumask_first(sched_group_cpus())\n  wait: don\u0027t use __wake_up_common()\n  sched: Nominate a power-efficient ilb in select_nohz_balancer()\n  sched: Nominate idle load balancer from a semi-idle package.\n  sched: remove redundant hierarchy walk in check_preempt_wakeup\n"
    },
    {
      "commit": "f0d5e12bd42b7173ebbbf59279c867605f859814",
      "tree": "f4018a726ecd2cf520afdf27210bfec1f3181718",
      "parents": [
        "0fea615e526b4b7eff0363ee02d5753e5f924089",
        "103428e57be323c3c5545db8ad12667099bc6005"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 15:25:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 15:25:41 2009 -0700"
      },
      "message": "Merge branch \u0027irq-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (76 commits)\n  x86, apic: Fix dummy apic read operation together with broken MP handling\n  x86, apic: Restore irqs on fail paths\n  x86: Print real IOAPIC version for x86-64\n  x86: enable_update_mptable should be a macro\n  sparseirq: Allow early irq_desc allocation\n  x86, io-apic: Don\u0027t mark pin_programmed early\n  x86, irq: don\u0027t call mp_config_acpi_gsi() if update_mptable is not enabled\n  x86, irq: update_mptable needs pci_routeirq\n  x86: don\u0027t call read_apic_id if !cpu_has_apic\n  x86, apic: introduce io_apic_irq_attr\n  x86/pci: add 4 more return parameters to IO_APIC_get_PCI_irq_vector(), fix\n  x86: read apic ID in the !acpi_lapic case\n  x86: apic: Fixmap apic address even if apic disabled\n  x86: display extended apic registers with print_local_APIC and cpu_debug code\n  x86: read apic ID in the !acpi_lapic case\n  x86: clean up and fix setup_clear/force_cpu_cap handling\n  x86: apic: Check rev 3 fadt correctly for physical_apic bit\n  x86/pci: update pirq_enable_irq() to setup io apic routing\n  x86/acpi: move setup io apic routing out of CONFIG_ACPI scope\n  x86/pci: add 4 more return parameters to IO_APIC_get_PCI_irq_vector()\n  ...\n"
    },
    {
      "commit": "d9c7d394a8ebacb60097b192939ae9f15235225e",
      "tree": "4fbf9c7677acb03c23d05faba1a4b0bcfb6702b4",
      "parents": [
        "1d589bb16b825b3a7b4edd34d997f1f1f953033d"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@novell.com",
        "time": "Wed Jun 10 12:57:06 2009 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Jun 10 23:07:15 2009 +0200"
      },
      "message": "block: prevent possible io_context-\u003erefcount overflow\n\nCurrently io_context has an atomic_t(32-bit) as refcount.  In the case of\ncfq, for each device against whcih a task does I/O, a reference to the\nio_context would be taken.  And when there are multiple process sharing\nio_contexts(CLONE_IO) would also have a reference to the same io_context.\n\nTheoretically the possible maximum number of processes sharing the same\nio_context + the number of disks/cfq_data referring to the same io_context\ncan overflow the 32-bit counter on a very high-end machine.\n\nEven though it is an improbable case, let us make it atomic_long_t.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6ff9a64d2aaa6eae396adc95e9c91c0cbfa6dbe4",
      "tree": "1ca1b9a0aff32f1542a9dc3d2f5ccac7ab8a52e3",
      "parents": [
        "bc5c6c043d8381676339fb3da59cc4cc5921d368"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 10 14:28:34 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Jun 10 14:28:34 2009 -0400"
      },
      "message": "tracing: do not translate event helper macros in print format\n\nBy moving the macro that creates the print format code above the\ndefining of the event macro helpers (__get_str, __print_symbolic,\nand __get_dynamic_array), we get a little cleaner print format.\n\nInstead of:\n\n  (char *)((void *)REC + REC-\u003e__data_loc_name)\n\nwe get:\n\n   __get_str(name)\n\nInstead of:\n\n   ({ static const struct trace_print_flags symbols[] \u003d { { HI_SOFTIRQ, \"HI\" }, {\n\nwe get:\n\n   __print_symbolic(REC-\u003evec, { HI_SOFTIRQ, \"HI\" }, {\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bd2b5b12849a3446abad0b25e920f86f5480b309",
      "tree": "b0eacf6002f2015c0483390619a3f874bcb7e7d2",
      "parents": [
        "dc81081b2d9a6a9d64dad1bef1e5fc9fb660e53e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 10 13:40:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 10 16:55:26 2009 +0200"
      },
      "message": "perf_counter: More aggressive frequency adjustment\n\nAlso employ the overflow handler to adjust the frequency, this results\nin a stable frequency in about 40~50 samples, instead of that many ticks.\n\nThis also means we can start sampling at a sample period of 1 without\nrunning head-first into the throttle.\n\nIt relies on sched_clock() to accurately measure the time difference\nbetween the overflow NMIs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f1db457ce6e2f63cb01022f58c0c023838958bd1",
      "tree": "cc75e087ddfcbdf0a1f15585b4b844f58691cf26",
      "parents": [
        "110bf2b764eb6026b868d84499263cb24b1bcc8d"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Jun 10 10:06:24 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 10 11:55:06 2009 +0200"
      },
      "message": "tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n\nFix building failures when CONFIG_BLOCK \u003d\u003d n.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nLKML-Reference: \u003c4A2F1520.8020003@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "04dce7d9d429ea5ea04e9432d1726c930f4d67da",
      "tree": "667062b15699b47abf9d998391274737ee56ef9c",
      "parents": [
        "a511e3f968c462a55ef58697257f5347c73d306e"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Jun 10 16:59:46 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 10 11:48:14 2009 +0200"
      },
      "message": "spinlock: Add missing __raw_spin_lock_flags() stub for UP\n\nThis was only defined with CONFIG_DEBUG_SPINLOCK set, but some\nobscure arch/powerpc code wants it always.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "547de29e5b1662deb05b5f90917902dc0e9ac182",
      "tree": "c8c8d913729f4577251d3bceb9fe52b676f7a5a8",
      "parents": [
        "32f8840064d88cc3f6e85203aec7b6b57bebcb97"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Thu May 07 17:55:13 2009 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:53 2009 +0300"
      },
      "message": "KVM: protect assigned dev workqueue, int handler and irq acker\n\nkvm_assigned_dev_ack_irq is vulnerable to a race condition with the\ninterrupt handler function. It does:\n\n        if (dev-\u003ehost_irq_disabled) {\n                enable_irq(dev-\u003ehost_irq);\n                dev-\u003ehost_irq_disabled \u003d false;\n        }\n\nIf an interrupt triggers before the host-\u003edev_irq_disabled assignment,\nit will disable the interrupt and set dev-\u003ehost_irq_disabled to true.\n\nOn return to kvm_assigned_dev_ack_irq, dev-\u003ehost_irq_disabled is set to\nfalse, and the next kvm_assigned_dev_ack_irq call will fail to reenable\nit.\n\nOther than that, having the interrupt handler and work handlers run in\nparallel sounds like asking for trouble (could not spot any obvious\nproblem, but better not have to, its fragile).\n\nCC: sheng.yang@intel.com\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "32f8840064d88cc3f6e85203aec7b6b57bebcb97",
      "tree": "29a42942c71e9bdf1f3e71aa1674a29aa13ce320",
      "parents": [
        "d149c731e4f71982247a14409951259f36271dd7"
      ],
      "author": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Thu May 07 17:55:12 2009 -0300"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:53 2009 +0300"
      },
      "message": "KVM: use smp_send_reschedule in kvm_vcpu_kick\n\nKVM uses a function call IPI to cause the exit of a guest running on a\nphysical cpu. For virtual interrupt notification there is no need to\nwait on IPI receival, or to execute any function.\n\nThis is exactly what the reschedule IPI does, without the overhead\nof function IPI. So use it instead of smp_call_function_single in\nkvm_vcpu_kick.\n\nAlso change the \"guest_mode\" variable to a bit in vcpu-\u003erequests, and\nuse that to collapse multiple IPI\u0027s that would be issued between the\nfirst one and zeroing of guest mode.\n\nThis allows kvm_vcpu_kick to called with interrupts disabled.\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "522c68c4416de3cd3e11a9ff10d58e776a69ae1e",
      "tree": "62940e35988f5e2a52df10276882ec64518ee369",
      "parents": [
        "4b12f0de33a64dfc624b2480f55b674f7fa23ef2"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Mon Apr 27 20:35:43 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:50 2009 +0300"
      },
      "message": "KVM: Enable snooping control for supported hardware\n\nMemory aliases with different memory type is a problem for guest. For the guest\nwithout assigned device, the memory type of guest memory would always been the\nsame as host(WB); but for the assigned device, some part of memory may be used\nas DMA and then set to uncacheable memory type(UC/WC), which would be a conflict of\nhost memory type then be a potential issue.\n\nSnooping control can guarantee the cache correctness of memory go through the\nDMA engine of VT-d.\n\n[avi: fix build on ia64]\n\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "2f8b9ee14eb439008e0c5131116ea6baa40dba50",
      "tree": "7c269a25ba379aef925c8cc462232c116f297a37",
      "parents": [
        "ede2ccc51742059d356d419260460cbbf3e36273"
      ],
      "author": {
        "name": "nathan binkert",
        "email": "nate@binkert.org",
        "time": "Fri Mar 27 21:53:05 2009 -0700"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:39 2009 +0300"
      },
      "message": "KVM: Make kvm header C++ friendly\n\nTwo things needed fixing: 1) g++ does not allow a named structure type\nwithin an anonymous union and 2) Avoid name clash between two padding\nfields within the same struct by giving them different names as is\ndone elsewhere in the header.\n\nSigned-off-by: Nathan Binkert \u003cnate@binkert.org\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "78646121e9a2fcf7977cc15966420e572a450bc3",
      "tree": "55aeac260f4a43bef8e1bc1147f93a3f7e867ec7",
      "parents": [
        "09cec754885f900f6aab23801878c0cd217ee1d6"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Mon Mar 23 12:12:11 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:33 2009 +0300"
      },
      "message": "KVM: Fix interrupt unhalting a vcpu when it shouldn\u0027t\n\nkvm_vcpu_block() unhalts vpu on an interrupt/timer without checking\nif interrupt window is actually opened.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "e56d532f20c890a06bbe7cd479f4201e3a03cd73",
      "tree": "6c8b1a019a77bf2081ac7482eea322f5b0a636e8",
      "parents": [
        "386eb6e8b3caface8a0514da70a47c05cabb5b96"
      ],
      "author": {
        "name": "Sheng Yang",
        "email": "sheng@linux.intel.com",
        "time": "Thu Mar 12 21:45:39 2009 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:29 2009 +0300"
      },
      "message": "KVM: Device assignment framework rework\n\nAfter discussion with Marcelo, we decided to rework device assignment framework\ntogether. The old problems are kernel logic is unnecessary complex. So Marcelo\nsuggest to split it into a more elegant way:\n\n1. Split host IRQ assign and guest IRQ assign. And userspace determine the\ncombination. Also discard msi2intx parameter, userspace can specific\nKVM_DEV_IRQ_HOST_MSI | KVM_DEV_IRQ_GUEST_INTX in assigned_irq-\u003eflags to\nenable MSI to INTx convertion.\n\n2. Split assign IRQ and deassign IRQ. Import two new ioctls:\nKVM_ASSIGN_DEV_IRQ and KVM_DEASSIGN_DEV_IRQ.\n\nThis patch also fixed the reversed _IOR vs _IOW in definition(by deprecated the\nold interface).\n\n[avi: replace homemade bitcount() by hweight_long()]\n\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Sheng Yang \u003csheng@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "58c2dde17d6eb6c8c0566e52d184aa16755d890f",
      "tree": "a968731cbce73932decd63e00be313cebfd2f57f",
      "parents": [
        "e1035715ef8d3171e29f9c6aee6f40d57b3fead5"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Thu Mar 05 16:35:04 2009 +0200"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Wed Jun 10 11:48:27 2009 +0300"
      },
      "message": "KVM: APIC: get rid of deliver_bitmask\n\nDeliver interrupt during destination matching loop.\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nAcked-by: Xiantao Zhang \u003cxiantao.zhang@intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    }
  ],
  "next": "343f94fe4d16ec898da77720c03da9e09f8523d2"
}
