)]}'
{
  "log": [
    {
      "commit": "2900a579abcea13e4e77c40f89eb16eeecb5508e",
      "tree": "ca95a5d11ca1617707f0d4056ba3bf44fccaea56",
      "parents": [
        "d948709b8e468510d8c855d1e4c9f1cb7b524880"
      ],
      "author": {
        "name": "Mark Tinguely",
        "email": "tinguely@sgi.com",
        "time": "Wed Oct 02 16:00:06 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Oct 08 14:28:09 2013 -0500"
      },
      "message": "xfs: add the inode directory type support to XFS_IOC_FSGEOM\n\nAdd the inode type directory type support to XFS_IOC_FSGEOM\nso that xfs_repair/xfs_info knows if the superblock v4 filesystem\nenabled the feature.\n\nSigned-off-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "d948709b8e468510d8c855d1e4c9f1cb7b524880",
      "tree": "ea4af275dd326cc4a6e83927996dc4ac3592b535",
      "parents": [
        "17ec81c15fd022842f9bc947841ba9fb9eb52591"
      ],
      "author": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Sep 10 18:11:22 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Oct 01 17:38:16 2013 -0500"
      },
      "message": "xfs: remove usage of is_bad_inode\n\nXFS never calls mark_inode_bad or iget_failed, so it will never see a\nbad inode.  Remove all checks for is_bad_inode because they are\nunnecessary.\n\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n\n"
    },
    {
      "commit": "17ec81c15fd022842f9bc947841ba9fb9eb52591",
      "tree": "3360b61710794da95540a2d4bf4aa01bf7c528ce",
      "parents": [
        "0799a3e808e5543235bcdfe9d1fa1572e0e86ab5"
      ],
      "author": {
        "name": "Jie Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Sun Sep 22 16:25:15 2013 +0800"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Oct 01 17:33:10 2013 -0500"
      },
      "message": "xfs: fix the wrong new_size/rnew_size at xfs_iext_realloc_direct()\n\nAt xfs_iext_realloc_direct(), the new_size is changed by adding\nif_bytes if originally the extent records are stored at the inline\nextent buffer, and we have to switch from it to a direct extent\nlist for those new allocated extents, this is wrong. e.g,\n\nCreate a file with three extents which was showing as following,\n\nxfs_io -f -c \"truncate 100m\" /xfs/testme\n\nfor i in $(seq 0 5 10); do\n\toffset\u003d$(($i * $((1 \u003c\u003c 20))))\n\txfs_io -c \"pwrite $offset 1m\" /xfs/testme\ndone\n\nInline\n------\nirec:\tif_bytes\tbytes_diff\tnew_size\n1st\t0\t\t16\t\t16\n2nd\t16\t\t16\t\t32\n\nSwitching\n---------\t\t\t\t\t\trnew_size\n3rd\t32\t\t16\t\t48 + 32 \u003d 80\troundup\u003d128\n\nIn this case, the desired value of new_size should be 48, and then\nit will be roundup to 64 and be assigned to rnew_size.\n\nHowever, this issue has been covered by resetting the if_bytes to\nthe new_size which is calculated at the begnning of xfs_iext_add()\nbefore leaving out this function, and in turn make the rnew_size\ncorrectly again. Hence, this can not be detected via xfstestes.\n\nThis patch fix above problem and revise the new_size comments at\nxfs_iext_realloc_direct() to make it more readable.  Also, fix the\ncomments while switching from the inline extent buffer to a direct\nextent list to reflect this change.\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "0799a3e808e5543235bcdfe9d1fa1572e0e86ab5",
      "tree": "bb249b619d1df30f8f23735ab710ae8e2050d7fe",
      "parents": [
        "aaaae98022efa4f3c31042f1fdf9e7a0c5f04663"
      ],
      "author": {
        "name": "Jie Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Sun Sep 29 18:56:04 2013 +0800"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Oct 01 15:42:34 2013 -0500"
      },
      "message": "xfs: get rid of count from xfs_iomap_write_allocate()\n\nGet rid of function variable count from xfs_iomap_write_allocate() as\nit is unused.\n\nAdditionally, checkpatch warn me of the following for this change:\nWARNING: extern prototypes should be avoided in .h files\n+extern int xfs_iomap_write_allocate(struct xfs_inode *, xfs_off_t,\n\nSo this patch also remove all extern function prototypes at xfs_iomap.h\nto suppress it to make this code style in consistent manner in this file.\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "aaaae98022efa4f3c31042f1fdf9e7a0c5f04663",
      "tree": "a1ed7dc62a4cfbc0fa6364046104f84e0d3efa10",
      "parents": [
        "519ccb81ac1c8e3e4eed294acf93be00b43dcad6"
      ],
      "author": {
        "name": "Thierry Reding",
        "email": "thierry.reding@gmail.com",
        "time": "Tue Oct 01 16:47:53 2013 +0200"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Oct 01 10:26:24 2013 -0500"
      },
      "message": "xfs: Use kmem_free() instead of free()\n\nThis fixes a build failure caused by calling the free() function which\ndoes not exist in the Linux kernel.\n\nSigned-off-by: Thierry Reding \u003ctreding@nvidia.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "519ccb81ac1c8e3e4eed294acf93be00b43dcad6",
      "tree": "05d11ca11b2e0011419122fc49d2ee8eac761fb4",
      "parents": [
        "367993e7c6428cb7617ab7653d61dca54e2fdede"
      ],
      "author": {
        "name": "tinguely@sgi.com",
        "email": "tinguely@sgi.com",
        "time": "Fri Sep 27 09:00:55 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Sep 30 17:52:43 2013 -0500"
      },
      "message": "xfs: fix memory leak in xlog_recover_add_to_trans\n\nFree the memory in error path of xlog_recover_add_to_trans().\nNormally this memory is freed in recovery pass2, but is leaked\nin the error path.\n\nSigned-off-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "367993e7c6428cb7617ab7653d61dca54e2fdede",
      "tree": "3e463fde556205e48fe9b01dd4dabb7a249f778e",
      "parents": [
        "f112a049712a5c07de25d511c3c6587a2b1a015e"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Sep 30 09:37:04 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Sep 30 17:49:28 2013 -0500"
      },
      "message": "xfs: dirent dtype presence is dependent on directory magic numbers\n\nThe determination of whether a directory entry contains a dtype\nfield originally was dependent on the filesystem having CRCs\nenabled. This meant that the format for dtype beign enabled could be\ndetermined by checking the directory block magic number rather than\ndoing a feature bit check. This was useful in that it meant that we\ndidn\u0027t need to pass a struct xfs_mount around to functions that\nwere already supplied with a directory block header.\n\nUnfortunately, the introduction of dtype fields into the v4\nstructure via a feature bit meant this \"use the directory block\nmagic number\" method of discriminating the dirent entry sizes is\nbroken. Hence we need to convert the places that use magic number\nchecks to use feature bit checks so that they work correctly and not\nby chance.\n\nThe current code works on v4 filesystems only because the dirent\nsize roundup covers the extra byte needed by the dtype field in the\nplaces where this problem occurs.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "f112a049712a5c07de25d511c3c6587a2b1a015e",
      "tree": "7d1bbcf898660e9f98822ef0d4ce84a5a105b50c",
      "parents": [
        "997def25e4b9cee3b01609e18a52f926bca8bd2b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Sep 30 09:37:03 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Sep 30 17:48:25 2013 -0500"
      },
      "message": "xfs: lockdep needs to know about 3 dquot-deep nesting\n\nMichael Semon reported that xfs/299 generated this lockdep warning:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n3.12.0-rc2+ #2 Not tainted\n---------------------------------------------\ntouch/21072 is trying to acquire lock:\n (\u0026xfs_dquot_other_class){+.+...}, at: [\u003cc12902fb\u003e] xfs_trans_dqlockedjoin+0x57/0x64\n\nbut task is already holding lock:\n (\u0026xfs_dquot_other_class){+.+...}, at: [\u003cc12902fb\u003e] xfs_trans_dqlockedjoin+0x57/0x64\n\nother info that might help us debug this:\n Possible unsafe locking scenario:\n\n       CPU0\n       ----\n  lock(\u0026xfs_dquot_other_class);\n  lock(\u0026xfs_dquot_other_class);\n\n *** DEADLOCK ***\n\n May be due to missing lock nesting notation\n\n7 locks held by touch/21072:\n #0:  (sb_writers#10){++++.+}, at: [\u003cc11185b6\u003e] mnt_want_write+0x1e/0x3e\n #1:  (\u0026type-\u003ei_mutex_dir_key#4){+.+.+.}, at: [\u003cc11078ee\u003e] do_last+0x245/0xe40\n #2:  (sb_internal#2){++++.+}, at: [\u003cc122c9e0\u003e] xfs_trans_alloc+0x1f/0x35\n #3:  (\u0026(\u0026ip-\u003ei_lock)-\u003emr_lock/1){+.+...}, at: [\u003cc126cd1b\u003e] xfs_ilock+0x100/0x1f1\n #4:  (\u0026(\u0026ip-\u003ei_lock)-\u003emr_lock){++++-.}, at: [\u003cc126cf52\u003e] xfs_ilock_nowait+0x105/0x22f\n #5:  (\u0026dqp-\u003eq_qlock){+.+...}, at: [\u003cc12902fb\u003e] xfs_trans_dqlockedjoin+0x57/0x64\n #6:  (\u0026xfs_dquot_other_class){+.+...}, at: [\u003cc12902fb\u003e] xfs_trans_dqlockedjoin+0x57/0x64\n\nThe lockdep annotation for dquot lock nesting only understands\nlocking for user and \"other\" dquots, not user, group and quota\ndquots. Fix the annotations to match the locking heirarchy we now\nhave.\n\nReported-by: Michael L. Semon \u003cmlsemon35@gmail.com\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "997def25e4b9cee3b01609e18a52f926bca8bd2b",
      "tree": "3c17a7d97353a1cb755e3c4d0459c7bc0bcebd1d",
      "parents": [
        "566055d33a91ddddb1cb31220b01ac4abd2d2bdd"
      ],
      "author": {
        "name": "Mark Tinguely",
        "email": "tinguely@sgi.com",
        "time": "Mon Sep 23 12:18:58 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Sep 26 10:38:17 2013 -0500"
      },
      "message": "xfs: fix node forward in xfs_node_toosmall\n\nCommit f5ea1100 cleans up the disk to host conversions for\nnode directory entries, but because a variable is reused in\nxfs_node_toosmall() the next node is not correctly found.\nIf the original node is small enough (\u003c\u003d 3/8 of the node size),\nthis change may incorrectly cause a node collapse when it should\nnot. That will cause an assert in xfstest generic/319:\n\n   Assertion failed: first \u003c\u003d last \u0026\u0026 last \u003c BBTOB(bp-\u003eb_length),\n   file: /root/newest/xfs/fs/xfs/xfs_trans_buf.c, line: 569\n\nKeep the original node header to get the correct forward node.\n\n(When a node is considered for a merge with a sibling, it overwrites the\n sibling pointers of the original incore nodehdr with the sibling\u0027s\n pointers.  This leads to loop considering the original node as a merge\n candidate with itself in the second pass, and so it incorrectly\n determines a merge should occur.)\n\nSigned-off-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n[v3: added Dave Chinner\u0027s (slightly modified) suggestion to the commit header,\n\tcleaned up whitespace.  -bpm]\n\n"
    },
    {
      "commit": "566055d33a91ddddb1cb31220b01ac4abd2d2bdd",
      "tree": "5d7f62711ad9e76b6c6843a858f3bf78f9137a78",
      "parents": [
        "b771af2fcb4a8a2df7e9b8784cd80e1774c34198"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Sep 24 16:01:16 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Sep 24 12:35:57 2013 -0500"
      },
      "message": "xfs: log recovery lsn ordering needs uuid check\n\nAfter a fair number of xfstests runs, xfs/182 started to fail\nregularly with a corrupted directory - a directory read verifier was\nfailing after recovery because it found a block with a XARM magic\nnumber (remote attribute block) rather than a directory data block.\n\nThe first time I saw this repeated failure I did /something/ and the\nproblem went away, so I was never able to find the underlying\nproblem. Test xfs/182 failed again today, and I found the root\ncause before I did /something else/ that made it go away.\n\nTracing indicated that the block in question was being correctly\nlogged, the log was being flushed by sync, but the buffer was not\nbeing written back before the shutdown occurred. Tracing also\nindicated that log recovery was also reading the block, but then\nnever writing it before log recovery invalidated the cache,\nindicating that it was not modified by log recovery.\n\nMore detailed analysis of the corpse indicated that the filesystem\nhad a uuid of \"a4131074-1872-4cac-9323-2229adbcb886\" but the XARM\nblock had a uuid of \"8f32f043-c3c9-e7f8-f947-4e7f989c05d3\", which\nindicated it was a block from an older filesystem. The reason that\nlog recovery didn\u0027t replay it was that the LSN in the XARM block was\nlarger than the LSN of the transaction being replayed, and so the\nblock was not overwritten by log recovery.\n\nHence, log recovery cant blindly trust the magic number and LSN in\nthe block - it must verify that it belongs to the filesystem being\nrecovered before using the LSN. i.e. if the UUIDs don\u0027t match, we\nneed to unconditionally recovery the change held in the log.\n\nThis patch was first tested on a block device that was repeatedly\ncausing xfs/182 to fail with the same failure on the same block with\nthe same directory read corruption signature (i.e. XARM block). It\ndid not fail, and hasn\u0027t failed since.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "b771af2fcb4a8a2df7e9b8784cd80e1774c34198",
      "tree": "2f82d12d6a7409a99749956126258d8589915751",
      "parents": [
        "b313a5f1cb0bf3276d5457b52b9f75a940e7b5e9"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Sep 24 16:01:15 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Sep 24 12:35:08 2013 -0500"
      },
      "message": "xfs: fix XFS_IOC_FREE_EOFBLOCKS definition\n\nIt uses a kernel internal structure in it\u0027s definition rather than\nthe user visible structure that is passed to the ioctl.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "b313a5f1cb0bf3276d5457b52b9f75a940e7b5e9",
      "tree": "141a0a2764099ed5dfb31ea40324433fcfded028",
      "parents": [
        "4885235806bb95c3fad5a5238e323cb746c3a49b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Sep 24 16:01:14 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Sep 24 12:32:57 2013 -0500"
      },
      "message": "xfs: asserting lock not held during freeing not valid\n\nWhen we free an inode, we do so via RCU. As an RCU lookup can occur\nat any time before we free an inode, and that lookup takes the inode\nflags lock, we cannot safely assert that the flags lock is not held\njust before marking it dead and running call_rcu() to free the\ninode.\n\nWe check on allocation of a new inode structre that the lock is not\nheld, so we still have protection against locks being leaked and\nhence not correctly initialised when allocated out of the slab.\nHence just remove the assert...\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "4885235806bb95c3fad5a5238e323cb746c3a49b",
      "tree": "2952172d9a17ca87227a50766f3d69bf8f290982",
      "parents": [
        "272b98c6455f00884f0350f775c5342358ebb73f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Sep 24 16:01:13 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Sep 24 12:31:41 2013 -0500"
      },
      "message": "xfs: lock the AIL before removing the buffer item\n\nRegression introduced by commit 46f9d2e (\"xfs: aborted buf items can\nbe in the AIL\") which fails to lock the AIL before removing the\nitem. Spinlock debugging throws a warning about this.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "3369d116934b70bd2755cdd8b2af9741d18a4047",
      "tree": "12c5444ae63bb9d6b00829b26668009d4c87a1c8",
      "parents": [
        "f1da3458e9d915d72b0dd30a7c41c3aff8f03589",
        "81b66220a9ebea7dd1547388279ee1898d7fe0f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 16 15:39:21 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 16 15:39:21 2013 -0400"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French:\n \"Two minor cifs fixes and a minor documentation cleanup for cifs.txt\"\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  cifs: update cifs.txt and remove some outdated infos\n  cifs: Avoid calling unlock_page() twice in cifs_readpage() when using fscache\n  cifs: Do not take a reference to the page in cifs_readpage_worker()\n"
    },
    {
      "commit": "098e7f1665f1a3503524bdd537499e45ad30e67d",
      "tree": "fe8e6ad6882bc9805ca78459f85d11309c9dc205",
      "parents": [
        "d8efd82eece89f8a5790b0febf17522affe9e1f1",
        "c23e9b75ccd0edba81a506c7d97e0af626489256"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 16 15:36:55 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 16 15:36:55 2013 -0400"
      },
      "message": "Merge tag \u0027upstream-3.12-rc1\u0027 of git://git.infradead.org/linux-ubifs\n\nPull ubifs fix from Artem Bityutskiy:\n \"Just one patch which fixes the power-cut recovery testing mode.\n\n  I\u0027ll start using a single UBI/UBIFS tree instead of 2 trees from now\n  on.  So in the future you\u0027ll get 1 small pull request instead of 2\n  tiny ones\"\n\n* tag \u0027upstream-3.12-rc1\u0027 of git://git.infradead.org/linux-ubifs:\n  UBIFS: remove invalid warn msg with tst_recovery enabled\n"
    },
    {
      "commit": "05a8252bdefe9f2a8931c720afe6200671d631a6",
      "tree": "89156319f026e7023bc0a711a754d408ddbf9bec",
      "parents": [
        "6b02fa59a7cf34c548eedee657b07ea6c54d3894"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:11:01 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 15 07:11:01 2013 -0400"
      },
      "message": "vfs: fix typo in comment in recent dentry work\n\nSedat points out that I transposed some letters in \"LRU\" and wrote \"RLU\"\ninstead in one of the new comments explaining the flow.  Let\u0027s just fix\nit.\n\nReported-by: Sedat Dilek \u003csedat.dilek@jpberlin.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3711d86a2de17e967b576af8b8a1e9351a7d1466",
      "tree": "f7d6028b81a475a83a6c2471645e0202b2b5f427",
      "parents": [
        "89dc77bcdabf42ec99553f5837aa4bb8255a088c",
        "a8855990e382fc81c04187c5fdb48743307baf32"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 23:06:40 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 23:06:40 2013 -0400"
      },
      "message": "Merge tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback fix from Wu Fengguang:\n \"A trivial writeback fix\"\n\n* tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Do not sort b_io list only because of block device inode\n"
    },
    {
      "commit": "89dc77bcdabf42ec99553f5837aa4bb8255a088c",
      "tree": "5648f91439538e2a4fd892a4ab525dd99bb2a44d",
      "parents": [
        "bdbdfdef5766c2a60185e946df242f1bc0d37c09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 22:55:10 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 22:55:10 2013 -0400"
      },
      "message": "vfs: fix dentry LRU list handling and nr_dentry_unused accounting\n\nThe LRU list changes interacted badly with our nr_dentry_unused\naccounting, and even worse with the new DCACHE_LRU_LIST bit logic.\n\nThis introduces helper functions to make sure everything follows the\nproper dcache d_lru list rules: the dentry cache is complicated by the\nfact that some of the hotpaths don\u0027t even want to look at the LRU list\nat all, and the fact that we use the same list entry in the dentry for\nboth the LRU list and for our temporary shrinking lists when removing\nthings from the LRU.\n\nThe helper functions temporarily have some extra sanity checking for the\nflag bits that have to match the current LRU state of the dentry.  We\u0027ll\nremove that before the final 3.12 release, but considering how easy it\nis to get wrong, this first cleanup version has some very particular\nsanity checking.\n\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "466bd31bbda9e1dd2ace1d72c8de5045bf6f3bf6",
      "tree": "a9f0d34082a17ed39a237dfb843441766c550a08",
      "parents": [
        "a9e9b7bc15a32ec5b0679704e70f3ffeecfaadd8"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Fri Sep 13 14:11:57 2013 +0100"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Fri Sep 13 16:24:49 2013 -0500"
      },
      "message": "cifs: Avoid calling unlock_page() twice in cifs_readpage() when using fscache\n\nWhen reading a single page with cifs_readpage(), we make a call to\nfscache_read_or_alloc_page() which once done, asynchronously calls\nthe completion function cifs_readpage_from_fscache_complete(). This\ncompletion function unlocks the page once it has been populated from\ncache. The module then attempts to unlock the page a second time in\ncifs_readpage() which leads to warning messages.\n\nIn case of a successful call to fscache_read_or_alloc_page() we should skip\nthe second unlock_page() since this will be called by the\ncifs_readpage_from_fscache_complete() once the page has been populated by\nfscache.\n\nWith the modifications to cifs_readpage_worker(), we will need to re-grab the\npage lock in cifs_write_begin().\n\nThe problem was first noticed when testing new fscache patches for cifs.\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d1005737\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "a9e9b7bc15a32ec5b0679704e70f3ffeecfaadd8",
      "tree": "2ab7abf527707b078012164a40af12ee02641aff",
      "parents": [
        "bdbdfdef5766c2a60185e946df242f1bc0d37c09"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Fri Sep 13 14:11:56 2013 +0100"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Fri Sep 13 16:24:43 2013 -0500"
      },
      "message": "cifs: Do not take a reference to the page in cifs_readpage_worker()\n\nWe do not need to take a reference to the pagecache in\ncifs_readpage_worker() since the calling function will have already\ntaken one before passing the pointer to the page as an argument to the\nfunction.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "9bf12df31f282e845b3dfaac1e5d5376a041da22",
      "tree": "10d7a21d34c7f2c47eff3e807f5efef46228d507",
      "parents": [
        "399a946edbbe90bd03aec2e93ce58c9b3f18e70b",
        "d9b2c8714aef102dea95544a8cd9372b21af463f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:55:58 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 13 10:55:58 2013 -0700"
      },
      "message": "Merge git://git.kvack.org/~bcrl/aio-next\n\nPull aio changes from Ben LaHaise:\n \"First off, sorry for this pull request being late in the merge window.\n  Al had raised a couple of concerns about 2 items in the series below.\n  I addressed the first issue (the race introduced by Gu\u0027s use of\n  mm_populate()), but he has not provided any further details on how he\n  wants to rework the anon_inode.c changes (which were sent out months\n  ago but have yet to be commented on).\n\n  The bulk of the changes have been sitting in the -next tree for a few\n  months, with all the issues raised being addressed\"\n\n* git://git.kvack.org/~bcrl/aio-next: (22 commits)\n  aio: rcu_read_lock protection for new rcu_dereference calls\n  aio: fix race in ring buffer page lookup introduced by page migration support\n  aio: fix rcu sparse warnings introduced by ioctx table lookup patch\n  aio: remove unnecessary debugging from aio_free_ring()\n  aio: table lookup: verify ctx pointer\n  staging/lustre: kiocb-\u003eki_left is removed\n  aio: fix error handling and rcu usage in \"convert the ioctx list to table lookup v3\"\n  aio: be defensive to ensure request batching is non-zero instead of BUG_ON()\n  aio: convert the ioctx list to table lookup v3\n  aio: double aio_max_nr in calculations\n  aio: Kill ki_dtor\n  aio: Kill ki_users\n  aio: Kill unneeded kiocb members\n  aio: Kill aio_rw_vect_retry()\n  aio: Don\u0027t use ctx-\u003etail unnecessarily\n  aio: io_cancel() no longer returns the io_event\n  aio: percpu ioctx refcount\n  aio: percpu reqs_available\n  aio: reqs_active -\u003e reqs_available\n  aio: fix build when migration is disabled\n  ...\n"
    },
    {
      "commit": "e0ea4045bce3cee84e35746fb98946ca36781248",
      "tree": "71409476f4b9acb0b441de1bdb51bf035f1fc5ad",
      "parents": [
        "48efe453e6b29561f78a1df55c7f58375259cb8c",
        "08474ed639e971e9d5a877cf7aba7ef91d847ae9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:13:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 16:13:41 2013 -0700"
      },
      "message": "Merge tag \u0027xfs-for-linus-v3.12-rc1-2\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull xfs update #2 from Ben Myers:\n \"Here we have defrag support for v5 superblock, a number of bugfixes\n  and a cleanup or two.\n\n   - defrag support for CRC filesystems\n   - fix endian worning in xlog_recover_get_buf_lsn\n   - fixes for sparse warnings\n   - fix for assert in xfs_dir3_leaf_hdr_from_disk\n   - fix for log recovery of remote symlinks\n   - fix for log recovery of btree root splits\n   - fixes formemory allocation failures with ACLs\n   - fix for assert in xfs_buf_item_relse\n   - fix for assert in xfs_inode_buf_verify\n   - fix an assignment in an assert that should be a test in\n     xfs_bmbt_change_owner\n   - remove dead code in xlog_recover_inode_pass2\"\n\n* tag \u0027xfs-for-linus-v3.12-rc1-2\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: remove dead code from xlog_recover_inode_pass2\n  xfs: \u003d vs \u003d\u003d typo in ASSERT()\n  xfs: don\u0027t assert fail on bad inode numbers\n  xfs: aborted buf items can be in the AIL.\n  xfs: factor all the kmalloc-or-vmalloc fallback allocations\n  xfs: fix memory allocation failures with ACLs\n  xfs: ensure we copy buffer type in da btree root splits\n  xfs: set remote symlink buffer type for recovery\n  xfs: recovery of swap extents operations for CRC filesystems\n  xfs: swap extents operations for CRC filesystems\n  xfs: check magic numbers in dir3 leaf verifier first\n  xfs: fix some minor sparse warnings\n  xfs: fix endian warning in xlog_recover_get_buf_lsn()\n"
    },
    {
      "commit": "ac4de9543aca59f2b763746647577302fbedd57e",
      "tree": "40407750569ee030de56233c41c9a97f7e89cf67",
      "parents": [
        "26935fb06ee88f1188789807687c03041f3c70d9",
        "de32a8177f64bc62e1b19c685dd391af664ab13f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:44:27 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:44:27 2013 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew Morton)\n\nMerge more patches from Andrew Morton:\n \"The rest of MM.  Plus one misc cleanup\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  mm/Kconfig: add MMU dependency for MIGRATION.\n  kernel: replace strict_strto*() with kstrto*()\n  mm, thp: count thp_fault_fallback anytime thp fault fails\n  thp: consolidate code between handle_mm_fault() and do_huge_pmd_anonymous_page()\n  thp: do_huge_pmd_anonymous_page() cleanup\n  thp: move maybe_pmd_mkwrite() out of mk_huge_pmd()\n  mm: cleanup add_to_page_cache_locked()\n  thp: account anon transparent huge pages into NR_ANON_PAGES\n  truncate: drop \u0027oldsize\u0027 truncate_pagecache() parameter\n  mm: make lru_add_drain_all() selective\n  memcg: document cgroup dirty/writeback memory statistics\n  memcg: add per cgroup writeback pages accounting\n  memcg: check for proper lock held in mem_cgroup_update_page_stat\n  memcg: remove MEMCG_NR_FILE_MAPPED\n  memcg: reduce function dereference\n  memcg: avoid overflow caused by PAGE_ALIGN\n  memcg: rename RESOURCE_MAX to RES_COUNTER_MAX\n  memcg: correct RESOURCE_MAX to ULLONG_MAX\n  mm: memcg: do not trap chargers with full callstack on OOM\n  mm: memcg: rework and document OOM waiting and wakeup\n  ...\n"
    },
    {
      "commit": "3cd14fcd3f128d5eba8575491cb4e1999ee1bad2",
      "tree": "5a2188a3349b339fe1365a13d85ac2a7acd4032b",
      "parents": [
        "7caef26767c1727d7abfbbbfbe8b2bb473430d48"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:13:58 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "thp: account anon transparent huge pages into NR_ANON_PAGES\n\nWe use NR_ANON_PAGES as base for reporting AnonPages to user.  There\u0027s\nnot much sense in not accounting transparent huge pages there, but add\nthem on printing to user.\n\nLet\u0027s account transparent huge pages in NR_ANON_PAGES in the first place.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Ning Qu \u003cquning@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7caef26767c1727d7abfbbbfbe8b2bb473430d48",
      "tree": "909e2a3c1b0a20a976fa3f84a17a00f8a21607bf",
      "parents": [
        "5fbc461636c32efdb9d5216d491d37a40d54535b"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:13:56 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "truncate: drop \u0027oldsize\u0027 truncate_pagecache() parameter\n\ntruncate_pagecache() doesn\u0027t care about old size since commit\ncedabed49b39 (\"vfs: Fix vmtruncate() regression\").  Let\u0027s drop it.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26935fb06ee88f1188789807687c03041f3c70d9",
      "tree": "381c487716540b52348d78bee6555f8fa61d77ef",
      "parents": [
        "3cc69b638e11bfda5d013c2b75b60934aa0e88a1",
        "bf2ba3bc185269eca274b458aac46ba1ad7c1121"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:01:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:01:38 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 4 from Al Viro:\n \"list_lru pile, mostly\"\n\nThis came out of Andrew\u0027s pile, Al ended up doing the merge work so that\nAndrew didn\u0027t have to.\n\nAdditionally, a few fixes.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (42 commits)\n  super: fix for destroy lrus\n  list_lru: dynamically adjust node arrays\n  shrinker: Kill old -\u003eshrink API.\n  shrinker: convert remaining shrinkers to count/scan API\n  staging/lustre/libcfs: cleanup linux-mem.h\n  staging/lustre/ptlrpc: convert to new shrinker API\n  staging/lustre/obdclass: convert lu_object shrinker to count/scan API\n  staging/lustre/ldlm: convert to shrinkers to count/scan API\n  hugepage: convert huge zero page shrinker to new shrinker API\n  i915: bail out earlier when shrinker cannot acquire mutex\n  drivers: convert shrinkers to new count/scan API\n  fs: convert fs shrinkers to new scan/count API\n  xfs: fix dquot isolation hang\n  xfs-convert-dquot-cache-lru-to-list_lru-fix\n  xfs: convert dquot cache lru to list_lru\n  xfs: rework buffer dispose list tracking\n  xfs-convert-buftarg-lru-to-generic-code-fix\n  xfs: convert buftarg LRU to generic code\n  fs: convert inode and dentry shrinking to be node aware\n  vmscan: per-node deferred work\n  ...\n"
    },
    {
      "commit": "1d7b24ff335489dd7e864b71ba5b35eaa25b625a",
      "tree": "f27815967e44510a833cf0e017c2ecc004c14e8d",
      "parents": [
        "68f0d9d92e5430e250f2bd2a1e7a350e880d776a",
        "23c323af0375a7f63732bed0386aba5935b8de69"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:39:34 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:39:34 2013 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.12-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes (part 2) from Trond Myklebust:\n \"Bugfixes:\n   - Fix a few credential reference leaks resulting from the\n     SP4_MACH_CRED NFSv4.1 state protection code.\n   - Fix the SUNRPC bloatometer footprint: convert a 256K hashtable into\n     the intended 64 byte structure.\n   - Fix a long standing XDR issue with FREE_STATEID\n   - Fix a potential WARN_ON spamming issue\n   - Fix a missing dprintk() kuid conversion\n\n  New features:\n   - Enable the NFSv4.1 state protection support for the WRITE and\n     COMMIT operations\"\n\n* tag \u0027nfs-for-3.12-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  SUNRPC: No, I did not intend to create a 256KiB hashtable\n  sunrpc: Add missing kuids conversion for printing\n  NFSv4.1: sp4_mach_cred: WARN_ON -\u003e WARN_ON_ONCE\n  NFSv4.1: sp4_mach_cred: no need to ref count creds\n  NFSv4.1: fix SECINFO* use of put_rpccred\n  NFSv4.1: sp4_mach_cred: ask for WRITE and COMMIT\n  NFSv4.1 fix decode_free_stateid\n"
    },
    {
      "commit": "68f0d9d92e5430e250f2bd2a1e7a350e880d776a",
      "tree": "2e416905bafd3e87a6b6eda8837d5fefe143b19b",
      "parents": [
        "3272c544da48f8915a0e34189182aed029bd0f2b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:24:55 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 13:24:55 2013 -0700"
      },
      "message": "vfs: make d_path() get the root path under RCU\n\nThis avoids the spinlocks and refcounts in the d_path() sequence too\n(used by /proc and various other entities).  See commit 8b19e34188a3 for\nthe equivalent getcwd() system call path.\n\nAnd unlike getcwd(), d_path() doesn\u0027t copy the result to user space, so\nI don\u0027t need to fear _that_ particular bug happening again.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3272c544da48f8915a0e34189182aed029bd0f2b",
      "tree": "e2d6aacc2de8f26c14e844af6ed245b8a43d7978",
      "parents": [
        "ff812d724254b95df76b7775d1359d856927a840"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 12:40:15 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 12:40:15 2013 -0700"
      },
      "message": "vfs: use __getname/__putname for getcwd() system call\n\nIt\u0027s a pathname.  It should use the pathname allocators and\ndeallocators, and PATH_MAX instead of PAGE_SIZE.  Never mind that the\ntwo are commonly the same.\n\nWith this, the allocations scale up nicely too, and I can do getcwd()\nsystem calls at a rate of about 300M/s, with no lock contention\nanywhere.\n\nOf course, nobody sane does that, especially since getcwd() is\ntraditionally a very slow operation in Unix.  But this was also the\nsimplest way to benchmark the prepend_path() improvements by Waiman, and\nonce I saw the profiles I couldn\u0027t leave it well enough alone.\n\nBut apart from being an performance improvement (from using per-cpu slab\nallocators instead of the raw page allocator), it\u0027s actually a valid and\nreal cleanup.\n\nSigned-off-by: Linus \"OCD\" Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff812d724254b95df76b7775d1359d856927a840",
      "tree": "fa9dcbb1cc43aa0171a9cbaf4e668d6866d3cd20",
      "parents": [
        "5223161dc0f5e44fbf3d5e42d23697b6796cdf4e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:57:01 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 11:57:01 2013 -0700"
      },
      "message": "vfs: don\u0027t copy things to user space holding the rcu readlock\n\nOops.  That wasn\u0027t very smart.  We don\u0027t actually need the RCU lock any\nmore by the time we copy the cwd string to user space, but I had\nstupidly surrounded the whole thing with it.\n\nIntroduced by commit 8b19e34188a3 (\"vfs: make getcwd() get the root and\npwd path under rcu\")\n\nIs-a-big-hairy-idiot: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b19e34188a32d63a7da94ea8a3f5e39b0c66050",
      "tree": "b6affbe820569551bebfd39cc07965855080d2c1",
      "parents": [
        "5762482f5496cb1dd86acd2aace3ea25d1404e1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:35:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:35:47 2013 -0700"
      },
      "message": "vfs: make getcwd() get the root and pwd path under rcu\n\nThis allows us to skip all the crazy spinlocks and reference count\nupdates, and instead use the fs sequence read-lock to get an atomic\nsnapshot of the root and cwd information.\n\nWe might want to make the rule that \"prepend_path()\" is always called\nwith the RCU lock held, but the RCU lock nests fine and this is the\nminimal fix.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5762482f5496cb1dd86acd2aace3ea25d1404e1f",
      "tree": "6d74d7b501002f7516e2eb3068f5a942f63098ee",
      "parents": [
        "b7c09ad4014e3678e8cc01fdf663c9f43b272dc6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:12:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 10:12:47 2013 -0700"
      },
      "message": "vfs: move get_fs_root_and_pwd() to single caller\n\nLet\u0027s not pollute the include files with inline functions that are only\nused in a single place.  Especially not if we decide we might want to\nchange the semantics of said function to make it more efficient..\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b7c09ad4014e3678e8cc01fdf663c9f43b272dc6",
      "tree": "1edb073b0a76ce1530cb31c113f9e741e33ece0e",
      "parents": [
        "1812997720ab90d029548778c55d7315555e1fef",
        "d7396f07358a7c6e22c238d36d1d85f9d652a414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:58:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:58:51 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs updates from Chris Mason:\n \"This is against 3.11-rc7, but was pulled and tested against your tree\n  as of yesterday.  We do have two small incrementals queued up, but I\n  wanted to get this bunch out the door before I hop on an airplane.\n\n  This is a fairly large batch of fixes, performance improvements, and\n  cleanups from the usual Btrfs suspects.\n\n  We\u0027ve included Stefan Behren\u0027s work to index subvolume UUIDs, which is\n  targeted at speeding up send/receive with many subvolumes or snapshots\n  in place.  It closes a long standing performance issue that was built\n  in to the disk format.\n\n  Mark Fasheh\u0027s offline dedup work is also here.  In this case offline\n  means the FS is mounted and active, but the dedup work is not done\n  inline during file IO.  This is a building block where utilities are\n  able to ask the FS to dedup a series of extents.  The kernel takes\n  care of verifying the data involved really is the same.  Today this\n  involves reading both extents, but we\u0027ll continue to evolve the\n  patches\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (118 commits)\n  Btrfs: optimize key searches in btrfs_search_slot\n  Btrfs: don\u0027t use an async starter for most of our workers\n  Btrfs: only update disk_i_size as we remove extents\n  Btrfs: fix deadlock in uuid scan kthread\n  Btrfs: stop refusing the relocation of chunk 0\n  Btrfs: fix memory leak of uuid_root in free_fs_info\n  btrfs: reuse kbasename helper\n  btrfs: return btrfs error code for dev excl ops err\n  Btrfs: allow partial ordered extent completion\n  Btrfs: convert all bug_ons in free-space-cache.c\n  Btrfs: add support for asserts\n  Btrfs: adjust the fs_devices-\u003emissing count on unmount\n  Btrf: cleanup: don\u0027t check for root_refs \u003d\u003d 0 twice\n  Btrfs: fix for patch \"cleanup: don\u0027t check the same thing twice\"\n  Btrfs: get rid of one BUG() in write_all_supers()\n  Btrfs: allocate prelim_ref with a slab allocater\n  Btrfs: pass gfp_t to __add_prelim_ref() to avoid always using GFP_ATOMIC\n  Btrfs: fix race conditions in BTRFS_IOC_FS_INFO ioctl\n  Btrfs: fix race between removing a dev and writing sbs\n  Btrfs: remove ourselves from the cluster list under lock\n  ...\n"
    },
    {
      "commit": "1812997720ab90d029548778c55d7315555e1fef",
      "tree": "25e3bccce50977e9199df4ee0445a3af9e5da708",
      "parents": [
        "1370e97bb2eb1ef2df7355204e5a4ba13e12b861"
      ],
      "author": {
        "name": "Waiman Long",
        "email": "Waiman.Long@hp.com",
        "time": "Thu Sep 12 10:55:35 2013 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 09:25:23 2013 -0700"
      },
      "message": "dcache: get/release read lock in read_seqbegin_or_lock() \u0026 friend\n\nThis patch modifies read_seqbegin_or_lock() and need_seqretry() to use\nnewly introduced read_seqlock_excl() and read_sequnlock_excl()\nprimitives so that they won\u0027t change the sequence number even if they\nfall back to take the lock.  This is OK as no change to the protected\ndata structure is being made.\n\nIt will prevent one fallback to lock taking from cascading into a series\nof lock taking reducing performance because of the sequence number\nchange.  It will also allow other sequence readers to go forward while\nan exclusive reader lock is taken.\n\nThis patch also updates some of the inaccurate comments in the code.\n\nSigned-off-by: Waiman Long \u003cWaiman.Long@hp.com\u003e\nTo: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08474ed639e971e9d5a877cf7aba7ef91d847ae9",
      "tree": "519d3f7285658a8f03ce79583b3d33d158a2a10f",
      "parents": [
        "aa9e10409eae9dd61a336c6307d0a0b538063970"
      ],
      "author": {
        "name": "Mark Tinguely",
        "email": "tinguely@sgi.com",
        "time": "Thu Sep 12 09:01:23 2013 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Sep 12 09:51:49 2013 -0500"
      },
      "message": "xfs: remove dead code from xlog_recover_inode_pass2\n\nAdditional code in the error handler of xlog_recover_inode_pass2()\nresults in the following error:\n\nstatic checker warning: \"fs/xfs/xfs_log_recover.c:2999\nxlog_recover_inode_pass2()\n\t info: ignoring unreachable code.\"\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "aa9e10409eae9dd61a336c6307d0a0b538063970",
      "tree": "2283f6cb17199b0945bf08dcac7a88040a65bc76",
      "parents": [
        "74ffa796e127906883cacedcf3871494192c9e42"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Thu Sep 12 00:17:31 2013 +0300"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Sep 12 09:42:08 2013 -0500"
      },
      "message": "xfs: \u003d vs \u003d\u003d typo in ASSERT()\n\nThere is a \u0027\u003d\u0027 vs \u0027\u003d\u003d\u0027 typo so the ASSERT()s are always true.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "7b7a2f0a31c6c1ff53a3c87c0bca4f8d01471391",
      "tree": "17b0e72c8e996e581974bbbc0e7f68f07d87ab1e",
      "parents": [
        "c3567f8a359b7917dcffa442301f88ed0a75211f",
        "42873b0a282ac84a56e0e48c408beb62d0ad2917"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:41:12 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 07:41:12 2013 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French:\n \"CIFS update including case insensitive file name matching improvements\n  for UTF-8 to Unicode, various small cifs fixes, SMB2/SMB3 leasing\n  improvements, support for following SMB2 symlinks, SMB3 packet signing\n  improvements\"\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6: (25 commits)\n  CIFS: Respect epoch value from create lease context v2\n  CIFS: Add create lease v2 context for SMB3\n  CIFS: Move parsing lease buffer to ops struct\n  CIFS: Move creating lease buffer to ops struct\n  CIFS: Store lease state itself rather than a mapped oplock value\n  CIFS: Replace clientCanCache* bools with an integer\n  [CIFS] quiet sparse compile warning\n  cifs: Start using per session key for smb2/3 for signature generation\n  cifs: Add a variable specific to NTLMSSP for key exchange.\n  cifs: Process post session setup code in respective dialect functions.\n  CIFS: convert to use le32_add_cpu()\n  CIFS: Fix missing lease break\n  CIFS: Fix a memory leak when a lease break comes\n  cifs: add winucase_convert.pl to Documentation/ directory\n  cifs: convert case-insensitive dentry ops to use new case conversion routines\n  cifs: add new case-insensitive conversion routines that are based on wchar_t\u0027s\n  [CIFS] Add Scott to list of cifs contributors\n  cifs: Move and expand MAX_SERVER_SIZE definition\n  cifs: Expand max share name length to 256\n  cifs: Move string length definitions to uapi\n  ...\n"
    },
    {
      "commit": "1ae276a9113305fb74c54f8df72da3ba2d559e60",
      "tree": "1a71302c1f856a5b2c3e2d195b9c3719500dd251",
      "parents": [
        "3b38f56c9dc262c31391b5ae095178960108049b",
        "cb69f36ba1f8d5e73c46538e84a88178fb17f23d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 19:17:04 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 19:17:04 2013 -0700"
      },
      "message": "Merge tag \u0027ecryptfs-3.12-rc1-crypt-ctx\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs\n\nPull eCryptfs fixes from Tyler Hicks:\n \"Two small fixes to the code that initializes the per-file crypto\n  contexts\"\n\n* tag \u0027ecryptfs-3.12-rc1-crypt-ctx\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:\n  ecryptfs: avoid ctx initialization race\n  ecryptfs: remove check for if an array is NULL\n"
    },
    {
      "commit": "c2d95729e3094ecdd8c54e856bbe971adbbd7f48",
      "tree": "76cc5b551227d3d55d68a93105c1fe8080dfb812",
      "parents": [
        "bbda1baeeb2f4aff3addac3d086a1e56c3f2503e",
        "b34081f1cd59585451efaa69e1dff1b9507e6c89"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 16:08:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 16:08:54 2013 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew Morton)\n\nMerge first patch-bomb from Andrew Morton:\n - Some pidns/fork/exec tweaks\n - OCFS2 updates\n - Most of MM - there remain quite a few memcg parts which depend on\n   pending core cgroups changes.  Which might have been already merged -\n   I\u0027ll check tomorrow...\n - Various misc stuff all over the place\n - A few block bits which I never got around to sending to Jens -\n   relatively minor things.\n - MAINTAINERS maintenance\n - A small number of lib/ updates\n - checkpatch updates\n - epoll\n - firmware/dmi-scan\n - Some kprobes work for S390\n - drivers/rtc updates\n - hfsplus feature work\n - vmcore feature work\n - rbtree upgrades\n - AOE updates\n - pktcdvd cleanups\n - PPS\n - memstick\n - w1\n - New \"inittmpfs\" feature, which does the obvious\n - More IPC work from Davidlohr.\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (303 commits)\n  lz4: fix compression/decompression signedness mismatch\n  ipc: drop ipc_lock_check\n  ipc, shm: drop shm_lock_check\n  ipc: drop ipc_lock_by_ptr\n  ipc, shm: guard against non-existant vma in shmdt(2)\n  ipc: document general ipc locking scheme\n  ipc,msg: drop msg_unlock\n  ipc: rename ids-\u003erw_mutex\n  ipc,shm: shorten critical region for shmat\n  ipc,shm: cleanup do_shmat pasta\n  ipc,shm: shorten critical region for shmctl\n  ipc,shm: make shmctl_nolock lockless\n  ipc,shm: introduce shmctl_nolock\n  ipc: drop ipcctl_pre_down\n  ipc,shm: shorten critical region in shmctl_down\n  ipc,shm: introduce lockless functions to obtain the ipc object\n  initmpfs: use initramfs if rootfstype\u003d or root\u003d specified\n  initmpfs: make rootfs use tmpfs when CONFIG_TMPFS enabled\n  initmpfs: move rootfs code from fs/ramfs/ to init/\n  initmpfs: move bdi setup from init_rootfs to init_ramfs\n  ...\n"
    },
    {
      "commit": "57f150a58c40cda598c31af8bceb8598f43c3e5f",
      "tree": "fde3e7fc48c97f0db5b3975fd74e12773f423fe2",
      "parents": [
        "4bbee76bc986af326be0a84ad661000cf89b29f6"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Sep 11 14:26:10 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:37 2013 -0700"
      },
      "message": "initmpfs: move rootfs code from fs/ramfs/ to init/\n\nWhen the rootfs code was a wrapper around ramfs, having them in the same\nfile made sense.  Now that it can wrap another filesystem type, move it in\nwith the init code instead.\n\nThis also allows a subsequent patch to access rootfstype\u003d command line\narg.\n\nSigned-off-by: Rob Landley \u003crob@landley.net\u003e\nCc: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Stephen Warren \u003cswarren@nvidia.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4bbee76bc986af326be0a84ad661000cf89b29f6",
      "tree": "810ae2c74145a7a5f31a443141bb1cc853ba29a8",
      "parents": [
        "137fdcc18a5979b53c0a1379b25fc68724e98a45"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Sep 11 14:26:08 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:37 2013 -0700"
      },
      "message": "initmpfs: move bdi setup from init_rootfs to init_ramfs\n\nEven though ramfs hasn\u0027t got a backing device, commit e0bf68ddec4f (\"mm:\nbdi init hooks\") added one anyway, and put the initialization in\ninit_rootfs() since that\u0027s the first user, leaving it out of init_ramfs()\nto avoid duplication.\n\nBut initmpfs uses init_tmpfs() instead, so move the init into the\nfilesystem\u0027s init function, add a \"once\" guard to prevent duplicate\ninitialization, and call the filesystem init from rootfs init.\n\nThis goes part of the way to allowing ramfs to be built as a module.\n\n[akpm@linux-foundation.org; using bit 1 was odd]\nSigned-off-by: Rob Landley \u003crob@landley.net\u003e\nCc: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Stephen Warren \u003cswarren@nvidia.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "137fdcc18a5979b53c0a1379b25fc68724e98a45",
      "tree": "4578399c35a509933e38e2951f46efe167012785",
      "parents": [
        "5e4c0d974139a98741b829b27cf38dc8f9284490"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Wed Sep 11 14:26:06 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:36 2013 -0700"
      },
      "message": "initmpfs: replace MS_NOUSER in initramfs\n\nMounting MS_NOUSER prevents --bind mounts from rootfs.  Prevent new rootfs\nmounts with a different mechanism that doesn\u0027t affect bind mounts.\n\nSigned-off-by: Rob Landley \u003crob@landley.net\u003e\nCc: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Stephen Warren \u003cswarren@nvidia.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e4c0d974139a98741b829b27cf38dc8f9284490",
      "tree": "fddd959828300c1de1ade15eeb33606c317b79db",
      "parents": [
        "4b39248365e09fb8268b6fecd1704907ffc3d980"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 11 14:26:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:36 2013 -0700"
      },
      "message": "lib/radix-tree.c: make radix_tree_node_alloc() work correctly within interrupt\n\nWith users of radix_tree_preload() run from interrupt (block/blk-ioc.c is\none such possible user), the following race can happen:\n\nradix_tree_preload()\n...\nradix_tree_insert()\n  radix_tree_node_alloc()\n    if (rtp-\u003enr) {\n      ret \u003d rtp-\u003enodes[rtp-\u003enr - 1];\n\u003cinterrupt\u003e\n...\nradix_tree_preload()\n...\nradix_tree_insert()\n  radix_tree_node_alloc()\n    if (rtp-\u003enr) {\n      ret \u003d rtp-\u003enodes[rtp-\u003enr - 1];\n\nAnd we give out one radix tree node twice.  That clearly results in radix\ntree corruption with different results (usually OOPS) depending on which\ntwo users of radix tree race.\n\nWe fix the problem by making radix_tree_node_alloc() always allocate fresh\nradix tree nodes when in interrupt.  Using preloading when in interrupt\ndoesn\u0027t make sense since all the allocations have to be atomic anyway and\nwe cannot steal nodes from process-context users because some users rely\non radix_tree_insert() succeeding after radix_tree_preload().\nin_interrupt() check is somewhat ugly but we cannot simply key off passed\ngfp_mask as that is acquired from root_gfp_mask() and thus the same for\nall preload users.\n\nAnother part of the fix is to avoid node preallocation in\nradix_tree_preload() when passed gfp_mask doesn\u0027t allow waiting.  Again,\npreallocation in such case doesn\u0027t make sense and when preallocation would\nhappen in interrupt we could possibly leak some allocated nodes.  However,\nsome users of radix_tree_preload() require following radix_tree_insert()\nto succeed.  To avoid unexpected effects for these users,\nradix_tree_preload() only warns if passed gfp mask doesn\u0027t allow waiting\nand we provide a new function radix_tree_maybe_preload() for those users\nwhich get different gfp mask from different call sites and which are\nprepared to handle radix_tree_insert() failure.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6325932666540beea18c800016368dc921068611",
      "tree": "8ac1fc5ae9493041631221999cbdce0d677815c1",
      "parents": [
        "5173b414e42cb81e764f5e92a2f143e9a84fa3d1"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Sep 11 14:25:48 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:29 2013 -0700"
      },
      "message": "affs: use loff_t in affs_truncate()\n\nIt seems pretty unlikely that AFFS supports files over 4GB but we may as\nwell leave use loff_t just for cleanness sake instead of truncating it to\n32 bits.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11e376a3f9ffa85bf444b65df5326612b083c501",
      "tree": "8b1808f487fef222795b0dfe806c52d92d7ad1d5",
      "parents": [
        "23df79da8eb97757e39af7625665c1c5cecc610b"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:24:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:14 2013 -0700"
      },
      "message": "vmcore: enable /proc/vmcore mmap for s390\n\nThe patch \"s390/vmcore: Implement remap_oldmem_pfn_range for s390\" allows\nnow to use mmap also on s390.\n\nSo enable mmap for s390 again.\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nCc: HATAYAMA Daisuke \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: Jan Willeke \u003cwilleke@de.ibm.com\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9cb218131de1c59dca9063b2efe876f053f316af",
      "tree": "e01f110a4137e8e2d33bc28f1f77e3a6361c0ee4",
      "parents": [
        "97b0f6f9cd73ff8285835c5e295d3c4b0e2dbf78"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:24:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:10 2013 -0700"
      },
      "message": "vmcore: introduce remap_oldmem_pfn_range()\n\nFor zfcpdump we can\u0027t map the HSA storage because it is only available via\na read interface.  Therefore, for the new vmcore mmap feature we have\nintroduce a new mechanism to create mappings on demand.\n\nThis patch introduces a new architecture function remap_oldmem_pfn_range()\nthat should be used to create mappings with remap_pfn_range() for oldmem\nareas that can be directly mapped.  For zfcpdump this is everything\nbesides of the HSA memory.  For the areas that are not mapped by\nremap_oldmem_pfn_range() a generic vmcore a new generic vmcore fault\nhandler mmap_vmcore_fault() is called.\n\nThis handler works as follows:\n\n* Get already available or new page from page cache (find_or_create_page)\n* Check if /proc/vmcore page is filled with data (PageUptodate)\n* If yes:\n  Return that page\n* If no:\n  Fill page using __vmcore_read(), set PageUptodate, and return page\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: HATAYAMA Daisuke \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: Jan Willeke \u003cwilleke@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be8a8d069e508d4408125e2b1471f549e7813d25",
      "tree": "d69d792fdefbaebc9346f7c3bad36ee4383ef659",
      "parents": [
        "80c74f6a40284c5c5d49f3b3289172bbce0b30b8"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:24:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:10 2013 -0700"
      },
      "message": "vmcore: introduce ELF header in new memory feature\n\nFor s390 we want to use /proc/vmcore for our SCSI stand-alone dump\n(zfcpdump).  We have support where the first HSA_SIZE bytes are saved into\na hypervisor owned memory area (HSA) before the kdump kernel is booted.\nWhen the kdump kernel starts, it is restricted to use only HSA_SIZE bytes.\n\nThe advantages of this mechanism are:\n\n * No crashkernel memory has to be defined in the old kernel.\n * Early boot problems (before kexec_load has been done) can be dumped\n * Non-Linux systems can be dumped.\n\nWe modify the s390 copy_oldmem_page() function to read from the HSA memory\nif memory below HSA_SIZE bytes is requested.\n\nSince we cannot use the kexec tool to load the kernel in this scenario,\nwe have to build the ELF header in the 2nd (kdump/new) kernel.\n\nSo with the following patch set we would like to introduce the new\nfunction that the ELF header for /proc/vmcore can be created in the 2nd\nkernel memory.\n\nThe following steps are done during zfcpdump execution:\n\n1.  Production system crashes\n2.  User boots a SCSI disk that has been prepared with the zfcpdump tool\n3.  Hypervisor saves CPU state of boot CPU and HSA_SIZE bytes of memory into HSA\n4.  Boot loader loads kernel into low memory area\n5.  Kernel boots and uses only HSA_SIZE bytes of memory\n6.  Kernel saves registers of non-boot CPUs\n7.  Kernel does memory detection for dump memory map\n8.  Kernel creates ELF header for /proc/vmcore\n9.  /proc/vmcore uses this header for initialization\n10. The zfcpdump user space reads /proc/vmcore to write dump to SCSI disk\n    - copy_oldmem_page() copies from HSA for memory below HSA_SIZE\n    - copy_oldmem_page() copies from real memory for memory above HSA_SIZE\n\nCurrently for s390 we create the ELF core header in the 2nd kernel with a\nsmall trick.  We relocate the addresses in the ELF header in a way that\nfor the /proc/vmcore code it seems to be in the 1st kernel (old) memory\nand the read_from_oldmem() returns the correct data.  This allows the\n/proc/vmcore code to use the ELF header in the 2nd kernel.\n\nThis patch:\n\nExchange the old mechanism with the new and much cleaner function call\noverride feature that now offcially allows to create the ELF core header\nin the 2nd kernel.\n\nTo use the new feature the following function have to be defined\nby the architecture backend code to read from new memory:\n\n * elfcorehdr_alloc: Allocate ELF header\n * elfcorehdr_free: Free the memory of the ELF header\n * elfcorehdr_read: Read from ELF header\n * elfcorehdr_read_notes: Read from ELF notes\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: HATAYAMA Daisuke \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: Jan Willeke \u003cwilleke@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b3c538f5b2cfc53cb6803ec5001bbcf8f18a98e",
      "tree": "5a3dd78b655c93d7248facb2377be2630435b1fc",
      "parents": [
        "4e0621a07ea58a0dc15859be3b743bdeb194a51b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:09 2013 -0700"
      },
      "message": "exec: cleanup the error handling in search_binary_handler()\n\nThe error hanling and ret-from-loop look confusing and inconsistent.\n\n- \"retval \u003e\u003d 0\" simply returns\n\n- \"!bprm-\u003efile\" returns too but with read_unlock() because\n   binfmt_lock was already re-acquired\n\n- \"retval !\u003d -ENOEXEC || bprm-\u003emm \u003d\u003d NULL\" does \"break\" and\n  relies on the same check after the main loop\n\nConsolidate these checks into a single if/return statement.\n\nneed_retry still checks \"retval \u003d\u003d -ENOEXEC\", but this and -ENOENT before\nthe main loop are not needed.  This is only for pathological and\nimpossible list_empty(\u0026formats) case.\n\nIt is not clear why do we check \"bprm-\u003emm \u003d\u003d NULL\", probably this\nshould be removed.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e0621a07ea58a0dc15859be3b743bdeb194a51b",
      "tree": "954721cb1776b325b74a48b1858d1b0ac6ff580b",
      "parents": [
        "cb7b6b1cbc20a970c7124efae1c2478155604b54"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:45 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:07 2013 -0700"
      },
      "message": "exec: don\u0027t retry if request_module() fails\n\nA separate one-liner for better documentation.\n\nIt doesn\u0027t make sense to retry if request_module() fails to exec\n/sbin/modprobe, add the additional \"request_module() \u003c 0\" check.\n\nHowever, this logic still doesn\u0027t look exactly right:\n\n1. It would be better to check \"request_module() !\u003d 0\", the user\n   space modprobe process should report the correct exit code.\n   But I didn\u0027t dare to add the user-visible change.\n\n2. The whole ENOEXEC logic looks suboptimal. Suppose that we try\n   to exec a \"#!path-to-unsupported-binary\" script. In this case\n   request_module() + \"retry\" will be done twice: first by the\n   \"depth \u003d\u003d 1\" code, and then again by the \"depth \u003d\u003d 0\" caller\n   which doesn\u0027t make sense.\n\n3. And note that in the case above bprm-\u003ebuf was already changed\n   by load_script()-\u003eprepare_binprm(), so this looks even more\n   ugly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb7b6b1cbc20a970c7124efae1c2478155604b54",
      "tree": "ef0e867017f0a6fea23ebdcd87753174a4c75a25",
      "parents": [
        "92eaa565add62d56b90987f58ea9feafc5a7c183"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:44 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:05 2013 -0700"
      },
      "message": "exec: cleanup the CONFIG_MODULES logic\n\nsearch_binary_handler() uses \"for (try\u003d0; try\u003c2; try++)\" to avoid \"goto\"\nbut the code looks too complicated and horrible imho.  We still need to\ncheck \"try \u003d\u003d 0\" before request_module() and add the additional \"break\"\nfor !CONFIG_MODULES case.\n\nKill this loop and use a simple \"bool need_retry\" + \"goto retry\".  The\ncode looks much simpler and we do not even need ifdef\u0027s, gcc can optimize\nout the \"if (need_retry)\" block if !IS_ENABLED().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92eaa565add62d56b90987f58ea9feafc5a7c183",
      "tree": "78f7bfaa0b99b2b2f5b554bc883b67ac68412e21",
      "parents": [
        "52f14282bb0c3d3e5ba2a9eaacb12ff37a033e7e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:42 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:05 2013 -0700"
      },
      "message": "exec: kill -\u003eload_binary !\u003d NULL check in search_binary_handler()\n\nsearch_binary_handler() checks -\u003eload_binary !\u003d NULL for no reason, this\nmethod should be always defined.  Turn this check into WARN_ON() and move\nit into __register_binfmt().\n\nAlso, kill the function pointer.  The current code looks confusing, as if\n-\u003eload_binary can go away after read_unlock(\u0026binfmt_lock).  But we rely on\nmodule_get(fmt-\u003emodule), this fmt can\u0027t be changed or unregistered,\notherwise this code is buggy anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52f14282bb0c3d3e5ba2a9eaacb12ff37a033e7e",
      "tree": "c0f02056772e53e294784388b4202e94271c46e6",
      "parents": [
        "9beb266f2d7e5362c5bb9f999255aa1af5318aef"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:05 2013 -0700"
      },
      "message": "exec: move allow_write_access/fput to exec_binprm()\n\nWhen search_binary_handler() succeeds it does allow_write_access() and\nfput(), then it clears bprm-\u003efile to ensure the caller will not do the\nsame.\n\nWe can simply move this code to exec_binprm() which is called only once.\nIn fact we could move this to free_bprm() and remove the same code in\ndo_execve_common\u0027s error path.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9beb266f2d7e5362c5bb9f999255aa1af5318aef",
      "tree": "96ba701872c5b66b1801f785a6a50b6d3b74e2b1",
      "parents": [
        "131b2f9f1214f338f0bf7c0d9760019f2b1d0c20"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:40 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:05 2013 -0700"
      },
      "message": "exec: proc_exec_connector() should be called only once\n\nA separate one-liner with the minor fix.\n\nPROC_EVENT_EXEC reports the \"exec\" event, but this message is sent at\nleast twice if search_binary_handler() is called by -\u003eload_binary()\nrecursively, say, load_script().\n\nMove it to exec_binprm(), this is \"depth \u003d\u003d 0\" code too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "131b2f9f1214f338f0bf7c0d9760019f2b1d0c20",
      "tree": "b60a498414e259fe4e81f210378538f90ada9224",
      "parents": [
        "5d1baf3b63bfc8c709dc44df85ff1475c7ef489d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:04 2013 -0700"
      },
      "message": "exec: kill \"int depth\" in search_binary_handler()\n\nNobody except search_binary_handler() should touch -\u003erecursion_depth, \"int\ndepth\" buys nothing but complicates the code, kill it.\n\nProbably we should also kill \"fn\" and the !NULL check, -\u003eload_binary\nshould be always defined.  And it can not go away after read_unlock() or\nthis code is buggy anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d1baf3b63bfc8c709dc44df85ff1475c7ef489d",
      "tree": "c22cad96687d70a544674f7eb823026aecf4ceeb",
      "parents": [
        "96d0df79f2644fc823f26c06491e182d87a90c2a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:03 2013 -0700"
      },
      "message": "exec: introduce exec_binprm() for \"depth \u003d\u003d 0\" code\n\ntask_pid_nr_ns() and trace/ptrace code in the middle of the recursive\nsearch_binary_handler() looks confusing and imho annoying.  We only need\nthis code if \"depth \u003d\u003d 0\", lets add a simple helper which calls\nsearch_binary_handler() and does trace_sched_process_exec() +\nptrace_event().\n\nThe patch also moves the setting of task-\u003edid_exec, we need to do this\nonly once.\n\nNote: we can kill either task-\u003edid_exec or PF_FORKNOEXEC.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Zach Levis \u003czml@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96d0df79f2644fc823f26c06491e182d87a90c2a",
      "tree": "09f0d82a4ac4e0410a0067466eb04ab138db3e4f",
      "parents": [
        "a3c039929d01f793c47922017b6c0ae438e11598"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Sep 11 14:24:37 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:03 2013 -0700"
      },
      "message": "proc: make proc_fd_permission() thread-friendly\n\nproc_fd_permission() says \"process can still access /proc/self/fd after it\nhas executed a setuid()\", but the \"task_pid() \u003d proc_pid() check only\nhelps if the task is group leader, /proc/self points to\n/proc/\u003cleader-pid\u003e.\n\nChange this check to use task_tgid() so that the whole thread group can\naccess its /proc/self/fd or /proc/\u003ctid-of-sub-thread\u003e/fd.\n\nNotes:\n\t- CLONE_THREAD does not require CLONE_FILES so task-\u003efiles\n\t  can differ, but I don\u0027t think this can lead to any security\n\t  problem. And this matches same_thread_group() in\n\t  __ptrace_may_access().\n\n\t- /proc/self should probably point to /proc/\u003cthread-tid\u003e, but\n\t  it is too late to change the rules. Perhaps it makes sense\n\t  to add /proc/thread though.\n\nTest-case:\n\n\tvoid *tfunc(void *arg)\n\t{\n\t\tassert(opendir(\"/proc/self/fd\"));\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t t;\n\t\tpthread_create(\u0026t, NULL, tfunc, NULL);\n\t\tpthread_join(t, NULL);\n\t\treturn 0;\n\t}\n\nfails if, say, this executable is not readable and suid_dumpable \u003d 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3c039929d01f793c47922017b6c0ae438e11598",
      "tree": "38c5b762cbdf36877416e80f5009ec5e48c624b8",
      "parents": [
        "4649602265495a3bb776d777c91dba569f4afb5d"
      ],
      "author": {
        "name": "Chen Gang",
        "email": "gang.chen@asianux.com",
        "time": "Wed Sep 11 14:24:35 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:03 2013 -0700"
      },
      "message": "fs/proc/task_mmu.c: check the return value of mpol_to_str()\n\nmpol_to_str() may fail, and not fill the buffer (e.g. -EINVAL), so need\ncheck about it, or buffer may not be zero based, and next seq_printf()\nwill cause issue.\n\nThe failure return need after mpol_cond_put() to match get_vma_policy().\n\nSigned-off-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be49b30a98fe7e20f898fcfe7b6c082700fb96e8",
      "tree": "aaa6dfedf554476d31775ed32aa69cc0a6b2bfdd",
      "parents": [
        "65aafb1e7484b7434a0c1d4c593191ebe5776a2f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Sep 11 14:24:34 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:01 2013 -0700"
      },
      "message": "fs/file_table.c:fput(): make comment more truthful\n\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "65aafb1e7484b7434a0c1d4c593191ebe5776a2f",
      "tree": "163b908974a487e6e8bdfd893d20fb28234255d2",
      "parents": [
        "73af963f9f3036dffed55c3a2898598186db1045"
      ],
      "author": {
        "name": "Stéphane Graber",
        "email": "stgraber@ubuntu.com",
        "time": "Wed Sep 11 14:24:32 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:01 2013 -0700"
      },
      "message": "coredump: add new %P variable in core_pattern\n\nAdd a new %P variable to be used in core_pattern.  This variable contains\nthe global PID (PID in the init namespace) as %p contains the PID in the\ncurrent namespace which isn\u0027t always what we want.\n\nThe main use for this is to make it easier to handle crashes that happened\nwithin a container.  With that new variables it\u0027s possible to have the\ncrashes dumped into the container or forwarded to the host with the right\nPID (from the host\u0027s point of view).\n\nSigned-off-by: Stéphane Graber \u003cstgraber@ubuntu.com\u003e\nReported-by: Hans Feldt \u003chans.feldt@ericsson.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Andy Whitcroft \u003capw@canonical.com\u003e\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4c1107cc962613ea3572e5abba861a35d494b98",
      "tree": "9e83d6f00b37cb65a8e2f2ef435bead7b662c10f",
      "parents": [
        "eef80d4ad1399067f26538a7dd56ff3df71e9278"
      ],
      "author": {
        "name": "Vyacheslav Dubeyko",
        "email": "slava@dubeyko.com",
        "time": "Wed Sep 11 14:24:30 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:01 2013 -0700"
      },
      "message": "hfsplus: integrate POSIX ACLs support into driver\n\nIntegrate implemented POSIX ACLs support into hfsplus driver.\n\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eef80d4ad1399067f26538a7dd56ff3df71e9278",
      "tree": "aa2752f1b51d182d14bd5689f86908857765c558",
      "parents": [
        "2c92057e45c2d60f859ca3606cfd402c48785d82"
      ],
      "author": {
        "name": "Vyacheslav Dubeyko",
        "email": "slava@dubeyko.com",
        "time": "Wed Sep 11 14:24:29 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:01 2013 -0700"
      },
      "message": "hfsplus: implement POSIX ACLs support\n\nImplement POSIX ACLs support in hfsplus driver.\n\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c92057e45c2d60f859ca3606cfd402c48785d82",
      "tree": "c4d2a3c4919f989f81c615875aa2675d87b037fb",
      "parents": [
        "7c1d69ee11b8986c40a53d8e2238204fc86f5b33"
      ],
      "author": {
        "name": "Vyacheslav Dubeyko",
        "email": "slava@dubeyko.com",
        "time": "Wed Sep 11 14:24:28 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:59:00 2013 -0700"
      },
      "message": "hfsplus: add necessary declarations for POSIX ACLs support\n\nThis patchset implements POSIX ACLs support in hfsplus driver.\n\nMac OS X beginning with version 10.4 (\"Tiger\") support NFSv4 ACLs, which\nare part of the NFSv4 standard.  HFS+ stores ACLs in the form of\nspecially named extended attributes (com.apple.system.Security).\n\nBut this patchset doesn\u0027t use \"com.apple.system.Security\" extended\nattributes.  It implements support of POSIX ACLs in the form of extended\nattributes with names \"system.posix_acl_access\" and\n\"system.posix_acl_default\".  These xattrs are treated only under Linux.\nPOSIX ACLs doesn\u0027t mean something under Mac OS X.  Thereby, this patch\nset provides opportunity to use POSIX ACLs under Linux on HFS+\nfilesystem.\n\nThis patch:\n\nAdd CONFIG_HFSPLUS_FS_POSIX_ACL kernel configuration option, DBG_ACL_MOD\ndebugging flag and acl.h file with declaration of essential functions\nfor support POSIX ACLs in hfsplus driver.\n\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91cf5ab60ff82ecf4550a596867787c1e360dd3f",
      "tree": "bcfba2f74873abc7c59fc2d3c4e5ae27ad4386f7",
      "parents": [
        "8716de383b82f16d920513138f1691e40ef5a9e3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Sep 11 14:24:06 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:50 2013 -0700"
      },
      "message": "epoll: add a reschedule point in ep_free()\n\nep_free() might iterate on a huge set of epitems and hold cpu too long.\nAdd two cond_resched() in order to yield cpu to other tasks.  This is safe\nas we only hold mutexes in this function.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nAcked-by: Eric Wong \u003cnormalperson@yhbt.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc5c8f0783a4a2b43d05155782e71a22a91b26a5",
      "tree": "cd972f6507e537ef5eec06cd522b5a2bfa27535d",
      "parents": [
        "a6b088875b5cfc2be95242826f31523214c083a7"
      ],
      "author": {
        "name": "Gu Zheng",
        "email": "guz.fnst@cn.fujitsu.com",
        "time": "Wed Sep 11 14:23:21 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:21 2013 -0700"
      },
      "message": "fs/bio-integrity: fix a potential mem leak\n\nFree the bio_integrity_pool in the fail path of biovec_create_pool in\nfunction bioset_integrity_create().\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "146d7009b45cdb45ec3be8ad73177dae58f4bc91",
      "tree": "70c93baa9df755952c065c334df0bd86e7024889",
      "parents": [
        "325c4ef5c4b17372c3222d896040d7848e67fbdb"
      ],
      "author": {
        "name": "Junxiao Bi",
        "email": "junxiao.bi@oracle.com",
        "time": "Wed Sep 11 14:23:04 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:13 2013 -0700"
      },
      "message": "writeback: fix race that cause writeback hung\n\nThere is a race between mark inode dirty and writeback thread, see the\nfollowing scenario.  In this case, writeback thread will not run though\nthere is dirty_io.\n\n__mark_inode_dirty()                                          bdi_writeback_workfn()\n\t...                                                       \t...\n\tspin_lock(\u0026inode-\u003ei_lock);\n\t...\n\tif (bdi_cap_writeback_dirty(bdi)) {\n\t    \u003c\u003c\u003c assume wb has dirty_io, so wakeup_bdi is false.\n\t    \u003c\u003c\u003c the following inode_dirty also have wakeup_bdi false.\n\t    if (!wb_has_dirty_io(\u0026bdi-\u003ewb))\n\t\t    wakeup_bdi \u003d true;\n\t}\n\tspin_unlock(\u0026inode-\u003ei_lock);\n\t                                                            \u003c\u003c\u003c assume last dirty_io is removed here.\n\t                                                            pages_written \u003d wb_do_writeback(wb);\n\t                                                            ...\n\t                                                            \u003c\u003c\u003c work_list empty and wb has no dirty_io,\n\t                                                            \u003c\u003c\u003c delayed_work will not be queued.\n\t                                                            if (!list_empty(\u0026bdi-\u003ework_list) ||\n\t                                                                (wb_has_dirty_io(wb) \u0026\u0026 dirty_writeback_interval))\n\t                                                                queue_delayed_work(bdi_wq, \u0026wb-\u003edwork,\n\t                                                                    msecs_to_jiffies(dirty_writeback_interval * 10));\n\tspin_lock(\u0026bdi-\u003ewb.list_lock);\n\tinode-\u003edirtied_when \u003d jiffies;\n\t\u003c\u003c\u003c new dirty_io is added.\n\tlist_move(\u0026inode-\u003ei_wb_list, \u0026bdi-\u003ewb.b_dirty);\n\tspin_unlock(\u0026bdi-\u003ewb.list_lock);\n\n\t\u003c\u003c\u003c though there is dirty_io, but wakeup_bdi is false,\n\t\u003c\u003c\u003c so writeback thread will not be waked up and\n\t\u003c\u003c\u003c the new dirty_io will not be flushed.\n\tif (wakeup_bdi)\n\t    bdi_wakeup_thread_delayed(bdi);\n\nWriteback will run until there is a new flush work queued.  This may cause\na lot of dirty pages stay in memory for a long time.\n\nSigned-off-by: Junxiao Bi \u003cjunxiao.bi@oracle.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a53748568f79641eaf40e41081a2f4987f005c2",
      "tree": "929e07be4f378f96398110dce35a64b61e1505d7",
      "parents": [
        "4c3bffc272755c98728c2b58b1a8148cf9e9fd1f"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Wed Sep 11 14:22:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:04 2013 -0700"
      },
      "message": "mm/page-writeback.c: add strictlimit feature\n\nThe feature prevents mistrusted filesystems (ie: FUSE mounts created by\nunprivileged users) to grow a large number of dirty pages before\nthrottling.  For such filesystems balance_dirty_pages always check bdi\ncounters against bdi limits.  I.e.  even if global \"nr_dirty\" is under\n\"freerun\", it\u0027s not allowed to skip bdi checks.  The only use case for now\nis fuse: it sets bdi max_ratio to 1% by default and system administrators\nare supposed to expect that this limit won\u0027t be exceeded.\n\nThe feature is on if a BDI is marked by BDI_CAP_STRICTLIMIT flag.  A\nfilesystem may set the flag when it initializes its BDI.\n\nThe problematic scenario comes from the fact that nobody pays attention to\nthe NR_WRITEBACK_TEMP counter (i.e.  number of pages under fuse\nwriteback).  The implementation of fuse writeback releases original page\n(by calling end_page_writeback) almost immediately.  A fuse request queued\nfor real processing bears a copy of original page.  Hence, if userspace\nfuse daemon doesn\u0027t finalize write requests in timely manner, an\naggressive mmap writer can pollute virtually all memory by those temporary\nfuse page copies.  They are carefully accounted in NR_WRITEBACK_TEMP, but\nnobody cares.\n\nTo make further explanations shorter, let me use \"NR_WRITEBACK_TEMP\nproblem\" as a shortcut for \"a possibility of uncontrolled grow of amount\nof RAM consumed by temporary pages allocated by kernel fuse to process\nwriteback\".\n\nThe problem was very easy to reproduce.  There is a trivial example\nfilesystem implementation in fuse userspace distribution: fusexmp_fh.c.  I\nadded \"sleep(1);\" to the write methods, then recompiled and mounted it.\nThen created a huge file on the mount point and run a simple program which\nmmap-ed the file to a memory region, then wrote a data to the region.  An\nhour later I observed almost all RAM consumed by fuse writeback.  Since\nthen some unrelated changes in kernel fuse made it more difficult to\nreproduce, but it is still possible now.\n\nPutting this theoretical happens-in-the-lab thing aside, there is another\nthing that really hurts real world (FUSE) users.  This is write-through\npage cache policy FUSE currently uses.  I.e.  handling write(2), kernel\nfuse populates page cache and flushes user data to the server\nsynchronously.  This is excessively suboptimal.  Pavel Emelyanov\u0027s patches\n(\"writeback cache policy\") solve the problem, but they also make resolving\nNR_WRITEBACK_TEMP problem absolutely necessary.  Otherwise, simply copying\na huge file to a fuse mount would result in memory starvation.  Miklos,\nthe maintainer of FUSE, believes strictlimit feature the way to go.\n\nAnd eventually putting FUSE topics aside, there is one more use-case for\nstrictlimit feature.  Using a slow USB stick (mass storage) in a machine\nwith huge amount of RAM installed is a well-known pain.  Let\u0027s make simple\ncomputations.  Assuming 64GB of RAM installed, existing implementation of\nbalance_dirty_pages will start throttling only after 9.6GB of RAM becomes\ndirty (freerun \u003d\u003d 15% of total RAM).  So, the command \"cp 9GB_file\n/media/my-usb-storage/\" may return in a few seconds, but subsequent\n\"umount /media/my-usb-storage/\" will take more than two hours if effective\nthroughput of the storage is, to say, 1MB/sec.\n\nAfter inclusion of strictlimit feature, it will be trivial to add a knob\n(e.g.  /sys/devices/virtual/bdi/x:y/strictlimit) to enable it on demand.\nManually or via udev rule.  May be I\u0027m wrong, but it seems to be quite a\nnatural desire to limit the amount of dirty memory for some devices we are\nnot fully trust (in the sense of sustainable throughput).\n\n[akpm@linux-foundation.org: fix warning in page-writeback.c]\nSigned-off-by: Maxim Patlasov \u003cMPatlasov@parallels.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d9f073b8da45a894bb7148433bd84d21eed6757",
      "tree": "513aa8ce5502ba3f1c167c7b63774136fafaac8f",
      "parents": [
        "187320932dcece9c4b93f38f56d1f888bd5c325f"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "liwanp@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:22:40 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:02 2013 -0700"
      },
      "message": "mm/writeback: make writeback_inodes_wb static\n\nIt\u0027s not used globally and could be static.\n\nSigned-off-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9104d1ca9662498339c0de975b4666c30485f4e",
      "tree": "cb95c72dde19930ca985b9834d604958ef4eecde",
      "parents": [
        "3b11f0aaae830f0f569cb8fb7fd26f4133ebdabd"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Wed Sep 11 14:22:24 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:56 2013 -0700"
      },
      "message": "mm: track vma changes with VM_SOFTDIRTY bit\n\nPavel reported that in case if vma area get unmapped and then mapped (or\nexpanded) in-place, the soft dirty tracker won\u0027t be able to recognize this\nsituation since it works on pte level and ptes are get zapped on unmap,\nloosing soft dirty bit of course.\n\nSo to resolve this situation we need to track actions on vma level, there\nVM_SOFTDIRTY flag comes in.  When new vma area created (or old expanded)\nwe set this bit, and keep it here until application calls for clearing\nsoft dirty bit.\n\nThus when user space application track memory changes now it can detect if\nvma area is renewed.\n\nReported-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47df3ddedd22c3f8e68aff831edb7921937674a2",
      "tree": "3a8b82782ef6c90e7974063b642e5bbab04fd55e",
      "parents": [
        "7cb2ef56e6a8b7b368b2e883a0a47d02fed66911"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 11 14:22:22 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:55 2013 -0700"
      },
      "message": "writeback: fix occasional slow sync(1)\n\nIn case when system contains no dirty pages, wakeup_flusher_threads() will\nsubmit WB_SYNC_NONE writeback for 0 pages so wb_writeback() exits\nimmediately without doing anything, even though there are dirty inodes in\nthe system.  Thus sync(1) will write all the dirty inodes from a\nWB_SYNC_ALL writeback pass which is slow.\n\nFix the problem by using get_nr_dirty_pages() in wakeup_flusher_threads()\ninstead of calculating number of dirty pages manually.  That function also\ntakes number of dirty inodes into account.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReported-by: Paul Taysom \u003ctaysom@chromium.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28e8be31803b19d0d8f76216cb11b480b8a98bec",
      "tree": "9edd81d3a6c0029e18da8a6c017f6cf087302d14",
      "parents": [
        "a72e27d3727b383be39498f8b5c9b944d30e0f9b"
      ],
      "author": {
        "name": "Jie Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Wed Sep 11 14:20:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:53 2013 -0700"
      },
      "message": "ocfs2: fix the end cluster offset of FIEMAP\n\nCall fiemap ioctl(2) with given start offset as well as an desired mapping\nrange should show extents if possible.  However, we somehow figure out the\nend offset of mapping via \u0027mapping_end -\u003d cpos\u0027 before iterating the\nextent records which would cause problems if the given fiemap length is\ntoo small to a cluster size, e.g,\n\nCluster size 4096:\ndebugfs.ocfs2 1.6.3\n        Block Size Bits: 12   Cluster Size Bits: 12\n\nThe extended fiemap test utility From David:\nhttps://gist.github.com/anonymous/6172331\n\n# dd if\u003d/dev/urandom of\u003d/ocfs2/test_file bs\u003d1M count\u003d1000\n# ./fiemap /ocfs2/test_file 4096 10\nstart: 4096, length: 10\nFile /ocfs2/test_file has 0 extents:\n#\tLogical          Physical         Length           Flags\n\t^^^^^ \u003c-- No extent is shown\n\nIn this case, at ocfs2_fiemap(): cpos \u003d\u003d mapping_end \u003d\u003d 1. Hence the\nloop of searching extent records was not executed at all.\n\nThis patch remove the in question \u0027mapping_end -\u003d cpos\u0027, and loops\nuntil the cpos is larger than the mapping_end as usual.\n\n# ./fiemap /ocfs2/test_file 4096 10\nstart: 4096, length: 10\nFile /ocfs2/test_file has 1 extents:\n#\tLogical          Physical         Length           Flags\n0:\t0000000000000000 0000000056a01000 0000000006a00000 0000\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nReported-by: David Weber \u003cwb@munzinger.de\u003e\nTested-by: David Weber \u003cwb@munzinger.de\u003e\nCc: Sunil Mushran \u003csunil.mushran@gmail.com\u003e\nCc: Mark Fashen \u003cmfasheh@suse.de\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a72e27d3727b383be39498f8b5c9b944d30e0f9b",
      "tree": "8696aefc18590e2184bd517f4c15ed937c653a61",
      "parents": [
        "6f8648e894498f769832b79399b1cfabd2973ea9"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Wed Sep 11 14:20:04 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:52 2013 -0700"
      },
      "message": "ocfs2: remove unused variable ip in dlmfs_get_root_inode()\n\nVariable ip in dlmfs_get_root_inode() is defined but not used.  So clean\nit up.\n\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nReviewed-by: Jie Liu \u003cjeff.liu@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": "6f8648e894498f769832b79399b1cfabd2973ea9",
      "tree": "4ea339363940a3412d8be1dfe668f66eda03214f",
      "parents": [
        "03dbe88aa9cd0d7b0a876b38bd75ce73b4522454"
      ],
      "author": {
        "name": "Joyce",
        "email": "xuejiufei@huawei.com",
        "time": "Wed Sep 11 14:20:03 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:51 2013 -0700"
      },
      "message": "ocfs2: fix a tiny race case when firing callbacks\n\nIn o2hb_shutdown_slot() and o2hb_check_slot(), since event is defined as\nlocal, it is only valid during the call stack.  So the following tiny race\ncase may happen in a multi-volumes mounted environment:\n\no2hb-vol1                         o2hb-vol2\n1) o2hb_shutdown_slot\nallocate local event1\n2) queue_node_event\nadd event1 to global o2hb_node_events\n                                  3) o2hb_shutdown_slot\n                                  allocate local event2\n                                  4) queue_node_event\n                                  add event2 to global o2hb_node_events\n                                  5) o2hb_run_event_list\n                                  delete event1 from o2hb_node_events\n6) o2hb_run_event_list\nevent1 empty, return\n7) o2hb_shutdown_slot\nevent1 lifecycle ends\n                                  8) o2hb_fire_callbacks\n                                  event1 is already *invalid*\n\nThis patch lets it wait on o2hb_callback_sem when another thread is firing\ncallbacks.  And for performance consideration, we only call\no2hb_run_event_list when there is an event queued.\n\nSigned-off-by: Joyce \u003cxuejiufei@huawei.com\u003e\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03dbe88aa9cd0d7b0a876b38bd75ce73b4522454",
      "tree": "2adc8eb4f283cc2ffa3f6903e074f634c3f4a78f",
      "parents": [
        "9a239e4c68df78888f67b1d4e7d507e24ac6764f"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Wed Sep 11 14:20:01 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:50 2013 -0700"
      },
      "message": "ocfs2: avoid possible NULL pointer dereference in o2net_accept_one()\n\nSince o2nm_get_node_by_num() may return NULL, we add this check in\no2net_accept_one() to avoid possible NULL pointer dereference.\n\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a239e4c68df78888f67b1d4e7d507e24ac6764f",
      "tree": "5cd339c77c7aa06aa9b0cdc87259f9ce10fcdccc",
      "parents": [
        "7aebff18b91ebdefe15bb7d3f5d711df8312a7fb"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Wed Sep 11 14:20:00 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:50 2013 -0700"
      },
      "message": "ocfs2: adjust code style for o2net_handler_tree_lookup()\n\nCode in o2net_handler_tree_lookup() may be corrupted by mistake.  So\nadjust it to promote readability.\n\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7aebff18b91ebdefe15bb7d3f5d711df8312a7fb",
      "tree": "e8073825aa576aa2e56955a18a40fd27df3cb08a",
      "parents": [
        "6cae6d3189ef34647bca9b9b1d240ebd760e5dea"
      ],
      "author": {
        "name": "Younger Liu",
        "email": "younger.liu@huawei.com",
        "time": "Wed Sep 11 14:19:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:50 2013 -0700"
      },
      "message": "ocfs2: free path in ocfs2_remove_inode_range()\n\nIn ocfs2_remove_inode_range(), there is a memory leak.  The variable path\nhas allocated memory with ocfs2_new_path_from_et(), but it is not free.\n\nSigned-off-by: Younger Liu \u003cyounger.liu@huawei.com\u003e\nReviewed-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cae6d3189ef34647bca9b9b1d240ebd760e5dea",
      "tree": "d6ee5de8ce6ca54b689ac132b7ba1ac0605d712f",
      "parents": [
        "69b2bd16d9792085d57865fcaac55753803a4f5d"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Wed Sep 11 14:19:58 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:49 2013 -0700"
      },
      "message": "ocfs2: fix possible double free in ocfs2_reflink_xattr_rec\n\nIn ocfs2_reflink_xattr_rec(), meta_ac and data_ac are allocated by calling\nocfs2_lock_reflink_xattr_rec_allocators().\n\nOnce an error occurs when allocating *data_ac, it frees *meta_ac which is\nallocated before.  Here it mistakenly sets meta_ac to NULL but *meta_ac.\nThen ocfs2_reflink_xattr_rec() will try to free meta_ac again which is\nalready invalid.\n\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nReviewed-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69b2bd16d9792085d57865fcaac55753803a4f5d",
      "tree": "8084917586dfc8490f0406fa5207653036750ad8",
      "parents": [
        "6ea437a3639b15e312f81819bb20f737ff596194"
      ],
      "author": {
        "name": "Xue jiufei",
        "email": "xuejiufei@huawei.com",
        "time": "Wed Sep 11 14:19:57 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:49 2013 -0700"
      },
      "message": "ocfs2/dlm: force clean refmap when doing local cleanup\n\ndlm_do_local_recovery_cleanup() should force clean refmap if the owner of\nlockres is UNKNOWN.  Otherwise node may hang when umounting filesystems.\nHere\u0027s the situation:\n\n\tNode1                                    Node2\ndlmlock()\n  -\u003e dlm_get_lock_resource()\nsend DLM_MASTER_REQUEST_MSG to\nother nodes.\n\n                                       trying to master this lockres,\n                                       return MAYBE.\n\nselected as the master of lockresA,\nset mle-\u003emaster to Node1,\nand do assert_master,\nsend DLM_ASSERT_MASTER_MSG to Node2.\n                                       Node 2 has interest on lockresA\n                                       and return\n                                       DLM_ASSERT_RESPONSE_MASTERY_REF\n                                       then something happened and\n                                       Node2 crashed.\n\nReceiving DLM_ASSERT_RESPONSE_MASTERY_REF, set Node2 into refmap, and keep\nsending DLM_ASSERT_MASTER_MSG to other nodes\n\no2hb found node2 down, calling dlm_hb_node_down() --\u003e\ndlm_do_local_recovery_cleanup() the master of lockresA is still UNKNOWN,\nno need to call dlm_free_dead_locks().\n\nSet the master of lockresA to Node1, but Node2 stills remains in refmap.\n\nWhen Node1 umount, it found that the refmap of lockresA is not empty and\nattempted to migrate it to Node2, But Node2 is already down, so umount\nhang, trying to migrate lockresA again and again.\n\nSigned-off-by: joyce \u003cxuejiufei@huawei.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Jie Liu \u003cjeff.liu@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": "6ea437a3639b15e312f81819bb20f737ff596194",
      "tree": "4597c89df18548437a555660bf41adf076d1d908",
      "parents": [
        "17caf9555edc27a0c6df512de0879b357ebacae4"
      ],
      "author": {
        "name": "Younger Liu",
        "email": "younger.liu@huawei.com",
        "time": "Wed Sep 11 14:19:56 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:47 2013 -0700"
      },
      "message": "ocfs2: free meta_ac and data_ac when ocfs2_start_trans fails in ocfs2_xattr_set()\n\nIn ocfs2_xattr_set(), if ocfs2_start_trans failed, meta_ac and data_ac\nshould be free.  Otherwise, It would lead to a memory leak.\n\nSigned-off-by: Younger Liu \u003cyounger.liu@huawei.com\u003e\nCc: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nReviewed-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17caf9555edc27a0c6df512de0879b357ebacae4",
      "tree": "35bca650e011d3b9e6349140666a1f07422b937e",
      "parents": [
        "4704aa30fc35010dd9c3ce1d9d2e77af09c2c081"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Wed Sep 11 14:19:55 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:45 2013 -0700"
      },
      "message": "ocfs2: add the missing return value check of ocfs2_xattr_get_clusters\n\nIn ocfs2_xattr_value_attach_refcount(), if error occurs when calling\nocfs2_xattr_get_clusters(), it will go with unexpected behavior since\nlocal variables p_cluster, num_clusters and ext_flags are declared without\ninitialization.\n\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Jie Liu \u003cjeff.liu@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": "4704aa30fc35010dd9c3ce1d9d2e77af09c2c081",
      "tree": "9a506a85ce98233f7b5092fb6f57793d2922046a",
      "parents": [
        "2b0f6eae2dd2f7f21dbf93241938a687f6757dea"
      ],
      "author": {
        "name": "Jie Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Wed Sep 11 14:19:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:44 2013 -0700"
      },
      "message": "ocfs2: fix a memory leak in __ocfs2_move_extents()\n\nThe ocfs2 path is not properly freed which leads to a memory leak at\n__ocfs2_move_extents().\n\nThis patch stops the leaks of the ocfs2_path structure.\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nReviewed-by: Younger Liu \u003cyounger.liu@huawei.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b0f6eae2dd2f7f21dbf93241938a687f6757dea",
      "tree": "f74caa2c881af2da388114c94d6d9f9e268d8f4e",
      "parents": [
        "3d94ea51c1d8db6f41268a9d2aea5f5771e9a8d3"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Wed Sep 11 14:19:52 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:44 2013 -0700"
      },
      "message": "ocfs2: add missing return value check of ocfs2_get_clusters()\n\nIn ocfs2_attach_refcount_tree() and ocfs2_duplicate_extent_list(), if\nerror occurs when calling ocfs2_get_clusters(), it will go with\nunexpected behavior as local variables p_cluster, num_clusters and\next_flags are declared without initialization.\n\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nReviewed-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d94ea51c1d8db6f41268a9d2aea5f5771e9a8d3",
      "tree": "28907cc30d1d8502c0af318aba031fce1a7cc9aa",
      "parents": [
        "df53cd3b70712cd136f10ef79457623c5c3764a4"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Wed Sep 11 14:19:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:39 2013 -0700"
      },
      "message": "ocfs2: clean up dead code in ocfs2_acl_from_xattr()\n\nIn ocfs2_acl_from_xattr(), if size is less than sizeof(struct\nposix_acl_entry), it returns ERR_PTR(-EINVAL) directly.  Then assign (size\n/ sizeof(struct posix_acl_entry)) to count which will be at least 1, that\nmeans the following branch (count \u003c 0) and (count \u003d\u003d 0) will never be\ntrue.\n\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df53cd3b70712cd136f10ef79457623c5c3764a4",
      "tree": "426988282de0ac3ff6d00a51dc8f299e47dfeefc",
      "parents": [
        "8dd7903e48df3779bc424196c22dc73b66d0643e"
      ],
      "author": {
        "name": "Dong Fang",
        "email": "yp.fangdong@gmail.com",
        "time": "Wed Sep 11 14:19:50 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:36 2013 -0700"
      },
      "message": "ocfs2: use list_for_each_entry() instead of list_for_each()\n\n[dan.carpenter@oracle.com: fix up some NULL dereference bugs]\nSigned-off-by: Dong Fang \u003cyp.fangdong@gmail.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@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": "8dd7903e48df3779bc424196c22dc73b66d0643e",
      "tree": "c251a8e5aab3af60b93b5db21569c62aa0ace7a3",
      "parents": [
        "7e9b79370733945b25c24e09d663b07c3936d10c"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Sep 11 14:19:49 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:34 2013 -0700"
      },
      "message": "fs/ocfs2/cluster/tcp.c: fix possible null pointer dereferences\n\nFix some possible null pointer dereferences that were detected by the\nstatic code analyser, smatch.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nReported-by: Guozhonghua \u003cguozhonghua@h3c.com\u003e\nCc: Sunil Mushran \u003csunil.mushran@gmail.com\u003e\nCc: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e9b79370733945b25c24e09d663b07c3936d10c",
      "tree": "c9496c12fdaf0e7313c873397f17a9bc9bea4dbb",
      "parents": [
        "98ac9125c5afed8c5d2e4c5824988f8ad51814e1"
      ],
      "author": {
        "name": "Younger Liu",
        "email": "younger.liu@huawei.com",
        "time": "Wed Sep 11 14:19:47 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:31 2013 -0700"
      },
      "message": "ocfs2: ac_bits_wanted should be local_alloc_bits when returns -ENOSPC\n\nThere is an issue in reserving and claiming space for localalloc, When\nlocalalloc space is not enough, it would claim space from global_bitmap.\nAnd if there is not enough free space in global_bitmap, the size of\nclaiming space would set to half of orignal size and retry.\n\nThe issue is as follows: osb-\u003elocal_alloc_bits is set to half of orignal\nsize in ocfs2_recalc_la_window(), but ac-\u003eac_bits_wanted is set to\nosb-\u003elocal_alloc_default_bits which is not changed.  localalloc always\nreserves and claims local_alloc_default_bits space and returns ENOSPC.\n\nSo, ac-\u003eac_bits_wanted should be osb-\u003elocal_alloc_bits which would be\nchanged.\n\nSigned-off-by: Younger Liu \u003cyounger.liu@huawei.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Jeff Liu \u003cjeff.liu@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": "98ac9125c5afed8c5d2e4c5824988f8ad51814e1",
      "tree": "123fa8641217bf5891caa2179146ec0a54de0dbd",
      "parents": [
        "f17c20dd2ec81e8ff328b81bc847da9429d0975b"
      ],
      "author": {
        "name": "Xue jiufei",
        "email": "xuejiufei@huawei.com",
        "time": "Wed Sep 11 14:19:46 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:31 2013 -0700"
      },
      "message": "ocfs2: dlm_request_all_locks() should deal with the status sent from target node\n\ndlm_request_all_locks() should deal with the status sent from target node\nif DLM_LOCK_REQUEST_MSG is sent successfully, or recovery master will fall\ninto endless loop, waiting for other nodes to send locks and\nDLM_RECO_DATA_DONE_MSG to me.\n\n        NodeA                                  NodeB\n                                     selected as recovery master\n                                     dlm_remaster_locks()\n                                     -\u003edlm_request_all_locks()\n                                     send DLM_LOCK_REQUEST_MSG to nodeA\n\nIt happened that NodeA cannot alloc memory when it processes this\nmessage.  dlm_request_all_locks_handler() do not queue\ndlm_request_all_locks_worker and returns -ENOMEM.  It will never send\nlocks and DLM_RECO_DATA_DONE_MSG to NodeB.\n\n                                    NodeB do not deal with the status\n                                    sent from nodeA, and will fall in\n                                    endless loop waiting for the\n                                    recovery state of NodeA to be\n                                    changed.\n\nSigned-off-by: joyce \u003cxuejiufei@huawei.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Jeff Liu \u003cjeff.liu@oracle.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f17c20dd2ec81e8ff328b81bc847da9429d0975b",
      "tree": "288ff70d8c78e14f51dde033921ee0bc7072e4cd",
      "parents": [
        "2b1e55c389105b722cccadfa47f5615f57d8887f"
      ],
      "author": {
        "name": "Junxiao Bi",
        "email": "junxiao.bi@oracle.com",
        "time": "Wed Sep 11 14:19:45 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:30 2013 -0700"
      },
      "message": "ocfs2: use i_size_read() to access i_size\n\nThough ocfs2 uses inode-\u003ei_mutex to protect i_size, there are both\ni_size_read/write() and direct accesses.  Clean up all direct access to\neliminate confusion.\n\nSigned-off-by: Junxiao Bi \u003cjunxiao.bi@oracle.com\u003e\nCc: Jie Liu \u003cjeff.liu@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b1e55c389105b722cccadfa47f5615f57d8887f",
      "tree": "d5f6a8458a64e8a92f5df71822c75b25f6f0e065",
      "parents": [
        "5e42781caf6f5f1c77e842d6dcbbf5c51b8b2c29"
      ],
      "author": {
        "name": "Younger Liu",
        "email": "younger.liu@huawei.com",
        "time": "Wed Sep 11 14:19:44 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:56:28 2013 -0700"
      },
      "message": "ocfs2: lighten up allocate transaction\n\nThe issue scenario is as following:\n\nWhen fallocating a very large disk space for a small file,\n__ocfs2_extend_allocation attempts to get a very large transaction.  For\nsome journal sizes, there may be not enough room for this transaction,\nand the fallocate will fail.\n\nThe patch below extends \u0026 restarts the transaction as necessary while\nallocating space, and should work with even the smallest journal.  This\npatch refers ext4 resize.\n\nTest:\n# mkfs.ocfs2 -b 4K -C 32K -T datafiles /dev/sdc\n...(jounral size is 32M)\n# mount.ocfs2 /dev/sdc /mnt/ocfs2/\n# touch /mnt/ocfs2/1.log\n# fallocate -o 0 -l 400G /mnt/ocfs2/1.log\nfallocate: /mnt/ocfs2/1.log: fallocate failed: Cannot allocate memory\n# tail -f /var/log/messages\n[ 7372.278591] JBD: fallocate wants too many credits (2051 \u003e 2048)\n[ 7372.278597] (fallocate,6438,0):__ocfs2_extend_allocation:709 ERROR: status \u003d -12\n[ 7372.278603] (fallocate,6438,0):ocfs2_allocate_unwritten_extents:1504 ERROR: status \u003d -12\n[ 7372.278607] (fallocate,6438,0):__ocfs2_change_file_space:1955 ERROR: status \u003d -12\n^C\nWith this patch, the test works well.\n\nSigned-off-by: Younger Liu \u003cyounger.liu@huawei.com\u003e\nCc: Jie Liu \u003cjeff.liu@oracle.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b76db6a0f649f5a54805807d36d51b6e9e49089",
      "tree": "1155e363d3ea5e416ac5627402dd862028db6907",
      "parents": [
        "53bf710832a7191e023e2bb1e333226e3115cfa0",
        "50192abe02929586111fb33f216060a9341875f1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 12:34:13 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 12:34:13 2013 -0700"
      },
      "message": "Merge tag \u0027for-linus-3.12-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\nPull 9p updates from Eric Van Hensbergen:\n \"Minor 9p fixes and tweaks for 3.12 merge window\n\n  The first fixes namespace issues which causes a kernel NULL pointer\n  dereference, the second fixes uevent handling to work better with\n  udev, and the third switches some code to use srlcpy instead of\n  strncpy in order to be safer.\n\n  All changes have been baking in for-next for at least 2 weeks\"\n\n* tag \u0027for-linus-3.12-merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  fs/9p: avoid accessing utsname after namespace has been torn down\n  9p: send uevent after adding/removing mount_tag attribute\n  fs: 9p: use strlcpy instead of strncpy\n"
    },
    {
      "commit": "53bf710832a7191e023e2bb1e333226e3115cfa0",
      "tree": "9e3db82418efbae09db02b53b36e48d749d73f1e",
      "parents": [
        "e831cbfc1ad843b5542cc45f777e1a00b73c0685",
        "9e012423869e1efbae3762b87ceab509027231c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 12:33:12 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 12:33:12 2013 -0700"
      },
      "message": "Merge tag \u0027squashfs-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next\n\nPull squashfs updates from Phillip Lougher:\n \"A couple of minor additional sanity check patches for corrupted\n  information, and some fixes.  Apart from that there\u0027s a minor loop\n  optimisation.\n\n  These sanity checks mainly exist to trap maliciously corrupted\n  filesystems either through using a deliberately modified mksquashfs,\n  or where the user has deliberately chosen to generate uncompressed\n  metadata and then corrupted it.\n\n  Normally metadata in Squashfs filesystems is compressed, which means\n  corruption (either accidental or malicious) is detected when trying to\n  decompress the metadata.  So corrupted data does not normally get as\n  far as the code paths in question here\"\n\n* tag \u0027squashfs-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next:\n  Squashfs: add corruption check for type in squashfs_readdir()\n  Squashfs: add corruption check in get_dir_index_using_offset()\n  Squashfs: fix corruption checks in squashfs_readdir()\n  Squashfs: fix corruption checks in squashfs_lookup()\n  Squashfs: fix corruption check in get_dir_index_using_name()\n  Squashfs: Optimized uncompressed buffer loop\n  Squashfs: sanity check information from disk\n"
    },
    {
      "commit": "312cd958a7433feef9c6f3ce6b06471e760e452f",
      "tree": "176e83f6d7a6fe8a2136d085782b71af0e8668b5",
      "parents": [
        "ade33ff58ed3efb4a069f7256f5a92ccf8634413"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Sep 10 18:44:33 2013 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 11 09:08:08 2013 -0400"
      },
      "message": "NFSv4.1: sp4_mach_cred: WARN_ON -\u003e WARN_ON_ONCE\n\nNo need to spam the logs\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ade33ff58ed3efb4a069f7256f5a92ccf8634413",
      "tree": "678d3519dde8098bf04165680773fd6370c84351",
      "parents": [
        "7cb852dfc858e9ab092cbbfcb3e57bae4aa7f56a"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Sep 10 18:44:32 2013 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 11 09:07:53 2013 -0400"
      },
      "message": "NFSv4.1: sp4_mach_cred: no need to ref count creds\n\nThe cl_machine_cred doesn\u0027t need to be reference counted here -\na reference is held is for the lifetime of the struct nfs_client.\nAlso, no need to put_rpccred the rpc_message.rpc_cred.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7cb852dfc858e9ab092cbbfcb3e57bae4aa7f56a",
      "tree": "506ca48bbb01e1aacb6c40dbfdf9e5d571319704",
      "parents": [
        "a02796250fe3e5fd053f33d90c1b3471617188a9"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Sep 10 18:44:31 2013 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 11 09:07:27 2013 -0400"
      },
      "message": "NFSv4.1: fix SECINFO* use of put_rpccred\n\nRecent SP4_MACH_CRED changes allows rpc_message.rpc_cred to change,\nso keep a separate pointer to the machine cred for put_rpccred.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a02796250fe3e5fd053f33d90c1b3471617188a9",
      "tree": "2eecac4b7314b38b05de74bf29fe779f065edf35",
      "parents": [
        "9f79fb4825cd336ba9efbb0d9468f2ef3fd3cbf6"
      ],
      "author": {
        "name": "Weston Andros Adamson",
        "email": "dros@netapp.com",
        "time": "Tue Sep 10 18:44:30 2013 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 11 09:06:43 2013 -0400"
      },
      "message": "NFSv4.1: sp4_mach_cred: ask for WRITE and COMMIT\n\nRequest SP4_MACH_CRED WRITE and COMMIT support in spo_must_allow list --\nthey\u0027re already supported by the client.\n\nSigned-off-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cf596766fc53bbfa0e2b21e3569932aa54f5f9ca",
      "tree": "6e88bae48c06f5b4a099989abb04178b939d2b24",
      "parents": [
        "516f7b3f2a7dbe93d3075e76a06bbfcd0c0ee4f7",
        "d4a516560fc96a9d486a9939bcb567e3fdce8f49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 10 20:04:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 10 20:04:59 2013 -0700"
      },
      "message": "Merge branch \u0027nfsd-next\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd updates from Bruce Fields:\n \"This was a very quiet cycle! Just a few bugfixes and some cleanup\"\n\n* \u0027nfsd-next\u0027 of git://linux-nfs.org/~bfields/linux:\n  rpc: let xdr layer allocate gssproxy receieve pages\n  rpc: fix huge kmalloc\u0027s in gss-proxy\n  rpc: comment on linux_cred encoding, treat all as unsigned\n  rpc: clean up decoding of gssproxy linux creds\n  svcrpc: remove unused rq_resused\n  nfsd4: nfsd4_create_clid_dir prints uninitialized data\n  nfsd4: fix leak of inode reference on delegation failure\n  Revert \"nfsd: nfs4_file_get_access: need to be more careful with O_RDWR\"\n  sunrpc: prepare NFS for 2038\n  nfsd4: fix setlease error return\n  nfsd: nfs4_file_get_access: need to be more careful with O_RDWR\n"
    },
    {
      "commit": "f5e1dd34561e0fb06400b378d595198918833021",
      "tree": "2cdaf7568df3ab762f42e7849fc9211dcb60d1bc",
      "parents": [
        "5ca302c8e502ca53b7d75f12127ec0289904003a"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@gmail.com",
        "time": "Wed Aug 28 10:18:18 2013 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 10 18:56:32 2013 -0400"
      },
      "message": "super: fix for destroy lrus\n\nThis patch adds the missing call to list_lru_destroy (spotted by Li Zhong)\nand moves the deletion to after the shrinker is unregistered, as correctly\nspotted by Dave\n\nSigned-off-by: Glauber Costa \u003cglommer@openvz.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Chinner \u003cdchinner@redhat.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": "5ca302c8e502ca53b7d75f12127ec0289904003a",
      "tree": "80a5b248c01fc3f33392a0b6ef14a2baab86cdb0",
      "parents": [
        "a0b02131c5fcd8545b867db72224b3659e813f10"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@openvz.org",
        "time": "Wed Aug 28 10:18:18 2013 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 10 18:56:32 2013 -0400"
      },
      "message": "list_lru: dynamically adjust node arrays\n\nWe currently use a compile-time constant to size the node array for the\nlist_lru structure.  Due to this, we don\u0027t need to allocate any memory at\ninitialization time.  But as a consequence, the structures that contain\nembedded list_lru lists can become way too big (the superblock for\ninstance contains two of them).\n\nThis patch aims at ameliorating this situation by dynamically allocating\nthe node arrays with the firmware provided nr_node_ids.\n\nSigned-off-by: Glauber Costa \u003cglommer@openvz.org\u003e\nCc: Dave Chinner \u003cdchinner@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: Arve Hjønnevåg \u003carve@android.com\u003e\nCc: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: J. Bruce Fields \u003cbfields@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jerome Glisse \u003cjglisse@redhat.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Thomas Hellstrom \u003cthellstrom@vmware.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.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": "1ab6c4997e04a00c50c6d786c2f046adc0d1f5de",
      "tree": "55561fc74c062a8ed0e03fe56f54d7db9cfd9e12",
      "parents": [
        "35163417fb7a55a24b6b0ebb102e9991adf309aa"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Aug 28 10:18:09 2013 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 10 18:56:31 2013 -0400"
      },
      "message": "fs: convert fs shrinkers to new scan/count API\n\nConvert the filesystem shrinkers to use the new API, and standardise some\nof the behaviours of the shrinkers at the same time.  For example,\nnr_to_scan means the number of objects to scan, not the number of objects\nto free.\n\nI refactored the CIFS idmap shrinker a little - it really needs to be\nbroken up into a shrinker per tree and keep an item count with the tree\nroot so that we don\u0027t need to walk the tree every time the shrinker needs\nto count the number of objects in the tree (i.e.  all the time under\nmemory pressure).\n\n[glommer@openvz.org: fixes for ext4, ubifs, nfs, cifs and glock. Fixes are needed mainly due to new code merged in the tree]\n[assorted fixes folded in]\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Glauber Costa \u003cglommer@openvz.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Adrian Hunter \u003cadrian.hunter@intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: Arve Hjønnevåg \u003carve@android.com\u003e\nCc: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Gleb Natapov \u003cgleb@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: J. Bruce Fields \u003cbfields@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jerome Glisse \u003cjglisse@redhat.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Thomas Hellstrom \u003cthellstrom@vmware.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "35163417fb7a55a24b6b0ebb102e9991adf309aa",
      "tree": "070f440f9f3e34a712a53b8d1cf7eea9f1b0c443",
      "parents": [
        "2f5b56f85674d75f35a10e2e9a4310e7539280da"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Wed Aug 28 10:18:08 2013 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 10 18:56:31 2013 -0400"
      },
      "message": "xfs: fix dquot isolation hang\n\nThe new LRU list isolation code in xfs_qm_dquot_isolate() isn\u0027t\ncompletely up to date.  Firstly, it needs conversion to return enum\nlru_status values, not raw numbers. Secondly - most importantly - it\nfails to unlock the dquot and relock the LRU in the LRU_RETRY path.\nThis leads to deadlocks in xfstests generic/232. Fix them.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nCc: Glauber Costa \u003cglommer@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2f5b56f85674d75f35a10e2e9a4310e7539280da",
      "tree": "edf0cacb3cd7174e770e497412478dec0363f4b6",
      "parents": [
        "cd56a39a59868911bbf8832725630c1cf43a7b09"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Aug 28 10:18:08 2013 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 10 18:56:31 2013 -0400"
      },
      "message": "xfs-convert-dquot-cache-lru-to-list_lru-fix\n\nfix warnings\n\nCc: Dave Chinner \u003cdchinner@redhat.com\u003e\nCc: Glauber Costa \u003cglommer@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "cd56a39a59868911bbf8832725630c1cf43a7b09"
}
