)]}'
{
  "log": [
    {
      "commit": "bef5bc2464517cbbf8f85f09b5ade46904afec9a",
      "tree": "34a41e84884e431647af4535147e4fab91cbf88e",
      "parents": [
        "f6d335c08df48b318187a087c9c38ba3d416e115"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 10:56:12 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n\nwe can get to them from page-\u003emapping-\u003ehost, no need to mess with\nfile.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f6d335c08df48b318187a087c9c38ba3d416e115",
      "tree": "ccee5ad0c46fea4c34d435d5d869f43394dd9a81",
      "parents": [
        "4403158ba295c8e36f6736b1bb12d0f7e1923dac"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri May 21 15:27:09 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:28 2010 -0400"
      },
      "message": "AFS: Don\u0027t put struct file on the stack\n\nDon\u0027t put struct file on the stack as it takes up quite a lot of space\nand violates lifetime rules for struct file.\n\nRather than calling afs_readpage() indirectly from the directory routines by\nway of read_mapping_page(), split afs_readpage() to have afs_page_filler()\nthat\u0027s given a key instead of a file and call read_cache_page(), specifying the\nnew function directly.  Use it in afs_readpages() as well.\n\nAlso make use of this in afs_mntpt_check_symlink() too for the same reason.\n\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4403158ba295c8e36f6736b1bb12d0f7e1923dac",
      "tree": "a85c276c7ba414ecc65a93488dcb2ef7972779c0",
      "parents": [
        "ab9a79b9669c28734a69fa9384df6fb93152e53a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 17 00:59:46 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "Ban ecryptfs over ecryptfs\n\nThis is a seriously simplified patch from Eric Sandeen; copy of\nrationale follows:\n\u003d\u003d\u003d\n  mounting stacked ecryptfs on ecryptfs has been shown to lead to bugs\n  in testing.  For crypto info in xattr, there is no mechanism for handling\n  this at all, and for normal file headers, we run into other trouble:\n\n  BUG: unable to handle kernel NULL pointer dereference at 0000000000000008\n  IP: [\u003cffffffffa015b0b3\u003e] ecryptfs_d_revalidate+0x43/0xa0 [ecryptfs]\n  ...\n\n  There doesn\u0027t seem to be any good usecase for this, so I\u0027d suggest just\n  disallowing the configuration.\n\n  Based on a patch originally, I believe, from Mike Halcrow.\n\u003d\u003d\u003d\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ab9a79b9669c28734a69fa9384df6fb93152e53a",
      "tree": "588fc95da1d5769eab4b0a70202d3ac17ababc8e",
      "parents": [
        "be8ded5974c69d0d2128a508b0900ef541d0e7da"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 04:02:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "logfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "be8ded5974c69d0d2128a508b0900ef541d0e7da",
      "tree": "c2aa3cb2ca904c3d89b2e36b3ca0d7d1f0fcc948",
      "parents": [
        "a6c5a0342a95f9c7cf18adef79ca52a35cd5e4da"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:23 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "ufs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a6c5a0342a95f9c7cf18adef79ca52a35cd5e4da",
      "tree": "b653744e21077ebaf8ea0d7d9deff828e30d42de",
      "parents": [
        "abf5d08acaca942b49daf0ed87a9deddc94b183a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:22 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:27 2010 -0400"
      },
      "message": "udf: replace inode uid,gid,mode init with helper\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "abf5d08acaca942b49daf0ed87a9deddc94b183a",
      "tree": "5786fc14e4de0c7058f07aa2338594f522a8d4f9",
      "parents": [
        "85640bd9d47f6ad0290558009e9313632a45861b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:21 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "ubifs: replace inode uid,gid,mode initialization with helper function\n\nAcked-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "85640bd9d47f6ad0290558009e9313632a45861b",
      "tree": "469dd09544b668ed0dd5166e339d6d500367b0ad",
      "parents": [
        "04b7ed0d33eee161b223d64f16e1f521a84ace76"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:20 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "sysv: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "04b7ed0d33eee161b223d64f16e1f521a84ace76",
      "tree": "a01bef0d4329c017f370e1e4ed09f9d965587a5a",
      "parents": [
        "454abafe9d8beb3fe7da06131b3d81d6d352a959"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:19 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "reiserfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "454abafe9d8beb3fe7da06131b3d81d6d352a959",
      "tree": "4be9c50d76aecd2c43959550814fb4337d27c6d9",
      "parents": [
        "6a9e652c88fad648ea088ac07dbc671a9813f75e"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:18 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:26 2010 -0400"
      },
      "message": "ramfs: replace inode uid,gid,mode initialization with helper function\n\n- seems what ramfs_get_inode is only locally, make it static.\n[AV: the hell it is; it\u0027s used by shmem, so shmem needed conversion too\nand no, that function can\u0027t be made static]\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6a9e652c88fad648ea088ac07dbc671a9813f75e",
      "tree": "d3462e1e4c24eb12a20dbc65b3d3cda3ce713611",
      "parents": [
        "e6ecdc70fb76490719bf5aa20c35d23c0a392ead"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:17 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "omfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e6ecdc70fb76490719bf5aa20c35d23c0a392ead",
      "tree": "ea43271757d63d2248060f26af5d135ef50ea1d9",
      "parents": [
        "75fe0a2477dab30f00c228f9a4d79009d5677bde"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:46 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "bfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "75fe0a2477dab30f00c228f9a4d79009d5677bde",
      "tree": "d52b2118634196ae6d3d89431acbbf43432db835",
      "parents": [
        "73459dcc67e77aa5cb28d51b2d84dd145977ace3"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:16 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "ocfs2: replace inode uid,gid,mode initialization with helper function\n\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "73459dcc67e77aa5cb28d51b2d84dd145977ace3",
      "tree": "140b6bc33f01b5549b7ab9c0a0ad085a382169e9",
      "parents": [
        "9eed1fb721c6c512795f8847bccc413f3a1143bb"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:15 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:25 2010 -0400"
      },
      "message": "nilfs2: replace inode uid,gid,mode initialization with helper function\n\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9eed1fb721c6c512795f8847bccc413f3a1143bb",
      "tree": "9c475b2254491b60474907345be010a0daa6c068",
      "parents": [
        "b10b8520903204c9a1e4ef4a6827c2f1569aae9b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:32:14 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "minix: replace inode uid,gid,mode init with helper\n\n- also redesign minix_new_inode interface\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b10b8520903204c9a1e4ef4a6827c2f1569aae9b",
      "tree": "49b78527451cf32cfc16be194261308b8c27a6be",
      "parents": [
        "aab99c2c26f74d90f615fcca534172dfc1c8bec2"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:51 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "ext4: replace inode uid,gid,mode init with helper\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aab99c2c26f74d90f615fcca534172dfc1c8bec2",
      "tree": "9747a677845b657549c71c298c34259984c010d6",
      "parents": [
        "ffba102d75a2e79ac9754841c6cf4a6dd6892c42"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:50 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "ext3: replace inode uid,gid,mode init with helper\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ffba102d75a2e79ac9754841c6cf4a6dd6892c42",
      "tree": "b7bb51be713a8b665ac97f53ec5872f9abaa9e9c",
      "parents": [
        "e00117f14f68d9e54c8aa3d52ebdc76cdbbc4f87"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:49 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "ext2: replace inode uid,gid,mode init with helper\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e00117f14f68d9e54c8aa3d52ebdc76cdbbc4f87",
      "tree": "150ee8e968cef8bf448aaeff258a36c790db8856",
      "parents": [
        "ecc11fabf7ce16309112afe68fac466193ee7520"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:48 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:23 2010 -0400"
      },
      "message": "exofs: replace inode uid,gid,mode initialization with helper function\n\nAck-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ecc11fabf7ce16309112afe68fac466193ee7520",
      "tree": "946cf29541cfb4632d455ea84be052480b8ca677",
      "parents": [
        "319b2be49e91398eae07db4dfc29972846dec649"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:47 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:23 2010 -0400"
      },
      "message": "btrfs: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "319b2be49e91398eae07db4dfc29972846dec649",
      "tree": "a2d2b58332bcbaa217aa26c4300a6ecc904fc84c",
      "parents": [
        "217f206d68e12285d55d05678e361221ebebd046"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:30:58 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:23 2010 -0400"
      },
      "message": "jfs: replace inode uid,gid,mode init with helper\n\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "217f206d68e12285d55d05678e361221ebebd046",
      "tree": "77d5f4448cd4b8ffe5fafee3d07911d235763af3",
      "parents": [
        "a1bd120d13e586ea1c424048fd2c8420a442852a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:30:57 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:23 2010 -0400"
      },
      "message": "9p: replace inode uid,gid,mode initialization with helper function\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1bd120d13e586ea1c424048fd2c8420a442852a",
      "tree": "fdac342d7ab0fbaaeb1dd7d61a86b457a6938672",
      "parents": [
        "52957fe1c709d5ca3732456d73f4e4d95492c72c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:29:14 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "vfs: Add inode uid,gid,mode init helper\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "52957fe1c709d5ca3732456d73f4e4d95492c72c",
      "tree": "c1e1f92cefbc9c03620af6c97ba50d8de1011f8e",
      "parents": [
        "9a2296832c43da93a88e1edd59f3d17acffca36c"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Thu Apr 01 20:36:30 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "fs-writeback.c: bitfields should be unsigned\n\nThis fixes sparse noise:\n  error: dubious one-bit signed bitfield\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9a2296832c43da93a88e1edd59f3d17acffca36c",
      "tree": "e55b77c403c60291344d0961d2f0e4f2e9a2bb7f",
      "parents": [
        "51ee049e771c14a29aaee8ecd6cbbe14db088f3a"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Fri Apr 02 17:37:13 2010 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "namei.c : update mnt when it needed\n\nupdate the mnt of the path when it is not equal to the new one.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51ee049e771c14a29aaee8ecd6cbbe14db088f3a",
      "tree": "594c6676eb50a59ce82625ee09fee73fd700a5ed",
      "parents": [
        "cc9106247de92549e50abb0ba12d6b2fdbf0be55"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Tue Apr 27 14:23:57 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:22 2010 -0400"
      },
      "message": "vfs: add lockdep annotation to s_vfs_rename_key for ecryptfs\n\n \u003e  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n \u003e  [ INFO: possible recursive locking detected ]\n \u003e  2.6.31-2-generic #14~rbd3\n \u003e  ---------------------------------------------\n \u003e  firefox-3.5/4162 is trying to acquire lock:\n \u003e   (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e\n \u003e  but task is already holding lock:\n \u003e   (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e\n \u003e  other info that might help us debug this:\n \u003e  3 locks held by firefox-3.5/4162:\n \u003e   #0:  (\u0026s-\u003es_vfs_rename_mutex){+.+.+.}, at: [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e   #1:  (\u0026sb-\u003es_type-\u003ei_mutex_key#11/1){+.+.+.}, at: [\u003cffffffff81139d5a\u003e] lock_rename+0x6a/0xf0\n \u003e   #2:  (\u0026sb-\u003es_type-\u003ei_mutex_key#11/2){+.+.+.}, at: [\u003cffffffff81139d6f\u003e] lock_rename+0x7f/0xf0\n \u003e\n \u003e  stack backtrace:\n \u003e  Pid: 4162, comm: firefox-3.5 Tainted: G         C 2.6.31-2-generic #14~rbd3\n \u003e  Call Trace:\n \u003e   [\u003cffffffff8108ae74\u003e] print_deadlock_bug+0xf4/0x100\n \u003e   [\u003cffffffff8108ce26\u003e] validate_chain+0x4c6/0x750\n \u003e   [\u003cffffffff8108d2e7\u003e] __lock_acquire+0x237/0x430\n \u003e   [\u003cffffffff8108d585\u003e] lock_acquire+0xa5/0x150\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff815526ad\u003e] __mutex_lock_common+0x4d/0x3d0\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff81139d31\u003e] ? lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff8120eaf9\u003e] ? ecryptfs_rename+0x99/0x170\n \u003e   [\u003cffffffff81552b36\u003e] mutex_lock_nested+0x46/0x60\n \u003e   [\u003cffffffff81139d31\u003e] lock_rename+0x41/0xf0\n \u003e   [\u003cffffffff8120eb2a\u003e] ecryptfs_rename+0xca/0x170\n \u003e   [\u003cffffffff81139a9e\u003e] vfs_rename_dir+0x13e/0x160\n \u003e   [\u003cffffffff8113ac7e\u003e] vfs_rename+0xee/0x290\n \u003e   [\u003cffffffff8113c212\u003e] ? __lookup_hash+0x102/0x160\n \u003e   [\u003cffffffff8113d512\u003e] sys_renameat+0x252/0x280\n \u003e   [\u003cffffffff81133eb4\u003e] ? cp_new_stat+0xe4/0x100\n \u003e   [\u003cffffffff8101316a\u003e] ? sysret_check+0x2e/0x69\n \u003e   [\u003cffffffff8108c34d\u003e] ? trace_hardirqs_on_caller+0x14d/0x190\n \u003e   [\u003cffffffff8113d55b\u003e] sys_rename+0x1b/0x20\n \u003e   [\u003cffffffff81013132\u003e] system_call_fastpath+0x16/0x1b\n\nThe trace above is totally reproducible by doing a cross-directory\nrename on an ecryptfs directory.\n\nThe issue seems to be that sys_renameat() does lock_rename() then calls\ninto the filesystem; if the filesystem is ecryptfs, then\necryptfs_rename() again does lock_rename() on the lower filesystem, and\nlockdep can\u0027t tell that the two s_vfs_rename_mutexes are different.  It\nseems an annotation like the following is sufficient to fix this (it\ndoes get rid of the lockdep trace in my simple tests); however I would\nlike to make sure I\u0027m not misunderstanding the locking, hence the CC\nlist...\n\nSigned-off-by: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cc9106247de92549e50abb0ba12d6b2fdbf0be55",
      "tree": "f0e76e94e4b0041c255b9f3d4f3e5217b37951d2",
      "parents": [
        "8018ab057480974e7f26a387bf4ce040e9a5f6f1"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Sat Apr 17 19:28:09 2010 -0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "fs/partitions: use ADDPART_FLAG_RAID instead of magic number\n\nADDPART_FLAG_RAID was introduced in commit d18d768, and most places were\nconverted to use it instead of a hardcoded value. However, some places seem\nto have been missed.\n\nChange all of them to the symbolic names via the following semantic patch:\n\n@@\nstruct parsed_partitions *state;\nexpression E;\n@@\n(\n- state-\u003eparts[E].flags \u003d 1\n+ state-\u003eparts[E].flags \u003d ADDPART_FLAG_RAID\n|\n- state-\u003eparts[E].flags |\u003d 1\n+ state-\u003eparts[E].flags |\u003d ADDPART_FLAG_RAID\n|\n- state-\u003eparts[E].flags \u003d 2\n+ state-\u003eparts[E].flags \u003d ADDPART_FLAG_WHOLEDISK\n|\n- state-\u003eparts[E].flags |\u003d 2\n+ state-\u003eparts[E].flags |\u003d ADDPART_FLAG_WHOLEDISK\n)\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8018ab057480974e7f26a387bf4ce040e9a5f6f1",
      "tree": "98298180bf60797a028eca4f24234dc67d38a9d4",
      "parents": [
        "e970a573ce30a3976234dcfb67906c164b0df9ee"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:25 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "sanitize vfs_fsync calling conventions\n\nNow that the last user passing a NULL file pointer is gone we can remove\nthe redundant dentry argument and associated hacks inside vfs_fsynmc_range.\n\nThe next step will be removig the dentry argument from -\u003efsync, but given\nthe luck with the last round of method prototype changes I\u0027d rather\ndefer this until after the main merge window.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e970a573ce30a3976234dcfb67906c164b0df9ee",
      "tree": "767cbc42caf0956c0251efb23828cfdf6a8a48c9",
      "parents": [
        "2e147f1ef7d593b36c0e27a393b7d7ec0765f54b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 22 17:32:14 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "nfsd: open a file descriptor for fsync in nfs4 recovery\n\nInstead of just looking up a path use do_filp_open to get us a file\nstructure for the nfs4 recovery directory.  This allows us to get\nrid of the last non-standard vfs_fsync caller with a NULL file\npointer.\n\n[AV: should be using fput(), not filp_close()]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2e147f1ef7d593b36c0e27a393b7d7ec0765f54b",
      "tree": "cc7746744467dfcedd8e5068eac982fc9c308515",
      "parents": [
        "a7cf4145bb86aaf85d4d4d29a69b50b688e2e49d"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Fri May 14 10:49:22 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:21 2010 -0400"
      },
      "message": "fs: inode.c use atomic_inc_return in __iget\n\nUsing atomic_inc_return in __iget(struct inode *inode) makes the intent\nof this code clearer and generates less code on processors that have\nthis operation.\n\nOn x86_64 this patch reduces the text size of inode.o by 12 bytes.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\n\n----\npatch against 2.6.34-rc7\ncompiled \u0026 tested on x86_64 AMD X2\n\nI\u0027ve been running with this patch applied for several weeks with no\nobvious problems.\nregards\nRichard\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a7cf4145bb86aaf85d4d4d29a69b50b688e2e49d",
      "tree": "485e378b9fd42ff88663fbb149387173856fa67d",
      "parents": [
        "b7bb0a12913a582dbb0954bf463b1152b540c1a6"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri May 14 11:44:10 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:20 2010 -0400"
      },
      "message": "anon_inode: set S_IFREG on the anon_inode\n\nanon_inode_mkinode() sets inode-\u003ei_mode \u003d S_IRUSR | S_IWUSR;  This means\nthat (inode-\u003ei_mode \u0026 S_IFMT) \u003d\u003d 0.  This trips up some SELinux code that\nneeds to determine if a given inode is a regular file, a directory, etc.\nThe easiest solution is to just make sure that the anon_inode also sets\nS_IFREG.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b7bb0a12913a582dbb0954bf463b1152b540c1a6",
      "tree": "fa0d945d9e7e66d403ab7d7d2997a4405cc32e92",
      "parents": [
        "537d81ca7c5338e4f13f3e7e7b50e87ba293ec68"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:23 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:20 2010 -0400"
      },
      "message": "gfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "537d81ca7c5338e4f13f3e7e7b50e87ba293ec68",
      "tree": "7dd6ece3385c60dedc4c9d556ab4e7d38c8cc7e9",
      "parents": [
        "365f0cb9d2d5eea911798935133e8dd27ea5f3fc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:22 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:20 2010 -0400"
      },
      "message": "ocfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "365f0cb9d2d5eea911798935133e8dd27ea5f3fc",
      "tree": "e5933598e73facb959e43cd374029a85e89e38de",
      "parents": [
        "46e58764f0c502847ed1f4662aa37eefa602a8f9"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:21 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:20 2010 -0400"
      },
      "message": "jffs2: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "46e58764f0c502847ed1f4662aa37eefa602a8f9",
      "tree": "c3dc3f8aae37014726a372106e6028df1a5e63ab",
      "parents": [
        "94d09a98cdb163be12fb5c76841fa295f0bee22a"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:20 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "xfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "94d09a98cdb163be12fb5c76841fa295f0bee22a",
      "tree": "32f8e25bd707de3fe5fd34d49329d9510d7d0af2",
      "parents": [
        "11e27528076e7dee63f1db78bffbef6310f076f4"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:19 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "reiserfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "11e27528076e7dee63f1db78bffbef6310f076f4",
      "tree": "e8b3ce42cb10d5172fe5caf2b302a09e272e6b27",
      "parents": [
        "d1f21049f9185e589849051d94c9a50151c6a7dc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:18 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "ext4: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d1f21049f9185e589849051d94c9a50151c6a7dc",
      "tree": "4b95bea7124f036b1e949605e5a44e2901347603",
      "parents": [
        "749c72efa4bd91dad3a8c2ac8bfaa7c45490ceef"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:17 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "ext3: constify xattr handlers\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "749c72efa4bd91dad3a8c2ac8bfaa7c45490ceef",
      "tree": "3c475251243b0e8c686daed4ae1113efbaf49d6e",
      "parents": [
        "f01cbd3f8148f2056567f829e07c157b28b2dd1e"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:16 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "ext2: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f01cbd3f8148f2056567f829e07c157b28b2dd1e",
      "tree": "18d4a35bf25c9e17e11ce7a42015fae8ca5d009e",
      "parents": [
        "bb4354538eb7b92f32cfedbad68c7be266c0b467"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:15 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "btrfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bb4354538eb7b92f32cfedbad68c7be266c0b467",
      "tree": "5ecc43dabf5a0ecb511c74411272eba70415cdaf",
      "parents": [
        "18e9e5104fcd9a973ffe3eed3816c87f2a1b6cd2"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:14 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "fs: xattr_handler table should be const\n\nThe entries in xattr handler table should be immutable (ie const)\nlike other operation tables.\n\nLater patches convert common filesystems. Uncoverted filesystems\nwill still work, but will generate a compiler warning.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18e9e5104fcd9a973ffe3eed3816c87f2a1b6cd2",
      "tree": "635369c866fcb384223618c878e0b4c317790634",
      "parents": [
        "e1e46bf1866317d4f86f66bf18d3f07317d9f9ee"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 23 10:34:56 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "Introduce freeze_super and thaw_super for the fsfreeze ioctl\n\nCurrently the way we do freezing is by passing sb\u003es_bdev to freeze_bdev and then\nletting it do all the work.  But freezing is more of an fs thing, and doesn\u0027t\nreally have much to do with the bdev at all, all the work gets done with the\nsuper.  In btrfs we do not populate s_bdev, since we can have multiple bdev\u0027s\nfor one fs and setting s_bdev makes removing devices from a pool kind of tricky.\nThis means that freezing a btrfs filesystem fails, which causes us to corrupt\nwith things like tux-on-ice which use the fsfreeze mechanism.  So instead of\npopulating sb-\u003es_bdev with a random bdev in our pool, I\u0027ve broken the actual fs\nfreezing stuff into freeze_super and thaw_super.  These just take the\nsuper_block that we\u0027re freezing and does the appropriate work.  It\u0027s basically\njust copy and pasted from freeze_bdev.  I\u0027ve then converted freeze_bdev over to\nuse the new super helpers.  I\u0027ve tested this with ext4 and btrfs and verified\neverything continues to work the same as before.\n\nThe only new gotcha is multiple calls to the fsfreeze ioctl will return EBUSY if\nthe fs is already frozen.  I thought this was a better solution than adding a\nfreeze counter to the super_block, but if everybody hates this idea I\u0027m open to\nsuggestions.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e1e46bf1866317d4f86f66bf18d3f07317d9f9ee",
      "tree": "cbaf0c3d64beff26bb9e37f1640811492fb3c617",
      "parents": [
        "d3f2147307cce9eac56dd91d381709aa3f1615b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 13:56:07 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "Trim includes in fs/super.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3f2147307cce9eac56dd91d381709aa3f1615b3",
      "tree": "c1512bc87bdd657d379c6cf67f9c84436ad8fb52",
      "parents": [
        "7ed1ee6118ae77330cae2a6d5e9383532f7dfb48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 11:11:05 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "Move grabbing s_umount to callers of grab_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ed1ee6118ae77330cae2a6d5e9383532f7dfb48",
      "tree": "5f91faf8ddb9b210f9f66b15bd5c82c04e9a54e9",
      "parents": [
        "e8c26255992474a2161c63ce9d385827302e4530"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 10:37:36 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "Take statfs variants to fs/statfs.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e8c26255992474a2161c63ce9d385827302e4530",
      "tree": "08d247a53eca56a6e161ca784a4536b3ea7662f7",
      "parents": [
        "01a05b337a5b647909e1d6670f57e7202318a5fb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 06:36:54 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "switch selinux delayed superblock handling to iterate_supers()\n\n... kill their private list, while we are at it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "01a05b337a5b647909e1d6670f57e7202318a5fb",
      "tree": "7877f08db14877d06346c8e1ef52aa17f2483e93",
      "parents": [
        "35cf7ba0b46dc3582a01c3860b14bff122662aa3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 06:06:58 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "new helper: iterate_supers()\n\n... and switch the simple \"loop over superblocks and do something\"\nloops to it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "35cf7ba0b46dc3582a01c3860b14bff122662aa3",
      "tree": "2b38e9333600f468f0c8371c657c02e3aa8ec43b",
      "parents": [
        "79893c17b45dec0d3c25bc22d28d9f319b14f573"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 21:13:53 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "Bury __put_super_and_need_restart()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79893c17b45dec0d3c25bc22d28d9f319b14f573",
      "tree": "560c5f13193cbb1e2d2bf5dc1fd6f25d49c01165",
      "parents": [
        "df40c01a9249873e4ad0625ae5d9fb831962b75c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:27:55 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "fix prune_dcache()/umount() race\n\n... and get rid of the last __put_super_and_need_restart() caller\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "df40c01a9249873e4ad0625ae5d9fb831962b75c",
      "tree": "9d049e176ad6a329e040faa32d6ee5933d1cea58",
      "parents": [
        "1494583de59dfad2e3a6788ce9817e658d32df22"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:23:25 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "In get_super() and user_get_super() restarts are unconditional\n\nIf superblock had been still alive, we would\u0027ve returned it...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1494583de59dfad2e3a6788ce9817e658d32df22",
      "tree": "6f0a0fe022af703aa18ecc5f65a616fe44b9f8ad",
      "parents": [
        "e7fe0585ca8793e2d43c57e77d4ca79042806acf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:15:33 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "fix get_active_super()/umount() race\n\nThis one needs restarts...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7fe0585ca8793e2d43c57e77d4ca79042806acf",
      "tree": "a68234ce86f5ff221f3f6260374f3a6437d77ce3",
      "parents": [
        "6754af64641e8224c281ee5714e012e3ed41f701"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:11:53 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "fix do_emergency_remount()/umount() races\n\nneed list_for_each_entry_safe() here.  Original didn\u0027t even\nhave restart logics, so if you race with umount() it blew up.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6754af64641e8224c281ee5714e012e3ed41f701",
      "tree": "248a8c01aae46f98505d8c196393fae629f9691a",
      "parents": [
        "8edd64bd6089e21f47dcdebb14b598b713213ddc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:09:33 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "Convert simple loops over superblocks to list_for_each_entry_safe\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8edd64bd6089e21f47dcdebb14b598b713213ddc",
      "tree": "c356a358c7b823433728869ff430ad205c4b8a5d",
      "parents": [
        "551de6f34dfeefbeeadb32909c387d393114ecc8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 19:56:42 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "get rid of restarts in sync_filesystems()\n\nAt the same time we can kill s_need_restart and local mutex in there.\n__put_super() made public for a while; will be gone later.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "551de6f34dfeefbeeadb32909c387d393114ecc8",
      "tree": "822af803e7e75ed476b0a176639c162e0395910d",
      "parents": [
        "1712ac8fda7d8bc4dc921f5777b7423aacad7263"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 19:36:35 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "Leave superblocks on s_list until the end\n\nWe used to remove from s_list and s_instances at the same\ntime.  So let\u0027s *not* do the former and skip superblocks\nthat have empty s_instances in the loops over s_list.\n\nThe next step, of course, will be to get rid of rescan logics\nin those loops.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1712ac8fda7d8bc4dc921f5777b7423aacad7263",
      "tree": "1493bc7166ace04d9ac2f4d5383eaab1d43e17c4",
      "parents": [
        "b20bd1a5e78af267dc4b6e1ffed48d5d776302c5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 15:22:31 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "Saner locking around deactivate_super()\n\nMake sure that s_umount is acquired *before* we drop the final\nactive reference; we still have the fast path (atomic_dec_unless)\nand we have gotten rid of the window between the moment when\ns_active hits zero and s_umount is acquired.  Which simplifies\nthe living hell out of grab_super() and inotify pin_to_kill()\nstuff.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b20bd1a5e78af267dc4b6e1ffed48d5d776302c5",
      "tree": "d50982ee42500712d9add489435d4455580b9cac",
      "parents": [
        "389b8be6ef419397e4f176652927ebad6ebb4b77"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 08:53:19 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "get rid of S_BIAS\n\nuse atomic_inc_not_zero(\u0026sb-\u003es_active) instead of playing games with\nchecking -\u003es_count \u003e S_BIAS\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "389b8be6ef419397e4f176652927ebad6ebb4b77",
      "tree": "941037c2296b94b30f4a883235f54930b6aa485e",
      "parents": [
        "79d7e39ee1d4b423206f6cfd2cd2eed6253d95fe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 22:34:11 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "get rid of open-coded grab_super() in get_active_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79d7e39ee1d4b423206f6cfd2cd2eed6253d95fe",
      "tree": "72cda49fac91729b68edbec086dd5f36178448d5",
      "parents": [
        "3981f2e2a04df4b95129ddbb8bb869ef1d57bea9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 19:24:23 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "sb_entry() has been killed a couple of years ago and resurrected on mismerge\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3981f2e2a04df4b95129ddbb8bb869ef1d57bea9",
      "tree": "56b59b8e02b8a505f70126cbe98b81a6c798de83",
      "parents": [
        "2ccde7c631f992bf79da8007b5fc8b6425eb0d6d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 19:22:29 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "ceph: should use deactivate_locked_super() on failure exits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2ccde7c631f992bf79da8007b5fc8b6425eb0d6d",
      "tree": "d99cbae607223c76916fd373d7a827515ed022c0",
      "parents": [
        "decabd6650915a9534dad09e967115513be12b24"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 21 12:24:29 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "Clean ecryptfs -\u003eget_sb() up\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "decabd6650915a9534dad09e967115513be12b24",
      "tree": "3e4aa8ed78535f3a34b60e363e7b13efbd7ea62c",
      "parents": [
        "894680710d813137077ad7cb351b713f64cabbdf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 20 22:32:26 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:13 2010 -0400"
      },
      "message": "fix a couple of ecryptfs leaks\n\nFirst of all, get_sb_nodev() grabs anon dev minor and we\nnever free it in ecryptfs -\u003ekill_sb().  Moreover, on one\nof the failure exits in ecryptfs_get_sb() we leak things -\nit happens before we set -\u003es_root and -\u003eput_super() won\u0027t\nbe called in that case.  Solution: kill -\u003eput_super(), do\nall that stuff in -\u003ekill_sb().  And use kill_anon_sb() instead\nof generic_shutdown_super() to deal with anon dev leak.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "894680710d813137077ad7cb351b713f64cabbdf",
      "tree": "67cd171f70f8dd938374bf02c1c8d562d08a3f61",
      "parents": [
        "a135aa2cd76a1de1a84312e0bb3498a5da76782d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 20 21:57:43 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:12 2010 -0400"
      },
      "message": "Simplify devpts_get_sb() failure exits\n\npostpone simple_set_mnt() until we know we won\u0027t fail.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a135aa2cd76a1de1a84312e0bb3498a5da76782d",
      "tree": "2933d7ee275896cfa3b5173fda0fc7c91fb0a398",
      "parents": [
        "13e3c5e5b9c67e59074d24e29f3ff794bb4dfef0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Feb 01 21:55:52 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:12 2010 -0400"
      },
      "message": "remove incorrect comment in do_emergency_remount\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "13e3c5e5b9c67e59074d24e29f3ff794bb4dfef0",
      "tree": "18222526565a7fdf44aba30d2861c1f6b75516e3",
      "parents": [
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 16:11:04 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:12 2010 -0400"
      },
      "message": "clean DCACHE_CANT_MOUNT in d_delete()\n\nWe set the \"it\u0027s dead, don\u0027t mount on it\" flag _and_ do not remove it if\nwe turn the damn thing negative and leave it around.  And if it goes\npositive afterwards, well...\n\nFortunately, there\u0027s only one place where that needs to be caught:\nonly d_delete() can turn the sucker negative without immediately freeing\nit; all other places that can lead to -\u003ed_iput() call are followed by\nunconditionally freeing struct dentry in question.  So the fix is obvious:\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d16014\nReported-by: Adam Tkac \u003cvonsch@gmail.com\u003e\nTested-by: Adam Tkac \u003cvonsch@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e         [2.6.34.x]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d515e86e639890b33a09390d062b0831664f04a2",
      "tree": "37aea609704ce28ad44840279b95725e07c19a43",
      "parents": [
        "79c4581262e225a7c96d88b632b05ab3b5e9a52c",
        "2f07a88b30f510c7625d75cdf286903b465350a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:17:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:17:43 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:\n  udf: BKL ioctl pushdown\n"
    },
    {
      "commit": "79c4581262e225a7c96d88b632b05ab3b5e9a52c",
      "tree": "8ef030c74ab7e0d0df27cf86195f915efd2832f7",
      "parents": [
        "59534f7298c5e28aaa64e6ed550e247f64ee72ae",
        "99ec28f183daa450faa7bdad6f932364ae325648"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:17:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:17:05 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (92 commits)\n  powerpc: Remove unused \u0027protect4gb\u0027 boot parameter\n  powerpc: Build-in e1000e for pseries \u0026 ppc64_defconfig\n  powerpc/pseries: Make request_ras_irqs() available to other pseries code\n  powerpc/numa: Use ibm,architecture-vec-5 to detect form 1 affinity\n  powerpc/numa: Set a smaller value for RECLAIM_DISTANCE to enable zone reclaim\n  powerpc: Use smt_snooze_delay\u003d-1 to always busy loop\n  powerpc: Remove check of ibm,smt-snooze-delay OF property\n  powerpc/kdump: Fix race in kdump shutdown\n  powerpc/kexec: Fix race in kexec shutdown\n  powerpc/kexec: Speedup kexec hash PTE tear down\n  powerpc/pseries: Add hcall to read 4 ptes at a time in real mode\n  powerpc: Use more accurate limit for first segment memory allocations\n  powerpc/kdump: Use chip-\u003eshutdown to disable IRQs\n  powerpc/kdump: CPUs assume the context of the oopsing CPU\n  powerpc/crashdump: Do not fail on NULL pointer dereferencing\n  powerpc/eeh: Fix oops when probing in early boot\n  powerpc/pci: Check devices status property when scanning OF tree\n  powerpc/vio: Switch VIO Bus PM to use generic helpers\n  powerpc: Avoid bad relocations in iSeries code\n  powerpc: Use common cpu_die (fixes SMP+SUSPEND build)\n  ...\n"
    },
    {
      "commit": "59534f7298c5e28aaa64e6ed550e247f64ee72ae",
      "tree": "b9fef7756abf897d9e1b10950cdf10bf6dfe5cb7",
      "parents": [
        "ac3ee84c604502240122c47b52f0542ec8774f15",
        "b486787ee4797d6e42a9bd3a6f079385ad0f4472"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:14:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:14:52 2010 -0700"
      },
      "message": "Merge branch \u0027drm-for-2.6.35\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-for-2.6.35\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (207 commits)\n  drm/radeon/kms/pm/r600: select the mid clock mode for single head low profile\n  drm/radeon: fix power supply kconfig interaction.\n  drm/radeon/kms: record object that have been list reserved\n  drm/radeon: AGP memory is only I/O if the aperture can be mapped by the CPU.\n  drm/radeon/kms: don\u0027t default display priority to high on rs4xx\n  drm/edid: fix typo in 1600x1200@75 mode\n  drm/nouveau: fix i2c-related init table handlers\n  drm/nouveau: support init table i2c device identifier 0x81\n  drm/nouveau: ensure we\u0027ve parsed i2c table entry for INIT_*I2C* handlers\n  drm/nouveau: display error message for any failed init table opcode\n  drm/nouveau: fix init table handlers to return proper error codes\n  drm/nv50: support fractional feedback divider on newer chips\n  drm/nv50: fix monitor detection on certain chipsets\n  drm/nv50: store full dcb i2c entry from vbios\n  drm/nv50: fix suspend/resume with DP outputs\n  drm/nv50: output calculated crtc pll when debugging on\n  drm/nouveau: dump pll limits entries when debugging is on\n  drm/nouveau: bios parser fixes for eDP boards\n  drm/nouveau: fix a nouveau_bo dereference after it\u0027s been destroyed\n  drm/nv40: remove some completed ctxprog TODOs\n  ...\n"
    },
    {
      "commit": "ac3ee84c604502240122c47b52f0542ec8774f15",
      "tree": "fa74b50e310af6cef3298a052514b2d42b260d6b",
      "parents": [
        "90b9a32d8f441369b2f97a765d2d957b531eb653",
        "4fe1da4ebc18c4c42fa56c228447f68033fce5f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:10:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:10:41 2010 -0700"
      },
      "message": "Merge branch \u0027dbg-early-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027dbg-early-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  echi-dbgp: Add kernel debugger support for the usb debug port\n  earlyprintk,vga,kdb: Fix \\b and \\r for earlyprintk\u003dvga with kdb\n  kgdboc: Add ekgdboc for early use of the kernel debugger\n  x86,early dr regs,kgdb: Allow kernel debugger early dr register access\n  x86,kgdb: Implement early hardware breakpoint debugging\n  x86, kgdb, init: Add early and late debug states\n  x86, kgdb: early trap init for early debug\n"
    },
    {
      "commit": "90b9a32d8f441369b2f97a765d2d957b531eb653",
      "tree": "3146d251a983ba12226e75c121613de6f051af8b",
      "parents": [
        "8b108c609adefd98577c35f0a41497a610041a6c",
        "4402c153cb9c549cd21d6007ef0dfac50c8d148d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 11:08:05 2010 -0700"
      },
      "message": "Merge branch \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027kdb-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb: (25 commits)\n  kdb,debug_core: Allow the debug core to receive a panic notification\n  MAINTAINERS: update kgdb, kdb, and debug_core info\n  debug_core,kdb: Allow the debug core to process a recursive debug entry\n  printk,kdb: capture printk() when in kdb shell\n  kgdboc,kdb: Allow kdb to work on a non open console port\n  kgdb: Add the ability to schedule a breakpoint via a tasklet\n  mips,kgdb: kdb low level trap catch and stack trace\n  powerpc,kgdb: Introduce low level trap catching\n  x86,kgdb: Add low level debug hook\n  kgdb: remove post_primary_code references\n  kgdb,docs: Update the kgdb docs to include kdb\n  kgdboc,keyboard: Keyboard driver for kdb with kgdb\n  kgdb: gdb \"monitor\" -\u003e kdb passthrough\n  sparc,sunzilog: Add console polling support for sunzilog serial driver\n  sh,sh-sci: Use NO_POLL_CHAR in the SCIF polled console code\n  kgdb,8250,pl011: Return immediately from console poll\n  kgdb: core changes to support kdb\n  kdb: core for kgdb back end (2 of 2)\n  kdb: core for kgdb back end (1 of 2)\n  kgdb,blackfin: Add in kgdb_arch_set_pc for blackfin\n  ...\n"
    },
    {
      "commit": "8b108c609adefd98577c35f0a41497a610041a6c",
      "tree": "f1552fdc5bf0ebcc484a88f01cd3864113adf25c",
      "parents": [
        "7ce1418f95e918cfc5ad36e3ec3431145c768cd0",
        "73d5e8f77e88a4d3a154dfdbb4ed2cf461b7bf21"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:51:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:51:03 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (59 commits)\n  HID: fix up \u0027EMBEDDED\u0027 mess in Kconfig\n  HID: roccat: cleanup preprocessor macros\n  HID: roccat: refactor special event handling\n  HID: roccat: fix special button support\n  HID: roccat: Correctly mark init and exit functions\n  HID: hidraw: Use Interrupt Endpoint for OUT Transfers if Available\n  HID: hid-samsung: remove redundant key mappings\n  HID: add omitted hid-zydacron.c file\n  HID: hid-samsung: add support for Creative Desktop Wireless 6000\n  HID: picolcd: Eliminate use after free\n  HID: Zydacron Remote Control driver\n  HID: Use kmemdup\n  HID: magicmouse: fix input registration\n  HID: make Prodikeys driver standalone config option\n  HID: Prodikeys PC-MIDI HID Driver\n  HID: hidraw: fix indentation\n  HID: ntrig: add filtering module parameters\n  HID: ntrig: add sysfs access to filter parameters\n  HID: ntrig: add sensitivity and responsiveness support\n  HID: add multi-input quirk for eGalax Touchcontroller\n  ...\n"
    },
    {
      "commit": "7ce1418f95e918cfc5ad36e3ec3431145c768cd0",
      "tree": "10fd5bf66a5d0cb71cbf0ffb17b354969a7cc4c4",
      "parents": [
        "a6f039869ff87e0a8d621e31d14bbb120c1dfa93",
        "1907131bbeabb33db313bad34f3ec1a5faedbd64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:50:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:50:28 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (31 commits)\n  dquot: Detect partial write error to quota file in write_blk() and add printk_ratelimit for quota error messages\n  ocfs2: Fix lock inversion in quotas during umount\n  ocfs2: Use __dquot_transfer to avoid lock inversion\n  ocfs2: Fix NULL pointer deref when writing local dquot\n  ocfs2: Fix estimate of credits needed for quota allocation\n  ocfs2: Fix quota locking\n  ocfs2: Avoid unnecessary block mapping when refreshing quota info\n  ocfs2: Do not map blocks from local quota file on each write\n  quota: Refactor dquot_transfer code so that OCFS2 can pass in its references\n  quota: unify quota init condition in setattr\n  quota: remove sb_has_quota_active in get/set_info\n  quota: unify -\u003eset_dqblk\n  quota: unify -\u003eget_dqblk\n  ext3: make barrier options consistent with ext4\n  quota: Make quota stat accounting lockless.\n  suppress warning: \"quotatypes\" defined but not used\n  ext3: Fix waiting on transaction during fsync\n  jbd: Provide function to check whether transaction will issue data barrier\n  ufs: add ufs speciffic -\u003esetattr call\n  BKL: Remove BKL from ext2 filesystem\n  ...\n"
    },
    {
      "commit": "a6f039869ff87e0a8d621e31d14bbb120c1dfa93",
      "tree": "c8975a8d02893633d03efe5435aa8b0635298a93",
      "parents": [
        "e0bc5d4a54938eedcde14005210e6c08aa9727e4",
        "f6304f5804f228b6c2fea9e3dfac25c5b2db9b38"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:50:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:50:00 2010 -0700"
      },
      "message": "Merge branch \u0027omap-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6\n\n* \u0027omap-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (113 commits)\n  omap4: Add support for i2c init\n  omap: Fix i2c platform init code for omap4\n  OMAP2 clock: fix recursive spinlock attempt when CONFIG_CPU_FREQ\u003dy\n  OMAP powerdomain, hwmod, omap_device: add some credits\n  OMAP4 powerdomain: Support LOWPOWERSTATECHANGE for powerdomains\n  OMAP3 clock: add support for setting the divider for sys_clkout2 using clk_set_rate\n  OMAP4 powerdomain: Fix pwrsts flags for ALWAYS ON domains\n  OMAP: timers: Fix clock source names for OMAP4\n  OMAP4 clock: Support clk_set_parent\n  OMAP4: PRCM: Add offset defines for all CM registers\n  OMAP4: PRCM: Add offset defines for all PRM registers\n  OMAP4: PRCM: Remove duplicate definition of base addresses\n  OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention\n  OMAP4: CM: Remove non-functional registers in ES1.0\n  OMAP: hwmod: Replace WARN by pr_warning for clockdomain check\n  OMAP: hwmod: Rename hwmod name for the MPU\n  OMAP: hwmod: Do not exit the iteration if one clock init failed\n  OMAP: hwmod: Replace WARN by pr_warning if clock lookup failed\n  OMAP: hwmod: Remove IS_ERR check with omap_clk_get_by_name return value\n  OMAP: hwmod: Fix wrong pointer iteration in oh-\u003eslaves\n  ...\n"
    },
    {
      "commit": "e0bc5d4a54938eedcde14005210e6c08aa9727e4",
      "tree": "bcbabc1651c6bc9c138363b617714cd2349cecb3",
      "parents": [
        "7f02ab3ce3c7e093c414fcbd93bdc591cc4419d0",
        "7c4fda1aa15fdbbd2563e7e652cd3745f92a16da"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:49:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:49:43 2010 -0700"
      },
      "message": "Merge branch \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging\n\n* \u0027i2c-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:\n  i2c-nforce2: Remove redundant error messages on ACPI conflict\n  i2c: Use \u003clinux/io.h\u003e instead of \u003casm/io.h\u003e\n  i2c-algo-pca: Fix coding style issues\n  i2c-dev: Fix all coding style issues\n  i2c-core: Fix some coding style issues\n  i2c-gpio: Move initialization code to subsys_initcall()\n  i2c-parport: Make template structure const\n  i2c-dev: Remove unnecessary casts\n  at24: Fall back to byte or word reads if needed\n  i2c-stub: Expose the default functionality flags\n  i2c/scx200_acb: Make PCI device ids constant\n  i2c-i801: Fix all checkpatch warnings\n  i2c-i801: All newer devices have all the optional features\n  i2c-i801: Let the user disable selected driver features\n"
    },
    {
      "commit": "7f02ab3ce3c7e093c414fcbd93bdc591cc4419d0",
      "tree": "b92453c1b0aa1234330855c5ac96627ebe8c82da",
      "parents": [
        "d6fb1db02e02aea98f2d7e121fd30e24c84639d6",
        "0dbb5671921b6dad2396090ef81a3efee1ae7da1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:48 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (25 commits)\n  serial: Tidy REMOTE_DEBUG\n  serial: isicomm: handle running out of slots\n  serial: bfin_sport_uart: Use resource size to fix off-by-one error\n  tty: fix obsolete comment on tty_insert_flip_string_fixed_flag\n  serial: Add driver for the Altera UART\n  serial: Add driver for the Altera JTAG UART\n  serial: timbuart: make sure last byte is sent when port is closed\n  serial: two branches the same in timbuart_set_mctrl()\n  serial: uartlite: move from byte accesses to word accesses\n  tty: n_gsm: depends on NET\n  tty: n_gsm line discipline\n  serial: TTY: new ldiscs for staging\n  serial: bfin_sport_uart: drop redundant cpu depends\n  serial: bfin_sport_uart: drop the experimental markings\n  serial: bfin_sport_uart: pull in bfin_sport.h for SPORT defines\n  serial: bfin_sport_uart: only enable SPORT TX if data is to be sent\n  serial: bfin_sport_uart: drop useless status masks\n  serial: bfin_sport_uart: zero sport_uart_port if allocated dynamically\n  serial: bfin_sport_uart: protect changes to uart_port\n  serial: bfin_sport_uart: add support for CTS/RTS via GPIOs\n  ...\n"
    },
    {
      "commit": "d6fb1db02e02aea98f2d7e121fd30e24c84639d6",
      "tree": "865546f0388c40d52cf98febe2c6d21039915ea2",
      "parents": [
        "b4e6b09738fde057ce885703705f71cc953d0512",
        "a1b3f594dc5faab91d3a218c7019e9b5edd9fe1a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:32 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (38 commits)\n  net: Expose all network devices in a namespaces in sysfs\n  hotplug: netns aware uevent_helper\n  kobj: Send hotplug events in the proper namespace.\n  netlink: Implment netlink_broadcast_filtered\n  net/sysfs: Fix the bitrot in network device kobject namespace support\n  netns: Teach network device kobjects which namespace they are in.\n  kobject: Send hotplug events in all network namespaces\n  driver-core: fix Typo in drivers/base/core.c for CONFIG_MODULE\n  pci: check caps from sysfs file open to read device dependent config space\n  sysfs: add struct file* to bin_attr callbacks\n  sysfs: Remove usage of S_BIAS to avoid merge conflict with the vfs tree\n  sysfs: Don\u0027t use enums in inline function declaration.\n  sysfs-namespaces: add a high-level Documentation file\n  sysfs: Comment sysfs directory tagging logic\n  driver core: Implement ns directory support for device classes.\n  sysfs: Implement sysfs_delete_link\n  sysfs: Add support for tagged directories with untagged members.\n  sysfs: Implement sysfs tagged directory support.\n  kobj: Add basic infrastructure for dealing with namespaces.\n  sysfs: Remove double free sysfs_get_sb\n  ...\n"
    },
    {
      "commit": "b4e6b09738fde057ce885703705f71cc953d0512",
      "tree": "aacaf3adc99f19281d808d7c5a45ea47161be675",
      "parents": [
        "70ca0a42fe1702ac0784386c44b05d18ee5f1f9e"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri May 21 09:03:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:48:12 2010 -0700"
      },
      "message": "interrupt.h: fix fatal kernel-doc error\n\nFix kernel-doc fatal error:\n/** beginning a non-kernel-doc comment block:\n(That alone does not kill kernel-doc, but the \u0027enum\u0027 was\ntotally confusing to it.)\n\nError(/lnx/src/TMP/linux-2.6.34-git6//include/linux/interrupt.h:88): cannot understand prototype: \u0027enum \u0027\nmake[2]: *** [Documentation/DocBook/genericirq.xml] Error 1\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1907131bbeabb33db313bad34f3ec1a5faedbd64",
      "tree": "e5561fce158ea6f17406f8f17871af0c61d5cbd5",
      "parents": [
        "c06bcbfa1ed8daaeb2a262f372b411207891e229"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Mon May 17 18:36:03 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:49 2010 +0200"
      },
      "message": "dquot: Detect partial write error to quota file in write_blk() and add printk_ratelimit for quota error messages\n\nThis patch changes quota_tree.c:write_blk() to detect error caused by partial\nwrite to quota file and add a macro to limit control printed quota error\nmessages so we won\u0027t fill up dmesg with a corrupted quota file.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c06bcbfa1ed8daaeb2a262f372b411207891e229",
      "tree": "db734e409643108ea4b5df28bf18bcfac654eaca",
      "parents": [
        "52a9ee281cfb26fffce1d6c409fb4b1f4aa8a766"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 22:14:53 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:48 2010 +0200"
      },
      "message": "ocfs2: Fix lock inversion in quotas during umount\n\nWe cannot cancel delayed work from ocfs2_local_free_info because that is called\nwith dqonoff_mutex held and the work it cancels requires dqonoff_mutex to\nfinish. Cancel the work before acquiring dqonoff_mutex.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "52a9ee281cfb26fffce1d6c409fb4b1f4aa8a766",
      "tree": "b30f8ac1bab7f793f7c3c999e9df59818578e6d9",
      "parents": [
        "741e128933448e589a85286e535078b24f4cf568"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 20:18:45 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:48 2010 +0200"
      },
      "message": "ocfs2: Use __dquot_transfer to avoid lock inversion\n\ndquot_transfer() acquires own references to dquots via dqget(). Thus it waits\nfor dq_lock which creates a lock inversion because dq_lock ranks above\ntransaction start but transaction is already started in ocfs2_setattr(). Fix\nthe problem by passing own references directly to __dquot_transfer.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "741e128933448e589a85286e535078b24f4cf568",
      "tree": "40a069e5c7484673529f0747a9995cc7d2a85f00",
      "parents": [
        "832d09cf1438bd172f69478bde74f20f05ec0115"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 18:05:15 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:48 2010 +0200"
      },
      "message": "ocfs2: Fix NULL pointer deref when writing local dquot\n\ncommit_dqblk() can write quota info to global file. That is actually a bad\nthing to do because if we are just modifying local quota file, we are not\nprepared (do not hold proper locks, do not have transaction credits) to do\na modification of the global quota file. So do not use commit_dqblk() and\ninstead call our writing function directly.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "832d09cf1438bd172f69478bde74f20f05ec0115",
      "tree": "273eb6860b74f35b2fe43b8eaa808ea50af6955b",
      "parents": [
        "fb8dd8d780140a3f0e9074831a59054fec6cc451"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 11 17:04:14 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:47 2010 +0200"
      },
      "message": "ocfs2: Fix estimate of credits needed for quota allocation\n\nWe were missing reservation of a journal credit for modification of quota\nfile inode when creating new dquot structure in the global quota file.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "fb8dd8d780140a3f0e9074831a59054fec6cc451",
      "tree": "09e9f7bf157784fc6b0a7df71c1fbfe711349055",
      "parents": [
        "ae4f6ef13417deaa49471c0e903914a3ef3be258"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Mar 31 16:25:37 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:47 2010 +0200"
      },
      "message": "ocfs2: Fix quota locking\n\nOCFS2 had three issues with quota locking:\na) When reading dquot from global quota file, we started a transaction while\n   holding dqio_mutex which is prone to deadlocks because other paths do it\n   the other way around\nb) During ocfs2_sync_dquot we were not protected against concurrent writers\n   on the same node. Because we first copy data to local buffer, a race\n   could happen resulting in old data being written to global quota file and\n   thus causing quota inconsistency after a crash.\nc) ip_alloc_sem of quota files was acquired while a transaction is started\n   in ocfs2_quota_write which can deadlock because we first get ip_alloc_sem\n   and then start a transaction when extending quota files.\n\nWe fix the problem a) by pulling all necessary code to ocfs2_acquire_dquot\nand ocfs2_release_dquot. Thus we no longer depend on generic dquot_acquire\nto do the locking and can force proper lock ordering.\n\nProblems b) and c) are fixed by locking i_mutex and ip_alloc_sem of\nglobal quota file in ocfs2_lock_global_qf and removing ip_alloc_sem from\nocfs2_quota_read and ocfs2_quota_write.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ae4f6ef13417deaa49471c0e903914a3ef3be258",
      "tree": "b8ba5499a8ad69678a232ece4d64d18447063054",
      "parents": [
        "f64dd44eb748438783b10b3f7a4968d2656a3c95"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Apr 28 19:04:29 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:46 2010 +0200"
      },
      "message": "ocfs2: Avoid unnecessary block mapping when refreshing quota info\n\nThe position of global quota file info does not change. So we do not have\nto do logical -\u003e physical block translation every time we reread it from\ndisk. Thus we can also avoid taking ip_alloc_sem.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "f64dd44eb748438783b10b3f7a4968d2656a3c95",
      "tree": "21d73e0ed7140c8a61331eacd65157cc0983a16d",
      "parents": [
        "bc8e5f07392f05c47c8bdeff4f7098db440d065c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Apr 28 00:22:30 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:46 2010 +0200"
      },
      "message": "ocfs2: Do not map blocks from local quota file on each write\n\nThere is no need to map offset of local dquot structure to on disk block\nin each quota write. It is enough to map it just once and store the physical\nblock number in quota structure in memory. Moreover this simplifies locking\nas we do not have to take ip_alloc_sem from quota write path.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "bc8e5f07392f05c47c8bdeff4f7098db440d065c",
      "tree": "5ab56dabd75912267764849a594ec2f271fd4352",
      "parents": [
        "12755627bdcddcdb30a1bfb9a09395a52b1d6838"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 19:58:50 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: Refactor dquot_transfer code so that OCFS2 can pass in its references\n\nCurrently, __dquot_transfer() acquires its own references of dquot structures\nthat will be put into inode. But for OCFS2, this creates a lock inversion\nbetween dq_lock (waited on in dqget) and transaction start (started in\nocfs2_setattr). Currently, deadlock is impossible because dq_lock is acquired\nonly during dquot_acquire and dquot_release and we already hold a reference to\ndquot structures in ocfs2_setattr so neither of these functions can be called\nwhile we call dquot_transfer. But this is rather subtle and it is hard to teach\nlockdep about it. So provide __dquot_transfer function that can be passed dquot\nreferences directly. OCFS2 can then pass acquired dquot references directly to\n__dquot_transfer with proper locking.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "12755627bdcddcdb30a1bfb9a09395a52b1d6838",
      "tree": "b2d69696975d5457648020324f683a45302fbf3c",
      "parents": [
        "fcbc59f96e38a0999e827be9d04d46b62b53b20a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Apr 08 22:04:20 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: unify quota init condition in setattr\n\nQuota must being initialized if size or uid/git changes requested.\nBut initialization performed in two different places:\nin case of i_size file system is responsible for dquot init\n, but in case of uid/gid init will be called internally in\ndquot_transfer().\nThis ambiguity makes code harder to understand.\nLet\u0027s move this logic to one common helper function.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "fcbc59f96e38a0999e827be9d04d46b62b53b20a",
      "tree": "240b623a67251f2c2cbfcfee2b65667c148d1cbb",
      "parents": [
        "c472b43275976512e4c1c32da5ced03f339cb380"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri May 07 12:35:40 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: remove sb_has_quota_active in get/set_info\n\nThe methods already do these checks, so remove them in the quotactl\nimplementation to allow non-VFS quota implementations to also support\nthese calls.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c472b43275976512e4c1c32da5ced03f339cb380",
      "tree": "9159fbfd1190456e8b3e699b856022c23f6ec10c",
      "parents": [
        "b9b2dd36c1bc64430f8e13990ab135cbecc10076"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu May 06 17:05:17 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:44 2010 +0200"
      },
      "message": "quota: unify -\u003eset_dqblk\n\nPass the larger struct fs_disk_quota to the -\u003eset_dqblk operation so\nthat the Q_SETQUOTA and Q_XSETQUOTA operations can be implemented\nwith a single filesystem operation and we can retire the -\u003eset_xquota\noperation.  The additional information (RT-subvolume accounting and\nwarn counts) are left zero for the VFS quota implementation.\n\nAdd new fieldmask values for setting the numer of blocks and inodes\nvalues which is required for the VFS quota, but wasn\u0027t for XFS.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b9b2dd36c1bc64430f8e13990ab135cbecc10076",
      "tree": "051bb6a238c9ff98fe135de3e8591c65cf242d46",
      "parents": [
        "0636c73ee7b129f77f577aaaefc8dde057be6d18"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu May 06 17:04:58 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:43 2010 +0200"
      },
      "message": "quota: unify -\u003eget_dqblk\n\nPass the larger struct fs_disk_quota to the -\u003eget_dqblk operation so\nthat the Q_GETQUOTA and Q_XGETQUOTA operations can be implemented\nwith a single filesystem operation and we can retire the -\u003eget_xquota\noperation.  The additional information (RT-subvolume accounting and\nwarn counts) are left zero for the VFS quota implementation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0636c73ee7b129f77f577aaaefc8dde057be6d18",
      "tree": "6cf9dba3119f9ec6fa346572c8a5bd693828bf45",
      "parents": [
        "dde9588853b1bde542eab247f8838c472806688f"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Apr 30 11:09:34 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:41 2010 +0200"
      },
      "message": "ext3: make barrier options consistent with ext4\n\next4 was updated to accept barrier/nobarrier mount options\nin addition to the older barrier\u003d0/1.  The barrier story\nis complex enough, we should help people by making the options\nthe same at least, even if the defaults are different.\n\nThis patch allows the barrier/nobarrier mount options for ext3,\nwhile keeping nobarrier the default.\n\nIt also unconditionally displays barrier status in show_options,\nand prints a message at mount time if barriers are not enabled,\njust as ext4 does.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "dde9588853b1bde542eab247f8838c472806688f",
      "tree": "9f9c68bf63120056517bbfce78b75e6820cc4c4b",
      "parents": [
        "da8d1ba22fa1fd0c0e541a43d75ebb062589b14b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Apr 26 20:03:33 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:41 2010 +0200"
      },
      "message": "quota: Make quota stat accounting lockless.\n\nQuota stats is mostly writable data structure. Let\u0027s alloc percpu\nbucket for each value.\n\nNOTE: dqstats_read() function is racy against dqstats_{inc,dec}\nand may return inconsistent value. But this is ok since absolute\naccuracy is not required.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "da8d1ba22fa1fd0c0e541a43d75ebb062589b14b",
      "tree": "b0ad042e14aea09a16dc400d14decd8c882e9bc1",
      "parents": [
        "5277970878a32e437b27296e34c592e5d351f11d"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Mon Apr 26 12:09:26 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:41 2010 +0200"
      },
      "message": "suppress warning: \"quotatypes\" defined but not used\n\nSuppress compilation warning: \"quotatypes\" defined but not used.\nquotatypes is used only when CONFIG_QUOTA_DEBUG or CONFIG_PRINT_QUOTA_WARNING\nis/are defined.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5277970878a32e437b27296e34c592e5d351f11d",
      "tree": "64f41152b95e670935192ee6061653d922b642f3",
      "parents": [
        "03f4d804a1b4748885dc4613a4afe10089a731c8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 15 22:24:26 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:41 2010 +0200"
      },
      "message": "ext3: Fix waiting on transaction during fsync\n\nlog_start_commit() returns 1 only when it started a transaction\ncommit. Thus in case transaction commit is already running, we\nfail to wait for the commit to finish. Fix the issue by always\nwaiting for the commit regardless of the log_start_commit return\nvalue.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "03f4d804a1b4748885dc4613a4afe10089a731c8",
      "tree": "f2d7be9a0205496f14d61e6a8fe62277e653fab8",
      "parents": [
        "311b9549ed2bb0f2c2257781c3e88cb00505e80e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 15 22:16:24 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:40 2010 +0200"
      },
      "message": "jbd: Provide function to check whether transaction will issue data barrier\n\nProvide a function which returns whether a transaction with given tid\nwill send a barrier to the filesystem device. The function will be used\nby ext3 to detect whether fsync needs to send a separate barrier or not.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "311b9549ed2bb0f2c2257781c3e88cb00505e80e",
      "tree": "2a6769c682ae570103f581f03e43fee98261d177",
      "parents": [
        "e0a5cbac029db69032758000c67465c2ed7a5736"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Apr 15 00:56:58 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:40 2010 +0200"
      },
      "message": "ufs: add ufs speciffic -\u003esetattr call\n\ngeneric setattr not longer responsible for quota transfer.\nuse ufs_setattr for all ufs\u0027s inodes.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e0a5cbac029db69032758000c67465c2ed7a5736",
      "tree": "14d81b8fee8d43674acd4c63a2e994bdc3da774c",
      "parents": [
        "c15271f4e74cd6dbdf461335d6d1450949c4b956"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:39 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:40 2010 +0200"
      },
      "message": "BKL: Remove BKL from ext2 filesystem\n\nThe BKL is still used in ext2_put_super(), ext2_fill_super(), ext2_sync_fs()\next2_remount() and ext2_write_inode(). From these calls ext2_put_super(),\next2_fill_super() and ext2_remount() are protected against each other by\nthe struct super_block s_umount rw semaphore. The call in ext2_write_inode()\ncould only protect the modification of the ext2_sb_info through\next2_update_dynamic_rev() against concurrent ext2_sync_fs() or ext2_remount().\next2_fill_super() and ext2_put_super() can be left out because you need a\nvalid filesystem reference in all three cases, which you do not have when\nyou are one of these functions.\n\nIf the BKL is only protecting the modification of the ext2_sb_info it can\nsafely be removed since this is protected by the struct ext2_sb_info s_lock.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c15271f4e74cd6dbdf461335d6d1450949c4b956",
      "tree": "585738bde9a80e580686072d02cd6c1e5d261c1e",
      "parents": [
        "4c96a68bfc110d87b28bcee4c395a7b4d26ed67a"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:38 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:39 2010 +0200"
      },
      "message": "ext2: Add ext2_sb_info s_lock spinlock\n\nAdd a spinlock that protects against concurrent modifications of\ns_mount_state, s_blocks_last, s_overhead_last and the content of the\nsuperblock\u0027s buffer pointed to by sbi-\u003es_es. The spinlock is now used in\next2_xattr_update_super_block() which was setting the\nEXT2_FEATURE_COMPAT_EXT_ATTR flag on the superblock without protection\nbefore. Likewise the spinlock is used in ext2_show_options() to have a\nconsistent view of the mount options.\n\nThis is a preparation patch for removing the BKL from ext2 in the next\npatch.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4c96a68bfc110d87b28bcee4c395a7b4d26ed67a",
      "tree": "14f23f06bd88da1cbc01f34421bbeb727204435d",
      "parents": [
        "ee6921ebd04cb807dfe88b10ad80f1124813c673"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:37 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:39 2010 +0200"
      },
      "message": "ext2: Move ext2_write_super() out of ext2_setup_super()\n\nMove ext2_write_super() out of ext2_setup_super() as a preparation for the\nnext patch that adds a new lock for superblock fields.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ee6921ebd04cb807dfe88b10ad80f1124813c673",
      "tree": "a8892d816bb76c07b5e0f0df70596ccf0bfb6f98",
      "parents": [
        "20da9baf4cf9c627aaf7b00d64ce0b2221bab9bf"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:36 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:39 2010 +0200"
      },
      "message": "ext2: Fold ext2_commit_super() into ext2_sync_super()\n\nBoth function originally did similar things except that ext2_sync_super()\nis returning after the call to sync_dirty_buffer(sbh). Therefore this\npatch adds a wait flag to tell ext2_sync_super() if it has to call\nsync_dirty_buffer() to wait for in-progress I/O to finish.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    }
  ],
  "next": "20da9baf4cf9c627aaf7b00d64ce0b2221bab9bf"
}
