)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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"
    },
    {
      "commit": "20da9baf4cf9c627aaf7b00d64ce0b2221bab9bf",
      "tree": "aab271acba35a0e0c83e29136471ceb267c76d45",
      "parents": [
        "269c8db30cf5b60f47a44bbceaac118b986895d8"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:35 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:39 2010 +0200"
      },
      "message": "ext2: Remove duplicate code from ext2_sync_fs()\n\nDepending in the state (valid or unchecked) of the filesystem either\next2_sync_super() or ext2_commit_super() is called. If the filesystem is\ncurrently valid (it is checked), we first mark it unchecked and afterwards\nduplicate the work that ext2_sync_super() is doing later. Therefore this\npatch removes the duplicate code and calls ext2_sync_super() directly after\nmarking the filesystem unchecked.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "269c8db30cf5b60f47a44bbceaac118b986895d8",
      "tree": "aeae85a806e4acdc95aaab10fc1e1274ea9f102a",
      "parents": [
        "2b8120efb2d41e2aefce3b06cf3fd085f71e9021"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:34 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:38 2010 +0200"
      },
      "message": "ext2: Set the write time in ext2_sync_fs()\n\nThis is probably a typo since the write time should actually be updated by\next2_sync_fs() instead of the mount time.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "2b8120efb2d41e2aefce3b06cf3fd085f71e9021",
      "tree": "638dece002c64eed3758e909bca7328d6ab728f7",
      "parents": [
        "41d1a636b813867339db52e12377ca132d54700f"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed Apr 14 14:38:33 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:38 2010 +0200"
      },
      "message": "ext2: Use ext2_clear_super_error() in ext2_sync_fs()\n\next2_sync_fs() used to duplicate the code from ext2_clear_super_error().\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "41d1a636b813867339db52e12377ca132d54700f",
      "tree": "5f970b318e17291b0c7b0b7b3a1d4ac81422d0f9",
      "parents": [
        "524e4a1d102bdcee37297c0b763e945827b33ab8"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Apr 12 23:46:00 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:38 2010 +0200"
      },
      "message": "ext3: init statistics after journal recovery v2\n\nCurrently block/inode/dir counters are initialized before journal was\nrecovered. In fact after journal recovery this info will probably\nchange which results in incorrect numbers returned from statfs(2).\nBUG:#15768\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "524e4a1d102bdcee37297c0b763e945827b33ab8",
      "tree": "cd4a9de437710fcbc7fdb315c13f5a98e04d9a4f",
      "parents": [
        "eabf290d1470921f0ce5a9b22464ae30646a0677"
      ],
      "author": {
        "name": "Francis Moreau",
        "email": "francis.moro@gmail.com",
        "time": "Thu Apr 08 11:35:17 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:37 2010 +0200"
      },
      "message": "ext2: remove useless call to brelse() in ext2_free_inode()\n\nThis patch removes a useless call to brelse(bitmap_bh) since at that\npoint bitmap_bh is NULL and slightly cleans up bitmap_bh handling.\n\nSigned-off-by: Francis Moreau \u003cfrancis.moro@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "eabf290d1470921f0ce5a9b22464ae30646a0677",
      "tree": "ba3a4ae74101a2ca31fabdbfa3576776cbddf2ed",
      "parents": [
        "46891532370e862d6bddedef9e6ca22a59a51fa4"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Mar 27 15:15:38 2010 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:37 2010 +0200"
      },
      "message": "quota: optimize mark_dirty logic\n\n- Skip locking if quota is dirty already.\n- Return old quota state to help fs-specciffic implementation to optimize\n  case where quota was dirty already.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "46891532370e862d6bddedef9e6ca22a59a51fa4",
      "tree": "0e4d6128f7f4a1f67d6c3ede3504100ec5d5ee7a",
      "parents": [
        "8cef107a1d890ff76c85d665083ff3562be01d32"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Mar 29 13:55:39 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:37 2010 +0200"
      },
      "message": "ext2: Avoid loading bitmaps for full groups during block allocation\n\nThere is no point in loading bitmap for groups which are completely full.\nThis causes noticeable performance problems (and memory pressure) on small\nsystems with large full filesystem\n(http://marc.info/?l\u003dlinux-ext4\u0026m\u003d126843108314310\u0026w\u003d2).\n\nPort of the same ext3 patch.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "8cef107a1d890ff76c85d665083ff3562be01d32",
      "tree": "d8cb4a9acc01d110efeb43e2e9591f43596d5a16",
      "parents": [
        "70ca0a42fe1702ac0784386c44b05d18ee5f1f9e"
      ],
      "author": {
        "name": "Frans van de Wiel",
        "email": "fvdw@fvdw.eu",
        "time": "Mon Mar 15 19:29:34 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:36 2010 +0200"
      },
      "message": "ext3: Avoid loading bitmaps for full groups during block allocation\n\nThere is no point in loading bitmap for groups which are completely full.\nThis causes noticeable performance problems (and memory pressure) on small\nsystems with large full filesystem\n(http://marc.info/?l\u003dlinux-ext4\u0026m\u003d126843108314310\u0026w\u003d2).\n\nJan Kara: Added a comment and changed check to use cpu-endian value.\n\nSigned-off-by: \"Frans van de Wiel\" \u003cfvdw@fvdw.eu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "2c3c8bea608866d8bd9dcf92657d57fdcac011c5",
      "tree": "f509b958d0a65c46c831dbdd447a81e706dd995a",
      "parents": [
        "68d75ed4b84a0806ecd4bc14da4759713b23a532"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Wed May 12 18:28:57 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: add struct file* to bin_attr callbacks\n\nThis allows bin_attr-\u003eread,write,mmap callbacks to check file specific data\n(such as inode owner) as part of any privilege validation.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "68d75ed4b84a0806ecd4bc14da4759713b23a532",
      "tree": "025c85987d1d553ed014903ad8f6395250b44fa8",
      "parents": [
        "27eabc7cb4b357c68e4ce77d0b014f7a23add752"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@aristanetworks.com",
        "time": "Tue May 18 12:58:33 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: Remove usage of S_BIAS to avoid merge conflict with the vfs tree\n\nIn Al\u0027s latest vfs tree the code is reworked and S_BIAS has been removed.\n\nIt turns out that checking to see if a super block is in the\nmiddle of an unmount in sysfs_exit_ns is unnecessary because we\nremove the super_block from the s_supers/s_instances list before\nstruct sysfs_super_info pointed to by sb-\u003es_fs_info is freed.\n\nFor now just delete the unnecessary check to see if a superblock is in the\nmiddle of an unmount, it isn\u0027t necessary with or without Al\u0027s changes\nand it just causes a needless conflict.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "be867b194a3ae3c680c29521287ae49b4d44d420",
      "tree": "1b3ad125d02603c6a9cc4bb8ae518695d7c6a66d",
      "parents": [
        "f349cf34731c3b3eddbcd63cb04489aee2c405bd"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon May 03 16:23:15 2010 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: Comment sysfs directory tagging logic\n\nAdd some in-line comments to explain the new infrastructure, which\nwas introduced to support sysfs directory tagging with namespaces.\nI think an overall description someplace might be good too, but it\ndidn\u0027t really seem to fit into Documentation/filesystems/sysfs.txt,\nwhich appears more geared toward users, rather than maintainers, of\nsysfs.\n\n(Tejun, please let me know if I can make anything clearer or failed\naltogether to comment something that should be commented.)\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "746edb7ae8a1abdd39be2b28c03aa073183340db",
      "tree": "6e2bbfd8f42c11c95a4f63623a96317eb00efe77",
      "parents": [
        "af10ec77b43335ab4e473e4087d85979caf02d65"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 30 11:31:28 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: Implement sysfs_delete_link\n\nWhen removing a symlink sysfs_remove_link does not provide\nenough information to figure out which tagged directory the symlink\nfalls in.  So I need sysfs_delete_link which is passed the target\nof the symlink to delete.\n\nsysfs_rename_link is updated to call sysfs_delete_link instead\nof sysfs_remove_link as we have all of the information necessary\nand the callers are interesting.\n\nBoth of these functions now have enough information to find a symlink\nin a tagged directory.  The only restriction is that they must be called\nbefore the target kobject is renamed or deleted.  If they are called\nlater I loose track of which tag the target kobject was marked with\nand can no longer find the old symlink to remove it.\n\nThis patch was split from an earlier patch.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: Daniel Lezcano \u003cdlezcano@fr.ibm.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "af10ec77b43335ab4e473e4087d85979caf02d65",
      "tree": "2a3c78d5c17e0305f30f02cb9b716f1634ad7c87",
      "parents": [
        "3ff195b011d7decf501a4d55aeed312731094796"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@maxwell.aristanetworks.com",
        "time": "Tue Mar 30 11:31:27 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: Add support for tagged directories with untagged members.\n\nI had hopped to avoid this but the bonding driver adds a file\nto /sys/class/net/  and the easiest way to handle that file is\nto make it untagged and to register it only once.\n\nSo relax the rules on tagged directories, and make bonding work.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3ff195b011d7decf501a4d55aeed312731094796",
      "tree": "8cfdc330abbf82893955f2d7d6e96efee81bfd7c",
      "parents": [
        "bc451f2058238013e1cdf4acd443c01734d332f0"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 30 11:31:26 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: Implement sysfs tagged directory support.\n\nThe problem.  When implementing a network namespace I need to be able\nto have multiple network devices with the same name.  Currently this\nis a problem for /sys/class/net/*, /sys/devices/virtual/net/*, and\npotentially a few other directories of the form /sys/ ... /net/*.\n\nWhat this patch does is to add an additional tag field to the\nsysfs dirent structure.  For directories that should show different\ncontents depending on the context such as /sys/class/net/, and\n/sys/devices/virtual/net/ this tag field is used to specify the\ncontext in which those directories should be visible.  Effectively\nthis is the same as creating multiple distinct directories with\nthe same name but internally to sysfs the result is nicer.\n\nI am calling the concept of a single directory that looks like multiple\ndirectories all at the same path in the filesystem tagged directories.\n\nFor the networking namespace the set of directories whose contents I need\nto filter with tags can depend on the presence or absence of hotplug\nhardware or which modules are currently loaded.  Which means I need\na simple race free way to setup those directories as tagged.\n\nTo achieve a reace free design all tagged directories are created\nand managed by sysfs itself.\n\nUsers of this interface:\n- define a type in the sysfs_tag_type enumeration.\n- call sysfs_register_ns_types with the type and it\u0027s operations\n- sysfs_exit_ns when an individual tag is no longer valid\n\n- Implement mount_ns() which returns the ns of the calling process\n  so we can attach it to a sysfs superblock.\n- Implement ktype.namespace() which returns the ns of a syfs kobject.\n\nEverything else is left up to sysfs and the driver layer.\n\nFor the network namespace mount_ns and namespace() are essentially\none line functions, and look to remain that.\n\nTags are currently represented a const void * pointers as that is\nboth generic, prevides enough information for equality comparisons,\nand is trivial to create for current users, as it is just the\nexisting namespace pointer.\n\nThe work needed in sysfs is more extensive.  At each directory\nor symlink creating I need to check if the directory it is being\ncreated in is a tagged directory and if so generate the appropriate\ntag to place on the sysfs_dirent.  Likewise at each symlink or\ndirectory removal I need to check if the sysfs directory it is\nbeing removed from is a tagged directory and if so figure out\nwhich tag goes along with the name I am deleting.\n\nCurrently only directories which hold kobjects, and\nsymlinks are supported.  There is not enough information\nin the current file attribute interfaces to give us anything\nto discriminate on which makes it useless, and there are\nno potential users which makes it an uninteresting problem\nto solve.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Benjamin Thery \u003cbenjamin.thery@bull.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "ba514a57f5c38d9d79ea15e75059e07f49238726",
      "tree": "88a3c7cff6c2db84b0013b3e38ae550dee0f3127",
      "parents": [
        "9e7fdd25b21ebf50713dfb7702af57c270e5572a"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 30 16:50:26 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs: Remove double free sysfs_get_sb\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@aristanetworks.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9e7fdd25b21ebf50713dfb7702af57c270e5572a",
      "tree": "ea1c4d9c33be9b72782081fc16a5bac8aafe93da",
      "parents": [
        "c3473c63542d53740f175f3a515257ae159e998b"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 30 11:31:24 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:30 2010 -0700"
      },
      "message": "sysfs: Basic support for multiple super blocks\n\nAdd all of the necessary bioler plate to support\nmultiple superblocks in sysfs.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "da5e4ef7fdb8f2fb0878dee3bd9d4dd10cea8cf1",
      "tree": "172df2771cbfbb8501aaf6e04c34b4fc1b3c7cca",
      "parents": [
        "1653268b1b538981df9bb85d637456530938be6c"
      ],
      "author": {
        "name": "Peter Korsgaard",
        "email": "jacmet@sunsite.dk",
        "time": "Tue Mar 16 21:55:21 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:30 2010 -0700"
      },
      "message": "devtmpfs: support !CONFIG_TMPFS\n\nMake devtmpfs available on (embedded) configurations without SHMEM/TMPFS,\nusing ramfs instead.\n\nSaves ~15KB.\n\nSigned-off-by: Peter Korsgaard \u003cjacmet@sunsite.dk\u003e\nAcked-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d7dbf4ffee1c7a17e2e5b5f01efe76fbd1671db6",
      "tree": "2f4eda25c0c9eb6de1e573dba92b4d23fc383db5",
      "parents": [
        "677abe49ad017679627af9d3bbd9a7ecb3d94c42",
        "d240e06713007bba309b074a386b7072b73c31a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:47:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:47:00 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (23 commits)\n  nilfs2: disallow remount of snapshot from/to a regular mount\n  nilfs2: use huge_encode_dev/huge_decode_dev\n  nilfs2: update comment on deactivate_super at nilfs_get_sb\n  nilfs2: replace MS_VERBOSE with MS_SILENT\n  nilfs2: add missing initialization of s_mode\n  nilfs2: fix misuse of open_bdev_exclusive/close_bdev_exclusive\n  nilfs2: enlarge s_volume_name member in nilfs_super_block\n  nilfs2: use checkpoint number instead of timestamp to select super block\n  nilfs2: add missing endian conversion on super block magic number\n  nilfs2: make nilfs_sc_*_ops static\n  nilfs2: add kernel doc comments to persistent object allocator functions\n  nilfs2: change sc_timer from a pointer to an embedded one in struct nilfs_sc_info\n  nilfs2: remove nilfs_segctor_init() in segment.c\n  nilfs2: insert checkpoint number in segment summary header\n  nilfs2: add a print message after loading nilfs2\n  nilfs2: cleanup multi kmem_cache_{create,destroy} code\n  nilfs2: move out checksum routines to segment buffer code\n  nilfs2: move pointer to super root block into logs\n  nilfs2: change default of \u0027errors\u0027 mount option to \u0027remount-ro\u0027 mode\n  nilfs2: Combine nilfs_btree_release_path() and nilfs_btree_free_path()\n  ...\n"
    },
    {
      "commit": "677abe49ad017679627af9d3bbd9a7ecb3d94c42",
      "tree": "7cdb7fbc95b51b288e923a3978e17ed2207a4118",
      "parents": [
        "e90e4d9234c953b29267cc4fc9ad804128773313",
        "6a99be5d7b5973767b1ffa4fa68fed0738589c99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:29:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:29:15 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:\n  GFS2: Fix typo\n  GFS2: stuck in inode wait, no glocks stuck\n  GFS2: Eliminate useless err variable\n  GFS2: Fix writing to non-page aligned gfs2_quota structures\n  GFS2: Add some useful messages\n  GFS2: fix quota state reporting\n  GFS2: Various gfs2_logd improvements\n  GFS2: glock livelock\n  GFS2: Clean up stuffed file copying\n  GFS2: docs update\n  GFS2: Remove space from slab cache name\n"
    },
    {
      "commit": "e90e4d9234c953b29267cc4fc9ad804128773313",
      "tree": "cd35351fa453a32ea5bd11089428e35c12049c0b",
      "parents": [
        "05ec7dd8dd5aa42c22a49682e4a51cadd4166b7e",
        "89d799d008710e048ee14df4f4e5441e9f4d5d50"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:28:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:28:02 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: fix ast ordering for user locks\n  dlm: cleanup remove unused code\n"
    },
    {
      "commit": "05ec7dd8dd5aa42c22a49682e4a51cadd4166b7e",
      "tree": "6370b43c0d8f324aa7421bbb5a647aa04ab5d747",
      "parents": [
        "c316ba3b518bc35ce5aef5421135220389f4eb98",
        "8046112818b70329e930b1d4557ef0876c1ad2bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:25:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:25:43 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (154 commits)\n  mtd: cfi_cmdset_0002: use AMD standard command-set with Winbond flash chips\n  mtd: cfi_cmdset_0002: Fix MODULE_ALIAS and linkage for new 0701 commandset ID\n  mtd: mxc_nand: Remove duplicate NAND_CMD_RESET case value\n  mtd: update gfp/slab.h includes\n  jffs2: Stop triggering block erases from jffs2_write_super()\n  jffs2: Rename jffs2_erase_pending_trigger() to jffs2_dirty_trigger()\n  jffs2: Use jffs2_garbage_collect_trigger() to trigger pending erases\n  jffs2: Require jffs2_garbage_collect_trigger() to be called with lock held\n  jffs2: Wake GC thread when there are blocks to be erased\n  jffs2: Erase pending blocks in GC pass, avoid invalid -EIO return\n  jffs2: Add \u0027work_done\u0027 return value from jffs2_erase_pending_blocks()\n  mtd: mtdchar: Do not corrupt backing device of device node inode\n  mtd/maps/pcmciamtd: Fix printk format for ssize_t in debug messages\n  drivers/mtd: Use kmemdup\n  mtd: cfi_cmdset_0002: Fix argument order in bootloc warning\n  mtd: nand: add Toshiba TC58NVG0 device ID\n  pcmciamtd: add another ID\n  pcmciamtd: coding style cleanups\n  pcmciamtd: fixing obvious errors\n  mtd: chips: add SST39WF160x NOR-flashes\n  ...\n\nTrivial conflicts due to dev_node removal in drivers/mtd/maps/pcmciamtd.c\n"
    },
    {
      "commit": "777cb1b53dd11dbec6157adc97e9f908f6e8458c",
      "tree": "a7fd28bcbb9196dba327cf56dfceb3b057360a00",
      "parents": [
        "277a4ed1df42134f66503db837e40f0b583ec63d",
        "2fde99cb55fb9d9b88180512a5e8a5d939d27fec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:22:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:22:42 2010 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: mark VFS SB RO too\n"
    },
    {
      "commit": "277a4ed1df42134f66503db837e40f0b583ec63d",
      "tree": "9f3107c51fa9d45ff35f8bc5f68306440b0b2948",
      "parents": [
        "03e62303cf56e87337115f14842321043df2b4bb",
        "e9cee8e6549b669080e9a7d02b8387086a5c911d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:22:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:22:11 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs: (54 commits)\n  xfs: mark xfs_iomap_write_ helpers static\n  xfs: clean up end index calculation in xfs_page_state_convert\n  xfs: clean up mapping size calculation in __xfs_get_blocks\n  xfs: clean up xfs_iomap_valid\n  xfs: move I/O type flags into xfs_aops.c\n  xfs: kill struct xfs_iomap\n  xfs: report iomap_bn in block base\n  xfs: report iomap_offset and iomap_bsize in block base\n  xfs: remove iomap_delta\n  xfs: remove iomap_target\n  xfs: limit xfs_imap_to_bmap to a single mapping\n  xfs: simplify buffer to transaction matching\n  xfs: Make fiemap work in query mode.\n  xfs: kill off l_sectbb_mask\n  xfs: record log sector size rather than log2(that)\n  xfs: remove dead XFS_LOUD_RECOVERY code\n  xfs: removed unused XFS_QMOPT_ flags\n  xfs: remove a few macro indirections in the quota code\n  xfs: access quotainfo structure directly\n  xfs: wait for direct I/O to complete in fsync and write_inode\n  ...\n"
    },
    {
      "commit": "03e62303cf56e87337115f14842321043df2b4bb",
      "tree": "3024495955beccddbae347d99613bcdd33801ee4",
      "parents": [
        "33cf23b0a535475aead57707cb9f4fe135a93544",
        "18d3a98f3c1b0e27ce026afa4d1ef042f2903726"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:20:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:20:17 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (47 commits)\n  ocfs2: Silence a gcc warning.\n  ocfs2: Don\u0027t retry xattr set in case value extension fails.\n  ocfs2:dlm: avoid dlm-\u003east_lock lockres-\u003espinlock dependency break\n  ocfs2: Reset xattr value size after xa_cleanup_value_truncate().\n  fs/ocfs2/dlm: Use kstrdup\n  fs/ocfs2/dlm: Drop memory allocation cast\n  Ocfs2: Optimize punching-hole code.\n  Ocfs2: Make ocfs2_find_cpos_for_left_leaf() public.\n  Ocfs2: Fix hole punching to correctly do CoW during cluster zeroing.\n  Ocfs2: Optimize ocfs2 truncate to use ocfs2_remove_btree_range() instead.\n  ocfs2: Block signals for mkdir/link/symlink/O_CREAT.\n  ocfs2: Wrap signal blocking in void functions.\n  ocfs2/dlm: Increase o2dlm lockres hash size\n  ocfs2: Make ocfs2_extend_trans() really extend.\n  ocfs2/trivial: Code cleanup for allocation reservation.\n  ocfs2: make ocfs2_adjust_resv_from_alloc simple.\n  ocfs2: Make nointr a default mount option\n  ocfs2/dlm: Make o2dlm domain join/leave messages KERN_NOTICE\n  o2net: log socket state changes\n  ocfs2: print node # when tcp fails\n  ...\n"
    },
    {
      "commit": "7a9b149212f3716c598afe973b6261fd58453b7a",
      "tree": "477716d84c71da124448b72278e98da28aadbd3d",
      "parents": [
        "3d62e3fdce8ef265a3706c52ae1ca6ab84e30f0e",
        "e26bcf37234c67624f62d9fc95f922b8dbda1363"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:26:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:26:12 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (229 commits)\n  USB: remove unused usb_buffer_alloc and usb_buffer_free macros\n  usb: musb: update gfp/slab.h includes\n  USB: ftdi_sio: fix legacy SIO-device header\n  USB: kl5usb105: reimplement using generic framework\n  USB: kl5usb105: minor clean ups\n  USB: kl5usb105: fix memory leak\n  USB: io_ti: use kfifo to implement write buffering\n  USB: io_ti: remove unsused private counter\n  USB: ti_usb: use kfifo to implement write buffering\n  USB: ir-usb: fix incorrect write-buffer length\n  USB: aircable: fix incorrect write-buffer length\n  USB: safe_serial: straighten out read processing\n  USB: safe_serial: reimplement read using generic framework\n  USB: safe_serial: reimplement write using generic framework\n  usb-storage: always print quirks\n  USB: usb-storage: trivial debug improvements\n  USB: oti6858: use port write fifo\n  USB: oti6858: use kfifo to implement write buffering\n  USB: cypress_m8: use kfifo to implement write buffering\n  USB: cypress_m8: remove unused drain define\n  ...\n\nFix up conflicts (due to usb_buffer_alloc/free renaming) in\n\tdrivers/input/tablet/acecad.c\n\tdrivers/input/tablet/kbtab.c\n\tdrivers/input/tablet/wacom_sys.c\n\tdrivers/media/video/gspca/gspca.c\n\tsound/usb/usbaudio.c\n"
    },
    {
      "commit": "f8965467f366fd18f01feafb5db10512d7b4422c",
      "tree": "3706a9cd779859271ca61b85c63a1bc3f82d626e",
      "parents": [
        "a26272e5200765691e67d6780e52b32498fdb659",
        "2ec8c6bb5d8f3a62a79f463525054bae1e3d4487"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 21:04:44 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1674 commits)\n  qlcnic: adding co maintainer\n  ixgbe: add support for active DA cables\n  ixgbe: dcb, do not tag tc_prio_control frames\n  ixgbe: fix ixgbe_tx_is_paused logic\n  ixgbe: always enable vlan strip/insert when DCB is enabled\n  ixgbe: remove some redundant code in setting FCoE FIP filter\n  ixgbe: fix wrong offset to fc_frame_header in ixgbe_fcoe_ddp\n  ixgbe: fix header len when unsplit packet overflows to data buffer\n  ipv6: Never schedule DAD timer on dead address\n  ipv6: Use POSTDAD state\n  ipv6: Use state_lock to protect ifa state\n  ipv6: Replace inet6_ifaddr-\u003edead with state\n  cxgb4: notify upper drivers if the device is already up when they load\n  cxgb4: keep interrupts available when the ports are brought down\n  cxgb4: fix initial addition of MAC address\n  cnic: Return SPQ credit to bnx2x after ring setup and shutdown.\n  cnic: Convert cnic_local_flags to atomic ops.\n  can: Fix SJA1000 command register writes on SMP systems\n  bridge: fix build for CONFIG_SYSFS disabled\n  ARCNET: Limit com20020 PCI ID matches for SOHARD cards\n  ...\n\nFix up various conflicts with pcmcia tree drivers/net/\n{pcmcia/3c589_cs.c, wireless/orinoco/orinoco_cs.c and\nwireless/orinoco/spectrum_cs.c} and feature removal\n(Documentation/feature-removal-schedule.txt).\n\nAlso fix a non-content conflict due to pm_qos_requirement getting\nrenamed in the PM tree (now pm_qos_request) in net/mac80211/scan.c\n"
    },
    {
      "commit": "8120a8aadb2059e29982561658bc6675126f8105",
      "tree": "1e05b58df0397b76c7ad1543d2af21e746e44369",
      "parents": [
        "22c43c81a51e05f61e90445ceb59d486c12fd921"
      ],
      "author": {
        "name": "Michal Nazarewicz",
        "email": "m.nazarewicz@samsung.com",
        "time": "Wed May 05 12:53:12 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu May 20 13:21:42 2010 -0700"
      },
      "message": "fs/timerfd.c: make use of wait_event_interruptible_locked_irq()\n\nThis patch modifies the fs/timerfd.c to use the newly created\nwait_event_interruptible_locked_irq() macro.  This replaces an open\ncode implementation with a single macro call.\n\nSigned-off-by: Michal Nazarewicz \u003cm.nazarewicz@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "46ee9645094ad1eb5b4888882ecaa1fb87dcd2a3",
      "tree": "d0a48e993568b6a2415cfc21fc06eaa2fd886429",
      "parents": [
        "fa5312d9e87e7222c6c384c4e930dc149bc1178d",
        "25f3a5a2854dce8b8413fd24cc9d5b9e3632be54"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:03:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:03:55 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PM: PM QOS update fix\n  Freezer / cgroup freezer: Update stale locking comments\n  PM / platform_bus: Allow runtime PM by default\n  i2c: Fix bus-level power management callbacks\n  PM QOS update\n  PM / Hibernate: Fix block_io.c printk warning\n  PM / Hibernate: Group swap ops\n  PM / Hibernate: Move the first_sector out of swsusp_write\n  PM / Hibernate: Separate block_io\n  PM / Hibernate: Snapshot cleanup\n  FS / libfs: Implement simple_write_to_buffer\n  PM / Hibernate: document open(/dev/snapshot) side effects\n  PM / Runtime: Add sysfs debug files\n  PM: Improve device power management document\n  PM: Update device power management document\n  PM: Allow runtime_suspend methods to call pm_schedule_suspend()\n  PM: pm_wakeup - switch to using bool\n"
    }
  ],
  "next": "96b5b7f4f2d59b37c1fc2fba1ae25999accd6dcd"
}
