)]}'
{
  "log": [
    {
      "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": "18e41da89d55014d25b9a24502ee92b7f50599f9",
      "tree": "5ce8ebd7456f377e4cfbff0ae83e84295617a4a8",
      "parents": [
        "43aa7ac736a4e21aae4882bd8f7c67403aed45b8",
        "5dc6416414fb3ec6e2825fd4d20c8bf1d7fe0395"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 15 12:55:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 15 12:55:31 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: check for read permission on src file in the clone ioctl\n"
    },
    {
      "commit": "5dc6416414fb3ec6e2825fd4d20c8bf1d7fe0395",
      "tree": "e15101a2d1302ff6f2830f282197b34060ec963c",
      "parents": [
        "9f680ce04ea19dabbbafe01b57b61930a9b70741"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "dan.j.rosenberg@gmail.com",
        "time": "Sat May 15 11:27:37 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat May 15 12:05:50 2010 -0400"
      },
      "message": "Btrfs: check for read permission on src file in the clone ioctl\n\nThe existing code would have allowed you to clone a file that was\nonly open for writing\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3f8bf8f0fd79410fbcbf9dd9910dbc9d4882c94f",
      "tree": "86792764365ca7b40a21e5eb8fc4f7b355088535",
      "parents": [
        "c28f3f8660697d03afbdb581781b94ff6222a585",
        "684bdc7ff95e0c1d4b0bcf236491840b55a54189"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 15 09:03:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 15 09:03:15 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  JFS: Free sbi memory in error path\n  fs/sysv: dereferencing ERR_PTR()\n  Fix double-free in logfs\n  Fix the regression created by \"set S_DEAD on unlink()...\" commit\n"
    },
    {
      "commit": "684bdc7ff95e0c1d4b0bcf236491840b55a54189",
      "tree": "10eada69ce686f903fbf01d2e40311371d5b98e5",
      "parents": [
        "404e781249f003a37a140756fc4aeae463dcb217"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Mon Apr 12 16:44:08 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 07:16:34 2010 -0400"
      },
      "message": "JFS: Free sbi memory in error path\n\nI spotted the missing kfree() while removing the BKL.\n\n[akpm@linux-foundation.org: avoid multiple returns so it doesn\u0027t happen again]\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "404e781249f003a37a140756fc4aeae463dcb217",
      "tree": "5eb0f81657ebecdd747583df54a261a4e305df3f",
      "parents": [
        "265624495f5acf6077f8f8d264f8170573d8d752"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Apr 21 12:30:32 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 07:16:33 2010 -0400"
      },
      "message": "fs/sysv: dereferencing ERR_PTR()\n\nI moved the dir_put_page() inside the if condition so we don\u0027t dereference\n\"page\", if it\u0027s an ERR_PTR().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "265624495f5acf6077f8f8d264f8170573d8d752",
      "tree": "76e1b8cce3ac0116ade7df91c0d64471cf7cc03d",
      "parents": [
        "d83c49f3e36cecd2e8823b6c48ffba083b8a5704"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 28 20:57:02 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 07:16:33 2010 -0400"
      },
      "message": "Fix double-free in logfs\n\niput() is needed *until* we\u0027d done successful d_alloc_root()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d83c49f3e36cecd2e8823b6c48ffba083b8a5704",
      "tree": "a304de4eb43652d2a9528d4b43f798ab821c8b93",
      "parents": [
        "6a251b0ab67989f468f4cb65179e0cf40cf8c295"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 30 17:17:09 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 15 07:16:33 2010 -0400"
      },
      "message": "Fix the regression created by \"set S_DEAD on unlink()...\" commit\n\n1) i_flags simply doesn\u0027t work for mount/unlink race prevention;\nwe may have many links to file and rm on one of those obviously\nshouldn\u0027t prevent bind on top of another later on.  To fix it\nright way we need to mark _dentry_ as unsuitable for mounting\nupon; new flag (DCACHE_CANT_MOUNT) is protected by d_flags and\ni_mutex on the inode in question.  Set it (with dont_mount(dentry))\nin unlink/rmdir/etc., check (with cant_mount(dentry)) in places\nin namespace.c that used to check for S_DEAD.  Setting S_DEAD\nis still needed in places where we used to set it (for directories\ngetting killed), since we rely on it for readdir/rmdir race\nprevention.\n\n2) rename()/mount() protection has another bogosity - we unhash\nthe target before we\u0027d checked that it\u0027s not a mountpoint.  Fixed.\n\n3) ancient bogosity in pivot_root() - we locked i_mutex on the\nright directory, but checked S_DEAD on the different (and wrong)\none.  Noticed and fixed.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4fc4c3ce0dc1096cbd0daa3fe8f6905cbec2b87e",
      "tree": "40a48fe2eabbab01133047ee5055ab8f853deac4",
      "parents": [
        "97b2073ff04814a7f2fef5fe0e82bb008cad7d8e",
        "b3b38d842fa367d862b83e7670af4e0fd6a80fc0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 14 11:49:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 14 11:49:42 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify:\n  inotify: don\u0027t leak user struct on inotify release\n  inotify: race use after free/double free in inotify inode marks\n  inotify: clean up the inotify_add_watch out path\n  Inotify: undefined reference to `anon_inode_getfd\u0027\n\nManual merge to remove duplicate \"select ANON_INODES\" from Kconfig file\n"
    },
    {
      "commit": "b3b38d842fa367d862b83e7670af4e0fd6a80fc0",
      "tree": "db803231178ae41f21240017a3119dea3a4d3589",
      "parents": [
        "e08733446e72b983fed850fc5d8bd21b386feb29"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed May 12 15:34:07 2010 -0700"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri May 14 11:53:36 2010 -0400"
      },
      "message": "inotify: don\u0027t leak user struct on inotify release\n\ninotify_new_group() receives a get_uid-ed user_struct and saves the\nreference on group-\u003einotify_data.user.  The problem is that free_uid() is\nnever called on it.\n\nIssue seem to be introduced by 63c882a0 (inotify: reimplement inotify\nusing fsnotify) after 2.6.30.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nEric Paris \u003ceparis@parisplace.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e08733446e72b983fed850fc5d8bd21b386feb29",
      "tree": "6b169001ff9faa82577341fbfa4cbcd9ccf00663",
      "parents": [
        "3dbc6fb6a3c8a7dc164ae330ab024a3fe65ae53e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue May 11 17:17:40 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri May 14 11:52:57 2010 -0400"
      },
      "message": "inotify: race use after free/double free in inotify inode marks\n\nThere is a race in the inotify add/rm watch code.  A task can find and\nremove a mark which doesn\u0027t have all of it\u0027s references.  This can\nresult in a use after free/double free situation.\n\nTask A\t\t\t\t\tTask B\n------------\t\t\t\t-----------\ninotify_new_watch()\n allocate a mark (refcnt \u003d\u003d 1)\n add it to the idr\n\t\t\t\t\tinotify_rm_watch()\n\t\t\t\t\t inotify_remove_from_idr()\n\t\t\t\t\t  fsnotify_put_mark()\n\t\t\t\t\t      refcnt hits 0, free\n take reference because we are on idr\n [at this point it is a use after free]\n [time goes on]\n refcnt may hit 0 again, double free\n\nThe fix is to take the reference BEFORE the object can be found in the\nidr.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\n"
    },
    {
      "commit": "3dbc6fb6a3c8a7dc164ae330ab024a3fe65ae53e",
      "tree": "b04e140c78e644b18f7aa6ce31d59245dc39f0c0",
      "parents": [
        "e7b702b1a8f2a6961367da903217e669be0f099f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue May 11 17:16:23 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri May 14 11:51:07 2010 -0400"
      },
      "message": "inotify: clean up the inotify_add_watch out path\n\ninotify_add_watch explictly frees the unused inode mark, but it can just\nuse the generic code.  Just do that.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "4462dc02842698f173f518c1f5ce79c0fb89395a",
      "tree": "efef7ddcacfd5e119f2ff98e7eb970862d392b6d",
      "parents": [
        "002baeecf53677d2034113e34197ec221f42e037",
        "3d69438031b00c601c991ab447cafb7d5c3c59a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 13 10:36:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 13 10:36:16 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: guard against hardlinking directories\n"
    },
    {
      "commit": "002baeecf53677d2034113e34197ec221f42e037",
      "tree": "081c54c4a9a266a894a00165e97dabfb212a2470",
      "parents": [
        "fc8e38f142dd59f81306ff6a81c1351e9eb0e014"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 12:52:57 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 13 08:46:04 2010 -0700"
      },
      "message": "vfs: Fix O_NOFOLLOW behavior for paths with trailing slashes\n\nAccording to specification\n\n\tmkdir d; ln -s d a; open(\"a/\", O_NOFOLLOW | O_RDONLY)\n\nshould return success but currently it returns ELOOP.  This is a\nregression caused by path lookup cleanup patch series.\n\nFix the code to ignore O_NOFOLLOW in case the provided path has trailing\nslashes.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-by: Marius Tolzmann \u003ctolzmann@molgen.mpg.de\u003e\nAcked-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdf5f61ed1d64d50eb9cf10071ab40836f5f9f91",
      "tree": "d67166525b89055b44ecf52cd9ae395a676877f5",
      "parents": [
        "769d9968e42c995eaaf61ac5583d998f32e0769a",
        "e84346b726ea90a8ed470bc81c4136a7b8710ea5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 12 18:47:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 12 18:47:29 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: preserve seq # on requeued messages after transient transport errors\n  ceph: fix cap removal races\n  ceph: zero unused message header, footer fields\n  ceph: fix locking for waking session requests after reconnect\n  ceph: resubmit requests on pg mapping change (not just primary change)\n  ceph: fix open file counting on snapped inodes when mds returns no caps\n  ceph: unregister osd request on failure\n  ceph: don\u0027t use writeback_control in writepages completion\n  ceph: unregister bdi before kill_anon_super releases device name\n"
    },
    {
      "commit": "7ac512aa8237c43331ffaf77a4fd8b8d684819ba",
      "tree": "0fe199f0364c5b54012691c9e4ff4a11767d1797",
      "parents": [
        "91af70814105f4c05e6e11b51c3269907b71794b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed May 12 15:34:03 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 12 18:23:58 2010 -0700"
      },
      "message": "CacheFiles: Fix error handling in cachefiles_determine_cache_security()\n\ncachefiles_determine_cache_security() is expected to return with a\nsecurity override in place.  However, if set_create_files_as() fails, we\nfail to do this.  In this case, we should just reinstate the security\noverride that was set by the caller.\n\nFurthermore, if set_create_files_as() fails, we should dispose of the\nnew credentials we were in the process of creating.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7b702b1a8f2a6961367da903217e669be0f099f",
      "tree": "bd2a49f1fec1035256fe90e120fe878fdfa2ac12",
      "parents": [
        "cea0d767c29669bf89f86e4aee46ef462d2ebae8"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@arm.linux.org.uk",
        "time": "Sun Apr 18 21:25:11 2010 +0100"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Wed May 12 11:03:40 2010 -0400"
      },
      "message": "Inotify: undefined reference to `anon_inode_getfd\u0027\n\nFix:\n\nfs/built-in.o: In function `sys_inotify_init1\u0027:\nsummary.c:(.text+0x347a4): undefined reference to `anon_inode_getfd\u0027\n\nfound by kautobuild with arms bcmring_defconfig, which ends up with\nINOTIFY_USER enabled (through the \u0027default y\u0027) but leaves ANON_INODES\nunset.  However, inotify_user.c uses anon_inode_getfd().\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e84346b726ea90a8ed470bc81c4136a7b8710ea5",
      "tree": "99a90ef86d38a51e39ed69af318e6cfe32023879",
      "parents": [
        "f818a73674c5d197f66b636a46d7d578d7258129"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 21:20:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 21:20:38 2010 -0700"
      },
      "message": "ceph: preserve seq # on requeued messages after transient transport errors\n\nIf the tcp connection drops and we reconnect to reestablish a stateful\nsession (with the mds), we need to resend previously sent (and possibly\nreceived) messages with the _same_ seq # so that they can be dropped on\nthe other end if needed.  Only assign a new seq once after the message is\nqueued.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f818a73674c5d197f66b636a46d7d578d7258129",
      "tree": "90c485b5ca0a211b84ad8feddfce4f301de3d5c9",
      "parents": [
        "45c6ceb547ad2d98215351974a4686bf8cb13e14"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 20:56:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 20:56:31 2010 -0700"
      },
      "message": "ceph: fix cap removal races\n\nThe iterate_session_caps helper traverses the session caps list and tries\nto grab an inode reference.  However, the __ceph_remove_cap was clearing\nthe inode backpointer _before_ removing itself from the session list,\ncausing a null pointer dereference.\n\nClear cap-\u003eci under protection of s_cap_lock to avoid the race, and to\ntightly couple the list and backpointer state.  Use a local flag to\nindicate whether we are releasing the cap, as cap-\u003esession may be modified\nby a racing thread in iterate_session_caps.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "34441427aab4bdb3069a4ffcda69a99357abcb2e",
      "tree": "3beebde910f25b0945e9105017fd743c9e5241a5",
      "parents": [
        "3c904afd7358e9ef515eb5df36b6f25c2b7fc2da"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Tue May 11 14:06:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 11 17:33:41 2010 -0700"
      },
      "message": "revert \"procfs: provide stack information for threads\" and its fixup commits\n\nOriginally, commit d899bf7b (\"procfs: provide stack information for\nthreads\") attempted to introduce a new feature for showing where the\nthreadstack was located and how many pages are being utilized by the\nstack.\n\nCommit c44972f1 (\"procfs: disable per-task stack usage on NOMMU\") was\napplied to fix the NO_MMU case.\n\nCommit 89240ba0 (\"x86, fs: Fix x86 procfs stack information for threads on\n64-bit\") was applied to fix a bug in ia32 executables being loaded.\n\nCommit 9ebd4eba7 (\"procfs: fix /proc/\u003cpid\u003e/stat stack pointer for kernel\nthreads\") was applied to fix a bug which had kernel threads printing a\nuserland stack address.\n\nCommit 1306d603f (\u0027proc: partially revert \"procfs: provide stack\ninformation for threads\"\u0027) was then applied to revert the stack pages\nbeing used to solve a significant performance regression.\n\nThis patch nearly undoes the effect of all these patches.\n\nThe reason for reverting these is it provides an unusable value in\nfield 28.  For x86_64, a fork will result in the task-\u003estack_start\nvalue being updated to the current user top of stack and not the stack\nstart address.  This unpredictability of the stack_start value makes\nit worthless.  That includes the intended use of showing how much stack\nspace a thread has.\n\nOther architectures will get different values.  As an example, ia64\ngets 0.  The do_fork() and copy_process() functions appear to treat the\nstack_start and stack_size parameters as architecture specific.\n\nI only partially reverted c44972f1 (\"procfs: disable per-task stack usage\non NOMMU\") .  If I had completely reverted it, I would have had to change\nmm/Makefile only build pagewalk.o when CONFIG_PROC_PAGE_MONITOR is\nconfigured.  Since I could not test the builds without significant effort,\nI decided to not change mm/Makefile.\n\nI only partially reverted 89240ba0 (\"x86, fs: Fix x86 procfs stack\ninformation for threads on 64-bit\") .  I left the KSTK_ESP() change in\nplace as that seemed worthwhile.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45c6ceb547ad2d98215351974a4686bf8cb13e14",
      "tree": "f7d5dc6b7900faebef1a29a5e0af5ac263a64337",
      "parents": [
        "9abf82b8bc93dd904738a71ca69aa5df356d4d24"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 15:01:51 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 15:17:40 2010 -0700"
      },
      "message": "ceph: zero unused message header, footer fields\n\nWe shouldn\u0027t leak any prior memory contents to other parties.  And random\ndata, particularly in the \u0027version\u0027 field, can cause problems down the\nline.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3d69438031b00c601c991ab447cafb7d5c3c59a6",
      "tree": "f40d66a255c4169b43079252a4c96868c097ddab",
      "parents": [
        "05ce7bfe547c9fa967d9cab6c37867a9cb6fb3fa"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue May 11 14:59:55 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue May 11 20:57:50 2010 +0000"
      },
      "message": "cifs: guard against hardlinking directories\n\nWhen we made serverino the default, we trusted that the field sent by the\nserver in the \"uniqueid\" field was actually unique. It turns out that it\nisn\u0027t reliably so.\n\nSamba, in particular, will just put the st_ino in the uniqueid field when\nunix extensions are enabled. When a share spans multiple filesystems, it\u0027s\nquite possible that there will be collisions. This is a server bug, but\nwhen the inodes in question are a directory (as is often the case) and\nthere is a collision with the root inode of the mount, the result is a\nkernel panic on umount.\n\nFix this by checking explicitly for directory inodes with the same\nuniqueid. If that is the case, then we can assume that using server inode\nnumbers will be a problem and that they should be disabled.\n\nFixes Samba bugzilla 7407\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: Stable \u003cstable@kernel.org\u003e\nReviewed-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c61ea31dac0319ec64b33725917bda81fc293a25",
      "tree": "05a4f3011ea8b334795aae606d89bcf27e3e26c5",
      "parents": [
        "7d6fb7bd1919517937ec390f6ca2d7bcf4f89fb6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue May 11 16:51:39 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 11 10:07:53 2010 -0700"
      },
      "message": "CacheFiles: Fix occasional EIO on call to vfs_unlink()\n\nFix an occasional EIO returned by a call to vfs_unlink():\n\n\t[ 4868.465413] CacheFiles: I/O Error: Unlink failed\n\t[ 4868.465444] FS-Cache: Cache cachefiles stopped due to I/O error\n\t[ 4947.320011] CacheFiles: File cache on md3 unregistering\n\t[ 4947.320041] FS-Cache: Withdrawing cache \"mycache\"\n\t[ 5127.348683] FS-Cache: Cache \"mycache\" added (type cachefiles)\n\t[ 5127.348716] CacheFiles: File cache on md3 registered\n\t[ 7076.871081] CacheFiles: I/O Error: Unlink failed\n\t[ 7076.871130] FS-Cache: Cache cachefiles stopped due to I/O error\n\t[ 7116.780891] CacheFiles: File cache on md3 unregistering\n\t[ 7116.780937] FS-Cache: Withdrawing cache \"mycache\"\n\t[ 7296.813394] FS-Cache: Cache \"mycache\" added (type cachefiles)\n\t[ 7296.813432] CacheFiles: File cache on md3 registered\n\nWhat happens is this:\n\n (1) A cached NFS file is seen to have become out of date, so NFS retires the\n     object and immediately acquires a new object with the same key.\n\n (2) Retirement of the old object is done asynchronously - so the lookup/create\n     to generate the new object may be done first.\n\n     This can be a problem as the old object and the new object must exist at\n     the same point in the backing filesystem (i.e. they must have the same\n     pathname).\n\n (3) The lookup for the new object sees that a backing file already exists,\n     checks to see whether it is valid and sees that it isn\u0027t.  It then deletes\n     that file and creates a new one on disk.\n\n (4) The retirement phase for the old file is then performed.  It tries to\n     delete the dentry it has, but ext4_unlink() returns -EIO because the inode\n     attached to that dentry no longer matches the inode number associated with\n     the filename in the parent directory.\n\nThe trace below shows this quite well.\n\n\t[md5sum] \u003d\u003d\u003e __fscache_relinquish_cookie(ffff88002d12fb58{NFS.fh,ffff88002ce62100},1)\n\t[md5sum] \u003d\u003d\u003e __fscache_acquire_cookie({NFS.server},{NFS.fh},ffff88002ce62100)\n\nNFS has retired the old cookie and asked for a new one.\n\n\t[kslowd] \u003d\u003d\u003e fscache_object_state_machine({OBJ52,OBJECT_ACTIVE,24})\n\t[kslowd] \u003c\u003d\u003d fscache_object_state_machine() [-\u003eOBJECT_DYING]\n\t[kslowd] \u003d\u003d\u003e fscache_object_state_machine({OBJ53,OBJECT_INIT,0})\n\t[kslowd] \u003c\u003d\u003d fscache_object_state_machine() [-\u003eOBJECT_LOOKING_UP]\n\t[kslowd] \u003d\u003d\u003e fscache_object_state_machine({OBJ52,OBJECT_DYING,24})\n\t[kslowd] \u003c\u003d\u003d fscache_object_state_machine() [-\u003eOBJECT_RECYCLING]\n\nThe old object (OBJ52) is going through the terminal states to get rid of it,\nwhilst the new object - (OBJ53) - is coming into being.\n\n\t[kslowd] \u003d\u003d\u003e fscache_object_state_machine({OBJ53,OBJECT_LOOKING_UP,0})\n\t[kslowd] \u003d\u003d\u003e cachefiles_walk_to_object({ffff88003029d8b8},OBJ53,@68,)\n\t[kslowd] lookup \u0027@68\u0027\n\t[kslowd] next -\u003e ffff88002ce41bd0 positive\n\t[kslowd] advance\n\t[kslowd] lookup \u0027Es0g00og0_Nd_XCYe3BOzvXrsBLMlN6aw16M1htaA\u0027\n\t[kslowd] next -\u003e ffff8800369faac8 positive\n\nThe new object has looked up the subdir in which the file would be in (getting\ndentry ffff88002ce41bd0) and then looked up the file itself (getting dentry\nffff8800369faac8).\n\n\t[kslowd] validate \u0027Es0g00og0_Nd_XCYe3BOzvXrsBLMlN6aw16M1htaA\u0027\n\t[kslowd] \u003d\u003d\u003e cachefiles_bury_object(,\u0027@68\u0027,\u0027Es0g00og0_Nd_XCYe3BOzvXrsBLMlN6aw16M1htaA\u0027)\n\t[kslowd] remove ffff8800369faac8 from ffff88002ce41bd0\n\t[kslowd] unlink stale object\n\t[kslowd] \u003c\u003d\u003d cachefiles_bury_object() \u003d 0\n\nIt then checks the file\u0027s xattrs to see if it\u0027s valid.  NFS says that the\nauxiliary data indicate the file is out of date (obvious to us - that\u0027s why NFS\nditched the old version and got a new one).  CacheFiles then deletes the old\nfile (dentry ffff8800369faac8).\n\n\t[kslowd] redo lookup\n\t[kslowd] lookup \u0027Es0g00og0_Nd_XCYe3BOzvXrsBLMlN6aw16M1htaA\u0027\n\t[kslowd] next -\u003e ffff88002cd94288 negative\n\t[kslowd] create -\u003e ffff88002cd94288{ffff88002cdaf238{ino\u003d148247}}\n\nCacheFiles then redoes the lookup and gets a negative result in a new dentry\n(ffff88002cd94288) which it then creates a file for.\n\n\t[kslowd] \u003d\u003d\u003e cachefiles_mark_object_active(,OBJ53)\n\t[kslowd] \u003c\u003d\u003d cachefiles_mark_object_active() \u003d 0\n\t[kslowd] \u003d\u003d\u003d OBTAINED_OBJECT \u003d\u003d\u003d\n\t[kslowd] \u003c\u003d\u003d cachefiles_walk_to_object() \u003d 0 [148247]\n\t[kslowd] \u003c\u003d\u003d fscache_object_state_machine() [-\u003eOBJECT_AVAILABLE]\n\nThe new object is then marked active and the state machine moves to the\navailable state - at which point NFS can start filling the object.\n\n\t[kslowd] \u003d\u003d\u003e fscache_object_state_machine({OBJ52,OBJECT_RECYCLING,20})\n\t[kslowd] \u003d\u003d\u003e fscache_release_object()\n\t[kslowd] \u003d\u003d\u003e cachefiles_drop_object({OBJ52,2})\n\t[kslowd] \u003d\u003d\u003e cachefiles_delete_object(,OBJ52{ffff8800369faac8})\n\nThe old object, meanwhile, goes on with being retired.  If allocation occurs\nfirst, cachefiles_delete_object() has to wait for dir-\u003ed_inode-\u003ei_mutex to\nbecome available before it can continue.\n\n\t[kslowd] \u003d\u003d\u003e cachefiles_bury_object(,\u0027@68\u0027,\u0027Es0g00og0_Nd_XCYe3BOzvXrsBLMlN6aw16M1htaA\u0027)\n\t[kslowd] remove ffff8800369faac8 from ffff88002ce41bd0\n\t[kslowd] unlink stale object\n\tEXT4-fs warning (device sda6): ext4_unlink: Inode number mismatch in unlink (148247!\u003d148193)\n\tCacheFiles: I/O Error: Unlink failed\n\tFS-Cache: Cache cachefiles stopped due to I/O error\n\nCacheFiles then tries to delete the file for the old object, but the dentry it\nhas (ffff8800369faac8) no longer points to a valid inode for that directory\nentry, and so ext4_unlink() returns -EIO when de-\u003einode does not match i_ino.\n\n\t[kslowd] \u003c\u003d\u003d cachefiles_bury_object() \u003d -5\n\t[kslowd] \u003c\u003d\u003d cachefiles_delete_object() \u003d -5\n\t[kslowd] \u003c\u003d\u003d fscache_object_state_machine() [-\u003eOBJECT_DEAD]\n\t[kslowd] \u003d\u003d\u003e fscache_object_state_machine({OBJ53,OBJECT_AVAILABLE,0})\n\t[kslowd] \u003c\u003d\u003d fscache_object_state_machine() [-\u003eOBJECT_ACTIVE]\n\n(Note that the above trace includes extra information beyond that produced by\nthe upstream code).\n\nThe fix is to note when an object that is being retired has had its object\ndeleted preemptively by a replacement object that is being created, and to\nskip the second removal attempt in such a case.\n\nReported-by: Greg M \u003cgregm@servu.net.au\u003e\nReported-by: Mark Moseley \u003cmoseleymark@gmail.com\u003e\nReported-by: Romain DEGEZ \u003cromain.degez@smartjog.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9abf82b8bc93dd904738a71ca69aa5df356d4d24",
      "tree": "208c5112173832092f93b8d91b8e8ec6f36209aa",
      "parents": [
        "d85b705663905b3dae30007f824355bdcfcf3f00"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 10 21:58:38 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:57 2010 -0700"
      },
      "message": "ceph: fix locking for waking session requests after reconnect\n\nThe session-\u003es_waiting list is protected by mdsc-\u003emutex, not s_mutex.  This\nwas causing (rare) s_waiting list corruption.\n\nFix errors paths too, while we\u0027re here.  A more thorough cleanup of this\nfunction is coming soon.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d85b705663905b3dae30007f824355bdcfcf3f00",
      "tree": "e47262683ed704786be3f0dae62bc4c57bd50ad7",
      "parents": [
        "04d000eb358919043da538f197d63f2a5924a525"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 10 10:24:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:56 2010 -0700"
      },
      "message": "ceph: resubmit requests on pg mapping change (not just primary change)\n\nOSD requests need to be resubmitted on any pg mapping change, not just when\nthe pg primary changes.  Resending only when the primary changes results in\noccasional \u0027hung\u0027 requests during osd cluster recovery or rebalancing.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "04d000eb358919043da538f197d63f2a5924a525",
      "tree": "725f4031c083323b63664f03b4d0d7ce9c183b21",
      "parents": [
        "0ceed5db321ac0f9782e77dda476ebe28a8e2199"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 07 11:26:34 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:55 2010 -0700"
      },
      "message": "ceph: fix open file counting on snapped inodes when mds returns no caps\n\nIt\u0027s possible the MDS will not issue caps on a snapped inode, in which case\nan open request may not __ceph_get_fmode(), botching the open file\ncounting.  (This is actually a server bug, but the client shouldn\u0027t BUG out\nin this case.)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0ceed5db321ac0f9782e77dda476ebe28a8e2199",
      "tree": "356f6a3f2dc26ba04589e9abd603139c62094730",
      "parents": [
        "54ad023ba8108d0163acc931ed4b5e4a8a3a7327"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:18 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 11 09:53:18 2010 -0700"
      },
      "message": "ceph: unregister osd request on failure\n\nThe osd request wasn\u0027t being unregistered when the osd returned a failure\ncode, even though the result was returned to the caller.  This would cause\nit to eventually time out, and then crash the kernel when it tried to\nresend the request using a stale page vector.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "f7422464b57088071201cd94027662d8469f153b",
      "tree": "d6eea687462815fbcbe43aa6b273f672babd5f2e",
      "parents": [
        "b77b907fae863f3bc546a336a8bc5e660d371788"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Mon May 10 16:46:08 2010 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 10 09:48:10 2010 -0700"
      },
      "message": "autofs4-2.6.34-rc1 - fix link_count usage\n\nAfter commit 1f36f774b2 (\"Switch !O_CREAT case to use of do_last()\") in\n2.6.34-rc1 autofs direct mounts stopped working.  This is caused by\ncurrent-\u003elink_count being 0 when -\u003efollow_link() is called from\ndo_filp_open().\n\nI can\u0027t work out why this hasn\u0027t been seen before Als patch series.\n\nThis patch removes the autofs dependence on current-\u003elink_count.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91677467163b847f1a5497789a893ada97f375b6",
      "tree": "2b505e413ad1fd2f5237b968747a87a7e9983695",
      "parents": [
        "4a2253313653bcc4126287818b676f95ac26dc09",
        "17d2c0a0c4d4e074f0a2a5c0090ff6d88f5e1d44"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 07 13:59:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 07 13:59:48 2010 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix RCU issues in the NFSv4 delegation code\n  NFSv4: Fix the locking in nfs_inode_reclaim_delegation()\n"
    },
    {
      "commit": "54ad023ba8108d0163acc931ed4b5e4a8a3a7327",
      "tree": "93edeaba0b8f851c9b5a18c6e42c92b2237480c5",
      "parents": [
        "5dfc589a8467470226feccdc50f1b32713318e7b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 05 21:30:35 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed May 05 21:31:40 2010 -0700"
      },
      "message": "ceph: don\u0027t use writeback_control in writepages completion\n\nThe -\u003ewritepages writeback_control is not still valid in the writepages\ncompletion.  We were touching it solely to adjust pages_skipped when there\nwas a writeback error (EIO, ENOSPC, EPERM due to bad osd credentials),\ncausing an oops in the writeback code shortly thereafter.  Updating\npages_skipped on error isn\u0027t correct anyway, so let\u0027s just rip out this\n(clearly broken) code to pass the wbc to the completion.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7572e56314a7e2568f7196862222b45cfb9d6eda",
      "tree": "345bc292de14b24f28d5367f999bcf7500abedc3",
      "parents": [
        "a66f6375bdeb64d7a56c532bda7c006358845820",
        "d577632e65ea01fb3b124b652d7bd2381251da3c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 04 16:33:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 04 16:33:18 2010 -0700"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2: Avoid a gcc warning in ocfs2_wipe_inode().\n  ocfs2: Avoid direct write if we fall back to buffered I/O\n  ocfs2_dlmfs: Fix math error when reading LVB.\n  ocfs2: Update VFS inode\u0027s id info after reflink.\n  ocfs2: potential ERR_PTR dereference on error paths\n  ocfs2: Add directory entry later in ocfs2_symlink() and ocfs2_mknod()\n  ocfs2: use OCFS2_INODE_SKIP_ORPHAN_DIR in ocfs2_mknod error path\n  ocfs2: use OCFS2_INODE_SKIP_ORPHAN_DIR in ocfs2_symlink error path\n  ocfs2: add OCFS2_INODE_SKIP_ORPHAN_DIR flag and honor it in the inode wipe code\n  ocfs2: Reset status if we want to restart file extension.\n  ocfs2: Compute metaecc for superblocks during online resize.\n  ocfs2: Check the owner of a lockres inside the spinlock\n  ocfs2: one more warning fix in ocfs2_file_aio_write(), v2\n  ocfs2_dlmfs: User DLM_* when decoding file open flags.\n"
    },
    {
      "commit": "5dfc589a8467470226feccdc50f1b32713318e7b",
      "tree": "82998c57555055cf3763e9a4fc757d5de0628c21",
      "parents": [
        "b0930f8d38c6ab76dc8222a5a910a21392d38208"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 04 16:14:46 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 04 16:14:46 2010 -0700"
      },
      "message": "ceph: unregister bdi before kill_anon_super releases device name\n\nUnregister and destroy the bdi in put_super, after mount is r/o, but before\nput_anon_super releases the device name.\n\nFor symmetry, bdi_destroy in destroy_client (we bdi_init in create_client).\n\nOnly set s_bdi if bdi_register succeeds, since we use it to decide whether\nto bdi_unregister.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d577632e65ea01fb3b124b652d7bd2381251da3c",
      "tree": "64a567b77fb5163572375f457ea7eeedecf60f30",
      "parents": [
        "6b933c8e6f1a2f3118082c455eef25f9b1ac7b45"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon May 03 19:15:49 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon May 03 19:15:49 2010 -0700"
      },
      "message": "ocfs2: Avoid a gcc warning in ocfs2_wipe_inode().\n\ngcc warns that a variable is uninitialized.  It\u0027s actually handled, but\nan early return fools gcc.  Let\u0027s just initialize the variable to a\ngarbage value that will crash if the usage is ever broken.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "d93ac51c7a129db7a1431d859a3ef45a0b1f3fc5",
      "tree": "c584c3df3abf2c7624d76f7d711b7db1050aa9c4",
      "parents": [
        "37e27e36bc416b07d853d493e6818d6a785507a2",
        "b0930f8d38c6ab76dc8222a5a910a21392d38208"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 03 16:36:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 03 16:36:19 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: remove bad auth_x kmem_cache\n  ceph: fix lockless caps check\n  ceph: clear dir complete, invalidate dentry on replayed rename\n  ceph: fix direct io truncate offset\n  ceph: discard incoming messages with bad seq #\n  ceph: fix seq counting for skipped messages\n  ceph: add missing #includes\n  ceph: fix leaked spinlock during mds reconnect\n  ceph: print more useful version info on module load\n  ceph: fix snap realm splits\n  ceph: clear dir complete on d_move\n"
    },
    {
      "commit": "b0930f8d38c6ab76dc8222a5a910a21392d38208",
      "tree": "0aad65459eaa8fd5fdf8b621eb9b851e7864ae6e",
      "parents": [
        "7ff899da02cb674211858fcd919f8b4511a4423f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 29 13:26:53 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:25 2010 -0700"
      },
      "message": "ceph: remove bad auth_x kmem_cache\n\nIt\u0027s useless, since our allocations are already a power of 2.  And it was\nallocated per-instance (not globally), which caused a name collision when\nwe tried to mount a second file system with auth_x enabled.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7ff899da02cb674211858fcd919f8b4511a4423f",
      "tree": "a200faf72a5ff982a03287c65809d0c78ef11bfd",
      "parents": [
        "ea1409f96197c1bffe5d7d5bc967b3445edcc1fa"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 23 10:25:33 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:25 2010 -0700"
      },
      "message": "ceph: fix lockless caps check\n\nThe __ variant requires caller to hold i_lock.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ea1409f96197c1bffe5d7d5bc967b3445edcc1fa",
      "tree": "cbbd8ed4cca9bb718a596277f1152f2f1d629c37",
      "parents": [
        "5c6a2cdb4fe8aaf6b54f022c14f13d2a12b45914"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 28 16:12:06 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:25 2010 -0700"
      },
      "message": "ceph: clear dir complete, invalidate dentry on replayed rename\n\nIf a rename operation is resent to the MDS following an MDS restart, the\nclient does not get a full reply (containing the resulting metadata) back.\nIn that case, a ceph_rename() needs to compensate by doing anything useful\nthat fill_inode() would have, like d_move().\n\nIt also needs to invalidate the dentry (to workaround the vfs_rename_dir()\nbug) and clear the dir complete flag, just like fill_trace().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5c6a2cdb4fe8aaf6b54f022c14f13d2a12b45914",
      "tree": "68b777f391b68f91ba8c587ded4f9d9526f9279a",
      "parents": [
        "ae18756b9fa7bb93132cff06cd8575e3d46633f9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 22 13:48:59 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:25 2010 -0700"
      },
      "message": "ceph: fix direct io truncate offset\n\ntruncate_inode_pages_range wants the end offset to align with the last byte\nin a page.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ae18756b9fa7bb93132cff06cd8575e3d46633f9",
      "tree": "e09f5c89b4611e2c53bb50118d8fa8133b58c73b",
      "parents": [
        "684be25c52a1e43638ced160be0b0b46596e7f2b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Apr 22 07:47:01 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:24 2010 -0700"
      },
      "message": "ceph: discard incoming messages with bad seq #\n\nWe can get old message seq #\u0027s after a tcp reconnect for stateful sessions\n(i.e., the MDS).  If we get a higher seq #, that is an error, and we\nshouldn\u0027t see any bad seq #\u0027s for stateless (mon, osd) connections.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "684be25c52a1e43638ced160be0b0b46596e7f2b",
      "tree": "c6cde28f26e12f1ef33990a6d8cb10ab975dddba",
      "parents": [
        "d45d0d970f495e04a4e4f46acd74e90f4a4564f9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Wed Apr 21 20:45:59 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:24 2010 -0700"
      },
      "message": "ceph: fix seq counting for skipped messages\n\nIncrement in_seq even when the message is skipped for some reason.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d45d0d970f495e04a4e4f46acd74e90f4a4564f9",
      "tree": "f5be41231ee8b925c01b3d291f8919b8e451101d",
      "parents": [
        "0b0c06d1476290cea248923c0ee7be9fd61cacea"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 20 15:20:33 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:24 2010 -0700"
      },
      "message": "ceph: add missing #includes\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0b0c06d1476290cea248923c0ee7be9fd61cacea",
      "tree": "557eacf9666cf0c2f989c2ff1955805d5557d07d",
      "parents": [
        "c8f16584ac85444d51d8753c5df502350cfc7bb7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Apr 20 10:27:13 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:23 2010 -0700"
      },
      "message": "ceph: fix leaked spinlock during mds reconnect\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c8f16584ac85444d51d8753c5df502350cfc7bb7",
      "tree": "8fd47c13e4577e10487b3cba001a029ba43aa669",
      "parents": [
        "91dee39eebcfb47085c4d457a584b0e9723b6ca0"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Apr 19 13:50:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:23 2010 -0700"
      },
      "message": "ceph: print more useful version info on module load\n\nDecouple the client version from the server side.  Print relevant protocol\nand map version info instead.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "91dee39eebcfb47085c4d457a584b0e9723b6ca0",
      "tree": "52bdeb4795c3b60b1d23460cada8c813c94fb7a9",
      "parents": [
        "c10f5e12bafde7f7a2f9b75d76f7a68d62154e91"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Apr 19 10:15:44 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:23 2010 -0700"
      },
      "message": "ceph: fix snap realm splits\n\nThe snap realm split was checking i_snap_realm, not the list_head, to\ndetermine if an inode belonged in the new realm.  The check always failed,\nwhich meant we always moved the inode, corrupting the old realm\u0027s list and\ncausing various crashes.\n\nAlso wait to release old realm reference to avoid possibility of use after\nfree.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "c10f5e12bafde7f7a2f9b75d76f7a68d62154e91",
      "tree": "422e4a5898dea5fddaa4b6b73379b9ac4db230b5",
      "parents": [
        "66f41d4c5c8a5deed66fdcc84509376c9a0bf9d8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Apr 16 12:56:11 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 03 10:49:22 2010 -0700"
      },
      "message": "ceph: clear dir complete on d_move\n\nd_move() reorders the d_subdirs list, breaking the readdir result caching.\nUnless/until d_move preserves that ordering, clear CEPH_I_COMPLETE on\nrename.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "973bec34bfc1bc2465646181653d67f767d418c8",
      "tree": "05c84524a1c1fb273e399a9eb99c099e84499182",
      "parents": [
        "54413b825ca502b9384edabf972c512c29d64010"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 03 21:00:48 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 03 07:36:01 2010 -0700"
      },
      "message": "nilfs2: fix sync silent failure\n\nAs of 32a88aa1, __sync_filesystem() will return 0 if s_bdi is not set.\nAnd nilfs does not set s_bdi anywhere.  I noticed this problem by the\nwarning introduced by the recent commit 5129a469 (\"Catch filesystem\nlacking s_bdi\").\n\n WARNING: at fs/super.c:959 vfs_kern_mount+0xc5/0x14e()\n Hardware name: PowerEdge 2850\n Modules linked in: nilfs2 loop tpm_tis tpm tpm_bios video shpchp pci_hotplug output dcdbas\n Pid: 3773, comm: mount.nilfs2 Not tainted 2.6.34-rc6-debug #38\n Call Trace:\n  [\u003cc1028422\u003e] warn_slowpath_common+0x60/0x90\n  [\u003cc102845f\u003e] warn_slowpath_null+0xd/0x10\n  [\u003cc1095936\u003e] vfs_kern_mount+0xc5/0x14e\n  [\u003cc1095a03\u003e] do_kern_mount+0x32/0xbd\n  [\u003cc10a811e\u003e] do_mount+0x671/0x6d0\n  [\u003cc1073794\u003e] ? __get_free_pages+0x1f/0x21\n  [\u003cc10a684f\u003e] ? copy_mount_options+0x2b/0xe2\n  [\u003cc107b634\u003e] ? strndup_user+0x48/0x67\n  [\u003cc10a81de\u003e] sys_mount+0x61/0x8f\n  [\u003cc100280c\u003e] sysenter_do_call+0x12/0x32\n\nThis ensures to set s_bdi for nilfs and fixes the sync silent failure.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17d2c0a0c4d4e074f0a2a5c0090ff6d88f5e1d44",
      "tree": "f658bdd3a88849f76dcbab16129321eacd604a5d",
      "parents": [
        "8f649c376254755f2261a693b3d48d09126218dc"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat May 01 12:37:18 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 01 12:37:18 2010 -0400"
      },
      "message": "NFS: Fix RCU issues in the NFSv4 delegation code\n\nFix a number of RCU issues in the NFSv4 delegation code.\n\n (1) delegation-\u003ecred doesn\u0027t need to be RCU protected as it\u0027s essentially an\n     invariant refcounted structure.\n\n     By the time we get to nfs_free_delegation(), the delegation is being\n     released, so no one else should be attempting to use the saved\n     credentials, and they can be cleared.\n\n     However, since the list of delegations could still be under traversal at\n     this point by such as nfs_client_return_marked_delegations(), the cred\n     should be released in nfs_do_free_delegation() rather than in\n     nfs_free_delegation().  Simply using rcu_assign_pointer() to clear it is\n     insufficient as that doesn\u0027t stop the cred from being destroyed, and nor\n     does calling put_rpccred() after call_rcu(), given that the latter is\n     asynchronous.\n\n (2) nfs_detach_delegation_locked() and nfs_inode_set_delegation() should use\n     rcu_derefence_protected() because they can only be called if\n     nfs_client::cl_lock is held, and that guards against anyone changing\n     nfsi-\u003edelegation under it.  Furthermore, the barrier imposed by\n     rcu_dereference() is superfluous, given that the spin_lock() is also a\n     barrier.\n\n (3) nfs_detach_delegation_locked() is now passed a pointer to the nfs_client\n     struct so that it can issue lockdep advice based on clp-\u003ecl_lock for (2).\n\n (4) nfs_inode_return_delegation_noreclaim() and nfs_inode_return_delegation()\n     should use rcu_access_pointer() outside the spinlocked region as they\n     merely examine the pointer and don\u0027t follow it, thus rendering unnecessary\n     the need to impose a partial ordering over the one item of interest.\n\n     These result in an RCU warning like the following:\n\n[ INFO: suspicious rcu_dereference_check() usage. ]\n---------------------------------------------------\nfs/nfs/delegation.c:332 invoked rcu_dereference_check() without protection!\n\nother info that might help us debug this:\n\nrcu_scheduler_active \u003d 1, debug_locks \u003d 0\n2 locks held by mount.nfs4/2281:\n #0:  (\u0026type-\u003es_umount_key#34){+.+...}, at: [\u003cffffffff810b25b4\u003e] deactivate_super+0x60/0x80\n #1:  (iprune_sem){+.+...}, at: [\u003cffffffff810c332a\u003e] invalidate_inodes+0x39/0x13a\n\nstack backtrace:\nPid: 2281, comm: mount.nfs4 Not tainted 2.6.34-rc1-cachefs #110\nCall Trace:\n [\u003cffffffff8105149f\u003e] lockdep_rcu_dereference+0xaa/0xb2\n [\u003cffffffffa00b4591\u003e] nfs_inode_return_delegation_noreclaim+0x5b/0xa0 [nfs]\n [\u003cffffffffa0095d63\u003e] nfs4_clear_inode+0x11/0x1e [nfs]\n [\u003cffffffff810c2d92\u003e] clear_inode+0x9e/0xf8\n [\u003cffffffff810c3028\u003e] dispose_list+0x67/0x10e\n [\u003cffffffff810c340d\u003e] invalidate_inodes+0x11c/0x13a\n [\u003cffffffff810b1dc1\u003e] generic_shutdown_super+0x42/0xf4\n [\u003cffffffff810b1ebe\u003e] kill_anon_super+0x11/0x4f\n [\u003cffffffffa009893c\u003e] nfs4_kill_super+0x3f/0x72 [nfs]\n [\u003cffffffff810b25bc\u003e] deactivate_super+0x68/0x80\n [\u003cffffffff810c6744\u003e] mntput_no_expire+0xbb/0xf8\n [\u003cffffffff810c681b\u003e] release_mounts+0x9a/0xb0\n [\u003cffffffff810c689b\u003e] put_mnt_ns+0x6a/0x79\n [\u003cffffffffa00983a1\u003e] nfs_follow_remote_path+0x5a/0x146 [nfs]\n [\u003cffffffffa0098334\u003e] ? nfs_do_root_mount+0x82/0x95 [nfs]\n [\u003cffffffffa00985a9\u003e] nfs4_try_mount+0x75/0xaf [nfs]\n [\u003cffffffffa0098874\u003e] nfs4_get_sb+0x291/0x31a [nfs]\n [\u003cffffffff810b2059\u003e] vfs_kern_mount+0xb8/0x177\n [\u003cffffffff810b2176\u003e] do_kern_mount+0x48/0xe8\n [\u003cffffffff810c810b\u003e] do_mount+0x782/0x7f9\n [\u003cffffffff810c8205\u003e] sys_mount+0x83/0xbe\n [\u003cffffffff81001eeb\u003e] system_call_fastpath+0x16/0x1b\n\nAlso on:\n\nfs/nfs/delegation.c:215 invoked rcu_dereference_check() without protection!\n [\u003cffffffff8105149f\u003e] lockdep_rcu_dereference+0xaa/0xb2\n [\u003cffffffffa00b4223\u003e] nfs_inode_set_delegation+0xfe/0x219 [nfs]\n [\u003cffffffffa00a9c6f\u003e] nfs4_opendata_to_nfs4_state+0x2c2/0x30d [nfs]\n [\u003cffffffffa00aa15d\u003e] nfs4_do_open+0x2a6/0x3a6 [nfs]\n ...\n\nAnd:\n\nfs/nfs/delegation.c:40 invoked rcu_dereference_check() without protection!\n [\u003cffffffff8105149f\u003e] lockdep_rcu_dereference+0xaa/0xb2\n [\u003cffffffffa00b3bef\u003e] nfs_free_delegation+0x3d/0x6e [nfs]\n [\u003cffffffffa00b3e71\u003e] nfs_do_return_delegation+0x26/0x30 [nfs]\n [\u003cffffffffa00b406a\u003e] __nfs_inode_return_delegation+0x1ef/0x1fe [nfs]\n [\u003cffffffffa00b448a\u003e] nfs_client_return_marked_delegations+0xc9/0x124 [nfs]\n ...\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8f649c376254755f2261a693b3d48d09126218dc",
      "tree": "818338eca6dea5c7e022a3a6df51c3b2aa9e54b7",
      "parents": [
        "be1066bbcd443a65df312fdecea7e4959adedb45"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 01 12:36:18 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat May 01 12:36:18 2010 -0400"
      },
      "message": "NFSv4: Fix the locking in nfs_inode_reclaim_delegation()\n\nEnsure that we correctly rcu-dereference the delegation itself, and that we\nprotect against removal while we\u0027re changing the contents.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6b933c8e6f1a2f3118082c455eef25f9b1ac7b45",
      "tree": "bf31f4067a95aa23a354edfa89810c9eaaf71aaa",
      "parents": [
        "f9221fd80343285514568da6c5dbda0f87109de8"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Sat Apr 17 17:49:10 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Apr 30 13:45:13 2010 -0700"
      },
      "message": "ocfs2: Avoid direct write if we fall back to buffered I/O\n\nwhen we fall back to buffered write from direct write, we call\n__generic_file_aio_write() but that will end up doing direct write\neven we are only prepared to do buffered write because the file\nhas the O_DIRECT flag set. This is a fix for\nhttps://bugzilla.novell.com/show_bug.cgi?id\u003d591039\nrevised with Joel\u0027s comments.\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "f9221fd80343285514568da6c5dbda0f87109de8",
      "tree": "3a2f0077ebea9d094bdeedb319c97cb591d51c51",
      "parents": [
        "a36d515c7a2dfacebcf41729f6812dbc424ebcf0",
        "a9743fcdc0eb43d028b71267438076e1b0112ba0"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Apr 30 13:37:29 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Apr 30 13:37:29 2010 -0700"
      },
      "message": "Merge branch \u0027skip_delete_inode\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2-mark into ocfs2-fixes\n"
    },
    {
      "commit": "12b1b321689cf92236fb216472744e39419fab30",
      "tree": "16505df17a901583b3c1ab28b5cb7e9b573d8809",
      "parents": [
        "8f2adb7cab81fc4984ddfe3a1efd1b62d52bead8"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Mon Mar 08 20:51:03 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 30 10:14:56 2010 -0700"
      },
      "message": "Inotify: Fix build failure in inotify user support\n\nCONFIG_INOTIFY_USER defined but CONFIG_ANON_INODES undefined will result\nin the following build failure:\n\n    LD      vmlinux\n  fs/built-in.o: In function \u0027sys_inotify_init1\u0027:\n  (.text.sys_inotify_init1+0x22c): undefined reference to \u0027anon_inode_getfd\u0027\n  fs/built-in.o: In function `sys_inotify_init1\u0027:\n  (.text.sys_inotify_init1+0x22c): relocation truncated to fit: R_MIPS_26 against \u0027anon_inode_getfd\u0027\n  make[2]: *** [vmlinux] Error 1\n  make[1]: *** [sub-make] Error 2\n  make: *** [all] Error 2\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e97e7120eb24800cf8eb62c7da07b161cc2a8c73",
      "tree": "b48bf7a1f1e8192c5e3cb4e1289adc7a378c2d8d",
      "parents": [
        "fed0a9c644c7872f5bcaeb87a71103aef8e96761",
        "9bf729c0af67897ea8498ce17c29b0683f7f2028"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 29 19:49:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 29 19:49:34 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:\n  xfs: add a shrinker to background inode reclaim\n"
    },
    {
      "commit": "fed0a9c644c7872f5bcaeb87a71103aef8e96761",
      "tree": "9615901a5b387aa57c39fcd1d5fee22149a9dbcc",
      "parents": [
        "6bec11921a7d7b11d0b1909596636632aece5a26",
        "3c2023dd8ed31e2ecfbb2d5aa20e8884d4b339e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 29 17:18:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 29 17:18:07 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  exofs: Fix \"add bdi backing to mount session\" fall out\n  fs: fs/super.c needs to include backing-dev.h for !CONFIG_BLOCK\n"
    },
    {
      "commit": "9bf729c0af67897ea8498ce17c29b0683f7f2028",
      "tree": "9e6350fd9da5aef0b53ddeddd82f618ae16bf931",
      "parents": [
        "79dba2eaa771c3173957eccfd288e0e0d12e4d3f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Apr 29 09:55:50 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Apr 29 16:22:13 2010 -0500"
      },
      "message": "xfs: add a shrinker to background inode reclaim\n\nOn low memory boxes or those with highmem, kernel can OOM before the\nbackground reclaims inodes via xfssyncd. Add a shrinker to run inode\nreclaim so that it inode reclaim is expedited when memory is low.\n\nThis is more complex than it needs to be because the VM folk don\u0027t\nwant a context added to the shrinker infrastructure. Hence we need\nto add a global list of XFS mount structures so the shrinker can\ntraverse them.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3c2023dd8ed31e2ecfbb2d5aa20e8884d4b339e2",
      "tree": "df6e57bac0477e18c80786d5b014533ffe0eee34",
      "parents": [
        "5477d0face8a3ba4e9a1e7283692fff9c92f8e5e"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Apr 29 20:35:29 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 20:35:29 2010 +0200"
      },
      "message": "exofs: Fix \"add bdi backing to mount session\" fall out\n\nThe patch: add bdi backing to mount session\n\t(b3d0ab7e60d1865bb6f6a79a77aaba22f2543236)\n\nHas a bug in the placement of the bdi member at\nstruct exofs_sb_info. The layout member must be kept\nlast.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5477d0face8a3ba4e9a1e7283692fff9c92f8e5e",
      "tree": "59bdad300f2be01911f9120e349b22664f199387",
      "parents": [
        "79dba2eaa771c3173957eccfd288e0e0d12e4d3f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 20:33:35 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 20:33:35 2010 +0200"
      },
      "message": "fs: fs/super.c needs to include backing-dev.h for !CONFIG_BLOCK\n\nWhen CONFIG_BLOCK is set, it ends up getting backing-dev.h included.\nBut for !CONFIG_BLOCK, it isn\u0027t so lucky. The proper thing to do is\ninclude \u003clinux/backing-dev.h\u003e directly from the file it\u0027s used from,\nso do that.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "27fb8d7b1fe7c2fa2d7c1f243b899793e1b080e0",
      "tree": "25a8ca59a3743459bbd48674731becea89a16318",
      "parents": [
        "f80a0ca6ad8f2800453e819dafa09a0ed9e56850",
        "9699eda6bc1f708a28acb716e1477aa351362fe2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 29 10:23:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 29 10:23:44 2010 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  nfs: fix memory leak in nfs_get_sb with CONFIG_NFS_V4\n  nfs: fix some issues in nfs41_proc_reclaim_complete()\n  NFS: Ensure that nfs_wb_page() waits for Pg_writeback to clear\n  NFS: Fix an unstable write data integrity race\n  nfs: testing for null instead of ERR_PTR()\n  NFS: rsize and wsize settings ignored on v4 mounts\n  NFSv4: Don\u0027t attempt an atomic open if the file is a mountpoint\n  SUNRPC: Fix a bug in rpcauth_prune_expired\n"
    },
    {
      "commit": "f80a0ca6ad8f2800453e819dafa09a0ed9e56850",
      "tree": "bdbffa0e212888c31e11e89dc1194935f6825085",
      "parents": [
        "a36fed12a4d980eebb2e67b87ea30ad090238cff"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Apr 28 14:36:41 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 29 08:44:37 2010 -0700"
      },
      "message": "pktcdvd: improve BKL and compat_ioctl.c usage\n\nThe pktcdvd driver uses proper locking and does not need the BKL in the\nioctl and llseek functions of the character device, so kill both.\n\nMoving the compat_ioctl handling from common code into the driver itself\nfixes build problems when CONFIG_BLOCK is disabled.\n\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a36fed12a4d980eebb2e67b87ea30ad090238cff",
      "tree": "ff56582ba7ccca5d303b909c146032013bf047d0",
      "parents": [
        "dfad53d48e32cd0e10eab98e986c76cdd957600f"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Apr 29 13:38:00 2010 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 29 07:59:16 2010 -0700"
      },
      "message": "exofs: Fix \"add bdi backing to mount session\" fall out\n\nCommit b3d0ab7e60d1865bb6f6a79a77aaba22f2543236 (\"exofs: add bdi backing\nto mount session\") has a bug in the placement of the bdi member at\nstruct exofs_sb_info.  The layout member must be kept last.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9e80b7de91db05c1c4d2e5ebbfd70b3b3ba0e0f",
      "tree": "0ca15a8b9250337c810e18756422c17b5f651b08",
      "parents": [
        "1d16b0f2f3edf05f12a9e3960588e0d4854157bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Thu Apr 29 03:10:43 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 28 20:40:03 2010 -0700"
      },
      "message": "nfs d_revalidate() is too trigger-happy with d_drop()\n\nIf dentry found stale happens to be a root of disconnected tree, we\ncan\u0027t d_drop() it; its d_hash is actually part of s_anon and d_drop()\nwould simply hide it from shrink_dcache_for_umount(), leading to\nall sorts of fun, including busy inodes on umount and oopsen after\nthat.\n\nBug had been there since at least 2006 (commit c636eb already has it),\nso it\u0027s definitely -stable fodder.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9699eda6bc1f708a28acb716e1477aa351362fe2",
      "tree": "61d6841d38f047c9cb80e2efd08acea67f80b223",
      "parents": [
        "acf82b85a70f39786e3cbb1ffed8655bcc972424"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Thu Apr 22 18:56:17 2010 +0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 28 13:46:28 2010 -0400"
      },
      "message": "nfs: fix memory leak in nfs_get_sb with CONFIG_NFS_V4\n\nWith CONFIG_NFS_V4 and data version 4, nfs_get_sb will allocate memory for\nexport_path in nfs4_validate_text_mount_data, so we need to free it then.\nThis is addressed in following kmemleak report:\n\nunreferenced object 0xffff88016bf48a50 (size 16):\n  comm \"mount.nfs\", pid 22567, jiffies 4651574704 (age 175471.200s)\n  hex dump (first 16 bytes):\n    2f 6f 70 74 2f 77 6f 72 6b 00 6b 6b 6b 6b 6b a5  /opt/work.kkkkk.\n  backtrace:\n    [\u003cffffffff814b34f9\u003e] kmemleak_alloc+0x60/0xa7\n    [\u003cffffffff81102c76\u003e] kmemleak_alloc_recursive.clone.5+0x1b/0x1d\n    [\u003cffffffff811046b3\u003e] __kmalloc_track_caller+0x18f/0x1b7\n    [\u003cffffffff810e1b08\u003e] kstrndup+0x37/0x54\n    [\u003cffffffffa0336971\u003e] nfs_parse_devname+0x152/0x204 [nfs]\n    [\u003cffffffffa0336af3\u003e] nfs4_validate_text_mount_data+0xd0/0xdc [nfs]\n    [\u003cffffffffa0338deb\u003e] nfs_get_sb+0x325/0x736 [nfs]\n    [\u003cffffffff81113671\u003e] vfs_kern_mount+0xbd/0x17c\n    [\u003cffffffff81113798\u003e] do_kern_mount+0x4d/0xed\n    [\u003cffffffff81129a87\u003e] do_mount+0x787/0x7fe\n    [\u003cffffffff81129b86\u003e] sys_mount+0x88/0xc2\n    [\u003cffffffff81009b42\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Benny Halevy \u003cbhalevy@panasas.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "acf82b85a70f39786e3cbb1ffed8655bcc972424",
      "tree": "99e1a7b0815aa1ca1d9196a323c9c28df185d2aa",
      "parents": [
        "ba8b06e67ed7a560b0e7c80091bcadda4f4727a5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Apr 22 11:28:39 2010 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 28 13:45:12 2010 -0400"
      },
      "message": "nfs: fix some issues in nfs41_proc_reclaim_complete()\n\nThe original code passed an ERR_PTR() to rpc_put_task() and instead of\nreturning zero on success it returned -ENOMEM.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "970b06485ffee36aa3549dfe4c6b2a2c2118354d",
      "tree": "1b0f6f4182e73d19071addf8a209e5fb58483d08",
      "parents": [
        "696e65c3606aa3f587eeb181766baf49ea750cfc",
        "33f60e9640b2f60dde6735293d4aa5ecc5b1d5d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 28 07:56:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 28 07:56:05 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  coda: move backing-dev.h kernel include inside __KERNEL__\n  mtd: ensure that bdi entries are properly initialized and registered\n  Move mtd_bdi_*mappable to mtdcore.c\n  btrfs: convert to using bdi_setup_and_register()\n  Catch filesystems lacking s_bdi\n  drbd: Terminate a connection early if sending the protocol fails\n  drbd: fix memory leak\n  Fix JFFS2 sync silent failure\n  smbfs: add bdi backing to mount session\n  ncpfs: add bdi backing to mount session\n  exofs: add bdi backing to mount session\n  ecryptfs: add bdi backing to mount session\n  coda: add bdi backing to mount session\n  cifs: add bdi backing to mount session\n  afs: add bdi backing to mount session.\n  9p: add bdi backing to mount session\n  bdi: add helper function for doing init and register of a bdi for a file system\n  block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer\n"
    },
    {
      "commit": "11e39d993dc693e0bfc5521d367b2494cb3bcd38",
      "tree": "b6e418811a47c0a92ed6f386360f07c73b8f3b87",
      "parents": [
        "03449cd9eaa4fa3a7faa4a59474bafe2e90bd143",
        "2bc3c1179c781b359d4f2f3439cb3df72afc17fc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 27 16:26:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 27 16:26:21 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.34\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.34\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd4: bug in read_buf\n"
    },
    {
      "commit": "3835541dd481091c4dbf5ef83c08aed12e50fd61",
      "tree": "bb40567215e394392ed0167867a0bf2a5916a583",
      "parents": [
        "9e584fbbd9fd4f0f10b8aafc9982df8d0b553e35"
      ],
      "author": {
        "name": "Jerome Marchand",
        "email": "jmarchan@redhat.com",
        "time": "Tue Apr 27 13:13:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 27 16:26:03 2010 -0700"
      },
      "message": "procfs: fix tid fdinfo\n\nCorrect the file_operations struct in fdinfo entry of tid_base_stuff[].\n\nPresently /proc/*/task/*/fdinfo contains symlinks to opened files like\n/proc/*/fd/.\n\nSigned-off-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba8b06e67ed7a560b0e7c80091bcadda4f4727a5",
      "tree": "cd737661ffb38a614697b1e055d68e7b41a7e982",
      "parents": [
        "71d0a6112a363e703e383ae5b12c492485c39701"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 27 18:33:54 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 27 18:33:54 2010 -0400"
      },
      "message": "NFS: Ensure that nfs_wb_page() waits for Pg_writeback to clear\n\nNeil Brown reports that he is seeing the BUG_ON(ret \u003d\u003d 0) trigger in\nnfs_page_async_flush. According to the trace in\n     https://bugzilla.novell.com/show_bug.cgi?id\u003d599628\nthe problem appears to be due to nfs_wb_page() not waiting for the\nPG_writeback flag to clear.\n\nThere is a ditto problem in nfs_wb_page_cancel()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "16a5b3c4143fc7f6cbe0ef9fd4e9a58376f91506",
      "tree": "3ddc0a8a20a99c6abdf3698917ff636bd41cdea9",
      "parents": [
        "bc113f151a73cb2195c2fb40d7d70acf8e2f9208"
      ],
      "author": {
        "name": "Christoph Egger",
        "email": "siccegge@cs.fau.de",
        "time": "Mon Apr 26 15:56:36 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 27 09:01:26 2010 -0700"
      },
      "message": "Remove redundant check for CONFIG_MMU\n\nThe checks for CONFIG_MMU at this location are duplicated as all the code is\nlocated inside a #ifndef CONFIG_MMU block. So the first conditional block will\nalways be included while the second never will.\n\nSigned-off-by: Christoph Egger \u003csiccegge@stud.informatik.uni-erlangen.de\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc113f151a73cb2195c2fb40d7d70acf8e2f9208",
      "tree": "026c1fe1d01a16724c8fff538b1fe29bbf1ef06b",
      "parents": [
        "93a9248af27aa83c08910d3e38b584678b1dc534",
        "e0d1f70010dce062ccce1bbd940a661e60b82631"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 27 08:59:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 27 08:59:38 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus:\n  squashfs: fix potential buffer over-run on 4K block file systems\n  squashfs: add missing buffer free\n  squashfs: fix warn_on when root inode is corrupted\n  squashfs: fix locking bug in zlib wrapper\n"
    },
    {
      "commit": "2bc3c1179c781b359d4f2f3439cb3df72afc17fc",
      "tree": "1ec45ae9721da85fb3807003067dd6be2b73a96d",
      "parents": [
        "0d0fb0f9c5fddef4a10242fe3337f00f528a3099"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Tue Apr 20 12:16:52 2010 +1000"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 26 15:39:08 2010 -0400"
      },
      "message": "nfsd4: bug in read_buf\n\nWhen read_buf is called to move over to the next page in the pagelist\nof an NFSv4 request, it sets argp-\u003eend to essentially a random\nnumber, certainly not an address within the page which argp-\u003ep now\npoints to.  So subsequent calls to READ_BUF will think there is much\nmore than a page of spare space (the cast to u32 ensures an unsigned\ncomparison) so we can expect to fall off the end of the second\npage.\n\nWe never encountered thsi in testing because typically the only\noperations which use more than two pages are write-like operations,\nwhich have their own decoding logic.  Something like a getattr after a\nwrite may cross a page boundary, but it would be very unusual for it to\ncross another boundary after that.\n\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dd77ef924c835c9813c3f4dc7e9c72e9cd88d238",
      "tree": "bf914944fceab37ca446ded983a00e422c318f5b",
      "parents": [
        "b91ce4d14a21fc04d165be30319541e0f9204f15"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Apr 20 17:00:37 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Apr 26 12:38:51 2010 -0500"
      },
      "message": "xfs: more swap extent fixes for dynamic fork offsets\n\nA new xfsqa test (226) with a prototype xfs_fsr change to try to\nhandle dynamic fork offsets better triggers an assertion failure\nwhere the inode data fork is in btree format, yet there is room in\nthe inode for it to be in extent format. The two inodes look like:\n\nbefore: ino 0x101 (target), num_extents 11, Max in-fork extents 6, broot size 40, fork offset 96\nbefore: ino 0x115 (temp),  num_extents 5, Max in-fork extents 3, broot size 40, fork offset 56\nafter: ino 0x101 (target), num_extents 5, Max in-fork extents 6, broot size 40, fork offset 96\nafter: ino 0x115 (temp), num_extents 11, Max in-fork extents 3, broot size 40, fork offset 56\n\nBasically the target inode ends up with 5 extents in btree format,\nbut it had space for 6 extents in extent format, so ends up\nincorrect. Notably here the broot size is the same, and that is\nwhere the kernel code is going wrong - the btree root will fit, so\nit lets the swap go ahead.\n\nThe check should not allow the swap to take place if the number of\nextents while in btree format is less than the number of extents\nthat can fit in the inode in extent format. Adding that check will\nprevent this swap and corruption from occurring.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e6d086d83cf7f102d48c006f58172a69ec0c15a4",
      "tree": "be8cf9ab5c593982dded8585d1e9961a1e83b1e5",
      "parents": [
        "5129a469a91a91427334c40e29e64c6d0ab68caf"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 26 10:27:54 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 26 10:27:54 2010 +0200"
      },
      "message": "btrfs: convert to using bdi_setup_and_register()\n\nIt\u0027s now a provided helper, so get rid of the internal setup\nand btrfs atomic_t bdi enumerator.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "202f2bb0708e968099a23fead4598a4c3f8f8637",
      "tree": "d014d6222ea90af157cfb0fcbf5677447353b95e",
      "parents": [
        "ddc9b34c3b3bc063a7d9eb891ae09b8f49cfb27e",
        "b90f687018e6d6c77d981b09203780f7001407e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 25 10:01:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 25 10:01:51 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Issue the discard operation *before* releasing the blocks to be reused\n  ext4: Fix buffer head leaks after calls to ext4_get_inode_loc()\n  ext4: Fix possible lost inode write in no journal mode\n"
    },
    {
      "commit": "5129a469a91a91427334c40e29e64c6d0ab68caf",
      "tree": "141a17cbea94c7c9c038187cc7081e1c688eac55",
      "parents": [
        "7e2455c1a123ceadbb35150a610d61e8443fd340"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@logfs.org",
        "time": "Sun Apr 25 08:54:42 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Apr 25 08:54:42 2010 +0200"
      },
      "message": "Catch filesystems lacking s_bdi\n\nnoop_backing_dev_info is used only as a flag to mark filesystems that\ndon\u0027t have any backing store, like tmpfs, procfs, spufs, etc.\n\nSigned-off-by: Joern Engel \u003cjoern@logfs.org\u003e\n\nChanged the BUG_ON() to a WARN_ON(). Note that adding dirty inodes\nto the noop_backing_dev_info is not legal and will not result in\nthem being flushed, but we already catch this condition in\n__mark_inode_dirty() when checking for a registered bdi.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e0d1f70010dce062ccce1bbd940a661e60b82631",
      "tree": "1a0844867f6aa1600a07a8a5321325ddf016a6e6",
      "parents": [
        "370ec3d1ed9d76ba992e5b9b7d7d10700014d436"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Fri Apr 23 02:32:02 2010 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun Apr 25 02:09:05 2010 +0100"
      },
      "message": "squashfs: fix potential buffer over-run on 4K block file systems\n\nSizing the buffer based on block size is incorrect, leading\nto a potential buffer over-run on 4K block size file systems\n(because the metadata block size is always 8K).  This bug\ndoesn\u0027t seem have triggered because 4K block size file systems\nare not default, and also because metadata blocks after\ncompression tend to be less than 4K.\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "370ec3d1ed9d76ba992e5b9b7d7d10700014d436",
      "tree": "87065ba9c5f19b29c172267bcd971d655a7d6af6",
      "parents": [
        "1cb08e97389bb603e1b999312d9686c8faf0187a"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Fri Apr 23 00:24:22 2010 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun Apr 25 02:09:05 2010 +0100"
      },
      "message": "squashfs: add missing buffer free\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "1cb08e97389bb603e1b999312d9686c8faf0187a",
      "tree": "eb09f54f0eae17a29c5f09418558d7ed141d4454",
      "parents": [
        "792590c72376649b4e315df386fd208b83db05b9"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Fri Apr 16 01:01:36 2010 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun Apr 25 01:49:17 2010 +0100"
      },
      "message": "squashfs: fix warn_on when root inode is corrupted\n\nFix warn_on triggered by mounting a fsfuzzer corrupted file system, where\nthe root inode has been corrupted.\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\nReported-by: Steve Grubb \u003csgrubb@redhat.com\u003e\n"
    },
    {
      "commit": "b8af67e2681c693a21f3933e3bdfce4cf66596d3",
      "tree": "757fe652a36aa002b6bee9365b484e57bc5318fd",
      "parents": [
        "98d5ce0d0044666fc85a01915a1d22407eb546fd"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Fri Apr 23 13:18:06 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 24 11:31:26 2010 -0700"
      },
      "message": "fs/block_dev.c: fix performance regression in O_DIRECT|O_SYNC writes to block devices\n\nWe are seeing a large regression in database performance on recent\nkernels.  The database opens a block device with O_DIRECT|O_SYNC and a\nnumber of threads write to different regions of the file at the same time.\n\nA simple test case is below.  I haven\u0027t defined DEVICE since getting it\nwrong will destroy your data :) On an 3 disk LVM with a 64k chunk size we\nsee about 17MB/sec and only a few threads in IO wait:\n\nprocs  -----io---- -system-- -----cpu------\n r  b     bi    bo   in   cs us sy id wa st\n 0  3      0 16170  656 2259  0  0 86 14  0\n 0  2      0 16704  695 2408  0  0 92  8  0\n 0  2      0 17308  744 2653  0  0 86 14  0\n 0  2      0 17933  759 2777  0  0 89 10  0\n\nMost threads are blocking in vfs_fsync_range, which has:\n\n        mutex_lock(\u0026mapping-\u003ehost-\u003ei_mutex);\n        err \u003d fop-\u003efsync(file, dentry, datasync);\n        if (!ret)\n                ret \u003d err;\n        mutex_unlock(\u0026mapping-\u003ehost-\u003ei_mutex);\n\ncommit 148f948ba877f4d3cdef036b1ff6d9f68986706a (vfs: Introduce new\nhelpers for syncing after writing to O_SYNC file or IS_SYNC inode) offers\nsome explanation of what is going on:\n\n    Use these new helpers for syncing from generic VFS functions. This makes\n    O_SYNC writes to block devices acquire i_mutex for syncing. If we really\n    care about this, we can make block_fsync() drop the i_mutex and reacquire\n    it before it returns.\n\nThanks Jan for such a good commit message!  As well as dropping i_mutex,\nChristoph suggests we should remove the call to sync_blockdev():\n\n\u003e sync_blockdev is an overcomplicated alias for filemap_write_and_wait on\n\u003e the block device inode, which is exactly what we did just before calling\n\u003e into -\u003efsync\n\nThe patch below incorporates both suggestions. With it the testcase improves\nfrom 17MB/s to 68M/sec:\n\nprocs  -----io---- -system-- -----cpu------\n r  b     bi    bo   in   cs us sy id wa st\n 0  7      0 65536 1000 3878  0  0 70 30  0\n 0 34      0 69632 1016 3921  0  1 46 53  0\n 0 57      0 69632 1000 3921  0  0 55 45  0\n 0 53      0 69640  754 4111  0  0 81 19  0\n\nTestcase:\n\n#define _GNU_SOURCE\n#include \u003cstdio.h\u003e\n#include \u003cpthread.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstring.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n\n#define NR_THREADS 64\n#define BUFSIZE (64 * 1024)\n\n#define DEVICE \"/dev/mapper/XXXXXX\"\n\n#define ALIGN(VAL, SIZE) (((VAL)+(SIZE)-1) \u0026 ~((SIZE)-1))\n\nstatic int fd;\n\nstatic void *doit(void *arg)\n{\n\tunsigned long offset \u003d (long)arg;\n\tchar *b, *buf;\n\n\tb \u003d malloc(BUFSIZE + 1024);\n\tbuf \u003d (char *)ALIGN((unsigned long)b, 1024);\n\tmemset(buf, 0, BUFSIZE);\n\n\twhile (1)\n\t\tpwrite(fd, buf, BUFSIZE, offset);\n}\n\nint main(int argc, char *argv[])\n{\n\tint flags \u003d O_RDWR|O_DIRECT;\n\tint i;\n\tunsigned long offset \u003d 0;\n\n\tif (argc \u003e 1 \u0026\u0026 !strcmp(argv[1], \"O_SYNC\"))\n\t\tflags |\u003d O_SYNC;\n\n\tfd \u003d open(DEVICE, flags);\n\tif (fd \u003d\u003d -1) {\n\t\tperror(\"open\");\n\t\texit(1);\n\t}\n\n\tfor (i \u003d 0; i \u003c NR_THREADS-1; i++) {\n\t\tpthread_t tid;\n\t\tpthread_create(\u0026tid, NULL, doit, (void *)offset);\n\t\toffset +\u003d BUFSIZE;\n\t}\n\tdoit((void *)offset);\n\n\treturn 0;\n}\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb2162df74bb19552db3d988fd11c787cf5fad56",
      "tree": "9e35e26d36fbf552568fef213903956e5bc66c8c",
      "parents": [
        "93d5c9be1ddd57d4063ce463c9ac2be1e5ee14f1"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Apr 23 13:17:41 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 24 11:31:24 2010 -0700"
      },
      "message": "reiserfs: fix corruption during shrinking of xattrs\n\nCommit 48b32a3553a54740d236b79a90f20147a25875e3 (\"reiserfs: use generic\nxattr handlers\") introduced a problem that causes corruption when extended\nattributes are replaced with a smaller value.\n\nThe issue is that the reiserfs_setattr to shrink the xattr file was moved\nfrom before the write to after the write.\n\nThe root issue has always been in the reiserfs xattr code, but was papered\nover by the fact that in the shrink case, the file would just be expanded\nagain while the xattr was written.\n\nThe end result is that the last 8 bytes of xattr data are lost.\n\nThis patch fixes it to use new_size.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d14826\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nReported-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nCc: Jethro Beekman \u003ckernel@jbeekman.nl\u003e\nCc: Greg Surbey \u003cgregsurbey@hotmail.com\u003e\nCc: Marco Gatti \u003cmarco.gatti@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cac36f707119b792b2396aed371d6b5cdc194890",
      "tree": "ccb19a68ce1c1aa066d6d13dde51657cba906de6",
      "parents": [
        "33eaf788345c0311ab48ae62673c05f59fb09bb3"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri Apr 23 13:17:37 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 24 11:31:24 2010 -0700"
      },
      "message": "reiserfs: fix permissions on .reiserfs_priv\n\nCommit 677c9b2e393a0cd203bd54e9c18b012b2c73305a (\"reiserfs: remove\nprivroot hiding in lookup\") removed the magic from the lookup code to hide\nthe .reiserfs_priv directory since it was getting loaded at mount-time\ninstead.  The intent was that the entry would be hidden from the user via\na poisoned d_compare, but this was faulty.\n\nThis introduced a security issue where unprivileged users could access and\nmodify extended attributes or ACLs belonging to other users, including\nroot.\n\nThis patch resolves the issue by properly hiding .reiserfs_priv.  This was\nthe intent of the xattr poisoning code, but it appears to have never\nworked as expected.  This is fixed by using d_revalidate instead of\nd_compare.\n\nThis patch makes -oexpose_privroot a no-op.  I\u0027m fine leaving it this way.\nThe effort involved in working out the corner cases wrt permissions and\ncaching outweigh the benefit of the feature.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nAcked-by: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nReported-by: Matt McCutchen \u003cmatt@mattmccutchen.net\u003e\nTested-by: Matt McCutchen \u003cmatt@mattmccutchen.net\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a36d515c7a2dfacebcf41729f6812dbc424ebcf0",
      "tree": "4ff912d4f3c8697eb19beaed2d9b8cb9c551457b",
      "parents": [
        "c21a534e2f24968cf74976a4e721ac194db30ded"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Apr 23 15:24:59 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Apr 23 15:24:59 2010 -0700"
      },
      "message": "ocfs2_dlmfs: Fix math error when reading LVB.\n\nWhen asked for a partial read of the LVB in a dlmfs file, we can\naccidentally calculate a negative count.\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "c21a534e2f24968cf74976a4e721ac194db30ded",
      "tree": "ed095a19d91fa586912366aeb4c91852f131fa97",
      "parents": [
        "0350cb078f5035716ebdad4ad4709d02fe466a8a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Apr 21 14:05:55 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Apr 23 14:43:22 2010 -0700"
      },
      "message": "ocfs2: Update VFS inode\u0027s id info after reflink.\n\nIn reflink we update the id info on the disk but forgot to update\nthe corresponding information in the VFS inode.  Update them\naccordingly when we want to preserve the attributes.\n\nReported-by: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "0350cb078f5035716ebdad4ad4709d02fe466a8a",
      "tree": "17b2166b5c71e22571b0c244e130325d33bb77aa",
      "parents": [
        "79681842e160c3211eeeb47ea31b061038d1e41e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Apr 22 11:39:29 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Apr 23 14:42:06 2010 -0700"
      },
      "message": "ocfs2: potential ERR_PTR dereference on error paths\n\nIf \"handle\" is non null at the end of the function then we assume it\u0027s a\nvalid pointer and pass it to ocfs2_commit_trans();\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "a9743fcdc0eb43d028b71267438076e1b0112ba0",
      "tree": "c893396ac248e5f570a774b5b375d94b2858ae34",
      "parents": [
        "062d340384dcf77dfd8de0a082b5da571de3925a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 23 11:42:22 2010 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 23 11:42:22 2010 -0700"
      },
      "message": "ocfs2: Add directory entry later in ocfs2_symlink() and ocfs2_mknod()\n\nIf we get a failure during creation of an inode we\u0027ll allow the orphan code\nto remove the inode, which is correct. However, we need to ensure that we\ndon\u0027t get any errors after the call to ocfs2_add_entry(), otherwise we could\nleave a dangling directory reference. The solution is simple - in both\ncases, all I had to do was move ocfs2_dentry_attach_lock() above the\nocfs2_add_entry() call.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "062d340384dcf77dfd8de0a082b5da571de3925a",
      "tree": "875a86d75ff363fbebdb09cff12933bb23525077",
      "parents": [
        "ab41fdc8fdd9f0942430941c1e2b516fd481371d"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Apr 22 16:11:29 2010 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 23 11:05:00 2010 -0700"
      },
      "message": "ocfs2: use OCFS2_INODE_SKIP_ORPHAN_DIR in ocfs2_mknod error path\n\nMark the inode with flag OCFS2_INODE_SKIP_ORPHAN_DIR in ocfs2_mknod, so we\ncan kill the inode in case of error.\n\n[ Fixed up comment style -Mark ]\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ab41fdc8fdd9f0942430941c1e2b516fd481371d",
      "tree": "b362d6295b6b69909eefef0a1b1483e59be1fcec",
      "parents": [
        "d4cd1871cff68e188dadcf6d1280762522b643eb"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Apr 22 16:11:25 2010 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 23 11:05:00 2010 -0700"
      },
      "message": "ocfs2: use OCFS2_INODE_SKIP_ORPHAN_DIR in ocfs2_symlink error path\n\nMark the inode with flag OCFS2_INODE_SKIP_ORPHAN_DIR when we get an error\nafter allocating one, so that we can kill the inode.\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d4cd1871cff68e188dadcf6d1280762522b643eb",
      "tree": "cf3a6426342378956f4d797066ec060eb3939083",
      "parents": [
        "d5a30458a90597915977f06e79406b664a41b8ac"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Apr 22 16:11:19 2010 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 23 11:03:49 2010 -0700"
      },
      "message": "ocfs2: add OCFS2_INODE_SKIP_ORPHAN_DIR flag and honor it in the inode wipe code\n\nCurrently in the error path of ocfs2_symlink and ocfs2_mknod, we just call\niput with the inode we failed with, but the inode wipe code will complain\nbecause we don\u0027t add the inode to orphan dir. One solution would be to lock\nthe orphan dir during the entire transaction, but that\u0027s too heavy for a\nrare error path. Instead, we add a flag, OCFS2_INODE_SKIP_ORPHAN_DIR which\ntells the inode wipe code that it won\u0027t find this inode in the orphan dir.\n\n[ Merge fixes and comment style cleanups -Mark ]\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "3a3076f4d6e2fa31338a0b007df42a3b32f079e0",
      "tree": "58bb9ec51a2e99baf7b28cebd0c9d3df2fc1c7a7",
      "parents": [
        "1918ad77f7f908ed67cf37c505c6ad4ac52f1ecf"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Apr 23 12:17:17 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 23 10:39:48 2010 -0700"
      },
      "message": "Cleanup generic block based fiemap\n\nThis cleans up a few of the complaints of __generic_block_fiemap.  I\u0027ve\nfixed all the typing stuff, used inline functions instead of macros,\ngotten rid of a couple of variables, and made sure the size and block\nrequests are all block aligned.  It also fixes a problem where sometimes\nFIEMAP_EXTENT_LAST wasn\u0027t being set properly.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "792590c72376649b4e315df386fd208b83db05b9",
      "tree": "fefe4c18d12b4ef9d1977998286da63e93d815b4",
      "parents": [
        "0d0fb0f9c5fddef4a10242fe3337f00f528a3099"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Sun Apr 04 22:20:58 2010 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Fri Apr 23 02:54:54 2010 +0100"
      },
      "message": "squashfs: fix locking bug in zlib wrapper\n\nFix locking bug in zlib wrapper introduced by recent decompressor changes.\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "71d0a6112a363e703e383ae5b12c492485c39701",
      "tree": "fc22ab92565fb61a37a77f829a82fa9b8ea6497f",
      "parents": [
        "cdd29ecfcb9554132cd94b82ae8b69ba37adb3b5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 22 15:35:57 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 22 15:35:57 2010 -0400"
      },
      "message": "NFS: Fix an unstable write data integrity race\n\nCommit 2c61be0a9478258f77b66208a0c4b1f5f8161c3c (NFS: Ensure that the WRITE\nand COMMIT RPC calls are always uninterruptible) exposed a race on file\nclose. In order to ensure correct close-to-open behaviour, we want to wait\nfor all outstanding background commit operations to complete.\n\nThis patch adds an inode flag that indicates if a commit operation is under\nway, and provides a mechanism to allow -\u003ewrite_inode() to wait for its\ncompletion if this is a data integrity flush.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cdd29ecfcb9554132cd94b82ae8b69ba37adb3b5",
      "tree": "c99d810b3346989b8dbd88c469aa5bd0c9871f5c",
      "parents": [
        "356e76b855bdbfd8d1c5e75bcf0c6bf0dfe83496"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Apr 22 15:35:56 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 22 15:35:56 2010 -0400"
      },
      "message": "nfs: testing for null instead of ERR_PTR()\n\nnfs_path() returns an ERR_PTR(), it doesn\u0027t return null.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "356e76b855bdbfd8d1c5e75bcf0c6bf0dfe83496",
      "tree": "426179d91ee28629e781496ae90ececad1405422",
      "parents": [
        "1f063d2cdf332a8a5722006b1345d15d16007c6e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Apr 22 15:35:56 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 22 15:35:56 2010 -0400"
      },
      "message": "NFS: rsize and wsize settings ignored on v4 mounts\n\nNFSv4 mounts ignore the rsize and wsize mount options, and always use\nthe default transfer size for both.  This seems to be because all\nNFSv4 mounts are now cloned, and the cloning logic doesn\u0027t copy the\nrsize and wsize settings from the parent nfs_server.\n\nI tested Fedora\u0027s 2.6.32.11-99 and it seems to have this problem as\nwell, so I\u0027m guessing that .33, .32, and perhaps older kernels have\nthis issue as well.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f063d2cdf332a8a5722006b1345d15d16007c6e",
      "tree": "4295c3fd46390f12e1ed2354998a91007f85fb13",
      "parents": [
        "3d7b08945e54a3a5358d5890240619a013cb7388"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 22 15:35:55 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Apr 22 15:35:55 2010 -0400"
      },
      "message": "NFSv4: Don\u0027t attempt an atomic open if the file is a mountpoint\n\nFix https://bugzilla.kernel.org/show_bug.cgi?id\u003d15789\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "424264b7b220e8eee165dc3080ae48692af73dec",
      "tree": "f946baadbb45ae77e76807df3d394aff88dcd801",
      "parents": [
        "f1970c73cbb6b884152207e4dfe90639f5029905"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:37:07 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:37:07 2010 +0200"
      },
      "message": "smbfs: add bdi backing to mount session\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f1970c73cbb6b884152207e4dfe90639f5029905",
      "tree": "86f8e8c1dc149b46b01e6235eb3f01c7c6c3d5b5",
      "parents": [
        "b3d0ab7e60d1865bb6f6a79a77aaba22f2543236"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:31:11 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:31:11 2010 +0200"
      },
      "message": "ncpfs: add bdi backing to mount session\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b3d0ab7e60d1865bb6f6a79a77aaba22f2543236",
      "tree": "bd770d63b01998b8ad1ee0f9fc463465b3586e8a",
      "parents": [
        "9df9c8b930156a2f9ce2b2ae66acb14bee2663f5"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:26:04 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:26:04 2010 +0200"
      },
      "message": "exofs: add bdi backing to mount session\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9df9c8b930156a2f9ce2b2ae66acb14bee2663f5",
      "tree": "35992d372a4587600f93c399eaa12b7c7bd77cbf",
      "parents": [
        "5163d90076729413cb882d3dd5c3d3cfb5b9f035"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:22:04 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:22:04 2010 +0200"
      },
      "message": "ecryptfs: add bdi backing to mount session\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5163d90076729413cb882d3dd5c3d3cfb5b9f035",
      "tree": "b2e3419e481f4373bb511642953f6faca5157a51",
      "parents": [
        "8044f7f468469c80031611206d554f86fcdfe704"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:12:40 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:12:40 2010 +0200"
      },
      "message": "coda: add bdi backing to mount session\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8044f7f468469c80031611206d554f86fcdfe704",
      "tree": "addf1e66fbd891c46388b25d1f072a67fed69c16",
      "parents": [
        "e1da0222753a2322d76c97fc02396fb83143c7ac"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:09:48 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 12:09:48 2010 +0200"
      },
      "message": "cifs: add bdi backing to mount session\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e1da0222753a2322d76c97fc02396fb83143c7ac",
      "tree": "cba5f8058b48cc0f6c6647e3f217bf0cfb7b60ef",
      "parents": [
        "0ed07ddb56d1348e5ce33f3b8de20d730351983a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 11:58:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 11:58:18 2010 +0200"
      },
      "message": "afs: add bdi backing to mount session.\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0ed07ddb56d1348e5ce33f3b8de20d730351983a",
      "tree": "2a1487252e9ecd6fe5b7ff87d9b035f040ab8ff1",
      "parents": [
        "c3c532061e46156e8aab1268f38d66cfb63aeb2d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 11:42:00 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 22 11:42:00 2010 +0200"
      },
      "message": "9p: add bdi backing to mount session\n\nThis ensures that dirty data gets flushed properly.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    }
  ],
  "next": "1ef6ce7a340f9ed139a73147ff9cf7ad56889414"
}
