)]}'
{
  "log": [
    {
      "commit": "d0ff9348810c5bc9fc7a3f022bdfae9b44b62f00",
      "tree": "36b638024e87545a83c63d2fb9bece4af692d5aa",
      "parents": [
        "d58c6ff0b779c5adae2a8596fde69cb45f2a5d68",
        "dd6c5cd8fedddc9605209098e2fa4e82c7af22aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 14 19:18:56 2013 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 14 19:18:56 2013 -1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull VFS fixes from Al Viro:\n \"Several fixes + obvious cleanup (you\u0027ve missed a couple of open-coded\n  can_lookup() back then)\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  snd_pcm_link(): fix a leak...\n  use can_lookup() instead of direct checks of -\u003ei_op-\u003elookup\n  move exit_task_namespaces() outside of exit_notify()\n  fput: task_work_add() can fail if the caller has passed exit_task_work()\n  ncpfs: fix rmdir returns Device or resource busy\n"
    },
    {
      "commit": "d58c6ff0b779c5adae2a8596fde69cb45f2a5d68",
      "tree": "430cfaafb27865d98e09e77f432ac0077976972c",
      "parents": [
        "9bb92855e3491e3f84a1477f14810f7c59fdbc73",
        "d302cf1d316dca5f567e89872cf5d475c9a55f74"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 14 19:16:31 2013 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 14 19:16:31 2013 -1000"
      },
      "message": "Merge tag \u0027for-linus-v3.10-rc6\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull xfs fixes from Ben Myers:\n - Remove noisy warnings about experimental support which spams the logs\n - Add padding to align directory and attr structures correctly\n - Set block number on child buffer on a root btree split\n - Disable verifiers during log recovery for non-CRC filesystems\n\n* tag \u0027for-linus-v3.10-rc6\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: don\u0027t shutdown log recovery on validation errors\n  xfs: ensure btree root split sets blkno correctly\n  xfs: fix implicit padding in directory and attr CRC formats\n  xfs: don\u0027t emit v5 superblock warnings on write\n"
    },
    {
      "commit": "05252901199d886a68830befb135d1723730ca86",
      "tree": "f973243a3fefc56ce91a963a91eaa68a445ffd6e",
      "parents": [
        "8aac62706adaaf0fab02c4327761561c8bda9448"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 06 19:33:47 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 15 05:41:45 2013 +0400"
      },
      "message": "use can_lookup() instead of direct checks of -\u003ei_op-\u003elookup\n\na couple of places got missed back when Linus has introduced that one...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7b2c4069252732d52f1de6d1f7c82d99a156659",
      "tree": "61058c0dd3806eaf067d1e6cf1634aa1acc9336e",
      "parents": [
        "698b8223631472bf982ed570b0812faa61955683"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jun 14 21:09:47 2013 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 15 05:39:08 2013 +0400"
      },
      "message": "fput: task_work_add() can fail if the caller has passed exit_task_work()\n\nfput() assumes that it can\u0027t be called after exit_task_work() but\nthis is not true, for example free_ipc_ns()-\u003eshm_destroy() can do\nthis. In this case fput() silently leaks the file.\n\nChange it to fallback to delayed_fput_work if task_work_add() fails.\nThe patch looks complicated but it is not, it changes the code from\n\n\tif (PF_KTHREAD) {\n\t\tschedule_work(...);\n\t\treturn;\n\t}\n\ttask_work_add(...)\n\nto\n\tif (!PF_KTHREAD) {\n\t\tif (!task_work_add(...))\n\t\t\treturn;\n\t\t/* fallback */\n\t}\n\tschedule_work(...);\n\nAs for shm_destroy() in particular, we could make another fix but I\nthink this change makes sense anyway. There could be another similar\nuser, it is not safe to assume that task_work_add() can\u0027t fail.\n\nReported-by: Andrey Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d302cf1d316dca5f567e89872cf5d475c9a55f74",
      "tree": "63912ef184e6494b6a810290e1d706aeef1da8a2",
      "parents": [
        "088c9f67c3f53339d2bc20b42a9cb904901fdc5d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 12 12:19:06 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jun 14 15:59:45 2013 -0500"
      },
      "message": "xfs: don\u0027t shutdown log recovery on validation errors\n\nUnfortunately, we cannot guarantee that items logged multiple times\nand replayed by log recovery do not take objects back in time. When\nthey are taken back in time, the go into an intermediate state which\nis corrupt, and hence verification that occurs on this intermediate\nstate causes log recovery to abort with a corruption shutdown.\n\nInstead of causing a shutdown and unmountable filesystem, don\u0027t\nverify post-recovery items before they are written to disk. This is\nless than optimal, but there is no way to detect this issue for\nnon-CRC filesystems If log recovery successfully completes, this\nwill be undone and the object will be consistent by subsequent\ntransactions that are replayed, so in most cases we don\u0027t need to\ntake drastic action.\n\nFor CRC enabled filesystems, leave the verifiers in place - we need\nto call them to recalculate the CRCs on the objects anyway. This\nrecovery problem can be solved for such filesystems - we have a LSN\nstamped in all metadata at writeback time that we can to determine\nwhether the item should be replayed or not. This is a separate piece\nof work, so is not addressed by this patch.\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(cherry picked from commit 9222a9cf86c0d64ffbedf567412b55da18763aa3)\n"
    },
    {
      "commit": "088c9f67c3f53339d2bc20b42a9cb904901fdc5d",
      "tree": "1003460d2eda850a2efe0c648818638aed1c4c4a",
      "parents": [
        "5170711df79b284cf95b3924322e8ac4c0fd6c76"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 12 12:19:08 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jun 14 15:59:31 2013 -0500"
      },
      "message": "xfs: ensure btree root split sets blkno correctly\n\nFor CRC enabled filesystems, the BMBT is rooted in an inode, so it\npasses through a different code path on root splits than the\nfreespace and inode btrees. This is much less traversed by xfstests\nthan the other trees. When testing on a 1k block size filesystem,\nI\u0027ve been seeing ASSERT failures in generic/234 like:\n\nXFS: Assertion failed: cur-\u003ebc_btnum !\u003d XFS_BTNUM_BMAP || cur-\u003ebc_private.b.allocated \u003d\u003d 0, file: fs/xfs/xfs_btree.c, line: 317\n\nwhich are generally preceded by a lblock check failure. I noticed\nthis in the bmbt stats:\n\n$ pminfo -f xfs.btree.block_map\n\nxfs.btree.block_map.lookup\n    value 39135\n\nxfs.btree.block_map.compare\n    value 268432\n\nxfs.btree.block_map.insrec\n    value 15786\n\nxfs.btree.block_map.delrec\n    value 13884\n\nxfs.btree.block_map.newroot\n    value 2\n\nxfs.btree.block_map.killroot\n    value 0\n.....\n\nVery little coverage of root splits and merges. Indeed, on a 4k\nfilesystem, block_map.newroot and block_map.killroot are both zero.\ni.e. the code is not exercised at all, and it\u0027s the only generic\nbtree infrastructure operation that is not exercised by a default run\nof xfstests.\n\nTurns out that on a 1k filesystem, generic/234 accounts for one of\nthose two root splits, and that is somewhat of a smoking gun. In\nfact, it\u0027s the same problem we saw in the directory/attr code where\nheaders are memcpy()d from one block to another without updating the\nself describing metadata.\n\nSimple fix - when copying the header out of the root block, make\nsure the block number is updated correctly.\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(cherry picked from commit ade1335afef556df6538eb02e8c0dc91fbd9cc37)\n"
    },
    {
      "commit": "5170711df79b284cf95b3924322e8ac4c0fd6c76",
      "tree": "31395c9ee299cb7a21e51ab2a2b2971f83a7e9b9",
      "parents": [
        "47ad2fcba9ddd0630acccb13c71f19a818947751"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 12 12:19:07 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jun 14 15:59:16 2013 -0500"
      },
      "message": "xfs: fix implicit padding in directory and attr CRC formats\n\nMichael L. Semon has been testing CRC patches on a 32 bit system and\nbeen seeing assert failures in the directory code from xfs/080.\nThanks to Michael\u0027s heroic efforts with printk debugging, we found\nthat the problem was that the last free space being left in the\ndirectory structure was too small to fit a unused tag structure and\nit was being corrupted and attempting to log a region out of bounds.\nHence the assert failure looked something like:\n\n.....\n#5 calling xfs_dir2_data_log_unused() 36 32\n#1 4092 4095 4096\n#2 8182 8183 4096\nXFS: Assertion failed: first \u003c\u003d last \u0026\u0026 last \u003c BBTOB(bp-\u003eb_length), file: fs/xfs/xfs_trans_buf.c, line: 568\n\nWhere #1 showed the first region of the dup being logged (i.e. the\nlast 4 bytes of a directory buffer) and #2 shows the corrupt values\nbeing calculated from the length of the dup entry which overflowed\nthe size of the buffer.\n\nIt turns out that the problem was not in the logging code, nor in\nthe freespace handling code. It is an initial condition bug that\nonly shows up on 32 bit systems. When a new buffer is initialised,\nwhere\u0027s the freespace that is set up:\n\n[  172.316249] calling xfs_dir2_leaf_addname() from xfs_dir_createname()\n[  172.316346] #9 calling xfs_dir2_data_log_unused()\n[  172.316351] #1 calling xfs_trans_log_buf() 60 63 4096\n[  172.316353] #2 calling xfs_trans_log_buf() 4094 4095 4096\n\nNote the offset of the first region being logged? It\u0027s 60 bytes into\nthe buffer. Once I saw that, I pretty much knew that the bug was\ngoing to be caused by this.\n\nEssentially, all direct entries are rounded to 8 bytes in length,\nand all entries start with an 8 byte alignment. This means that we\ncan decode inplace as variables are naturally aligned. With the\ndirectory data supposedly starting on a 8 byte boundary, and all\nentries padded to 8 bytes, the minimum freespace in a directory\nblock is supposed to be 8 bytes, which is large enough to fit a\nunused data entry structure (6 bytes in size). The fact we only have\n4 bytes of free space indicates a directory data block alignment\nproblem.\n\nAnd what do you know - there\u0027s an implicit hole in the directory\ndata block header for the CRC format, which means the header is 60\nbyte on 32 bit intel systems and 64 bytes on 64 bit systems. Needs\npadding. And while looking at the structures, I found the same\nproblem in the attr leaf header. Fix them both.\n\nNote that this only affects 32 bit systems with CRCs enabled.\nEverything else is just fine. Note that CRC enabled filesystems created\nbefore this fix on such systems will not be readable with this fix\napplied.\n\nReported-by: Michael L. Semon \u003cmlsemon35@gmail.com\u003e\nDebugged-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(cherry picked from commit 8a1fd2950e1fe267e11fc8c85dcaa6b023b51b60)\n"
    },
    {
      "commit": "47ad2fcba9ddd0630acccb13c71f19a818947751",
      "tree": "e7d47535fd38fbe1bf97d83dc919f227e9495ab5",
      "parents": [
        "0a8aa1939777dd114479677f0044652c1fd72398"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 27 16:38:19 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jun 14 15:58:47 2013 -0500"
      },
      "message": "xfs: don\u0027t emit v5 superblock warnings on write\n\nWe write the superblock every 30s or so which results in the\nverifier being called. Right now that results in this output\nevery 30s:\n\nXFS (vda): Version 5 superblock detected. This kernel has EXPERIMENTAL support enabled!\nUse of these features in this kernel is at your own risk!\n\nAnd spamming the logs.\n\nWe don\u0027t need to check for whether we support v5 superblocks or\nwhether there are feature bits we don\u0027t support set as these are\nonly relevant when we first mount the filesytem. i.e. on superblock\nread. Hence for the write verification we can just skip all the\nchecks (and hence verbose output) altogether.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 34510185abeaa5be9b178a41c0a03d30aec3db7e)\n"
    },
    {
      "commit": "a2648ebb7ed69ef209d9c8a76fadeb3252d9a023",
      "tree": "9a8e75db208395b8de1a2e6e5045abf56e8677a0",
      "parents": [
        "33c929c06eb4a483a3e4ffbff58f6e4f31ae4565",
        "13e6c37b989859e70b0d73d3f2cb0aa022159b17"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 13 22:34:14 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 13 22:34:14 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\nPull btrfs fixes from Chris Mason:\n \"This is an assortment of crash fixes\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:\n  Btrfs: stop all workers before cleaning up roots\n  Btrfs: fix use-after-free bug during umount\n  Btrfs: init relocate extent_io_tree with a mapping\n  btrfs: Drop inode if inode root is NULL\n  Btrfs: don\u0027t delete fs_roots until after we cleanup the transaction\n"
    },
    {
      "commit": "a568fa1c91d4f0e565345119d0b942cc7f74ca3d",
      "tree": "8d57522244da002e44b2f79cc2b376799630ba83",
      "parents": [
        "1a9c3d68d65f4b5ce32f7d67ccc730396e04cdd2",
        "c2853c8df57f49620d26f317d7d43347c29bfc2e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:53 2013 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (updates from Andrew Morton)\n\nMerge misc fixes from Andrew Morton:\n \"Bunch of fixes and one little addition to math64.h\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (27 commits)\n  include/linux/math64.h: add div64_ul()\n  mm: memcontrol: fix lockless reclaim hierarchy iterator\n  frontswap: fix incorrect zeroing and allocation size for frontswap_map\n  kernel/audit_tree.c:audit_add_tree_rule(): protect `rule\u0027 from kill_rules()\n  mm: migration: add migrate_entry_wait_huge()\n  ocfs2: add missing lockres put in dlm_mig_lockres_handler\n  mm/page_alloc.c: fix watermark check in __zone_watermark_ok()\n  drivers/misc/sgi-gru/grufile.c: fix info leak in gru_get_config_info()\n  aio: fix io_destroy() regression by using call_rcu()\n  rtc-at91rm9200: use shadow IMR on at91sam9x5\n  rtc-at91rm9200: add shadow interrupt mask\n  rtc-at91rm9200: refactor interrupt-register handling\n  rtc-at91rm9200: add configuration support\n  rtc-at91rm9200: add match-table compile guard\n  fs/ocfs2/namei.c: remove unecessary ERROR when removing non-empty directory\n  swap: avoid read_swap_cache_async() race to deadlock while waiting on discard I/O completion\n  drivers/rtc/rtc-twl.c: fix missing device_init_wakeup() when booted with device tree\n  cciss: fix broken mutex usage in ioctl\n  audit: wait_for_auditd() should use TASK_UNINTERRUPTIBLE\n  drivers/rtc/rtc-cmos.c: fix accidentally enabling rtc channel\n  ...\n"
    },
    {
      "commit": "27749f2ff0717e115680922000839ad6a576eddf",
      "tree": "94c2e9cc9edb0054fe0454bf3e6d0933f4164cee",
      "parents": [
        "026b08147923142e925a7d0aaa39038055ae0156"
      ],
      "author": {
        "name": "Xue jiufei",
        "email": "xuejiufei@huawei.com",
        "time": "Wed Jun 12 14:05:03 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:46 2013 -0700"
      },
      "message": "ocfs2: add missing lockres put in dlm_mig_lockres_handler\n\ndlm_mig_lockres_handler() is missing a dlm_lockres_put() on an error path.\n\nSigned-off-by: joyce \u003cxuejiufei@huawei.com\u003e\nReviewed-by: shencanquan \u003cshencanquan@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": "4fcc712f5c48b1e32cdbf9b9cfba42a27b2e3160",
      "tree": "56ffa400b048d639e67b3c239a23d1e09a86ae76",
      "parents": [
        "bba00e59107275faa615573c44eb0a513a1220a6"
      ],
      "author": {
        "name": "Kent Overstreet",
        "email": "koverstreet@google.com",
        "time": "Wed Jun 12 14:04:59 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:46 2013 -0700"
      },
      "message": "aio: fix io_destroy() regression by using call_rcu()\n\nThere was a regression introduced by 36f5588905c1 (\"aio: refcounting\ncleanup\"), reported by Jens Axboe - the refcounting cleanup switched to\nusing RCU in the shutdown path, but the synchronize_rcu() was done in\nthe context of the io_destroy() syscall greatly increasing the time it\ncould block.\n\nThis patch switches it to call_rcu() and makes shutdown asynchronous\n(more asynchronous than it was originally; before the refcount changes\nio_destroy() would still wait on pending kiocbs).\n\nNote that there\u0027s a global quota on the max outstanding kiocbs, and that\nquota must be manipulated synchronously; otherwise io_setup() could\nreturn -EAGAIN when there isn\u0027t quota available, and userspace won\u0027t\nhave any way of waiting until shutdown of the old kioctxs has finished\n(besides busy looping).\n\nSo we release our quota before kioctx shutdown has finished, which\nshould be fine since the quota never corresponded to anything real\nanyways.\n\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Zach Brown \u003czab@redhat.com\u003e\nCc: Felipe Balbi \u003cbalbi@ti.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nReported-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nTested-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Asai Thambi S P \u003casamymuthupa@micron.com\u003e\nCc: Selvan Mani \u003csmani@micron.com\u003e\nCc: Sam Bradshaw \u003csbradshaw@micron.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nTested-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e099127169429c19544a8f55dd26937fddd5b1f4",
      "tree": "e06d265b5304ca1ea6b28716f9a685c48096935c",
      "parents": [
        "cbab0e4eec299e9059199ebe6daf48730be46d2b"
      ],
      "author": {
        "name": "Goldwyn Rodrigues",
        "email": "rgoldwyn@gmail.com",
        "time": "Wed Jun 12 14:04:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:45 2013 -0700"
      },
      "message": "fs/ocfs2/namei.c: remove unecessary ERROR when removing non-empty directory\n\nWhile removing a non-empty directory, the kernel dumps a message:\n\n  (rmdir,21743,1):ocfs2_unlink:953 ERROR: status \u003d -39\n\nSuppress the error message from being printed in the dmesg so users\ndon\u0027t panic.\n\nSigned-off-by: Goldwyn Rodrigues \u003crgoldwyn@suse.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nAcked-by: Sunil Mushran \u003csunil.mushran@gmail.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": "7869e590679ed71cd1a1e676e8c1c179762c3efe",
      "tree": "e94ea4a98ccd296ca9209694ccab937ecb780c4e",
      "parents": [
        "5402b8047b0d286b6501f9097891cbf1e06daa3a"
      ],
      "author": {
        "name": "Xiaowei.Hu",
        "email": "xiaowei.hu@oracle.com",
        "time": "Wed Jun 12 14:04:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:44 2013 -0700"
      },
      "message": "ocfs2: ocfs2_prep_new_orphaned_file() should return ret\n\nIf an error occurs, for example an EIO in __ocfs2_prepare_orphan_dir,\nocfs2_prep_new_orphaned_file will release the inode_ac, then when the\ncaller of ocfs2_prep_new_orphaned_file gets a 0 return, it will refer to\na NULL ocfs2_alloc_context struct in the following functions.  A kernel\npanic happens.\n\nSigned-off-by: \"Xiaowei.Hu\" \u003cxiaowei.hu@oracle.com\u003e\nReviewed-by: shencanquan \u003cshencanquan@huawei.com\u003e\nAcked-by: Sunil Mushran \u003csunil.mushran@gmail.com\u003e\nCc: Joe Jin \u003cjoe.jin@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": "637241a900cbd982f744d44646b48a273d609b34",
      "tree": "0c8e84af9e6a37bd61f9fc9b7a668472df53df46",
      "parents": [
        "cf7df378aa4ff7da3a44769b7ff6e9eef1a9f3db"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed Jun 12 14:04:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 16:29:44 2013 -0700"
      },
      "message": "kmsg: honor dmesg_restrict sysctl on /dev/kmsg\n\nThe dmesg_restrict sysctl currently covers the syslog method for access\ndmesg, however /dev/kmsg isn\u0027t covered by the same protections.  Most\npeople haven\u0027t noticed because util-linux dmesg(1) defaults to using the\nsyslog method for access in older versions.  With util-linux dmesg(1)\ndefaults to reading directly from /dev/kmsg.\n\nTo fix /dev/kmsg, let\u0027s compare the existing interfaces and what they\nallow:\n\n - /proc/kmsg allows:\n  - open (SYSLOG_ACTION_OPEN) if CAP_SYSLOG since it uses a destructive\n    single-reader interface (SYSLOG_ACTION_READ).\n  - everything, after an open.\n\n - syslog syscall allows:\n  - anything, if CAP_SYSLOG.\n  - SYSLOG_ACTION_READ_ALL and SYSLOG_ACTION_SIZE_BUFFER, if\n    dmesg_restrict\u003d\u003d0.\n  - nothing else (EPERM).\n\nThe use-cases were:\n - dmesg(1) needs to do non-destructive SYSLOG_ACTION_READ_ALLs.\n - sysklog(1) needs to open /proc/kmsg, drop privs, and still issue the\n   destructive SYSLOG_ACTION_READs.\n\nAIUI, dmesg(1) is moving to /dev/kmsg, and systemd-journald doesn\u0027t\nclear the ring buffer.\n\nBased on the comments in devkmsg_llseek, it sounds like actions besides\nreading aren\u0027t going to be supported by /dev/kmsg (i.e.\nSYSLOG_ACTION_CLEAR), so we have a strict subset of the non-destructive\nsyslog syscall actions.\n\nTo this end, move the check as Josh had done, but also rename the\nconstants to reflect their new uses (SYSLOG_FROM_CALL becomes\nSYSLOG_FROM_READER, and SYSLOG_FROM_FILE becomes SYSLOG_FROM_PROC).\nSYSLOG_FROM_READER allows non-destructive actions, and SYSLOG_FROM_PROC\nallows destructive actions after a capabilities-constrained\nSYSLOG_ACTION_OPEN check.\n\n - /dev/kmsg allows:\n  - open if CAP_SYSLOG or dmesg_restrict\u003d\u003d0\n  - reading/polling, after open\n\nAddresses https://bugzilla.redhat.com/show_bug.cgi?id\u003d903192\n\n[akpm@linux-foundation.org: use pr_warn_once()]\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReported-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nTested-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\nCc: Kay Sievers \u003ckay@vrfy.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": "8d7a8fe2ce2f242953aef46226eaa8a4a1a2c380",
      "tree": "310f88f97aa3192a95fd13423efd93bd5ec57c0e",
      "parents": [
        "77293e215edef7871a39de4b326f777bc39278ca",
        "3abef3b3585bbc67d56fdc9c67761a900fb4b69d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 08:28:19 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 12 08:28:19 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull ceph fixes from Sage Weil:\n \"There is a pair of fixes for double-frees in the recent bundle for\n  3.10, a couple of fixes for long-standing bugs (sleep while atomic and\n  an endianness fix), and a locking fix that can be triggered when osds\n  are going down\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  rbd: fix cleanup in rbd_add()\n  rbd: don\u0027t destroy ceph_opts in rbd_add()\n  ceph: ceph_pagelist_append might sleep while atomic\n  ceph: add cpu_to_le32() calls when encoding a reconnect capability\n  libceph: must hold mutex for reset_changed_osds()\n"
    },
    {
      "commit": "bbd465df73f0d8ba41b8a0732766a243d0f5b356",
      "tree": "540185afd63cb5030b9f1a907df2337f19f27502",
      "parents": [
        "81db4dbf592b486ac2bc7cabfb328ee2a6c4725d"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mikulas@artax.karlin.mff.cuni.cz",
        "time": "Sun Jun 09 01:25:57 2013 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 08 17:39:40 2013 -0700"
      },
      "message": "hpfs: fix warnings when the filesystem fills up\n\nThis patch fixes warnings due to missing lock on write error path.\n\n  WARNING: at fs/hpfs/hpfs_fn.h:353 hpfs_truncate+0x75/0x80 [hpfs]()\n  Hardware name: empty\n  Pid: 26563, comm: dd Tainted: P           O 3.9.4 #12\n  Call Trace:\n    hpfs_truncate+0x75/0x80 [hpfs]\n    hpfs_write_begin+0x84/0x90 [hpfs]\n    _hpfs_bmap+0x10/0x10 [hpfs]\n    generic_file_buffered_write+0x121/0x2c0\n    __generic_file_aio_write+0x1c7/0x3f0\n    generic_file_aio_write+0x7c/0x100\n    do_sync_write+0x98/0xd0\n    hpfs_file_write+0xd/0x50 [hpfs]\n    vfs_write+0xa2/0x160\n    sys_write+0x51/0xa0\n    page_fault+0x22/0x30\n    system_call_fastpath+0x1a/0x1f\n\nSigned-off-by: Mikulas Patocka \u003cmikulas@artax.karlin.mff.cuni.cz\u003e\nCc: stable@kernel.org  # 2.6.39+\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81db4dbf592b486ac2bc7cabfb328ee2a6c4725d",
      "tree": "bb42fbbee400f55b13f49f30b392367798602652",
      "parents": [
        "c3e58a7945c8f1e4ec09ef93832a3839c5a70be2",
        "67dd331c5d811b2e50c935a24c82f31b61c6dcd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 08 15:51:21 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 08 15:51:21 2013 -0700"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer fixes from Thomas Gleixner:\n\n - Trivial: unused variable removal\n\n - Posix-timers: Add the clock ID to the new proc interface to make it\n   useful.  The interface is new and should be functional when we reach\n   the final 3.10 release.\n\n - Cure a false positive warning in the tick code introduced by the\n   overhaul in 3.10\n\n - Fix for a persistent clock detection regression introduced in this\n   cycle\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timekeeping: Correct run-time detection of persistent_clock.\n  ntp: Remove unused variable flags in __hardpps\n  posix-timers: Show clock ID in proc file\n  tick: Cure broadcast false positive pending bit warning\n"
    },
    {
      "commit": "13e6c37b989859e70b0d73d3f2cb0aa022159b17",
      "tree": "20fa0ee3fd51a6b0ea3d1099eed52e8f609eb76f",
      "parents": [
        "2932505abe7c56477315a3d93ffb3c27c5182e9d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu May 30 16:55:44 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sat Jun 08 15:11:35 2013 -0400"
      },
      "message": "Btrfs: stop all workers before cleaning up roots\n\nDave reported a panic because the extent_root-\u003ecommit_root was NULL in the\ncaching kthread.  That is because we just unset it in free_root_pointers, which\nis not the correct thing to do, we have to either wait for the caching kthread\nto complete or hold the extent_commit_sem lock so we know the thread has exited.\nThis patch makes the kthreads all stop first and then we do our cleanup.  This\nshould fix the race.  Thanks,\n\nReported-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\n"
    },
    {
      "commit": "2932505abe7c56477315a3d93ffb3c27c5182e9d",
      "tree": "87fadf5f979b36cdcad79a5d4f4c6cd587b68422",
      "parents": [
        "a9995eece39a0630ebbfc1ab38570bce6c8a8f5b"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "bo.li.liu@oracle.com",
        "time": "Sun May 26 13:50:27 2013 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sat Jun 08 15:10:01 2013 -0400"
      },
      "message": "Btrfs: fix use-after-free bug during umount\n\nCommit be283b2e674a09457d4563729015adb637ce7cc1\n(    Btrfs: use helper to cleanup tree roots) introduced the following bug,\n\n BUG: unable to handle kernel NULL pointer dereference at 0000000000000034\n IP: [\u003cffffffffa039368c\u003e] extent_buffer_get+0x4/0xa [btrfs]\n[...]\n Pid: 2463, comm: btrfs-cache-1 Tainted: G           O 3.9.0+ #4 innotek GmbH VirtualBox/VirtualBox\n RIP: 0010:[\u003cffffffffa039368c\u003e]  [\u003cffffffffa039368c\u003e] extent_buffer_get+0x4/0xa [btrfs]\n Process btrfs-cache-1 (pid: 2463, threadinfo ffff880112d60000, task ffff880117679730)\n[...]\n Call Trace:\n  [\u003cffffffffa0398a99\u003e] btrfs_search_slot+0x104/0x64d [btrfs]\n  [\u003cffffffffa039aea4\u003e] btrfs_next_old_leaf+0xa7/0x334 [btrfs]\n  [\u003cffffffffa039b141\u003e] btrfs_next_leaf+0x10/0x12 [btrfs]\n  [\u003cffffffffa039ea13\u003e] caching_thread+0x1a3/0x2e0 [btrfs]\n  [\u003cffffffffa03d8811\u003e] worker_loop+0x14b/0x48e [btrfs]\n  [\u003cffffffffa03d86c6\u003e] ? btrfs_queue_worker+0x25c/0x25c [btrfs]\n  [\u003cffffffff81068d3d\u003e] kthread+0x8d/0x95\n  [\u003cffffffff81068cb0\u003e] ? kthread_freezable_should_stop+0x43/0x43\n  [\u003cffffffff8151e5ac\u003e] ret_from_fork+0x7c/0xb0\n  [\u003cffffffff81068cb0\u003e] ? kthread_freezable_should_stop+0x43/0x43\nRIP  [\u003cffffffffa039368c\u003e] extent_buffer_get+0x4/0xa [btrfs]\n\nWe\u0027ve free\u0027ed commit_root before actually getting to free block groups where\ncaching thread needs valid extent_root-\u003ecommit_root.\n\nSigned-off-by: Liu Bo \u003cbo.li.liu@oracle.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "a9995eece39a0630ebbfc1ab38570bce6c8a8f5b",
      "tree": "1dab3bca657f98015fed634bf08e2cc9742741f6",
      "parents": [
        "6379ef9fb2482a92b5fe09f927d6ce1f989c0c6d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Fri May 31 13:04:36 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sat Jun 08 15:07:53 2013 -0400"
      },
      "message": "Btrfs: init relocate extent_io_tree with a mapping\n\nDave reported a NULL pointer deref.  This is caused because he thought he\u0027d be\nsmart and add sanity checks to the extent_io bit operations, but he didn\u0027t\nexpect a tree to have a NULL mapping.  To fix this we just need to init the\nrelocation\u0027s processed_blocks with the btree_inode-\u003ei_mapping.  Thanks,\n\nReported-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "6379ef9fb2482a92b5fe09f927d6ce1f989c0c6d",
      "tree": "f4bd8f1479d092f47d93570c4a8e50503d86a05a",
      "parents": [
        "7b5ff90ed081787ec0765ceb4fe5ccf5677493a6"
      ],
      "author": {
        "name": "Naohiro Aota",
        "email": "naota@elisp.net",
        "time": "Thu Jun 06 09:56:34 2013 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sat Jun 08 15:07:53 2013 -0400"
      },
      "message": "btrfs: Drop inode if inode root is NULL\n\nThere is a path where btrfs_drop_inode() is called with its inode\u0027s root\nis NULL: In btrfs_new_inode(), when btrfs_set_inode_index() fails,\niput() is called. We should handle this case before taking look at the\nroot-\u003eroot_item.\n\nSigned-off-by: Naohiro Aota \u003cnaota@elisp.net\u003e\nReviewed-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "7b5ff90ed081787ec0765ceb4fe5ccf5677493a6",
      "tree": "fd0bffca467dde8ac29405004e8bf81be0725f11",
      "parents": [
        "c5cb6a0573bef87e098ee3cd946115ebe60a910e"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@fusionio.com",
        "time": "Thu Jun 06 10:29:40 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sat Jun 08 15:07:53 2013 -0400"
      },
      "message": "Btrfs: don\u0027t delete fs_roots until after we cleanup the transaction\n\nWe get a use after free if we had a transaction to cleanup since there could be\ndelayed inodes which refer to their respective fs_root.  Thanks\n\nReported-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjbacik@fusionio.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "b8e9dbacdd60c5a20ab2c77c08f047b2b990f303",
      "tree": "5778963b48646331d9e4706a40c7b246f660c008",
      "parents": [
        "e4327859341f2d3a93b4b6fef2ea483eac1c270c",
        "bc5abcf7e411b889f73ea2a90439071a0f451011"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 07 16:21:44 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 07 16:21:44 2013 -0700"
      },
      "message": "Merge tag \u0027ecryptfs-3.10-rc5-msync\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs\n\nPull ecryptfs fixes from Tyler Hicks:\n - Fixes how eCryptfs handles msync to sync both the upper and lower\n   file\n - A couple of MAINTAINERS updates\n\n* tag \u0027ecryptfs-3.10-rc5-msync\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:\n  eCryptfs: Check return of filemap_write_and_wait during fsync\n  Update eCryptFS maintainers\n  ecryptfs: fixed msync to flush data\n"
    },
    {
      "commit": "e4327859341f2d3a93b4b6fef2ea483eac1c270c",
      "tree": "a4a31edd604f580e1513f919e1abbb2507bec6ab",
      "parents": [
        "308f8813de2b608e8de436fa03a795d2e94f1a1f",
        "1fc29bacedeabb278080e31bb9c1ecb49f143c3b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 07 16:05:43 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 07 16:05:43 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.10\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fix from Steve French:\n \"Fix one byte buffer overrun with prefixpaths on cifs mounts which can\n  cause a problem with mount depending on the string length\"\n\n* \u0027for-3.10\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  cifs: fix off-by-one bug in build_unc_path_to_root\n"
    },
    {
      "commit": "698b8223631472bf982ed570b0812faa61955683",
      "tree": "e983325703886079e4a9cf36866524519f9c7635",
      "parents": [
        "4d3797d7e1861ac1af150a6189315786c5e1c820"
      ],
      "author": {
        "name": "Dave Chiluk",
        "email": "chiluk@canonical.com",
        "time": "Tue May 28 16:06:08 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 07 12:15:38 2013 -0400"
      },
      "message": "ncpfs: fix rmdir returns Device or resource busy\n\n1d2ef5901483004d74947bbf78d5146c24038fe7 caused a regression in ncpfs such that\ndirectories could no longer be removed.  This was because ncp_rmdir checked\nto see if a dentry could be unhashed before allowing it to be removed. Since\n1d2ef5901483004d74947bbf78d5146c24038fe7 introduced a change that incremented\ndentry-\u003ed_count causing it to always be greater than 1 unhash would always\nfail.  Thus causing the error path in ncp_rmdir to always be taken.  Removing\nthis error path is safe as unhashing is still accomplished by calls to dput\nfrom vfs_rmdir.\n\nSigned-off-by: Dave Chiluk \u003cchiluk@canonical.com\u003e\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e6395b68ad09a835f058da31bad0fe23d3882659",
      "tree": "61135c0b386bbe251bdb6035944dcbba22abf24f",
      "parents": [
        "29eb77825cc7da8d45b642de2de3d423dc8a363f",
        "0a8aa1939777dd114479677f0044652c1fd72398"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 06 16:15:25 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 06 16:15:25 2013 -0700"
      },
      "message": "Merge tag \u0027for-linus-v3.10-rc5\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull more xfs updates from Ben Myers:\n \"Here are several fixes for filesystems with CRC support turned on:\n  fixes for quota, remote attributes, and recovery.  There is also some\n  feature work related to CRCs: the implementation of CRCs for the inode\n  unlinked lists, disabling noattr2/attr2 options when appropriate, and\n  bumping the maximum number of ACLs.\n\n  I would have preferred to defer this last category of items to 3.11.\n  This would require setting a feature bit for the on-disk changes, so\n  there is some pressure to get these in 3.10.  I believe this\n  represents the end of the CRC related queue.\n\n   - Rework of dquot CRCs\n   - Fix for remote attribute invalidation of a leaf\n   - Fix ordering of transaction replay in recovery\n   - Implement CRCs for inode unlinked list\n   - Disable noattr2/attr2 mount options when CRCs are enabled\n   - Bump the limitation of ACL entries for v5 superblocks\"\n\n* tag \u0027for-linus-v3.10-rc5\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: increase number of ACL entries for V5 superblocks\n  xfs: disable noattr2/attr2 mount options for CRC enabled filesystems\n  xfs: inode unlinked list needs to recalculate the inode CRC\n  xfs: fix log recovery transaction item reordering\n  xfs: fix remote attribute invalidation for a leaf\n  xfs: rework dquot CRCs\n"
    },
    {
      "commit": "0a8aa1939777dd114479677f0044652c1fd72398",
      "tree": "8ffde303c1bd382b421fc1d3a99b0be2f308caaf",
      "parents": [
        "f763fd440e094be37b38596ee14f1d64caa9bf9c"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 05 12:09:10 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Jun 06 10:52:15 2013 -0500"
      },
      "message": "xfs: increase number of ACL entries for V5 superblocks\n\nThe limit of 25 ACL entries is arbitrary, but baked into the on-disk\nformat.  For version 5 superblocks, increase it to the maximum nuber\nof ACLs that can fit into a single xattr.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinuguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 5c87d4bc1a86bd6e6754ac3d6e111d776ddcfe57)\n"
    },
    {
      "commit": "f763fd440e094be37b38596ee14f1d64caa9bf9c",
      "tree": "ec730f5619f5e010d2314214046c777cda0fd04e",
      "parents": [
        "ad868afddb908a5d4015c6b7637721b48fb9c8f9"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 05 12:09:09 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Jun 06 10:51:34 2013 -0500"
      },
      "message": "xfs: disable noattr2/attr2 mount options for CRC enabled filesystems\n\nattr2 format is always enabled for v5 superblock filesystems, so the\nmount options to enable or disable it need to be cause mount errors.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit d3eaace84e40bf946129e516dcbd617173c1cf14)\n"
    },
    {
      "commit": "ad868afddb908a5d4015c6b7637721b48fb9c8f9",
      "tree": "8a8f9f5407f395c8b5619ab6c72116e65cbbf36f",
      "parents": [
        "75406170751b4de88a01f73dda56efa617ddd5d7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 05 12:09:08 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Jun 06 10:51:19 2013 -0500"
      },
      "message": "xfs: inode unlinked list needs to recalculate the inode CRC\n\nThe inode unlinked list manipulations operate directly on the inode\nbuffer, and so bypass the inode CRC calculation mechanisms. Hence an\ninode on the unlinked list has an invalid CRC. Fix this by\nrecalculating the CRC whenever we modify an unlinked list pointer in\nan inode, ncluding during log recovery. This is trivial to do and\nresults in  unlinked list operations always leaving a consistent\ninode in the buffer.\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(cherry picked from commit 0a32c26e720a8b38971d0685976f4a7d63f9e2ef)\n"
    },
    {
      "commit": "75406170751b4de88a01f73dda56efa617ddd5d7",
      "tree": "b9eac9caa2d9dc318e0ac71cd3bf8f9556db0d5f",
      "parents": [
        "ea929536a43226a01d1a73ac8b14d52e81163bd4"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Jun 05 12:09:07 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Jun 06 10:51:07 2013 -0500"
      },
      "message": "xfs: fix log recovery transaction item reordering\n\nThere are several constraints that inode allocation and unlink\nlogging impose on log recovery. These all stem from the fact that\ninode alloc/unlink are logged in buffers, but all other inode\nchanges are logged in inode items. Hence there are ordering\nconstraints that recovery must follow to ensure the correct result\noccurs.\n\nAs it turns out, this ordering has been working mostly by chance\nthan good management. The existing code moves all buffers except\ncancelled buffers to the head of the list, and everything else to\nthe tail of the list. The problem with this is that is interleaves\ninode items with the buffer cancellation items, and hence whether\nthe inode item in an cancelled buffer gets replayed is essentially\nleft to chance.\n\nFurther, this ordering causes problems for log recovery when inode\nCRCs are enabled. It typically replays the inode unlink buffer long before\nit replays the inode core changes, and so the CRC recorded in an\nunlink buffer is going to be invalid and hence any attempt to\nvalidate the inode in the buffer is going to fail. Hence we really\nneed to enforce the ordering that the inode alloc/unlink code has\nexpected log recovery to have since inode chunk de-allocation was\nintroduced back in 2003...\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(cherry picked from commit a775ad778073d55744ed6709ccede36310638911)\n"
    },
    {
      "commit": "ea929536a43226a01d1a73ac8b14d52e81163bd4",
      "tree": "8cf6879e7e6b424967d942d0977f76b09e397ca9",
      "parents": [
        "bb9b8e86ad083ecb2567ae909c1d6cb0bbaa60fe"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jun 03 15:28:49 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Jun 06 10:50:52 2013 -0500"
      },
      "message": "xfs: fix remote attribute invalidation for a leaf\n\nWhen invalidating an attribute leaf block block, there might be\nremote attributes that it points to. With the recent rework of the\nremote attribute format, we have to make sure we calculate the\nlength of the attribute correctly. We aren\u0027t doing that in\nxfs_attr3_leaf_inactive(), so fix it.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinuguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 59913f14dfe8eb772ff93eb442947451b4416329)\n"
    },
    {
      "commit": "bb9b8e86ad083ecb2567ae909c1d6cb0bbaa60fe",
      "tree": "032c32322f3be1e866655ea69bf897099be01c55",
      "parents": [
        "7bc0dc271e494e12be3afd3c6431e5216347c624"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jun 03 15:28:46 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Jun 06 10:50:35 2013 -0500"
      },
      "message": "xfs: rework dquot CRCs\n\nCalculating dquot CRCs when the backing buffer is written back just\ndoesn\u0027t work reliably. There are several places which manipulate\ndquots directly in the buffers, and they don\u0027t calculate CRCs\nappropriately, nor do they always set the buffer up to calculate\nCRCs appropriately.\n\nFirstly, if we log a dquot buffer (e.g. during allocation) it gets\nlogged without valid CRC, and so on recovery we end up with a dquot\nthat is not valid.\n\nSecondly, if we recover/repair a dquot, we don\u0027t have a verifier\nattached to the buffer and hence CRCs are not calculated on the way\ndown to disk.\n\nThirdly, calculating the CRC after we\u0027ve changed the contents means\nthat if we re-read the dquot from the buffer, we cannot verify the\ncontents of the dquot are valid, as the CRC is invalid.\n\nSo, to avoid all the dquot CRC errors that are being detected by the\nread verifier, change to using the same model as for inodes. That\nis, dquot CRCs are calculated and written to the backing buffer at\nthe time the dquot is flushed to the backing buffer. If we modify\nthe dquot directly in the backing buffer, calculate the CRC\nimmediately after the modification is complete. Hence the dquot in\nthe on-disk buffer should always have a valid CRC.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 6fcdc59de28817d1fbf1bd58cc01f4f3fac858fb)\n"
    },
    {
      "commit": "bc5abcf7e411b889f73ea2a90439071a0f451011",
      "tree": "ab1b98a7863fdd9bf80fb8e98d6bd41bae78be1c",
      "parents": [
        "24a923e4e9a296a8f8ff852109d423ba07616cc4"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Jun 04 10:24:56 2013 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Tue Jun 04 23:53:31 2013 -0700"
      },
      "message": "eCryptfs: Check return of filemap_write_and_wait during fsync\n\nError out of ecryptfs_fsync() if filemap_write_and_wait() fails.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: Paul Taysom \u003ctaysom@chromium.org\u003e\nCc: Olof Johansson \u003colofj@chromium.org\u003e\nCc: stable@vger.kernel.org # v3.6+\n"
    },
    {
      "commit": "6f66f9005b66a9a09028f8c85d67600b20a979ec",
      "tree": "8d805ed204c8beba4ca01449a651b871234084c2",
      "parents": [
        "8764d86100fe58e69877753faa44fc1d9276c624",
        "a6a4d98b0124b5d3befe8b3a99f51f1b4fcc6dcf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 05 09:06:28 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 05 09:06:28 2013 +0900"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes\n\nPull gfs2 fixes from Steven Whitehouse:\n \"There are four patches this time.\n\n  The first fixes a problem where the wrong descriptor type was being\n  written into the log for journaled data blocks.\n\n  The second fixes a race relating to the deallocation of allocator\n  data.\n\n  The third provides a fallback if kmalloc is unable to satisfy a\n  request to allocate a directory hash table.\n\n  The fourth fixes the iopen glock caching so that inodes are deleted in\n  a more timely manner after rmdir/unlink\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes:\n  GFS2: Don\u0027t cache iopen glocks\n  GFS2: Fall back to vmalloc if kmalloc fails for dir hash tables\n  GFS2: Increase i_writecount during gfs2_setattr_size\n  GFS2: Set log descriptor type for jdata blocks\n"
    },
    {
      "commit": "8764d86100fe58e69877753faa44fc1d9276c624",
      "tree": "aeef71d9cf639aa79ea7776440eea351f8e552b8",
      "parents": [
        "1dc735bdec9a86d8be1122c43ba52c67aa4e9b30",
        "e5c5f05dca0cf90f0f3bb1aea85dcf658baff185"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 05 09:03:31 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 05 09:03:31 2013 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\nPull fuse fixes from Miklos Szeredi:\n \"One patch fixes an Oops introduced in 3.9 with the readdirplus\n  feature.  The rest are fixes for async-dio in 3.10\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: fix alignment in short read optimization for async_dio\n  fuse: return -EIOCBQUEUED from fuse_direct_IO() for all async requests\n  fuse: fix readdirplus Oops in fuse_dentry_revalidate\n  fuse: update inode size and invalidate attributes on fallocate\n  fuse: truncate pagecache range on hole punch\n  fuse: allocate for_background dio requests based on io-\u003easync state\n"
    },
    {
      "commit": "0ab60871b451b857206d7afc0d3033be866f76b4",
      "tree": "72dd70aba74f00cf78eeba41817b4b56622fafcf",
      "parents": [
        "aa4f608478acb7ed69dfcff4f3c404100b78ac49",
        "95bbb82f60c80808e5a49d8233c2de8451901531"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 04 06:33:44 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 04 06:33:44 2013 +0900"
      },
      "message": "Merge tag \u0027jfs-3.10-rc5\u0027 of git://github.com/kleikamp/linux-shaggy\n\nPull jfs bugfixes from David Kleikamp:\n \"A couple jfs bug fixes for 3.10-rc5\"\n\n* tag \u0027jfs-3.10-rc5\u0027 of git://github.com/kleikamp/linux-shaggy:\n  fs/jfs: Add check if journaling to disk has been disabled in lbmRead()\n  jfs: Several bugs in jfs_freeze() and jfs_unfreeze()\n"
    },
    {
      "commit": "a6a4d98b0124b5d3befe8b3a99f51f1b4fcc6dcf",
      "tree": "c9da72b651e1c06ac14804d661f1dfbf4e8df75a",
      "parents": [
        "e8830d8856e3ad61067dd46c05438b0d75a0441a"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed May 29 11:51:52 2013 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 03 16:40:22 2013 +0100"
      },
      "message": "GFS2: Don\u0027t cache iopen glocks\n\nThis patch makes GFS2 immediately reclaim/delete all iopen glocks\nas soon as they\u0027re dequeued. This allows deleters to get an\nEXclusive lock on iopen so files are deleted properly instead of\nbeing set as unlinked.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e8830d8856e3ad61067dd46c05438b0d75a0441a",
      "tree": "33756e349db97fffa55aac324135c7aff914f70b",
      "parents": [
        "2b3dcf35810ff02ad0e785527a25c1b13bf82b19"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu May 30 09:48:56 2013 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 03 16:39:44 2013 +0100"
      },
      "message": "GFS2: Fall back to vmalloc if kmalloc fails for dir hash tables\n\nThis version has one more correction: the vmalloc calls are replaced\nby __vmalloc calls to preserve the GFP_NOFS flag.\n\nWhen GFS2\u0027s directory management code allocates buffers for a\ndirectory hash table, if it can\u0027t get the memory it needs, it\ncurrently gives a bad return code. Rather than giving an error,\nthis patch allows it to use virtual memory rather than kernel\nmemory for the hash table. This should make it possible for\ndirectories to function properly, even when kernel memory becomes\nvery fragmented.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2b3dcf35810ff02ad0e785527a25c1b13bf82b19",
      "tree": "0ab2a2f709290e2eb4d74d385a7d832929e3768c",
      "parents": [
        "4a586812055dbd2588b0836ab758f6b9670c3949"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue May 28 10:04:44 2013 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 03 16:38:58 2013 +0100"
      },
      "message": "GFS2: Increase i_writecount during gfs2_setattr_size\n\nThis patch calls get_write_access in a few functions. This\nmerely increases inode-\u003ei_writecount for the duration of the function.\nThat will ensure that any file closes won\u0027t delete the inode\u0027s\nmulti-block reservation while the function is running.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4a586812055dbd2588b0836ab758f6b9670c3949",
      "tree": "75d68af866e2102dd18f492ae37da5c1766ed165",
      "parents": [
        "aa4f608478acb7ed69dfcff4f3c404100b78ac49"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri May 24 15:02:49 2013 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 03 16:38:39 2013 +0100"
      },
      "message": "GFS2: Set log descriptor type for jdata blocks\n\nThis patch sets the log descriptor type according to whether the\njournal commit is for (journaled) data or metadata. This was\nrecently broken when the functions to process data and metadata\nlog ops were combined.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e5c5f05dca0cf90f0f3bb1aea85dcf658baff185",
      "tree": "d6290697847d61da2c4a183d9ea521989a814a43",
      "parents": [
        "c9ecf989cc7626e9edf8abef79f64b909542129b"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Thu May 30 16:41:34 2013 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jun 03 15:15:42 2013 +0200"
      },
      "message": "fuse: fix alignment in short read optimization for async_dio\n\nThe bug was introduced with async_dio feature: trying to optimize short reads,\nwe cut number-of-bytes-to-read to i_size boundary. Hence the following example:\n\n\ttruncate --size\u003d300 /mnt/file\n\tdd if\u003d/mnt/file of\u003d/dev/null iflag\u003ddirect\n\nled to FUSE_READ request of 300 bytes size. This turned out to be problem\nfor userspace fuse implementations who rely on assumption that kernel fuse\ndoes not change alignment of request from client FS.\n\nThe patch turns off the optimization if async_dio is disabled. And, if it\u0027s\nenabled, the patch fixes adjustment of number-of-bytes-to-read to preserve\nalignment.\n\nNote, that we cannot throw out short read optimization entirely because\notherwise a direct read of a huge size issued on a tiny file would generate\na huge amount of fuse requests and most of them would be ACKed by userspace\nwith zero bytes read.\n\nSigned-off-by: Maxim Patlasov \u003cMPatlasov@parallels.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "c9ecf989cc7626e9edf8abef79f64b909542129b",
      "tree": "4d86f444e40c8dfd0157e7b7062290735b1578de",
      "parents": [
        "28420dad233520811c0e0860e7fb4975ed863fc4"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Thu May 30 15:35:50 2013 -0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jun 03 15:15:42 2013 +0200"
      },
      "message": "fuse: return -EIOCBQUEUED from fuse_direct_IO() for all async requests\n\nIf request submission fails for an async request (i.e.,\nget_user_pages() returns -ERESTARTSYS), we currently skip the\n-EIOCBQUEUED return and drop into wait_for_sync_kiocb() forever.\n\nAvoid this by always returning -EIOCBQUEUED for async requests. If\nan error occurs, the error is passed into fuse_aio_complete(),\nreturned via aio_complete() and thus propagated to userspace via\nio_getevents().\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Maxim Patlasov \u003cMPatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "28420dad233520811c0e0860e7fb4975ed863fc4",
      "tree": "b5a8248227aad4b8fbde6b047257f629283e15dc",
      "parents": [
        "bee6c307800bbb26ba1a855b1841c2f0c4b7622a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jun 03 14:40:22 2013 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jun 03 14:40:22 2013 +0200"
      },
      "message": "fuse: fix readdirplus Oops in fuse_dentry_revalidate\n\nFix bug introduced by commit 4582a4ab2a \"FUSE: Adapt readdirplus to application\nusage patterns\".\n\nWe need to check for a positive dentry; negative dentries are not added by\nreaddirplus.  Secondly we need to advise the use of readdirplus on the *parent*,\notherwise the whole thing is useless.  Thirdly all this is only relevant if\n\"readdirplus_auto\" mode is selected by the filesystem.\n\nWe advise the use of readdirplus only if the dentry was still valid.  If we had\nto redo the lookup then there was no use in doing the -plus version.\n\nReported-by: Bernd Schubert \u003cbernd.schubert@itwm.fraunhofer.de\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: Feng Shuo \u003csteve.shuo.feng@gmail.com\u003e\nCC: stable@vger.kernel.org\n"
    },
    {
      "commit": "6cf3c736200e3924d8ce6b37e5006a4598b9236d",
      "tree": "9560341b063c1a10e62201c84141af0d63396b61",
      "parents": [
        "f8cb27916ae256ef3b4e2ecca7262109dcfdd083",
        "4ad1f70ebcdb69393ce083f514bf4a4a3a3e65cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 19:51:52 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 19:51:52 2013 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull assorted fixes from Al Viro:\n \"There\u0027ll be more - I\u0027m trying to dig out from under the pile of mail\n  (a couple of weeks of something flu-like ;-/) and there\u0027s several more\n  things waiting for review; this is just the obvious stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  zoran: racy refcount handling in vm_ops -\u003eopen()/-\u003eclose()\n  befs_readdir(): do not increment -\u003ef_pos if filldir tells us to stop\n  hpfs: deadlock and race in directory lseek()\n  qnx6: qnx6_readdir() has a braino in pos calculation\n  fix buffer leak after \"scsi: saner replacements for -\u003eproc_info()\"\n  vfs: Fix invalid ida_remove() call\n"
    },
    {
      "commit": "f8cb27916ae256ef3b4e2ecca7262109dcfdd083",
      "tree": "163bffef6ab19dca50a25b454841e006578e233c",
      "parents": [
        "1d822d6094bbc1363907d9221acf5e78fb5c3ed9",
        "eb54d43707c69340581940e1fcaecb4d7d17b814"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 19:48:59 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 19:48:59 2013 +0900"
      },
      "message": "Merge tag \u0027nfs-for-3.10-4\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull two NFS client fixes from Trond Myklebust:\n - Fix a regression that broke NFS mounting using klibc and busybox\n - Stable fix to check access modes correctly on NFSv4 delegated open()\n\n* tag \u0027nfs-for-3.10-4\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFS: Fix security flavor negotiation with legacy binary mounts\n  NFSv4: Fix a thinko in nfs4_try_open_cached\n"
    },
    {
      "commit": "1d822d6094bbc1363907d9221acf5e78fb5c3ed9",
      "tree": "34ac892dc1fad4d6289818a04886bb7b2623b74a",
      "parents": [
        "7cfb9532581ed3d0e542712be6f9ca5bc1c3b021",
        "a1457c0ce976bad1356b9b0437f2a5c3ab8a9cfc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 06:59:14 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 06:59:14 2013 +0900"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull reiserfs fixes from Jan Kara:\n \"Three reiserfs fixes.  They fix real problems spotted by users so I\n  hope they are ok even at this stage.\"\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  reiserfs: fix deadlock with nfs racing on create/lookup\n  reiserfs: fix problems with chowning setuid file w/ xattrs\n  reiserfs: fix spurious multiple-fill in reiserfs_readdir_dentry\n"
    },
    {
      "commit": "7cfb9532581ed3d0e542712be6f9ca5bc1c3b021",
      "tree": "3fc02a775bb5a2e7332bde94591733497b31c562",
      "parents": [
        "e8d256aca05b6de163605a04f86e5827ef77899f",
        "7bc0dc271e494e12be3afd3c6431e5216347c624"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 06:56:21 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 06:56:21 2013 +0900"
      },
      "message": "Merge tag \u0027for-linus-v3.10-rc4-crc-xattr-fixes\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull xfs extended attribute fixes for CRCs from Ben Myers:\n \"Here are several fixes that are relevant on CRC enabled XFS\n  filesystems.  They are followed by a rework of the remote attribute\n  code so that each block of the attribute contains a header with a CRC.\n\n  Previously there was a CRC header per extent in the remote attribute\n  code, but this was untenable because it was not possible to know how\n  many extents would be allocated for the attribute until after the\n  allocation has completed, due to the fragmentation of free space.\n  This became complicated because the size of the headers needs to be\n  added to the length of the payload to get the overall length required\n  for the allocation.  With a header per block, things are less\n  complicated at the cost of a little space.\n\n  I would have preferred to defer this and the rest of the CRC queue to\n  3.11 to mitigate risk for existing non-crc users in 3.10.  Doing so\n  would require setting a feature bit for the on-disk changes, and so I\n  have been pressured into sending this pull request by Eric Sandeen and\n  David Chinner from Red Hat.  I\u0027ll send another pull request or two\n  with the rest of the CRC queue next week.\n\n   - Remove assert on count of remote attribute CRC headers\n   - Fix the number of blocks read in for remote attributes\n   - Zero remote attribute tails properly\n   - Fix mapping of remote attribute buffers to have correct length\n   - initialize temp leaf properly in xfs_attr3_leaf_unbalance, and\n     xfs_attr3_leaf_compact\n   - Rework remote atttributes to have a header per block\"\n\n* tag \u0027for-linus-v3.10-rc4-crc-xattr-fixes\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: rework remote attr CRCs\n  xfs: fully initialise temp leaf in xfs_attr3_leaf_compact\n  xfs: fully initialise temp leaf in xfs_attr3_leaf_unbalance\n  xfs: correctly map remote attr buffers during removal\n  xfs: remote attribute tail zeroing does too much\n  xfs: remote attribute read too short\n  xfs: remote attribute allocation may be contiguous\n"
    },
    {
      "commit": "e8d256aca05b6de163605a04f86e5827ef77899f",
      "tree": "05de636b72b3d96808daea2aba104e07d722f79d",
      "parents": [
        "977b55cf988b86cdc929fef730a78aca98a8ebdb",
        "e400d27d1690d609f203f2d7d8efebc98cbc3089"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 06:50:16 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 01 06:50:16 2013 +0900"
      },
      "message": "Merge tag \u0027for-linus-v3.10-rc4\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull xfs fixes from Ben Myers:\n - Fix nested transactions in xfs_qm_scall_setqlim\n - Clear suid/sgid bits when we truncate with size update\n - Fix recovery for split buffers\n - Fix block count on remote symlinks\n - Add fsgeom flag for v5 superblock support\n - Disable XFS_IOC_SWAPEXT for CRC enabled filesystems\n - Fix dirv3 freespace block corruption\n\n* tag \u0027for-linus-v3.10-rc4\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix dir3 freespace block corruption\n  xfs: disable swap extents ioctl on CRC enabled filesystems\n  xfs: add fsgeom flag for v5 superblock support.\n  xfs: fix incorrect remote symlink block count\n  xfs: fix split buffer vector log recovery support\n  xfs: kill suid/sgid through the truncate path.\n  xfs: avoid nesting transactions in xfs_qm_scall_setqlim()\n"
    },
    {
      "commit": "1fc29bacedeabb278080e31bb9c1ecb49f143c3b",
      "tree": "d4066d88f8ffb3431d766d49035f1f7caa1439ed",
      "parents": [
        "a93cb29acaa8f75618c3f202d1cf43c231984644"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 31 10:00:18 2013 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 31 16:23:35 2013 -0500"
      },
      "message": "cifs: fix off-by-one bug in build_unc_path_to_root\n\ncommit 839db3d10a (cifs: fix up handling of prefixpath\u003d option) changed\nthe code such that the vol-\u003eprepath no longer contained a leading\ndelimiter and then fixed up the places that accessed that field to\naccount for that change.\n\nOne spot in build_unc_path_to_root was missed however. When doing the\npointer addition on pos, that patch failed to account for the fact that\nwe had already incremented \"pos\" by one when adding the length of the\nprepath. This caused a buffer overrun by one byte.\n\nThis patch fixes the problem by correcting the handling of \"pos\".\n\nCc: \u003cstable@vger.kernel.org\u003e # v3.8+\nReported-by: Marcus Moeller \u003cmarcus.moeller@gmx.ch\u003e\nReported-by: Ken Fallon \u003cken.fallon@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "a1457c0ce976bad1356b9b0437f2a5c3ab8a9cfc",
      "tree": "56f8e9119ed4be27f05a31b9ae5990111a232d69",
      "parents": [
        "4a8570112b76a63ad21cfcbe2783f98f7fd5ba1b"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri May 31 15:51:17 2013 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 31 23:14:20 2013 +0200"
      },
      "message": "reiserfs: fix deadlock with nfs racing on create/lookup\n\nReiserfs is currently able to be deadlocked by having two NFS clients\nwhere one has removed and recreated a file and another is accessing the\nfile with an open file handle.\n\nIf one client deletes and recreates a file with timing such that the\nrecreated file obtains the same [dirid, objectid] pair as the original\nfile while another client accesses the file via file handle, the create\nand lookup can race and deadlock if the lookup manages to create the\nin-memory inode first.\n\nThe create thread, in insert_inode_locked4, will hold the write lock\nwhile waiting on the other inode to be unlocked. The lookup thread,\nanywhere in the iget path, will release and reacquire the write lock while\nit schedules. If it needs to reacquire the lock while the create thread\nhas it, it will never be able to make forward progress because it needs\nto reacquire the lock before ultimately unlocking the inode.\n\nThis patch drops the write lock across the insert_inode_locked4 call so\nthat the ordering of inode_wait -\u003e write lock is retained. Since this\nwould have been the case before the BKL push-down, this is safe.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4a8570112b76a63ad21cfcbe2783f98f7fd5ba1b",
      "tree": "e2009e9a11575062ed38fa464ea03801aa2c5594",
      "parents": [
        "0bdc7acba56a7ca4232f15f37b16f7ec079385ab"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri May 31 15:54:17 2013 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 31 23:14:11 2013 +0200"
      },
      "message": "reiserfs: fix problems with chowning setuid file w/ xattrs\n\nreiserfs_chown_xattrs() takes the iattr struct passed into -\u003esetattr\nand uses it to iterate over all the attrs associated with a file to change\nownership of xattrs (and transfer quota associated with the xattr files).\n\nWhen the setuid bit is cleared during chown, ATTR_MODE and iattr-\u003eia_mode\nare passed to all the xattrs as well. This means that the xattr directory\nwill have S_IFREG added to its mode bits.\n\nThis has been prevented in practice by a missing IS_PRIVATE check\nin reiserfs_acl_chmod, which caused a double-lock to occur while holding\nthe write lock. Since the file system was completely locked up, the\nwriteout of the corrupted mode never happened.\n\nThis patch temporarily clears everything but ATTR_UID|ATTR_GID for the\ncalls to reiserfs_setattr and adds the missing IS_PRIVATE check.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0bdc7acba56a7ca4232f15f37b16f7ec079385ab",
      "tree": "86b25345b4c252d5bbbe43387de26a804c4d679d",
      "parents": [
        "58f8bbd2e39c3732c55698494338ee19a92c53a0"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@jeffreymahoney.com",
        "time": "Fri May 31 15:07:52 2013 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 31 23:13:58 2013 +0200"
      },
      "message": "reiserfs: fix spurious multiple-fill in reiserfs_readdir_dentry\n\nAfter sleeping for filldir(), we check to see if the file system has\nchanged and research. The next_pos pointer is updated but its value\nisn\u0027t pushed into the key used for the search itself. As a result,\nthe search returns the same item that the last cycle of the loop did\nand filldir() is called multiple times with the same data.\n\nThe end result is that the buffer can contain the same name multiple\ntimes. This can be returned to userspace or used internally in the\nxattr code where it can manifest with the following warning:\n\njdm-20004 reiserfs_delete_xattrs: Couldn\u0027t delete all xattrs (-2)\n\nreiserfs_for_each_xattr uses reiserfs_readdir_dentry to iterate over\nthe xattr names and ends up trying to unlink the same name twice. The\nsecond attempt fails with -ENOENT and the error is returned. At some\npoint I\u0027ll need to add support into reiserfsck to remove the orphaned\ndirectories left behind when this occurs.\n\nThe fix is to push the value into the key before researching.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "448293aadb54ab38b9c053bf9f1eecafdc0ed214",
      "tree": "c7ef8d7de99d7048c8b29f932a970ffdd5c6c045",
      "parents": [
        "31abdab9c11bb1694ecd1476a7edbe8e964d94ac"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 22 13:41:26 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 31 15:17:56 2013 -0400"
      },
      "message": "befs_readdir(): do not increment -\u003ef_pos if filldir tells us to stop\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "31abdab9c11bb1694ecd1476a7edbe8e964d94ac",
      "tree": "3aeca5bc6bd3976552077909509e3a7e2be9542b",
      "parents": [
        "1d7095c72d35eee4ebc28e66563e636b9adafeb2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 18 02:38:52 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 31 15:17:43 2013 -0400"
      },
      "message": "hpfs: deadlock and race in directory lseek()\n\nFor one thing, there\u0027s an ABBA deadlock on hpfs fs-wide lock and i_mutex\nin hpfs_dir_lseek() - there\u0027s a lot of methods that grab the former with\nthe caller already holding the latter, so it must take i_mutex first.\n\nFor another, locking the damn thing, carefully validating the offset,\nthen dropping locks and assigning the offset is obviously racy.\n\nMoreover, we _must_ do hpfs_add_pos(), or the machinery in dnode.c\nwon\u0027t modify the sucker on B-tree surgeries.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1d7095c72d35eee4ebc28e66563e636b9adafeb2",
      "tree": "9af1a639bd7a26c7c4d77506eef615153fef2a79",
      "parents": [
        "801d9d26bfd6e88e9cf0efbb30b649d1bdc15dcf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 17 15:21:56 2013 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 31 15:17:31 2013 -0400"
      },
      "message": "qnx6: qnx6_readdir() has a braino in pos calculation\n\nWe want to mask lower 5 bits out, not leave only those and clear the\nrest...  As it is, we end up always starting to read from the beginning\nof directory, no matter what the current position had been.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5d477b6079619910dab882fa229cce1f14f86cf8",
      "tree": "02d3791a335d20f6515b26aa8657b47120105796",
      "parents": [
        "a93cb29acaa8f75618c3f202d1cf43c231984644"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri May 10 14:04:11 2013 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 31 15:16:33 2013 -0400"
      },
      "message": "vfs: Fix invalid ida_remove() call\n\nWhen the group id of a shared mount is not allocated, the umount still\ntries to call mnt_release_group_id(), which eventually hits a kernel\nwarning at ida_remove() spewing a message like:\n  ida_remove called for id\u003d0 which is not allocated.\n\nThis patch fixes the bug simply checking the group id in the caller.\n\nReported-by: Cristian Rodríguez \u003ccrrodriguez@opensuse.org\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "484b002e28ca328195829ddc06fa9082c8ad41f8",
      "tree": "f407d16112b9916854e4c3a22d4d9ea8dae90048",
      "parents": [
        "3655b22de04e3635fe3a2d7b9529cb12609a9bd0",
        "5187b28ff08249ab8a162e802209ed04e271ca02"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 31 09:44:10 2013 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 31 09:44:10 2013 +0900"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 fixes from Peter Anvin:\n\n - Three EFI-related fixes\n\n - Two early memory initialization fixes\n\n - build fix for older binutils\n\n - fix for an eager FPU performance regression -- currently we don\u0027t\n   allow the use of the FPU at interrupt time *at all* in eager mode,\n   which is clearly wrong.\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Allow FPU to be used at interrupt time even with eagerfpu\n  x86, crc32-pclmul: Fix build with older binutils\n  x86-64, init: Fix a possible wraparound bug in switchover in head_64.S\n  x86, range: fix missing merge during add range\n  x86, efi: initial the local variable of DataSize to zero\n  efivar: fix oops in efivar_update_sysfs_entries() caused by memory reuse\n  efivarfs: Never return ENOENT from firmware again\n"
    },
    {
      "commit": "7bc0dc271e494e12be3afd3c6431e5216347c624",
      "tree": "9a33ad50512cc9bbdd13229c6cade51458fae148",
      "parents": [
        "634fd5322a3e6ae632dcf5f20eebc0583ba50838"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 21 18:02:08 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:26:31 2013 -0500"
      },
      "message": "xfs: rework remote attr CRCs\n\nNote: this changes the on-disk remote attribute format. I assert\nthat this is OK to do as CRCs are marked experimental and the first\nkernel it is included in has not yet reached release yet. Further,\nthe userspace utilities are still evolving and so anyone using this\nstuff right now is a developer or tester using volatile filesystems\nfor testing this feature. Hence changing the format right now to\nsave longer term pain is the right thing to do.\n\nThe fundamental change is to move from a header per extent in the\nattribute to a header per filesytem block in the attribute. This\nmeans there are more header blocks and the parsing of the attribute\ndata is slightly more complex, but it has the advantage that we\nalways know the size of the attribute on disk based on the length of\nthe data it contains.\n\nThis is where the header-per-extent method has problems. We don\u0027t\nknow the size of the attribute on disk without first knowing how\nmany extents are used to hold it. And we can\u0027t tell from a\nmapping lookup, either, because remote attributes can be allocated\ncontiguously with other attribute blocks and so there is no obvious\nway of determining the actual size of the atribute on disk short of\nwalking and mapping buffers.\n\nThe problem with this approach is that if we map a buffer\nincorrectly (e.g. we make the last buffer for the attribute data too\nlong), we then get buffer cache lookup failure when we map it\ncorrectly. i.e. we get a size mismatch on lookup. This is not\nnecessarily fatal, but it\u0027s a cache coherency problem that can lead\nto returning the wrong data to userspace or writing the wrong data\nto disk. And debug kernels will assert fail if this occurs.\n\nI found lots of niggly little problems trying to fix this issue on a\n4k block size filesystem, finally getting it to pass with lots of\nfixes. The thing is, 1024 byte filesystems still failed, and it was\ngetting really complex handling all the corner cases that were\nshowing up. And there were clearly more that I hadn\u0027t found yet.\n\nIt is complex, fragile code, and if we don\u0027t fix it now, it will be\ncomplex, fragile code forever more.\n\nHence the simple fix is to add a header to each filesystem block.\nThis gives us the same relationship between the attribute data\nlength and the number of blocks on disk as we have without CRCs -\nit\u0027s a linear mapping and doesn\u0027t require us to guess anything. It\nis simple to implement, too - the remote block count calculated at\nlookup time can be used by the remote attribute set/get/remove code\nwithout modification for both CRC and non-CRC filesystems. The world\nbecomes sane again.\n\nBecause the copy-in and copy-out now need to iterate over each\nfilesystem block, I moved them into helper functions so we separate\nthe block mapping and buffer manupulations from the attribute data\nand CRC header manipulations. The code becomes much clearer as a\nresult, and it is a lot easier to understand and debug. It also\nappears to be much more robust - once it worked on 4k block size\nfilesystems, it has worked without failure on 1k block size\nfilesystems, too.\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(cherry picked from commit ad1858d77771172e08016890f0eb2faedec3ecee)\n"
    },
    {
      "commit": "634fd5322a3e6ae632dcf5f20eebc0583ba50838",
      "tree": "9add9c9df36af29972ef5c0d50543a76d03f6a62",
      "parents": [
        "9e80c76205b46b338cb56c336148f54b2326342f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 21 18:02:06 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:26:24 2013 -0500"
      },
      "message": "xfs: fully initialise temp leaf in xfs_attr3_leaf_compact\n\nxfs_attr3_leaf_compact() uses a temporary buffer for compacting the\nthe entries in a leaf. It copies the the original buffer into the\ntemporary buffer, then zeros the original buffer completely. It then\ncopies the entries back into the original buffer.  However, the\noriginal buffer has not been correctly initialised, and so the\nmovement of the entries goes horribly wrong.\n\nMake sure the zeroed destination buffer is fully initialised, and\nonce we\u0027ve set up the destination incore header appropriately, write\nis back to the buffer before starting to move entries around.\n\nWhile debugging this, the _d/_s prefixes weren\u0027t sufficient to\nremind me what buffer was what, so rename then all _src/_dst.\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(cherry picked from commit d4c712bcf26a25c2b67c90e44e0b74c7993b5334)\n"
    },
    {
      "commit": "9e80c76205b46b338cb56c336148f54b2326342f",
      "tree": "1d6732f2e0d124e5cb9e4c52a2e101d799ffe336",
      "parents": [
        "58a72281555bf301f6dff24db2db205c87ef8db1"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 21 18:02:05 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:26:16 2013 -0500"
      },
      "message": "xfs: fully initialise temp leaf in xfs_attr3_leaf_unbalance\n\nxfs_attr3_leaf_unbalance() uses a temporary buffer for recombining\nthe entries in two leaves when the destination leaf requires\ncompaction. The temporary buffer ends up being copied back over the\noriginal destination buffer, so the header in the temporary buffer\nneeds to contain all the information that is in the destination\nbuffer.\n\nTo make sure the temporary buffer is fully initialised, once we\u0027ve\nset up the temporary incore header appropriately, write is back to\nthe temporary buffer before starting to move entries around.\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(cherry picked from commit 8517de2a81da830f5d90da66b4799f4040c76dc9)\n"
    },
    {
      "commit": "58a72281555bf301f6dff24db2db205c87ef8db1",
      "tree": "08167ec47b27c14dcf71744557a0edaac73d2bdd",
      "parents": [
        "26f714450c3907ce07c41a0bd1bea40368e0b4da"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 21 18:02:04 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:26:08 2013 -0500"
      },
      "message": "xfs: correctly map remote attr buffers during removal\n\nIf we don\u0027t map the buffers correctly (same as for get/set\noperations) then the incore buffer lookup will fail. If a block\nnumber matches but a length is wrong, then debug kernels will ASSERT\nfail in _xfs_buf_find() due to the length mismatch. Ensure that we\nmap the buffers correctly by basing the length of the buffer on the\nattribute data length rather than the remote block count.\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(cherry picked from commit 6863ef8449f1908c19f43db572e4474f24a1e9da)\n"
    },
    {
      "commit": "26f714450c3907ce07c41a0bd1bea40368e0b4da",
      "tree": "75fc5d6b3c66dcf43851b3160034b5bbf20147ab",
      "parents": [
        "551b382f5368900d6d82983505cb52553c946a2b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 21 18:02:03 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:25:58 2013 -0500"
      },
      "message": "xfs: remote attribute tail zeroing does too much\n\nWhen an attribute data does not fill then entire remote block, we\nzero the remaining part of the buffer. This, however, needs to take\ninto account that the buffer has a header, and so the offset where\nzeroing starts and the length of zeroing need to take this into\naccount. Otherwise we end up with zeros over the end of the\nattribute value when CRCs are enabled.\n\nWhile there, make sure we only ask to map an extent that covers the\nremaining range of the attribute, rather than asking every time for\nthe full length of remote data. If the remote attribute blocks are\ncontiguous with other parts of the attribute tree, it will map those\nblocks as well and we can potentially zero them incorrectly. We can\nalso get buffer size mistmatches when trying to read or remove the\nremote attribute, and this can lead to not finding the correct\nbuffer when looking it up in cache.\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(cherry picked from commit 4af3644c9a53eb2f1ecf69cc53576561b64be4c6)\n"
    },
    {
      "commit": "551b382f5368900d6d82983505cb52553c946a2b",
      "tree": "baab0a86b30c4c1896453ef11bb70af1ff01e176",
      "parents": [
        "9531e2de6b7f04bd734b4bbc1e16a6955121615a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 21 18:02:02 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:25:50 2013 -0500"
      },
      "message": "xfs: remote attribute read too short\n\nReading a maximally size remote attribute fails when CRCs are\nenabled with this verification error:\n\nXFS (vdb): remote attribute header does not match required off/len/owner)\n\nThere are two reasons for this, the first being that the\nlength of the buffer being read is determined from the\nargs-\u003ermtblkcnt which doesn\u0027t take into account CRC headers. Hence\nthe mapped length ends up being too short and so we need to\ncalculate it directly from the value length.\n\nThe second is that the byte count of valid data within a buffer is\ncapped by the length of the data and so doesn\u0027t take into account\nthat the buffer might be longer due to headers. Hence we need to\ncalculate the data space in the buffer first before calculating the\nactual byte count of data.\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(cherry picked from commit 913e96bc292e1bb248854686c79d6545ef3ee720)\n"
    },
    {
      "commit": "9531e2de6b7f04bd734b4bbc1e16a6955121615a",
      "tree": "6e259ff91845db749a116d7280ad59e2f65c6434",
      "parents": [
        "e400d27d1690d609f203f2d7d8efebc98cbc3089"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 21 18:02:01 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:25:39 2013 -0500"
      },
      "message": "xfs: remote attribute allocation may be contiguous\n\nWhen CRCs are enabled, there may be multiple allocations made if the\nheaders cause a length overflow. This, however, does not mean that\nthe number of headers required increases, as the second and\nsubsequent extents may be contiguous with the previous extent. Hence\nwhen we map the extents to write the attribute data, we may end up\nwith less extents than allocations made. Hence the assertion that we\nconsume the number of headers we calculated in the allocation loop\nis incorrect and needs to be removed.\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(cherry picked from commit 90253cf142469a40f89f989904abf0a1e500e1a6)\n"
    },
    {
      "commit": "e400d27d1690d609f203f2d7d8efebc98cbc3089",
      "tree": "6bb2cdbfb4e6d8ccb650d10e03683e291eeb6c10",
      "parents": [
        "7c9950fd2ac97431230544142d5e652e1b948372"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 28 18:37:17 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:22:54 2013 -0500"
      },
      "message": "xfs: fix dir3 freespace block corruption\n\nWhen the directory freespace index grows to a second block (2017\n4k data blocks in the directory), the initialisation of the second\nnew block header goes wrong. The write verifier fires a corruption\nerror indicating that the block number in the header is zero. This\nwas being tripped by xfs/110.\n\nThe problem is that the initialisation of the new block is done just\nfine in xfs_dir3_free_get_buf(), but the caller then users a dirv2\nstructure to zero on-disk header fields that xfs_dir3_free_get_buf()\nhas already zeroed. These lined up with the block number in the dir\nv3 header format.\n\nWhile looking at this, I noticed that the struct xfs_dir3_free_hdr()\nhad 4 bytes of padding in it that wasn\u0027t defined as padding or being\nzeroed by the initialisation. Add a pad field declaration and fully\nzero the on disk and in-core headers in xfs_dir3_free_get_buf() so\nthat this is never an issue in the future. Note that this doesn\u0027t\nchange the on-disk layout, just makes the 32 bits of padding in the\nlayout explicit.\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(cherry picked from commit 5ae6e6a401957698f2bd8c9f4a86d86d02199fea)\n"
    },
    {
      "commit": "7c9950fd2ac97431230544142d5e652e1b948372",
      "tree": "d7862206d6bc85506490ffa80d3e6ac5836a6e09",
      "parents": [
        "e7927e879d12d27aa06b9bbed57cc32dcd7d17fd"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 27 16:38:24 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:20:08 2013 -0500"
      },
      "message": "xfs: disable swap extents ioctl on CRC enabled filesystems\n\nCurrently, swapping extents from one inode to another is a simple\nact of switching data and attribute forks from one inode to another.\nThis, unfortunately in no longer so simple with CRC enabled\nfilesystems as there is owner information embedded into the BMBT\nblocks that are swapped between inodes. Hence swapping the forks\nbetween inodes results in the inodes having mapping blocks that\npoint to the wrong owner and hence are considered corrupt.\n\nTo fix this we need an extent tree block or record based swap\nalgorithm so that the BMBT block owner information can be updated\natomically in the swap transaction. This is a significant piece of\nnew work, so for the moment simply don\u0027t allow swap extent\noperations to succeed on CRC enabled filesystems.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 02f75405a75eadfb072609f6bf839e027de6a29a)\n"
    },
    {
      "commit": "e7927e879d12d27aa06b9bbed57cc32dcd7d17fd",
      "tree": "c12b05d91c9cfc293f112757859f14f60d0c8733",
      "parents": [
        "1de09d1ae48152e56399aba0bfd984fb0ddae6b0"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 27 16:38:26 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:19:45 2013 -0500"
      },
      "message": "xfs: add fsgeom flag for v5 superblock support.\n\nCurrently userspace has no way of determining that a filesystem is\nCRC enabled. Add a flag to the XFS_IOC_FSGEOMETRY ioctl output to\nindicate that the filesystem has v5 superblock support enabled.\nThis will allow xfs_info to correctly report the state of the\nfilesystem.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 74137fff067961c9aca1e14d073805c3de8549bd)\n"
    },
    {
      "commit": "1de09d1ae48152e56399aba0bfd984fb0ddae6b0",
      "tree": "5adf84f8a317632847416af4e68c3204c551cb63",
      "parents": [
        "7d2ffe80aa000a149246b3745968634192eb5358"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 27 16:38:20 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:19:07 2013 -0500"
      },
      "message": "xfs: fix incorrect remote symlink block count\n\nWhen CRCs are enabled, the number of blocks needed to hold a remote\nsymlink on a 1k block size filesystem may be 2 instead of 1. The\ntransaction reservation for the allocated blocks was not taking this\ninto account and only allocating one block. Hence when trying to\nread or invalidate such symlinks, we are mapping a hole where there\nshould be a block and things go bad at that point.\n\nFix the reservation to use the correct block count, clean up the\nblock count calculation similar to the remote attribute calculation,\nand add a debug guard to detect when we don\u0027t write the entire\nsymlink to disk.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 321a95839e65db3759a07a3655184b0283af90fe)\n"
    },
    {
      "commit": "7d2ffe80aa000a149246b3745968634192eb5358",
      "tree": "9e1ea38497a637d1c12774ea23b38b6586b70e6e",
      "parents": [
        "2962f5a5dcc56f69cbf62121a7be67cc15d6940b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 27 16:38:23 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:18:01 2013 -0500"
      },
      "message": "xfs: fix split buffer vector log recovery support\n\nA long time ago in a galaxy far away....\n\n.. the was a commit made to fix some ilinux specific \"fragmented\nbuffer\" log recovery problem:\n\nhttp://oss.sgi.com/cgi-bin/gitweb.cgi?p\u003darchive/xfs-import.git;a\u003dcommitdiff;h\u003db29c0bece51da72fb3ff3b61391a391ea54e1603\n\nThat problem occurred when a contiguous dirty region of a buffer was\nsplit across across two pages of an unmapped buffer. It\u0027s been a\nlong time since that has been done in XFS, and the changes to log\nthe entire inode buffers for CRC enabled filesystems has\nre-introduced that corner case.\n\nAnd, of course, it turns out that the above commit didn\u0027t actually\nfix anything - it just ensured that log recovery is guaranteed to\nfail when this situation occurs. And now for the gory details.\n\nxfstest xfs/085 is failing with this assert:\n\nXFS (vdb): bad number of regions (0) in inode log format\nXFS: Assertion failed: 0, file: fs/xfs/xfs_log_recover.c, line: 1583\n\nLargely undocumented factoid #1: Log recovery depends on all log\nbuffer format items starting with this format:\n\nstruct foo_log_format {\n\t__uint16_t\ttype;\n\t__uint16_t\tsize;\n\t....\n\nAs recoery uses the size field and assumptions about 32 bit\nalignment in decoding format items.  So don\u0027t pay much attention to\nthe fact log recovery thinks that it decoding an inode log format\nitem - it just uses them to determine what the size of the item is.\n\nBut why would it see a log format item with a zero size? Well,\nluckily enough xfs_logprint uses the same code and gives the same\nerror, so with a bit of gdb magic, it turns out that it isn\u0027t a log\nformat that is being decoded. What logprint tells us is this:\n\nOper (130): tid: a0375e1a  len: 28  clientid: TRANS  flags: none\nBUF:  #regs: 2   start blkno: 144 (0x90)  len: 16  bmap size: 2  flags: 0x4000\nOper (131): tid: a0375e1a  len: 4096  clientid: TRANS  flags: none\nBUF DATA\n----------------------------------------------------------------------------\nOper (132): tid: a0375e1a  len: 4096  clientid: TRANS  flags: none\nxfs_logprint: unknown log operation type (4e49)\n**********************************************************************\n* ERROR: data block\u003d2                                                 *\n**********************************************************************\n\nThat we\u0027ve got a buffer format item (oper 130) that has two regions;\nthe format item itself and one dirty region. The subsequent region\nafter the buffer format item and it\u0027s data is them what we are\ntripping over, and the first bytes of it at an inode magic number.\nNot a log opheader like there is supposed to be.\n\nThat means there\u0027s a problem with the buffer format item. It\u0027s dirty\ndata region is 4096 bytes, and it contains - you guessed it -\ninitialised inodes. But inode buffers are 8k, not 4k, and we log\nthem in their entirety. So something is wrong here. The buffer\nformat item contains:\n\n(gdb) p /x *(struct xfs_buf_log_format *)in_f\n$22 \u003d {blf_type \u003d 0x123c, blf_size \u003d 0x2, blf_flags \u003d 0x4000,\n       blf_len \u003d 0x10, blf_blkno \u003d 0x90, blf_map_size \u003d 0x2,\n       blf_data_map \u003d {0xffffffff, 0xffffffff, .... }}\n\nTwo regions, and a signle dirty contiguous region of 64 bits.  64 *\n128 \u003d 8k, so this should be followed by a single 8k region of data.\nAnd the blf_flags tell us that the type of buffer is a\nXFS_BLFT_DINO_BUF. It contains inodes. And because it doesn\u0027t have\nthe XFS_BLF_INODE_BUF flag set, that means it\u0027s an inode allocation\nbuffer. So, it should be followed by 8k of inode data.\n\nBut we know that the next region has a header of:\n\n(gdb) p /x *ohead\n$25 \u003d {oh_tid \u003d 0x1a5e37a0, oh_len \u003d 0x100000, oh_clientid \u003d 0x69,\n       oh_flags \u003d 0x0, oh_res2 \u003d 0x0}\n\nand so be32_to_cpu(oh_len) \u003d 0x1000 \u003d 4096 bytes. It\u0027s simply not\nlong enough to hold all the logged data. There must be another\nregion. There is - there\u0027s a following opheader for another 4k of\ndata that contains the other half of the inode cluster data - the\none we assert fail on because it\u0027s not a log format header.\n\nSo why is the second part of the data not being accounted to the\ncorrect buffer log format structure? It took a little more work with\ngdb to work out that the buffer log format structure was both\nexpecting it to be there but hadn\u0027t accounted for it. It was at that\npoint I went to the kernel code, as clearly this wasn\u0027t a bug in\nxfs_logprint and the kernel was writing bad stuff to the log.\n\nFirst port of call was the buffer item formatting code, and the\ndiscontiguous memory/contiguous dirty region handling code\nimmediately stood out. I\u0027ve wondered for a long time why the code\nhad this comment in it:\n\n                        vecp-\u003ei_addr \u003d xfs_buf_offset(bp, buffer_offset);\n                        vecp-\u003ei_len \u003d nbits * XFS_BLF_CHUNK;\n                        vecp-\u003ei_type \u003d XLOG_REG_TYPE_BCHUNK;\n/*\n * You would think we need to bump the nvecs here too, but we do not\n * this number is used by recovery, and it gets confused by the boundary\n * split here\n *                      nvecs++;\n */\n                        vecp++;\n\nAnd it didn\u0027t account for the extra vector pointer. The case being\nhandled here is that a contiguous dirty region lies across a\nboundary that cannot be memcpy()d across, and so has to be split\ninto two separate operations for xlog_write() to perform.\n\nWhat this code assumes is that what is written to the log is two\nconsecutive blocks of data that are accounted in the buf log format\nitem as the same contiguous dirty region and so will get decoded as\nsuch by the log recovery code.\n\nThe thing is, xlog_write() knows nothing about this, and so just\ndoes it\u0027s normal thing of adding an opheader for each vector. That\nmeans the 8k region gets written to the log as two separate regions\nof 4k each, but because nvecs has not been incremented, the buf log\nformat item accounts for only one of them.\n\nHence when we come to log recovery, we process the first 4k region\nand then expect to come across a new item that starts with a log\nformat structure of some kind that tells us whenteh next data is\ngoing to be. Instead, we hit raw buffer data and things go bad real\nquick.\n\nSo, the commit from 2002 that commented out nvecs++ is just plain\nwrong. It breaks log recovery completely, and it would seem the only\nreason this hasn\u0027t been since then is that we don\u0027t log large\ncontigous regions of multi-page unmapped buffers very often. Never\nwould be a closer estimate, at least until the CRC code came along....\n\nSo, lets fix that by restoring the nvecs accounting for the extra\nregion when we hit this case.....\n\n.... and there\u0027s the problemin log recovery it is apparently working\naround:\n\nXFS: Assertion failed: i \u003d\u003d item-\u003eri_total, file: fs/xfs/xfs_log_recover.c, line: 2135\n\nYup, xlog_recover_do_reg_buffer() doesn\u0027t handle contigous dirty\nregions being broken up into multiple regions by the log formatting\ncode. That\u0027s an easy fix, though - if the number of contiguous dirty\nbits exceeds the length of the region being copied out of the log,\nonly account for the number of dirty bits that region covers, and\nthen loop again and copy more from the next region. It\u0027s a 2 line\nfix.\n\nNow xfstests xfs/085 passes, we have one less piece of mystery\ncode, and one more important piece of knowledge about how to\nstructure new log format items..\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(cherry picked from commit 709da6a61aaf12181a8eea8443919ae5fc1b731d)\n"
    },
    {
      "commit": "2962f5a5dcc56f69cbf62121a7be67cc15d6940b",
      "tree": "bd6e72c1c65e2e2c897e0e214528cf750c06ae27",
      "parents": [
        "08fb39051f5581df45ae2a20c6cf2d0c4cddf7c2"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 27 16:38:25 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:17:35 2013 -0500"
      },
      "message": "xfs: kill suid/sgid through the truncate path.\n\nXFS has failed to kill suid/sgid bits correctly when truncating\nfiles of non-zero size since commit c4ed4243 (\"xfs: split\nxfs_setattr\") introduced in the 3.1 kernel. Fix it.\n\nFix it.\n\ncc: stable kernel \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 56c19e89b38618390addfc743d822f99519055c6)\n"
    },
    {
      "commit": "08fb39051f5581df45ae2a20c6cf2d0c4cddf7c2",
      "tree": "858c00c8c52004aba5de4ff6305440052a6829f6",
      "parents": [
        "7ae077802c9f12959a81fa1a16c1ec2842dbae05"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue May 21 18:02:00 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu May 30 17:10:56 2013 -0500"
      },
      "message": "xfs: avoid nesting transactions in xfs_qm_scall_setqlim()\n\nLockdep reports:\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.9.0+ #3 Not tainted\n---------------------------------------------\nsetquota/28368 is trying to acquire lock:\n (sb_internal){++++.?}, at: [\u003cc11e8846\u003e] xfs_trans_alloc+0x26/0x50\n\nbut task is already holding lock:\n (sb_internal){++++.?}, at: [\u003cc11e8846\u003e] xfs_trans_alloc+0x26/0x50\n\nfrom xfs_qm_scall_setqlim()-\u003exfs_dqread() when a dquot needs to be\nallocated.\n\nxfs_qm_scall_setqlim() is starting a transaction and then not\npassing it into xfs_qm_dqet() and so it starts it\u0027s own transaction\nwhen allocating the dquot.  Splat!\n\nFix this by not allocating the dquot in xfs_qm_scall_setqlim()\ninside the setqlim transaction. This requires getting the dquot\nfirst (and allocating it if necessary) then dropping and relocking\nthe dquot before joining it to the setqlim transaction.\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(cherry picked from commit f648167f3ac79018c210112508c732ea9bf67c7b)\n"
    },
    {
      "commit": "eb54d43707c69340581940e1fcaecb4d7d17b814",
      "tree": "8f4e728db4b758a18ae1fe241bd1275df416c214",
      "parents": [
        "f448badd34700ae728a32ba024249626d49c10e1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue May 14 14:37:56 2013 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 30 16:31:34 2013 -0400"
      },
      "message": "NFS: Fix security flavor negotiation with legacy binary mounts\n\nDarrick J. Wong \u003cdarrick.wong@oracle.com\u003e reports:\n\u003e I have a kvm-based testing setup that netboots VMs over NFS, the\n\u003e client end of which seems to have broken somehow in 3.10-rc1.  The\n\u003e server\u0027s exports file looks like this:\n\u003e\n\u003e /storage/mtr/x64\t192.168.122.0/24(ro,sync,no_root_squash,no_subtree_check)\n\u003e\n\u003e On the client end (inside the VM), the initrd runs the following\n\u003e command to try to mount the rootfs over NFS:\n\u003e\n\u003e # mount -o nolock -o ro -o retrans\u003d10 192.168.122.1:/storage/mtr/x64/ /root\n\u003e\n\u003e (Note: This is the busybox mount command.)\n\u003e\n\u003e The mount fails with -EINVAL.\n\nCommit 4580a92d44 \"NFS: Use server-recommended security flavor by\ndefault (NFSv3)\" introduced a behavior regression for NFS mounts\ndone via a legacy binary mount(2) call.\n\nEnsure that a default security flavor is specified for legacy binary\nmount requests, since they do not invoke nfs_select_flavor() in the\nkernel.\n\nBusybox uses klibc\u0027s nfsmount command, which performs NFS mounts\nusing the legacy binary mount data format.  /sbin/mount.nfs is not\naffected by this regression.\n\nReported-by: Darrick J. Wong \u003cdarrick.wong@oracle.com\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nTested-by: Darrick J. Wong \u003cdarrick.wong@oracle.com\u003e\nAcked-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f448badd34700ae728a32ba024249626d49c10e1",
      "tree": "c29209e0be54bc0c11ffe8a932e3b657ba45a08f",
      "parents": [
        "83c168bf8017212a9d502536f9dcd0b54d24e330"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 29 15:36:40 2013 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 29 16:03:23 2013 -0400"
      },
      "message": "NFSv4: Fix a thinko in nfs4_try_open_cached\n\nWe need to pass the full open mode flags to nfs_may_open() when doing\na delegated open.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "320b34e3e067e08331725df122583afdca10f811",
      "tree": "658423da4d7eca7962a499224642cdaa6344361e",
      "parents": [
        "e3bf756eb988ff03ac57fda3934c440fe4db6a73",
        "d9deef0a3f38bcc1c155e8d9a8b522404e5e648c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 28 10:08:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 28 10:08:39 2013 -0700"
      },
      "message": "Merge branch \u0027for-3.10\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French:\n \"Fixes for a couple of DFS problems, a problem with extended security\n  negotiation and two other small cifs fixes\"\n\n* \u0027for-3.10\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  cifs: fix composing of mount options for DFS referrals\n  cifs: stop printing the unc\u003d option in /proc/mounts\n  cifs: fix error handling when calling cifs_parse_devname\n  cifs: allow sec\u003dnone mounts to work against servers that don\u0027t support extended security\n  cifs: fix potential buffer overrun when composing a new options string\n  cifs: only set ops for inodes in I_NEW state\n"
    },
    {
      "commit": "15ef0298deb3929eb6ad6d2334fd2059fd53807c",
      "tree": "b909243c6dbcae5b45b356fd90d380699f4c1ffe",
      "parents": [
        "2938d2757fc99c26aa678ce4eba910c4a77c3a55"
      ],
      "author": {
        "name": "Pavel Tikhomirov",
        "email": "snorcht@gmail.com",
        "time": "Fri May 17 02:12:03 2013 +0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 28 11:41:14 2013 +0200"
      },
      "message": "posix-timers: Show clock ID in proc file\n\nExpand information about posix-timers in /proc/\u003cpid\u003e/timers by adding\ninfo about clock, with which the timer was created. I.e. in the forth\nline of timer info after \"notify:\" line go \"ClockID: \u003cclock_id\u003e\".\n\nSigned-off-by: Pavel Tikhomirov \u003csnorcht@gmail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Matthew Helsley \u003cmatt.helsley@gmail.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nLink: http://lkml.kernel.org/r/1368742323-46949-2-git-send-email-snorcht@gmail.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "89ff77837a67994e4a4a20bb648687fbcc3083f2",
      "tree": "bba9c5c698f38a77bfe35bc26d8bd18c2e557df0",
      "parents": [
        "932ff06b2a3b4dd3da4dff35c51fa3398e30b635",
        "83c168bf8017212a9d502536f9dcd0b54d24e330"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 26 12:33:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 26 12:33:05 2013 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.10-3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes from Trond Myklebust:\n\n - Stable fix to prevent an rpc_task wakeup race\n - Fix a NFSv4.1 session drain deadlock\n - Fix a NFSv4/v4.1 mount regression when not running rpc.gssd\n - Ensure auth_gss pipe detection works in namespaces\n - Fix SETCLIENTID fallback if rpcsec_gss is not available\n\n* tag \u0027nfs-for-3.10-3\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFS: Fix SETCLIENTID fallback if GSS is not available\n  SUNRPC: Prevent an rpc_task wakeup race\n  NFSv4.1 Fix a pNFS session draining deadlock\n  SUNRPC: Convert auth_gss pipe detection to work in namespaces\n  SUNRPC: Faster detection if gssd is actually running\n  SUNRPC: Fix a bug in gss_create_upcall\n"
    },
    {
      "commit": "088d812fe97a4cc8edaed69f91511ea063b14cef",
      "tree": "3b1cb3133ee57d21cd63834832448efaa8f6573c",
      "parents": [
        "72de4c63e5ebe8e4054ea800d7a8d4b3f033caf2",
        "7ae077802c9f12959a81fa1a16c1ec2842dbae05"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 26 09:35:02 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 26 09:35:02 2013 -0700"
      },
      "message": "Merge tag \u0027for-linus-v3.10-rc3\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull xfs fixes from Ben Myers:\n \"Here are fixes for corruption on 512 byte filesystems, a rounding\n  error, a use-after-free, some flags to fix lockdep reports, and\n  several fixes related to CRCs.  We have a somewhat larger post -rc1\n  queue than usual due to fixes related to the CRC feature we merged for\n  3.10:\n\n   - Fix for corruption with FSX on 512 byte blocksize filesystems\n   - Fix rounding error in xfs_free_file_space\n   - Fix use-after-free with extent free intents\n   - Add several missing KM_NOFS flags to fix lockdep reports\n   - Several fixes for CRC related code\"\n\n* tag \u0027for-linus-v3.10-rc3\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: remote attribute lookups require the value length\n  xfs: xfs_attr_shortform_allfit() does not handle attr3 format.\n  xfs: xfs_da3_node_read_verify() doesn\u0027t handle XFS_ATTR3_LEAF_MAGIC\n  xfs: fix missing KM_NOFS tags to keep lockdep happy\n  xfs: Don\u0027t reference the EFI after it is freed\n  xfs: fix rounding in xfs_free_file_space\n  xfs: fix sub-page blocksize data integrity writes\n"
    },
    {
      "commit": "03e04f048d2774aabd126fbad84729d4ba9dc40a",
      "tree": "e6f493171d0f91febdf2fe45366d805a5c2e2147",
      "parents": [
        "a9ff785e4437c83d2179161e012f5bdfbd6381f0"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Fri May 24 15:55:38 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 16:22:53 2013 -0700"
      },
      "message": "aio: fix kioctx not being freed after cancellation at exit time\n\nThe recent changes overhauling fs/aio.c introduced a bug that results in\nthe kioctx not being freed when outstanding kiocbs are cancelled at\nexit_aio() time.  Specifically, a kiocb that is cancelled has its\ncompletion events discarded by batch_complete_aio(), which then fails to\nwake up the process stuck in free_ioctx().  Fix this by modifying the\nwait_event() condition in free_ioctx() appropriately.\n\nThis patch was tested with the cancel operation in the thread based code\nposted yesterday.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Kent Overstreet \u003ckoverstreet@google.com\u003e\nCc: Josh Boyer \u003cjwboyer@redhat.com\u003e\nCc: Zach Brown \u003czab@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": "b4ca2b4b577c3530e34dcfaafccb2cc680ce95d1",
      "tree": "5145abc9aa66a7d466e40429780c7dfdcfedac84",
      "parents": [
        "10b3a32d292c21ea5b3ad5ca5975e88bb20b8d68"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Fri May 24 15:55:34 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 16:22:52 2013 -0700"
      },
      "message": "ocfs2: goto out_unlock if ocfs2_get_clusters_nocache() failed in ocfs2_fiemap()\n\nLast time we found there is lock/unlock bug in ocfs2_file_aio_write, and\nthen we did a thorough search for all lock resources in\nocfs2_inode_info, including rw, inode and open lockres and found this\nbug.  My kernel version is 3.0.13, and it is also in the lastest version\n3.9.  In ocfs2_fiemap, once ocfs2_get_clusters_nocache failed, it should\ngoto out_unlock instead of out, because we need release buffer head, up\nread alloc sem and unlock inode.\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\nAcked-by: Sunil Mushran \u003csunil.mushran@gmail.com\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": "136e8770cd5d1fe38b3c613100dd6dc4db6d4fa6",
      "tree": "a660daf6c52619f93ae5c0f91dbcba08da1d5887",
      "parents": [
        "dfd20b2b174d3a9b258ea3b7a35ead33576587b1"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri May 24 15:55:29 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 16:22:52 2013 -0700"
      },
      "message": "nilfs2: fix issue of nilfs_set_page_dirty() for page at EOF boundary\n\nnilfs2: fix issue of nilfs_set_page_dirty for page at EOF boundary\n\nDESCRIPTION:\n There are use-cases when NILFS2 file system (formatted with block size\nlesser than 4 KB) can be remounted in RO mode because of encountering of\n\"broken bmap\" issue.\n\nThe issue was reported by Anthony Doggett \u003cAnthony2486@interfaces.org.uk\u003e:\n \"The machine I\u0027ve been trialling nilfs on is running Debian Testing,\n  Linux version 3.2.0-4-686-pae (debian-kernel@lists.debian.org) (gcc\n  version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.35-2), but I\u0027ve\n  also reproduced it (identically) with Debian Unstable amd64 and Debian\n  Experimental (using the 3.8-trunk kernel).  The problematic partitions\n  were formatted with \"mkfs.nilfs2 -b 1024 -B 8192\".\"\n\nSYMPTOMS:\n(1) System log contains error messages likewise:\n\n    [63102.496756] nilfs_direct_assign: invalid pointer: 0\n    [63102.496786] NILFS error (device dm-17): nilfs_bmap_assign: broken bmap (inode number\u003d28)\n    [63102.496798]\n    [63102.524403] Remounting filesystem read-only\n\n(2) The NILFS2 file system is remounted in RO mode.\n\nREPRODUSING PATH:\n(1) Create volume group with name \"unencrypted\" by means of vgcreate utility.\n(2) Run script (prepared by Anthony Doggett \u003cAnthony2486@interfaces.org.uk\u003e):\n\n----------------[BEGIN SCRIPT]--------------------\n\nVG\u003dunencrypted\nlvcreate --size 2G --name ntest $VG\nmkfs.nilfs2 -b 1024 -B 8192 /dev/mapper/$VG-ntest\nmkdir /var/tmp/n\nmkdir /var/tmp/n/ntest\nmount /dev/mapper/$VG-ntest /var/tmp/n/ntest\nmkdir /var/tmp/n/ntest/thedir\ncd /var/tmp/n/ntest/thedir\nsleep 2\ndate\ndarcs init\nsleep 2\ndmesg|tail -n 5\ndate\ndarcs whatsnew || true\ndate\nsleep 2\ndmesg|tail -n 5\n----------------[END SCRIPT]--------------------\n\nREPRODUCIBILITY: 100%\n\nINVESTIGATION:\nAs it was discovered, the issue takes place during segment\nconstruction after executing such sequence of user-space operations:\n\n  open(\"_darcs/index\", O_RDWR|O_CREAT|O_NOCTTY, 0666) \u003d 7\n  fstat(7, {st_mode\u003dS_IFREG|0644, st_size\u003d0, ...}) \u003d 0\n  ftruncate(7, 60)\n\nThe error message \"NILFS error (device dm-17): nilfs_bmap_assign: broken\nbmap (inode number\u003d28)\" takes place because of trying to get block\nnumber for third block of the file with logical offset #3072 bytes.  As\nit is possible to see from above output, the file has 60 bytes of the\nwhole size.  So, it is enough one block (1 KB in size) allocation for\nthe whole file.  Trying to operate with several blocks instead of one\ntakes place because of discovering several dirty buffers for this file\nin nilfs_segctor_scan_file() method.\n\nThe root cause of this issue is in nilfs_set_page_dirty function which\nis called just before writing to an mmapped page.\n\nWhen nilfs_page_mkwrite function handles a page at EOF boundary, it\nfills hole blocks only inside EOF through __block_page_mkwrite().\n\nThe __block_page_mkwrite() function calls set_page_dirty() after filling\nhole blocks, thus nilfs_set_page_dirty function (\u003d\na_ops-\u003eset_page_dirty) is called.  However, the current implementation\nof nilfs_set_page_dirty() wrongly marks all buffers dirty even for page\nat EOF boundary.\n\nAs a result, buffers outside EOF are inconsistently marked dirty and\nqueued for write even though they are not mapped with nilfs_get_block\nfunction.\n\nFIX:\nThis modifies nilfs_set_page_dirty() not to mark hole blocks dirty.\n\nThanks to Vyacheslav Dubeyko for his effort on analysis and proposals\nfor this issue.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nReported-by: Anthony Doggett \u003cAnthony2486@interfaces.org.uk\u003e\nReported-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nCc: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nTested-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\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": "6900807c6b95dcb004902302b8ac5dbfbf6feb89",
      "tree": "b9e72184459c6194ab7339f67edaa69c985a9496",
      "parents": [
        "97c9266b11967e6401866b0111af59fa894180bf"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri May 24 15:55:24 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 16:22:52 2013 -0700"
      },
      "message": "aio: fix io_getevents documentation\n\nIn reviewing man pages, I noticed that io_getevents is documented to\nupdate the timeout that gets passed into the library call.  This doesn\u0027t\nhappen in kernel space or in the library (even though it\u0027s documented to\ndo so in both places).  Unless there is objection, I\u0027d like to fix the\ncomments/docs to match the code (I will also update the man page upon\nconsensus).\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nAcked-by: Cyril Hrubis \u003cchrubis@suse.cz\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb09c3733a94b5f1dba50359d09c9e217c763fb9",
      "tree": "d9ed1d68d337e6e495968b1920598dd8f8b7ff80",
      "parents": [
        "28ccddf7952c496df2a51ce5aee4f2a058a98bab"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Fri May 24 15:55:16 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 16:22:51 2013 -0700"
      },
      "message": "hfs: avoid crash in hfs_bnode_create\n\nCommit 634725a92938 (\"hfs: cleanup HFS+ prints\") removed the BUG_ON in\nhfs_bnode_create in hfsplus.  This patch removes it from the hfs version\nand avoids an fsfuzzer crash.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nAcked-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afe1bb73f8ed588ab6268c27c5a447fe0484e48f",
      "tree": "86d5eb340a0d5041e6473d0642a17637ca441ab8",
      "parents": [
        "d34883d4e35c0a994e91dd847a82b4c9e0c31d83"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Fri May 24 15:55:12 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 16:22:51 2013 -0700"
      },
      "message": "ocfs2: unlock rw lock if inode lock failed\n\nIn ocfs2_file_aio_write(), it does ocfs2_rw_lock() first and then\nocfs2_inode_lock().\n\nBut if ocfs2_inode_lock() failed, it goes to out_sems without unlocking\nrw lock.  This will cause a bug in ocfs2_lock_res_free() when testing\nres-\u003el_ex_holders, which is increased in __ocfs2_cluster_lock() and\ndecreased in __ocfs2_cluster_unlock().\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\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nCc: \"Duyongfeng (B)\" \u003cdu.duyongfeng@huawei.com\u003e\nAcked-by: Sunil Mushran \u003csunil.mushran@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b92d03c3239f43e5b86c9cc9630f026d36ee995",
      "tree": "230d35077a9c99203a86a7abc94ce8d6645e23fb",
      "parents": [
        "5eeb929390de7d5219483a1ca10cce4a84066099"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri May 24 15:55:08 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 24 16:22:50 2013 -0700"
      },
      "message": "fat: fix possible overflow for fat_clusters\n\nIntermediate value of fat_clusters can be overflowed on 32bits arch.\n\nReported-by: Krzysztof Strasburger \u003cstrasbur@chkw386.ch.pwr.wroc.pl\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\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": "c15cddd900e867c5adfb3c79596479dc5975f743",
      "tree": "bc9607f2d1c40850da4c247d842dd1275c1785b5",
      "parents": [
        "bb3ec6b08396bbd631b6441102dd1c3d89cbc576"
      ],
      "author": {
        "name": "Paul Taysom",
        "email": "taysom@chromium.org",
        "time": "Thu May 23 14:31:43 2013 -0700"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@canonical.com",
        "time": "Fri May 24 16:21:45 2013 -0700"
      },
      "message": "ecryptfs: fixed msync to flush data\n\nWhen msync is called on a memory mapped file, that\ndata is not flushed to the disk.\n\nIn Linux, msync calls fsync for the file. For ecryptfs,\nfsync just calls the lower level file system\u0027s fsync.\nChanged the ecryptfs fsync code to call filemap_write_and_wait\nbefore calling the lower level fsync.\n\nAddresses the problem described in http://crbug.com/239536\n\nSigned-off-by: Paul Taysom \u003ctaysom@chromium.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@canonical.com\u003e\nCc: stable@vger.kernel.org # v3.6+\n"
    },
    {
      "commit": "7ae077802c9f12959a81fa1a16c1ec2842dbae05",
      "tree": "3406c0f6b04d741ad218190240c7ee04e0501fe7",
      "parents": [
        "cf257abf02709dba3cc745d950f144ce49432b4f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 20 09:51:16 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri May 24 16:31:20 2013 -0500"
      },
      "message": "xfs: remote attribute lookups require the value length\n\nWhen reading a remote attribute, to correctly calculate the length\nof the data buffer for CRC enable filesystems, we need to know the\nlength of the attribute data. We get this information when we look\nup the attribute, but we don\u0027t store it in the args structure along\nwith the other remote attr information we get from the lookup. Add\nthis information to the args structure so we can use it\nappropriately.\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(cherry picked from commit e461fcb194172b3f709e0b478d2ac1bdac7ab9a3)\n"
    },
    {
      "commit": "cf257abf02709dba3cc745d950f144ce49432b4f",
      "tree": "0f4a99c719be780ba023094459df39c5240a00bb",
      "parents": [
        "7ced60cae46cb37273a03c196e6f473b089bd8e1"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 20 09:51:14 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri May 24 16:29:56 2013 -0500"
      },
      "message": "xfs: xfs_attr_shortform_allfit() does not handle attr3 format.\n\nxfstests generic/117 fails with:\n\nXFS: Assertion failed: leaf-\u003ehdr.info.magic \u003d\u003d cpu_to_be16(XFS_ATTR_LEAF_MAGIC)\n\nindicating a function that does not handle the attr3 format\ncorrectly. Fix it.\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(cherry picked from commit b38958d715316031fe9ea0cc6c22043072a55f49)\n"
    },
    {
      "commit": "7ced60cae46cb37273a03c196e6f473b089bd8e1",
      "tree": "1d9803414a9463936b583c37a08d6e678c8204b3",
      "parents": [
        "b17cb364dbbbf65add79f1610599d01bcb6851f9"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 20 09:51:13 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri May 24 16:29:37 2013 -0500"
      },
      "message": "xfs: xfs_da3_node_read_verify() doesn\u0027t handle XFS_ATTR3_LEAF_MAGIC\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(cherry picked from commit 72916fb8cbcf0c2928f56cdc2fbe8c7bf5517758)\n"
    },
    {
      "commit": "b17cb364dbbbf65add79f1610599d01bcb6851f9",
      "tree": "bfc43422ce84648acd7e908080b58e5166928e17",
      "parents": [
        "509e708a8929c5b75a16c985c03db5329e09cad4"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 20 09:51:12 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri May 24 16:29:15 2013 -0500"
      },
      "message": "xfs: fix missing KM_NOFS tags to keep lockdep happy\n\nThere are several places where we use KM_SLEEP allocation contexts\nand use the fact that they are called from transaction context to\nadd KM_NOFS where appropriate. Unfortunately, there are several\nplaces where the code makes this assumption but can be called from\noutside transaction context but with filesystem locks held. These\nplaces need explicit KM_NOFS annotations to avoid lockdep\ncomplaining about reclaim contexts.\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(cherry picked from commit ac14876cf9255175bf3bdad645bf8aa2b8fb2d7c)\n"
    },
    {
      "commit": "509e708a8929c5b75a16c985c03db5329e09cad4",
      "tree": "c03099a439d04ef0c911eb250256a2a4a3189b85",
      "parents": [
        "7031d0e1c46e2b1c869458233dd216cb72af41b2"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 20 09:51:10 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri May 24 16:27:57 2013 -0500"
      },
      "message": "xfs: Don\u0027t reference the EFI after it is freed\n\nChecking the EFI for whether it is being released from recovery\nafter we\u0027ve already released the known active reference is a mistake\nworthy of a brown paper bag. Fix the (now) obvious use after free\nthat it can cause.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 52c24ad39ff02d7bd73c92eb0c926fb44984a41d)\n"
    },
    {
      "commit": "7031d0e1c46e2b1c869458233dd216cb72af41b2",
      "tree": "ea6b8690937f4a2129eafc176ee8adcaeb8f5293",
      "parents": [
        "480d7467e4aaa3dc38088baf56bc3eb3599f5d26"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 20 09:51:09 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri May 24 16:27:41 2013 -0500"
      },
      "message": "xfs: fix rounding in xfs_free_file_space\n\nThe offset passed into xfs_free_file_space() needs to be rounded\ndown to a certain size, but the rounding mask is built by a 32 bit\nvariable. Hence the mask will always mask off the upper 32 bits of\nthe offset and lead to incorrect writeback and invalidation ranges.\n\nThis is not actually exposed as a bug because we writeback and\ninvalidate from the rounded offset to the end of the file, and hence\nthe offset we are actually punching a hole out of will always be\ncovered by the code. This needs fixing, however, if we ever want to\nuse exact ranges for writeback/invalidation here...\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 28ca489c63e9aceed8801d2f82d731b3c9aa50f5)\n"
    },
    {
      "commit": "480d7467e4aaa3dc38088baf56bc3eb3599f5d26",
      "tree": "2ef613c4c8b1b4603135f0a777ee5d6dac7d0a4f",
      "parents": [
        "f722406faae2d073cc1d01063d1123c35425939e"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon May 20 09:51:08 2013 +1000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri May 24 16:26:51 2013 -0500"
      },
      "message": "xfs: fix sub-page blocksize data integrity writes\n\nFSX on 512 byte block size filesystems has been failing for some\ntime with corrupted data. The fault dates back to the change in\nthe writeback data integrity algorithm that uses a mark-and-sweep\napproach to avoid data writeback livelocks.\n\nUnfortunately, a side effect of this mark-and-sweep approach is that\neach page will only be written once for a data integrity sync, and\nthere is a condition in writeback in XFS where a page may require\ntwo writeback attempts to be fully written. As a result of the high\nlevel change, we now only get a partial page writeback during the\nintegrity sync because the first pass through writeback clears the\nmark left on the page index to tell writeback that the page needs\nwriteback....\n\nThe cause is writing a partial page in the clustering code. This can\nhappen when a mapping boundary falls in the middle of a page - we\nend up writing back the first part of the page that the mapping\ncovers, but then never revisit the page to have the remainder mapped\nand written.\n\nThe fix is simple - if the mapping boundary falls inside a page,\nthen simple abort clustering without touching the page. This means\nthat the next -\u003ewritepage entry that write_cache_pages() will make\nis the page we aborted on, and xfs_vm_writepage() will map all\nsections of the page correctly. This behaviour is also optimal for\nnon-data integrity writes, as it results in contiguous sequential\nwriteback of the file rather than missing small holes and having to\nwrite them a \"random\" writes in a future pass.\n\nWith this fix, all the fsx tests in xfstests now pass on a 512 byte\nblock size filesystem on a 4k page machine.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 49b137cbbcc836ef231866c137d24f42c42bb483)\n"
    },
    {
      "commit": "95bbb82f60c80808e5a49d8233c2de8451901531",
      "tree": "c03a69d85d80ee6155700e2c9a7e87d90bba42b3",
      "parents": [
        "e9b376671910d105c5e61103111b96209c729529"
      ],
      "author": {
        "name": "Gu Zheng",
        "email": "guz.fnst@cn.fujitsu.com",
        "time": "Thu May 23 16:14:19 2013 +0800"
      },
      "committer": {
        "name": "Dave Kleikamp",
        "email": "dave.kleikamp@oracle.com",
        "time": "Fri May 24 16:03:47 2013 -0500"
      },
      "message": "fs/jfs: Add check if journaling to disk has been disabled in lbmRead()\n\nSigned-off-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Dave Kleikamp \u003cdave.kleikamp@oracle.com\u003e\n"
    },
    {
      "commit": "e9b376671910d105c5e61103111b96209c729529",
      "tree": "1c52287d580870e8bec478aa698936d50d5d0a56",
      "parents": [
        "514e250f67d2b2a8ab08dc9c3650af19a411c926"
      ],
      "author": {
        "name": "Vahram Martirosyan",
        "email": "vmartirosyan@gmail.com",
        "time": "Fri May 24 13:57:12 2013 +0500"
      },
      "committer": {
        "name": "Dave Kleikamp",
        "email": "dave.kleikamp@oracle.com",
        "time": "Fri May 24 16:03:42 2013 -0500"
      },
      "message": "jfs: Several bugs in jfs_freeze() and jfs_unfreeze()\n\nThe mentioned functions do not pay attention to the error codes returned\nby the functions updateSuper(), lmLogInit() and lmLogShutdown(). It brings\nto system crash later when writing to log.\n\nThe patch adds corresponding code to check and return the error codes\nand to print correct error messages in case of errors.\n\nFound by Linux File System Verification project (linuxtesting.org).\n\nSigned-off-by: Vahram Martirosyan \u003cvahram.martirosyan@linuxtesting.org\u003e\nReviewed-by: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nSigned-off-by: Dave Kleikamp \u003cdave.kleikamp@oracle.com\u003e\n"
    },
    {
      "commit": "d9deef0a3f38bcc1c155e8d9a8b522404e5e648c",
      "tree": "4a2b632b4ac08d96d29dd847a02f0a2410cdf101",
      "parents": [
        "9c9c29e1af2ff0459087876e3800078555794b60"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 24 07:40:06 2013 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 24 13:08:31 2013 -0500"
      },
      "message": "cifs: fix composing of mount options for DFS referrals\n\nWith the change to ignore the unc\u003d and prefixpath\u003d mount options, there\nis no longer any need to add them to the options string when mounting.\nBy the same token, we now need to build a device name that includes the\nprefixpath when mounting.\n\nTo make things neater, the delimiters on the devicename are changed\nto \u0027/\u0027 since that\u0027s preferred when mounting anyway.\n\nv2: fix some comments and don\u0027t bother looking at whether there is\n    a prepath in the ref-\u003enode_name when deciding whether to pass\n    a prepath to cifs_build_devname.\n\nv3: rebase on top of potential buffer overrun fix for stable\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "9c9c29e1af2ff0459087876e3800078555794b60",
      "tree": "6d545404bcd9fea39317cbaa74df4d83e10cf291",
      "parents": [
        "37d4f99b55d46d9f71f4769faf74c95adb2c1daf"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 24 07:40:05 2013 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 24 13:08:29 2013 -0500"
      },
      "message": "cifs: stop printing the unc\u003d option in /proc/mounts\n\nSince we no longer recognize that option, stop printing it out. The\ndevicename is now the canonical source for this info.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "37d4f99b55d46d9f71f4769faf74c95adb2c1daf",
      "tree": "9fd856f6ed71e2dc93409aa32ecbe98ce7793056",
      "parents": [
        "539673fff76af73c3aee96e0de10edcc97d84db3"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 24 07:40:05 2013 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 24 13:08:28 2013 -0500"
      },
      "message": "cifs: fix error handling when calling cifs_parse_devname\n\nWhen we allowed separate unc\u003d and prefixpath\u003d mount options, we could\nignore EINVAL errors from cifs_parse_devname. Now that they are\ndeprecated, we need to check for that as well and fail the mount if it\u0027s\nmalformed.\n\nAlso fix a later error message that refers to the unc\u003d option.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "539673fff76af73c3aee96e0de10edcc97d84db3",
      "tree": "4152d8e09ffca2213ed130362ea1ca64b2cf9a24",
      "parents": [
        "166faf21bd14bc5c5295a44874bf7f3930c30b20"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 24 07:40:04 2013 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 24 13:08:26 2013 -0500"
      },
      "message": "cifs: allow sec\u003dnone mounts to work against servers that don\u0027t support extended security\n\nIn the case of sec\u003dnone, we\u0027re not sending a username or password, so\nthere\u0027s little benefit to mandating NTLMSSP auth. Allow it to use\nunencapsulated auth in that case.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "166faf21bd14bc5c5295a44874bf7f3930c30b20",
      "tree": "02daebf2e219f1737dcd7fb979d277c519974295",
      "parents": [
        "62106e96279f66c52e2123782f9420af9dbe8cbe"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri May 24 07:40:04 2013 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri May 24 13:08:19 2013 -0500"
      },
      "message": "cifs: fix potential buffer overrun when composing a new options string\n\nConsider the case where we have a very short ip\u003d string in the original\nmount options, and when we chase a referral we end up with a very long\nIPv6 address. Be sure to allow for that possibility when estimating the\nsize of the string to allocate.\n\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    }
  ],
  "next": "62106e96279f66c52e2123782f9420af9dbe8cbe"
}
