)]}'
{
  "log": [
    {
      "commit": "afb9bd704c7116076879352a2cc2c43aa12c1e14",
      "tree": "b622fba5044ef3111050ca9dacce207ba49fea39",
      "parents": [
        "58df9b387c5f240566ac15b7fa5136f5a35bb19a",
        "72749a270b6d254b4a018e290b853c27edb2fa62"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 20:04:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 20:04:27 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd\n\nPull trivial exofs changes from Boaz Harrosh:\n \"Just nothingness really.  The big exofs changes are reserved for the\n  next merge window.\"\n\n* \u0027for-linus\u0027 of git://git.open-osd.org/linux-open-osd:\n  exofs: Cap on the memcpy() size\n  exofs: (trivial) Fix typo in super.c\n  exofs: fix endian conversion in exofs_sync_fs()\n"
    },
    {
      "commit": "58df9b387c5f240566ac15b7fa5136f5a35bb19a",
      "tree": "cd3b216936037e67d71958cc3ee8060e1f628f4f",
      "parents": [
        "8563f8786ee389c7861938d1d25336706f6de187",
        "14977489ffdb80d4caf5a184ba41b23b02fbacd9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 19:02:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 19:02:35 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client bugfixes for Linux 3.4 from Trond Myklebust\n\nHighlights include:\n- Fix infinite loops in the mount code\n- Fix a userspace buffer overflow in __nfs4_get_acl_uncached\n- Fix a memory leak due to a double reference count in rpcb_getport_async()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\n* tag \u0027nfs-for-3.4-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error\n  NFSv4.1: Fix layoutcommit error handling\n  NFSv4: Fix two infinite loops in the mount code\n  SUNRPC: Use the already looked-up xprt in rpcb_getport_async()\n  NFS4.1: remove duplicate variable declaration in filelayout_clear_request_commit\n  Fix length of buffer copied in __nfs4_get_acl_uncached\n"
    },
    {
      "commit": "8563f8786ee389c7861938d1d25336706f6de187",
      "tree": "aba82cbaa5111ec9a55b5e25add4fdb7100f6720",
      "parents": [
        "532bfc851a7475fb6a36c1e953aa395798a7cca7",
        "4b0180a49f08dd1c681cdc99edc9e0cec0a833fa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 18:05:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 18:05:54 2012 -0700"
      },
      "message": "Merge tag \u0027squashfs-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next\n\nPull squashfs updates from Phillip Lougher:\n \"Add an extra mount time sanity check, plus some code cleanups and bug\n  fixes.\"\n\n* tag \u0027squashfs-updates\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next:\n  Squashfs: add mount time sanity check for block_size and block_log match\n  Squashfs: fix f_pos check in get_dir_index_using_offset\n  Squashfs: get rid of obsolete definitions in header file\n  Squashfs: remove redundant length initialisation in squashfs_lookup\n  Squashfs: remove redundant length initialisation in squashfs_readdir\n  Squashfs: update comment removing reference to zlib only\n  Squashfs: use define instead of constant\n"
    },
    {
      "commit": "532bfc851a7475fb6a36c1e953aa395798a7cca7",
      "tree": "a7892e5a31330dd59f31959efbe9fda1803784fd",
      "parents": [
        "0195c00244dc2e9f522475868fa278c473ba7339",
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:28 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge third batch of patches from Andrew Morton:\n - Some MM stragglers\n - core SMP library cleanups (on_each_cpu_mask)\n - Some IPI optimisations\n - kexec\n - kdump\n - IPMI\n - the radix-tree iterator work\n - various other misc bits.\n\n \"That\u0027ll do for -rc1.  I still have ~10 patches for 3.4, will send\n  those along when they\u0027ve baked a little more.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  backlight: fix typo in tosa_lcd.c\n  crc32: add help text for the algorithm select option\n  mm: move hugepage test examples to tools/testing/selftests/vm\n  mm: move slabinfo.c to tools/vm\n  mm: move page-types.c from Documentation to tools/vm\n  selftests/Makefile: make `run_tests\u0027 depend on `all\u0027\n  selftests: launch individual selftests from the main Makefile\n  radix-tree: use iterators in find_get_pages* functions\n  radix-tree: rewrite gang lookup using iterator\n  radix-tree: introduce bit-optimized iterator\n  fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n  nbd: rename the nbd_device variable from lo to nbd\n  pidns: add reboot_pid_ns() to handle the reboot syscall\n  sysctl: use bitmap library functions\n  ipmi: use locks on watchdog timeout set on reboot\n  ipmi: simplify locking\n  ipmi: fix message handling during panics\n  ipmi: use a tasklet for handling received messages\n  ipmi: increase KCS timeouts\n  ipmi: decrease the IPMI message transaction time in interrupt mode\n  ...\n"
    },
    {
      "commit": "4c619aa0ba171c092a0ae5d969364deb82dbe371",
      "tree": "bc710f9a419f1f87712f5fa4c341330f7293c3d8",
      "parents": [
        "f4507164e7796b66c371ff9a63154f1c884a2433"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 28 14:42:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:37 2012 -0700"
      },
      "message": "fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n\nIf CONFIG_NET_NS, CONFIG_UTS_NS and CONFIG_IPC_NS are disabled,\nns_entries[] becomes empty and things like\nns_entries[ARRAY_SIZE(ns_entries) - 1] will explode.\n\nReported-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42be35d0390b966253136a285f507f5ad00fd9e8",
      "tree": "796b98a344ea3c941e53e2ae37f185f0ce5b0f32",
      "parents": [
        "a8364d5555b2030d093cde0f07951628e55454e1"
      ],
      "author": {
        "name": "Gilad Ben-Yossef",
        "email": "gilad@benyossef.com",
        "time": "Wed Mar 28 14:42:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "fs: only send IPI to invalidate LRU BH when needed\n\nIn several code paths, such as when unmounting a file system (but not\nonly) we send an IPI to ask each cpu to invalidate its local LRU BHs.\n\nFor multi-cores systems that have many cpus that may not have any LRU BH\nbecause they are idle or because they have not performed any file system\naccesses since last invalidation (e.g.  CPU crunching on high perfomance\ncomputing nodes that write results to shared memory or only using\nfilesystems that do not use the bh layer.) This can lead to loss of\nperformance each time someone switches the KVM (the virtual keyboard and\nscreen type, not the hypervisor) if it has a USB storage stuck in.\n\nThis patch attempts to only send an IPI to cpus that have LRU BH.\n\nSigned-off-by: Gilad Ben-Yossef \u003cgilad@benyossef.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45f83cefe3a5f0476ac3f96382ebfdc3fe4caab2",
      "tree": "b2f7d3c02923d89db5a551c6a7923121db9610c4",
      "parents": [
        "623e3db9f9b7d6e7b2a99180f9cf0825c936ab7a"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Mar 28 14:42:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "mm: thp: fix up pmd_trans_unstable() locations\n\npmd_trans_unstable() should be called before pmd_offset_map() in the\nlocations where the mmap_sem is held for reading.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mark Salter \u003cmsalter@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": "3748b2f15b06ea1861df39d5e9693dcd6e9542b1",
      "tree": "58c6b212487464bbc51fc40dbb783c8c9b8e699e",
      "parents": [
        "529b73fc0a9764050dcc597f4851728e8ff59165"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 28 14:42:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "procfs: fix /proc/statm\n\nbda7bad62bc4 (\"procfs: speed up /proc/pid/stat, statm\") broke /proc/statm\n- \u0027text\u0027 is printed twice by mistake.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReported-by: Ulrich Drepper \u003cdrepper@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": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
      "tree": "fb51d60060453aef9e776c7d3a31588609d34d76",
      "parents": [
        "0c9aac08261512d70d7d4817bd222abca8b6bdd6",
        "5a5881cdeec2c019b5c9a307800218ee029f7f61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:23:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:23:52 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull XFS update (part 2) from Ben Myers:\n \"Fixes for tracing of xfs_name strings, flag handling in\n  open_by_handle, a log space hang with freeze/unfreeze, fstrim offset\n  calculations, a section mismatch with xfs_qm_exit, an oops in\n  xlog_recover_process_iunlinks, and a deadlock in xfs_rtfree_extent.\n\n  There are also additional trace points for attributes, and the\n  addition of a workqueue for allocation to work around kernel stack\n  size limitations.\"\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: add lots of attribute trace points\n  xfs: Fix oops on IO error during xlog_recover_process_iunlinks()\n  xfs: fix fstrim offset calculations\n  xfs: Account log unmount transaction correctly\n  xfs: don\u0027t cache inodes read through bulkstat\n  xfs: trace xfs_name strings correctly\n  xfs: introduce an allocation workqueue\n  xfs: Fix open flag handling in open_by_handle code\n  xfs: fix deadlock in xfs_rtfree_extent\n  fs: xfs: fix section mismatch in linux-next\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae",
      "tree": "c109d45d3fb8ccad461cfe6d9a4aa4d6005b38e1",
      "parents": [
        "49a7f04a4b9d45cd794741ce3d5d66524b37bdd0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Add #includes needed to permit the removal of asm/system.h\n\nasm/system.h is a cause of circular dependency problems because it contains\ncommonly used primitive stuff like barrier definitions and uncommonly used\nstuff like switch_to() that might require MMU definitions.\n\nasm/system.h has been disintegrated by this point on all arches into the\nfollowing common segments:\n\n (1) asm/barrier.h\n\n     Moved memory barrier definitions here.\n\n (2) asm/cmpxchg.h\n\n     Moved xchg() and cmpxchg() here.  #included in asm/atomic.h.\n\n (3) asm/bug.h\n\n     Moved die() and similar here.\n\n (4) asm/exec.h\n\n     Moved arch_align_stack() here.\n\n (5) asm/elf.h\n\n     Moved AT_VECTOR_SIZE_ARCH here.\n\n (6) asm/switch_to.h\n\n     Moved switch_to() here.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "529b73fc0a9764050dcc597f4851728e8ff59165",
      "tree": "d22dc4bf4d7523ea1c41790f8e52805b4ea75f19",
      "parents": [
        "69e1aaddd63104f37021d0b0f6abfd9623c9134c",
        "697e6fed9fc620eb6c79ebcfe6865b66773c0221"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:07:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:07:27 2012 -0700"
      },
      "message": "Merge tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull trivial writeback fixes from Wu Fengguang:\n \"They\u0027ve been tested in linux-next for 20 days actually.\"\n\n* tag \u0027writeback-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Remove outdated comment\n  fs: Remove bogus wait in write_inode_now()\n"
    },
    {
      "commit": "69e1aaddd63104f37021d0b0f6abfd9623c9134c",
      "tree": "14ad49741b428d270b681694bb2df349465455b9",
      "parents": [
        "56b59b429b4c26e5e730bc8c3d837de9f7d0a966",
        "9d547c35799a4ddd235f1565cec2fff6c9263504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:02:55 2012 -0700"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull ext4 updates for 3.4 from Ted Ts\u0027o:\n \"Ext4 commits for 3.3 merge window; mostly cleanups and bug fixes\n\n  The changes to export dirty_writeback_interval are from Artem\u0027s s_dirt\n  cleanup patch series.  The same is true of the change to remove the\n  s_dirt helper functions which never got used by anyone in-tree.  I\u0027ve\n  run these changes by Al Viro, and am carrying them so that Artem can\n  more easily fix up the rest of the file systems during the next merge\n  window.  (Originally we had hopped to remove the use of s_dirt from\n  ext4 during this merge window, but his patches had some bugs, so I\n  ultimately ended dropping them from the ext4 tree.)\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (66 commits)\n  vfs: remove unused superblock helpers\n  mm: export dirty_writeback_interval\n  ext4: remove useless s_dirt assignment\n  ext4: write superblock only once on unmount\n  ext4: do not mark superblock as dirty unnecessarily\n  ext4: correct ext4_punch_hole return codes\n  ext4: remove restrictive checks for EOFBLOCKS_FL\n  ext4: always set then trimmed blocks count into len\n  ext4: fix trimmed block count accunting\n  ext4: fix start and len arguments handling in ext4_trim_fs()\n  ext4: update s_free_{inodes,blocks}_count during online resize\n  ext4: change some printk() calls to use ext4_msg() instead\n  ext4: avoid output message interleaving in ext4_error_\u003cfoo\u003e()\n  ext4: remove trailing newlines from ext4_msg() and ext4_error() messages\n  ext4: add no_printk argument validation, fix fallout\n  ext4: remove redundant \"EXT4-fs: \" from uses of ext4_msg\n  ext4: give more helpful error message in ext4_ext_rm_leaf()\n  ext4: remove unused code from ext4_ext_map_blocks()\n  ext4: rewrite punch hole to use ext4_ext_remove_space()\n  jbd2: cleanup journal tail after transaction commit\n  ...\n"
    },
    {
      "commit": "56b59b429b4c26e5e730bc8c3d837de9f7d0a966",
      "tree": "191bf87e438a3985ccb7e3c5382fab8d31f94edb",
      "parents": [
        "9a7259d5c8978bbeb5fdcf64b168f8470d8208a6",
        "c666601a935b94cc0f3310339411b6940de751ba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:01:29 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:01:29 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph updates for 3.4-rc1 from Sage Weil:\n \"Alex has been busy.  There are a range of rbd and libceph cleanups,\n  especially surrounding device setup and teardown, and a few critical\n  fixes in that code.  There are more cleanups in the messenger code,\n  virtual xattrs, a fix for CRC calculation/checks, and lots of other\n  miscellaneous stuff.\n\n  There\u0027s a patch from Amon Ott to make inos behave a bit better on\n  32-bit boxes, some decode check fixes from Xi Wang, and network\n  throttling fix from Jim Schutt, and a couple RBD fixes from Josh\n  Durgin.\n\n  No new functionality, just a lot of cleanup and bug fixing.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (65 commits)\n  rbd: move snap_rwsem to the device, rename to header_rwsem\n  ceph: fix three bugs, two in ceph_vxattrcb_file_layout()\n  libceph: isolate kmap() call in write_partial_msg_pages()\n  libceph: rename \"page_shift\" variable to something sensible\n  libceph: get rid of zero_page_address\n  libceph: only call kernel_sendpage() via helper\n  libceph: use kernel_sendpage() for sending zeroes\n  libceph: fix inverted crc option logic\n  libceph: some simple changes\n  libceph: small refactor in write_partial_kvec()\n  libceph: do crc calculations outside loop\n  libceph: separate CRC calculation from byte swapping\n  libceph: use \"do\" in CRC-related Boolean variables\n  ceph: ensure Boolean options support both senses\n  libceph: a few small changes\n  libceph: make ceph_tcp_connect() return int\n  libceph: encapsulate some messenger cleanup code\n  libceph: make ceph_msgr_wq private\n  libceph: encapsulate connection kvec operations\n  libceph: move prepare_write_banner()\n  ...\n"
    },
    {
      "commit": "9a7259d5c8978bbeb5fdcf64b168f8470d8208a6",
      "tree": "5c255d4b18622de06c2637c0c4069a384e99466d",
      "parents": [
        "e9c0f1529c9022afbab16a442382aa9a84a79c41",
        "e703c206135acb458adb705ec44bcc5d2615b37d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:00:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:00:14 2012 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull ext3, UDF, and quota fixes from Jan Kara:\n \"A couple of ext3 \u0026 UDF fixes and also one improvement in quota\n  locking.\"\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  ext3: fix start and len arguments handling in ext3_trim_fs()\n  udf: Fix deadlock in udf_release_file()\n  udf: Fix file entry logicalBlocksRecorded\n  udf: Fix handling of i_blocks\n  quota: Make quota code not call tty layer with dqptr_sem held\n  udf: Init/maintain file entry checkpoint field\n  ext3: Update ctime in ext3_splice_branch() only when needed\n  ext3: Don\u0027t call dquot_free_block() if we don\u0027t update anything\n  udf: Remove unnecessary OOM messages\n"
    },
    {
      "commit": "e9c0f1529c9022afbab16a442382aa9a84a79c41",
      "tree": "173e99d46283f5d814bf4407728ad0d2ea702100",
      "parents": [
        "b18dafc86bb879d2f38a1743985d7ceb283c2f4d",
        "5bdad93387c64f0095df7ae9a252ff44234a8b3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 09:58:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 09:58:38 2012 -0700"
      },
      "message": "Merge tag \u0027for-linus-3.4-merge-window\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\nPull 9p changes for the 3.4 merge window from Eric Van Hensbergen.\n\n* tag \u0027for-linus-3.4-merge-window\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: statfs should not override server f_type\n  net/9p: handle flushed Tclunk/Tremove\n  net/9p: don\u0027t allow Tflush to be interrupted\n"
    },
    {
      "commit": "b18dafc86bb879d2f38a1743985d7ceb283c2f4d",
      "tree": "447070f77406615aebadaef03018d634c0da922c",
      "parents": [
        "6658a6991cef75719a21441aa0b7f8d6821534ee"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Mar 26 17:32:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 09:54:34 2012 -0700"
      },
      "message": "vfs: fix d_ancestor() case in d_materialize_unique\n\nIn d_materialise_unique() there are 3 subcases to the \u0027aliased dentry\u0027\ncase; in two subcases the inode i_lock is properly released but this\ndoes not occur in the -ELOOP subcase.\n\nThis seems to have been introduced by commit 1836750115f2 (\"fix loop\nchecks in d_materialise_unique()\").\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: stable@vger.kernel.org # v3.0+\n[ Added a comment, and moved the unlock to where we generate the -ELOOP,\n  which seems to be more natural.\n\n  You probably can\u0027t actually trigger this without a buggy network file\n  server - d_materialize_unique() is for finding aliases on non-local\n  filesystems, and the d_ancestor() case is for a hardlinked directory\n  loop.\n\n  But we should be robust in the case of such buggy servers anyway. ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14977489ffdb80d4caf5a184ba41b23b02fbacd9",
      "tree": "8d0b755ca35743e6a00dc7da04a7b7c21dd6d650",
      "parents": [
        "e59d27e05a6435f8c04d5ad843f37fa795f2eaaa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:31:25 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4: Minor cleanups for nfs4_handle_exception and nfs4_async_handle_error\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e59d27e05a6435f8c04d5ad843f37fa795f2eaaa",
      "tree": "217a19f29b5214d8b0e36dbe190c34140a01000f",
      "parents": [
        "05e9cfb408b24debb3a85fd98edbfd09dd148881"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:22:19 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4.1: Fix layoutcommit error handling\n\nFirstly, task-\u003etk_status will always return negative error values,\nso the current tests for \u0027NFS4ERR_DELEG_REVOKED\u0027 etc. are all being\nignored.\nSecondly, clean up the code so that we only need to test\ntask-\u003etk_status once!\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "05e9cfb408b24debb3a85fd98edbfd09dd148881",
      "tree": "47c4039701bf081a8b6e9209b65c1284f2183dd7",
      "parents": [
        "864cf9bf99f62d2095c8e6cc3a87af80b263984e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 18:13:02 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 27 21:53:14 2012 -0400"
      },
      "message": "NFSv4: Fix two infinite loops in the mount code\n\nWe can currently loop forever in nfs4_lookup_root() and in\nnfs41_proc_secinfo_no_name(), if the first iteration returns a\nNFS4ERR_DELAY or something else that causes exception.retry to get\nset.\n\nReported-by: Weston Andros Adamson \u003cdros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "fa453a625de5b8ee9ada0a5b329df3f88751c615",
      "tree": "7a9e04d4a44bb929e96bd9bebb7b97cb733d1ecb",
      "parents": [
        "30eebb54b13ef198a3f1a143ee9dd68f295c60de",
        "3463ff4439661d8107ac024329b5fe01d6e5117b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:29:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:29:53 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml\n\nPull UML changes from Richard Weinberger:\n \"Mostly bug fixes and cleanups\"\n\n* \u0027for-linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (35 commits)\n  um: Update defconfig\n  um: Switch to large mcmodel on x86_64\n  MTD: Relax dependencies\n  um: Wire CONFIG_GENERIC_IO up\n  um: Serve io_remap_pfn_range()\n  Introduce CONFIG_GENERIC_IO\n  um: allow SUBARCH\u003dx86\n  um: most of the SUBARCH uses can be killed\n  um: deadlock in line_write_interrupt()\n  um: don\u0027t bother trying to rebuild CHECKFLAGS for USER_OBJS\n  um: use the right ifdef around exports in user_syms.c\n  um: a bunch of headers can be killed by using generic-y\n  um: ptrace-generic.h doesn\u0027t need user.h\n  um: kill HOST_TASK_PID\n  um: remove pointless include of asm/fixmap.h from asm/pgtable.h\n  um: asm-offsets.h might as well come from underlying arch...\n  um: merge processor_{32,64}.h a bit...\n  um: switch close_chan() to struct line\n  um: race fix: initialize delayed_work *before* registering IRQ\n  um: line-\u003ehave_irq is never checked...\n  ...\n"
    },
    {
      "commit": "5a5881cdeec2c019b5c9a307800218ee029f7f61",
      "tree": "67ae565f9e243a1eaa986457ca869e776fb76fac",
      "parents": [
        "d97d32edcd732110758799ae60af725e5110b3dc"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:13 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 17:18:21 2012 -0500"
      },
      "message": "xfs: add lots of attribute trace points\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "d97d32edcd732110758799ae60af725e5110b3dc",
      "tree": "b49bc097b289d123003695dcd1301cda5f091f4b",
      "parents": [
        "a66d636385d621e98a915233250356c394a437de"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 15 09:34:02 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 16:34:10 2012 -0500"
      },
      "message": "xfs: Fix oops on IO error during xlog_recover_process_iunlinks()\n\nWhen an IO error happens during inode deletion run from\nxlog_recover_process_iunlinks() filesystem gets shutdown. Thus any subsequent\nattempt to read buffers fails. Code in xlog_recover_process_iunlinks() does not\ncount with the fact that read of a buffer which was read a while ago can\nreally fail which results in the oops on\n  agi \u003d XFS_BUF_TO_AGI(agibp);\n\nFix the problem by cleaning up the buffer handling in\nxlog_recover_process_iunlinks() as suggested by Dave Chinner. We release buffer\nlock but keep buffer reference to AG buffer. That is enough for buffer to stay\npinned in memory and we don\u0027t have to call xfs_read_agi() all the time.\n\nCC: stable@kernel.org\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "a66d636385d621e98a915233250356c394a437de",
      "tree": "9dda534c10fed016503f77a5f7ce893f9c4db7f7",
      "parents": [
        "3948659e30808fbaa7673bbe89de2ae9769e20a7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:12 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 16:07:03 2012 -0500"
      },
      "message": "xfs: fix fstrim offset calculations\n\nxfs_ioc_fstrim() doesn\u0027t treat the incoming offset and length\ncorrectly. It treats them as a filesystem block address, rather than\na disk address. This is wrong because the range passed in is a\nlinear representation, while the filesystem block address notation\nis a sparse representation. Hence we cannot convert the range direct\nto filesystem block units and then use that for calculating the\nrange to trim.\n\nWhile this sounds dangerous, the problem is limited to calculating\nwhat AGs need to be trimmed. The code that calcuates the actual\nranges to trim gets the right result (i.e. only ever discards free\nspace), even though it uses the wrong ranges to limit what is\ntrimmed. Hence this is not a bug that endangers user data.\n\nFix this by treating the range as a disk address range and use the\nappropriate functions to convert the range into the desired formats\nfor calculations.\n\nFurther, fix the first free extent lookup (the longest) to actually\nfind the largest free extent. Currently this lookup uses a \u003c\u003d\nlookup, which results in finding the extent to the left of the\nlargest because we can never get an exact match on the largest\nextent. This is due to the fact that while we know it\u0027s size, we\ndon\u0027t know it\u0027s location and so the exact match fails and we move\none record to the left to get the next largest extent. Instead, use\na \u003e\u003d search so that the lookup returns the largest extent regardless\nof the fact we don\u0027t get an exact match on it.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "3948659e30808fbaa7673bbe89de2ae9769e20a7",
      "tree": "06ff528be9bd33a4f2579fb05514460b7fa1ec8a",
      "parents": [
        "5132ba8f2b7705fb6b06fa6ad3d009233c816b67"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:11 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 26 17:47:24 2012 -0500"
      },
      "message": "xfs: Account log unmount transaction correctly\n\nThere have been a few reports of this warning appearing recently:\n\nXFS (dm-4): xlog_space_left: head behind tail\n tail_cycle \u003d 129, tail_bytes \u003d 20163072\n GH   cycle \u003d 129, GH   bytes \u003d 20162880\n\nThe common cause appears to be lots of freeze and unfreeze cycles,\nand the output from the warnings indicates that we are leaking\naround 8 bytes of log space per freeze/unfreeze cycle.\n\nWhen we freeze the filesystem, we write an unmount record and that\nuses xlog_write directly - a special type of transaction,\neffectively. What it doesn\u0027t do, however, is correctly account for\nthe log space it uses. The unmount record writes an 8 byte structure\nwith a special magic number into the log, and the space this\nconsumes is not accounted for in the log ticket tracking the\noperation. Hence we leak 8 bytes every unmount record that is\nwritten.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "5132ba8f2b7705fb6b06fa6ad3d009233c816b67",
      "tree": "e552a365b600af005abec13f3a1deb1f57bae3b9",
      "parents": [
        "f616137519feb17b849894fcbe634a021d3fa7db"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:10 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 26 17:19:08 2012 -0500"
      },
      "message": "xfs: don\u0027t cache inodes read through bulkstat\n\nWhen we read inodes via bulkstat, we generally only read them once\nand then throw them away - they never get used again. If we retain\nthem in cache, then it simply causes the working set of inodes and\nother cached items to be reclaimed just so the inode cache can grow.\n\nAvoid this problem by marking inodes read by bulkstat not to be\ncached and check this flag in .drop_inode to determine whether the\ninode should be added to the VFS LRU or not. If the inode lookup\nhits an already cached inode, then don\u0027t set the flag. If the inode\nlookup hits an inode marked with no cache flag, remove the flag and\nallow it to be cached once the current reference goes away.\n\nInodes marked as not cached will get cleaned up by the background\ninode reclaim or via memory pressure, so they will still generate\nsome short term cache pressure. They will, however, be reclaimed\nmuch sooner and in preference to cache hot inodes.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "f616137519feb17b849894fcbe634a021d3fa7db",
      "tree": "efa0007b9141ee85f65980e3731bb02f18dcb4bc",
      "parents": [
        "c999a223c2f0d31c64ef7379814cea1378b2b800"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 28 11:01:40 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 26 13:58:48 2012 -0500"
      },
      "message": "xfs: trace xfs_name strings correctly\n\nStrings store in an xfs_name structure are often not NUL terminated,\nprint them using the correct printf specifiers that make use of the\nstring length store in the xfs_name structure.\n\nReported-by: Brian Candler \u003cB.Candler@pobox.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "3ee6bd8e8dc0c58b9ba5bab7ef8a7a131da346eb",
      "tree": "b1050db82803495116ac255a2b6c755622bd1044",
      "parents": [
        "c0b79a90b1556a7e51d7a49a655eb60306f6258d"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Fri Jan 27 19:14:58 2012 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:52 2012 +0100"
      },
      "message": "uml/hostfs: Propagate dirent.d_type to filldir()\n\nCurrently the (optional) d_type member in struct dirent is always\nDT_UNKNOWN on hostfs, which may confuse buggy software using readdir().\nMake sure to propagate its value from the underlying filesystem if it\u0027s\navailable there.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "d44fc387997c0750125cfb0c2c803a3171b649f4",
      "tree": "075a1b09e58e684d348bf8a8b2998cea19c64f01",
      "parents": [
        "20e0fa98b751facf9a1101edaefbc19c82616a68"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Thu Mar 22 01:39:34 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 24 14:33:26 2012 -0400"
      },
      "message": "NFS4.1: remove duplicate variable declaration in filelayout_clear_request_commit\n\ninode is declared twice for no good reason\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "20e0fa98b751facf9a1101edaefbc19c82616a68",
      "tree": "b3a902d953bb60b36886d66d626a68800b020b0a",
      "parents": [
        "250f6715a4112d6686670c5a62ceb9305da94616"
      ],
      "author": {
        "name": "Sachin Prabhu",
        "email": "sprabhu@redhat.com",
        "time": "Thu Mar 22 16:46:28 2012 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 24 14:33:26 2012 -0400"
      },
      "message": "Fix length of buffer copied in __nfs4_get_acl_uncached\n\n_copy_from_pages() used to copy data from the temporary buffer to the\nuser passed buffer is passed the wrong size parameter when copying\ndata. res.acl_len contains both the bitmap and acl lenghts while\nacl_len contains the acl length after adjusting for the bitmap size.\n\nSigned-off-by: Sachin Prabhu \u003csprabhu@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "11bcb32848ddb5ab28f09f142b625e2ba4d55c4c",
      "tree": "9a2c085e1fce41012bb0f2a340f6ceaaf616b7a0",
      "parents": [
        "ed2d265d1266736bd294332d7f649003943ae36e",
        "8bc3bcc93a2b4e47d5d410146f6546bca6171663"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:24:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:24:31 2012 -0700"
      },
      "message": "Merge tag \u0027module-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull cleanup of fs/ and lib/ users of module.h from Paul Gortmaker:\n \"Fix up files in fs/ and lib/ dirs to only use module.h if they really\n  need it.\n\n  These are trivial in scope vs the work done previously.  We now have\n  things where any few remaining cleanups can be farmed out to arch or\n  subsystem maintainers, and I have done so when possible.  What is\n  remaining here represents the bits that don\u0027t clearly lie within a\n  single arch/subsystem boundary, like the fs dir and the lib dir.\n\n  Some duplicate includes arising from overlapping fixes from\n  independent subsystem maintainer submissions are also quashed.\"\n\nFix up trivial conflicts due to clashes with other include file cleanups\n(including some due to the previous bug.h cleanup pull).\n\n* tag \u0027module-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  lib: reduce the use of module.h wherever possible\n  fs: reduce the use of module.h wherever possible\n  includecheck: delete any duplicate instances of module.h\n"
    },
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
      "tree": "1cbfd86070f724d5ffe53146d4c67edf14cccf98",
      "parents": [
        "dae430c6f6e5d0b98c238c340a41a39e221e8940",
        "4e474a00d7ff746ed177ddae14fa8b2d4bad7a00"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 18:08:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 18:08:58 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl\n\nPull sysctl updates from Eric Biederman:\n\n - Rewrite of sysctl for speed and clarity.\n\n   Insert/remove/Lookup in sysctl are all now O(NlogN) operations, and\n   are no longer bottlenecks in the process of adding and removing\n   network devices.\n\n   sysctl is now focused on being a filesystem instead of system call\n   and the code can all be found in fs/proc/proc_sysctl.c.  Hopefully\n   this means the code is now approachable.\n\n   Much thanks is owed to Lucian Grinjincu for keeping at this until\n   something was found that was usable.\n\n - The recent proc_sys_poll oops found by the fuzzer during hibernation\n   is fixed.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl: (36 commits)\n  sysctl: protect poll() in entries that may go away\n  sysctl: Don\u0027t call sysctl_follow_link unless we are a link.\n  sysctl: Comments to make the code clearer.\n  sysctl: Correct error return from get_subdir\n  sysctl: An easier to read version of find_subdir\n  sysctl: fix memset parameters in setup_sysctl_set()\n  sysctl: remove an unused variable\n  sysctl: Add register_sysctl for normal sysctl users\n  sysctl: Index sysctl directories with rbtrees.\n  sysctl: Make the header lists per directory.\n  sysctl: Move sysctl_check_dups into insert_header\n  sysctl: Modify __register_sysctl_paths to take a set instead of a root and an nsproxy\n  sysctl: Replace root_list with links between sysctl_table_sets.\n  sysctl: Add sysctl_print_dir and use it in get_subdir\n  sysctl: Stop requiring explicit management of sysctl directories\n  sysctl: Add a root pointer to ctl_table_set\n  sysctl: Rewrite proc_sys_readdir in terms of first_entry and next_entry\n  sysctl: Rewrite proc_sys_lookup introducing find_entry and lookup_entry.\n  sysctl: Normalize the root_table data structure.\n  sysctl: Factor out insert_header and erase_header\n  ...\n"
    },
    {
      "commit": "e075f59152890ffd7e3d704afc997dd686c8a781",
      "tree": "94dbf5eda32d7dea9821ca308c4317e75756f7bd",
      "parents": [
        "1b26c9b334044cff6d1d2698f2be41bc7d9a0864"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 23 15:02:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "seq_file: add seq_set_overflow(), seq_overflow()\n\nIt is undocumented but a seq_file\u0027s overflow state is indicated by\nm-\u003ecount \u003d\u003d m-\u003esize.  Add seq_set_overflow() and seq_overflow() to\nset/check overflow status explicitly.\n\nBased on an idea from Eric Dumazet.\n\n[akpm@linux-foundation.org: tweak code comment]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b26c9b334044cff6d1d2698f2be41bc7d9a0864",
      "tree": "533eb56100209cd0d8ec2c1f3d354af1695226f9",
      "parents": [
        "bda7bad62bc4c4e0783348e8db51abe094153c56"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Fri Mar 23 15:02:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate().\n\nThe namespace cleanup path leaks a dentry which holds a reference count\non a network namespace.  Keeping that network namespace from being freed\nwhen the last user goes away.  Leaving things like vlan devices in the\nleaked network namespace.\n\nIf you use ip netns add for much real work this problem becomes apparent\npretty quickly.  It light testing the problem hides because frequently\nyou simply don\u0027t notice the leak.\n\nUse d_set_d_op() so that DCACHE_OP_* flags are set correctly.\n\nThis issue exists back to 3.0.\n\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nReported-by: Justin Pettit \u003cjpettit@nicira.com\u003e\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\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": "bda7bad62bc4c4e0783348e8db51abe094153c56",
      "tree": "c62650a3da656ba18aebe170df7d554158ae5fc5",
      "parents": [
        "1ac101a5d675aca2426c5cd460c73fb95acb8391"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 23 15:02:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "procfs: speed up /proc/pid/stat, statm\n\nProcess accounting applications as top, ps visit some files under\n/proc/\u003cpid\u003e.  With seq_put_decimal_ull(), we can optimize /proc/\u003cpid\u003e/stat\nand /proc/\u003cpid\u003e/statm files.\n\nThis patch adds\n  - seq_put_decimal_ll() for signed values.\n  - allow delimiter \u003d\u003d 0.\n  - convert seq_printf() to seq_put_decimal_ull/ll in /proc/stat, statm.\n\nTest result on a system with 2000+ procs.\n\nBefore patch:\n  [kamezawa@bluextal test]$ top -b -n 1 | wc -l\n  2223\n  [kamezawa@bluextal test]$ time top -b -n 1 \u003e /dev/null\n\n  real    0m0.675s\n  user    0m0.044s\n  sys     0m0.121s\n\n  [kamezawa@bluextal test]$ time ps -elf \u003e /dev/null\n\n  real    0m0.236s\n  user    0m0.056s\n  sys     0m0.176s\n\nAfter patch:\n  kamezawa@bluextal ~]$ time top -b -n 1 \u003e /dev/null\n\n  real    0m0.657s\n  user    0m0.052s\n  sys     0m0.100s\n\n  [kamezawa@bluextal ~]$ time ps -elf \u003e /dev/null\n\n  real    0m0.198s\n  user    0m0.050s\n  sys     0m0.145s\n\nConsidering top, ps tend to scan /proc periodically, this will reduce cpu\nconsumption by top/ps to some extent.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "1ac101a5d675aca2426c5cd460c73fb95acb8391",
      "tree": "5d993fde0c5e67de97c0d9ffac54163f06fc90c9",
      "parents": [
        "59a32e2ce5eb809967cac4e718bc527beca83c59"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 23 15:02:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "procfs: add num_to_str() to speed up /proc/stat\n\n\u003d\u003d stat_check.py\nnum \u003d 0\nwith open(\"/proc/stat\") as f:\n        while num \u003c 1000 :\n                data \u003d f.read()\n                f.seek(0, 0)\n                num \u003d num + 1\n\u003d\u003d\n\nperf shows\n\n    20.39%  stat_check.py  [kernel.kallsyms]    [k] format_decode\n    13.41%  stat_check.py  [kernel.kallsyms]    [k] number\n    12.61%  stat_check.py  [kernel.kallsyms]    [k] vsnprintf\n    10.85%  stat_check.py  [kernel.kallsyms]    [k] memcpy\n     4.85%  stat_check.py  [kernel.kallsyms]    [k] radix_tree_lookup\n     4.43%  stat_check.py  [kernel.kallsyms]    [k] seq_printf\n\nThis patch removes most of calls to vsnprintf() by adding num_to_str()\nand seq_print_decimal_ull(), which prints decimal numbers without rich\nfunctions provided by printf().\n\nOn my 8cpu box.\n\u003d\u003d Before patch \u003d\u003d\n[root@bluextal test]# time ./stat_check.py\n\nreal    0m0.150s\nuser    0m0.026s\nsys     0m0.121s\n\n\u003d\u003d After patch \u003d\u003d\n[root@bluextal test]# time ./stat_check.py\n\nreal    0m0.055s\nuser    0m0.022s\nsys     0m0.030s\n\n[akpm@linux-foundation.org: remove incorrect comment, use less statck in num_to_str(), move comment from .h to .c, simplify seq_put_decimal_ull()]\n[andrea@betterlinux.com: avoid breaking the ABI in /proc/stat]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrea Righi \u003candrea@betterlinux.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59a32e2ce5eb809967cac4e718bc527beca83c59",
      "tree": "3024b71063f497c138680c36c5f7ce2dee563680",
      "parents": [
        "b908243c549448fc0662f9cdd8d5cfe620fcdc31"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Fri Mar 23 15:02:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "proc: speed up /proc/stat handling\n\nOn a typical 16 cpus machine, \"cat /proc/stat\" gives more than 4096 bytes,\nand is slow :\n\n  # strace -T -o /tmp/STRACE cat /proc/stat | wc -c\n  5826\n  # grep \"cpu \" /tmp/STRACE\n  read(0, \"cpu  1949310 19 2144714 12117253\"..., 32768) \u003d 5826 \u003c0.001504\u003e\n\nThats partly because show_stat() must be called twice since initial\nbuffer size is too small (4096 bytes for less than 32 possible cpus)\n\nFix this by :\n\n 1) Taking into account nr_irqs in the initial buffer sizing.\n\n 2) Using ksize() to allow better filling of initial buffer.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "b908243c549448fc0662f9cdd8d5cfe620fcdc31",
      "tree": "fe3ba53fb4b1f37048ba986080623af0365eb6e5",
      "parents": [
        "accb61fe7bb0f5c2a4102239e4981650f9048519"
      ],
      "author": {
        "name": "Djalal Harouni",
        "email": "tixxdz@opendz.org",
        "time": "Fri Mar 23 15:02:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "fs/proc/kcore.c: make get_sparsemem_vmemmap_info() static\n\nget_sparsemem_vmemmap_info() is only used inside fs/proc/kcore.c\n\nSigned-off-by: Djalal Harouni \u003ctixxdz@opendz.org\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@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": "accb61fe7bb0f5c2a4102239e4981650f9048519",
      "tree": "5e7120b80944d9719684b94e0c419761ba2d59e1",
      "parents": [
        "909af768e88867016f427264ae39d27a57b6a8ed"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n\nSince we no longer need the VM_ALWAYSDUMP flag, let\u0027s use the freed bit\nfor \u0027VM_NODUMP\u0027 flag.  The idea is is to add a new madvise() flag:\nMADV_DONTDUMP, which can be set by applications to specifically request\nmemory regions which should not dump core.\n\nThe specific application I have in mind is qemu: we can add a flag there\nthat wouldn\u0027t dump all of guest memory when qemu dumps core.  This flag\nmight also be useful for security sensitive apps that want to absolutely\nmake sure that parts of memory are not dumped.  To clear the flag use:\nMADV_DODUMP.\n\n[akpm@linux-foundation.org: s/MADV_NODUMP/MADV_DONTDUMP/, s/MADV_CLEAR_NODUMP/MADV_DODUMP/, per Roland]\n[akpm@linux-foundation.org: fix up the architectures which broke]\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "909af768e88867016f427264ae39d27a57b6a8ed",
      "tree": "5068b4d98e4bedecde89d9113dc7ef8c69633f45",
      "parents": [
        "1cc684ab75123efe7ff446eb821d44375ba8fa30"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: remove VM_ALWAYSDUMP flag\n\nThe motivation for this patchset was that I was looking at a way for a\nqemu-kvm process, to exclude the guest memory from its core dump, which\ncan be quite large.  There are already a number of filter flags in\n/proc/\u003cpid\u003e/coredump_filter, however, these allow one to specify \u0027types\u0027\nof kernel memory, not specific address ranges (which is needed in this\ncase).\n\nSince there are no more vma flags available, the first patch eliminates\nthe need for the \u0027VM_ALWAYSDUMP\u0027 flag.  The flag is used internally by\nthe kernel to mark vdso and vsyscall pages.  However, it is simple\nenough to check if a vma covers a vdso or vsyscall page without the need\nfor this flag.\n\nThe second patch then replaces the \u0027VM_ALWAYSDUMP\u0027 flag with a new\n\u0027VM_NODUMP\u0027 flag, which can be set by userspace using new madvise flags:\n\u0027MADV_DONTDUMP\u0027, and unset via \u0027MADV_DODUMP\u0027.  The core dump filters\ncontinue to work the same as before unless \u0027MADV_DONTDUMP\u0027 is set on the\nregion.\n\nThe qemu code which implements this features is at:\n\n  http://people.redhat.com/~jbaron/qemu-dump/qemu-dump.patch\n\nIn my testing the qemu core dump shrunk from 383MB -\u003e 13MB with this\npatch.\n\nI also believe that the \u0027MADV_DONTDUMP\u0027 flag might be useful for\nsecurity sensitive apps, which might want to select which areas are\ndumped.\n\nThis patch:\n\nThe VM_ALWAYSDUMP flag is currently used by the coredump code to\nindicate that a vma is part of a vsyscall or vdso section.  However, we\ncan determine if a vma is in one these sections by checking it against\nthe gate_vma and checking for a non-NULL return value from\narch_vma_name().  Thus, freeing a valuable vma bit.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@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": "d533df07c20c7b59b0559a3ac38fb45c81ffd6bb",
      "tree": "7b6746dd28654291742a455d46726c0bac461860",
      "parents": [
        "41f0c02eacec9f984adb22e8fecda49e13b7eb13"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "linkinjeon@gmail.com",
        "time": "Fri Mar 23 15:02:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:40 2012 -0700"
      },
      "message": "fat: fix bug in enforcing Long File Name length\n\nSince \u0027*outlen\u0027 is initialized to zero, it is currently possible to\ncreate a filename of length (FAT_LFN_LEN + 1) when utf8 is not enabled.\nTo enforce the FAT_LFN_LEN limit, we must perform one less iteration.\n\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nSigned-off-by: Ravishankar N \u003ccyberax82@gmail.com\u003e\nAcked-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41f0c02eacec9f984adb22e8fecda49e13b7eb13",
      "tree": "a057fc5dacd08251e826a9588b5e9fc937d3082c",
      "parents": [
        "9eab0a788d2d6e513f43b7c0e5bb9d60446233cb"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "linkinjeon@gmail.com",
        "time": "Fri Mar 23 15:02:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:40 2012 -0700"
      },
      "message": "fat: clean up xlate_to_uni()\n\nxlate_to_uni() is called by vfat_build_slots() with sbi-\u003enls_io as the\nfinal argument.  nls_io can never be null at this point because the\ncheck is already being done in fat_fill_super() wherein the mount fails\nif it is null.\n\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nSigned-off-by: Ravishankar N \u003ccyberax82@gmail.com\u003e\nAcked-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da0503aae07f0410b6ff0a9e1d1d011701eb2758",
      "tree": "2912b9b6342a450b1d4cd9df09b0bc1de02235bb",
      "parents": [
        "02edc6fc4d5feb3357aa44ba521e5504b4ff0b60"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Fri Mar 23 15:02:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "epoll: remove unneeded variable in reverse_path_check()\n\nWe never use the length variable.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nAcked-by: Jason Baron \u003cjbaron@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": "02edc6fc4d5feb3357aa44ba521e5504b4ff0b60",
      "tree": "20c5f006dee327e42335b4f020452d11f26b78b7",
      "parents": [
        "626cf236608505d376e4799adb4f7eb00a8594af"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 23 15:02:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "epoll: comment the funky #ifdef\n\nLooking for a bug in -rt, I stumbled across this code here from: commit\n2dfa4eeab0fc (\"epoll keyed wakeups: teach epoll about hints coming with\nthe wakeup key\"), specifically:\n\n  #ifdef CONFIG_DEBUG_LOCK_ALLOC\n  static inline void ep_wake_up_nested(wait_queue_head_t *wqueue,\n                                      unsigned long events, int subclass)\n  {\n         unsigned long flags;\n\n         spin_lock_irqsave_nested(\u0026wqueue-\u003elock, flags, subclass);\n         wake_up_locked_poll(wqueue, events);\n         spin_unlock_irqrestore(\u0026wqueue-\u003elock, flags);\n  }\n  #else\n  static inline void ep_wake_up_nested(wait_queue_head_t *wqueue,\n                                      unsigned long events, int subclass)\n  {\n         wake_up_poll(wqueue, events);\n  }\n  #endif\n\nYou change the function of ep_wake_up_nested() depending on whether\nCONFIG_DEBUG_LOCK_ALLOC is set or not.  This looks awfully suspicious,\nand there\u0027s no comment to explain why.  I initially thought that this\nwas trying to fool lockdep, and hiding a real bug.\n\nInvestigating it, I found the creation of wake_up_nested() (which no\nlonger exists) but was created for the sole purpose of epoll and its\nstrange wake ups, as explained in commit 0ccf831cbee9 (\"lockdep:\nannotate epoll\")\n\nAlthough the commit message says \"annotate epoll\" the change log is much\nbetter at explaining what is happening than what is in the actual code.\nThus a comment is really necessary here.  And to save the time of other\ndevelopers from having to go trudging through the git logs trying to\nfigure out why this code exists.\n\nI took parts of the change log and placed it into a comment above the\naffected code.  This will make the description of what is happening more\nvisible to new developers that have to look at this code for the first\ntime.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "626cf236608505d376e4799adb4f7eb00a8594af",
      "tree": "eb0421fec1a7fed05cd9ea785bd18b5f40c80971",
      "parents": [
        "5cde7656d0dd222170eb0250bd1f70c9018fd438"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Fri Mar 23 15:02:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "poll: add poll_requested_events() and poll_does_not_wait() functions\n\nIn some cases the poll() implementation in a driver has to do different\nthings depending on the events the caller wants to poll for.  An example\nis when a driver needs to start a DMA engine if the caller polls for\nPOLLIN, but doesn\u0027t want to do that if POLLIN is not requested but instead\nonly POLLOUT or POLLPRI is requested.  This is something that can happen\nin the video4linux subsystem among others.\n\nUnfortunately, the current epoll/poll/select implementation doesn\u0027t\nprovide that information reliably.  The poll_table_struct does have it: it\nhas a key field with the event mask.  But once a poll() call matches one\nor more bits of that mask any following poll() calls are passed a NULL\npoll_table pointer.\n\nAlso, the eventpoll implementation always left the key field at ~0 instead\nof using the requested events mask.\n\nThis was changed in eventpoll.c so the key field now contains the actual\nevents that should be polled for as set by the caller.\n\nThe solution to the NULL poll_table pointer is to set the qproc field to\nNULL in poll_table once poll() matches the events, not the poll_table\npointer itself.  That way drivers can obtain the mask through a new\npoll_requested_events inline.\n\nThe poll_table_struct can still be NULL since some kernel code calls it\ninternally (netfs_state_poll() in ./drivers/staging/pohmelfs/netfs.h).  In\nthat case poll_requested_events() returns ~0 (i.e.  all events).\n\nVery rarely drivers might want to know whether poll_wait will actually\nwait.  If another earlier file descriptor in the set already matched the\nevents the caller wanted to wait for, then the kernel will return from the\nselect() call without waiting.  This might be useful information in order\nto avoid doing expensive work.\n\nA new helper function poll_does_not_wait() is added that drivers can use\nto detect this situation.  This is now used in sock_poll_wait() in\ninclude/net/sock.h.  This was the only place in the kernel that needed\nthis information.\n\nDrivers should no longer access any of the poll_table internals, but use\nthe poll_requested_events() and poll_does_not_wait() access functions\ninstead.  In order to enforce that the poll_table fields are now prepended\nwith an underscore and a comment was added warning against using them\ndirectly.\n\nThis required a change in unix_dgram_poll() in unix/af_unix.c which used\nthe key field to get the requested events.  It\u0027s been replaced by a call\nto poll_requested_events().\n\nFor qproc it was especially important to change its name since the\nbehavior of that field changes with this patch since this function pointer\ncan now be NULL when that wasn\u0027t possible in the past.\n\nAny driver accessing the qproc or key fields directly will now fail to compile.\n\nSome notes regarding the correctness of this patch: the driver\u0027s poll()\nfunction is called with a \u0027struct poll_table_struct *wait\u0027 argument.  This\npointer may or may not be NULL, drivers can never rely on it being one or\nthe other as that depends on whether or not an earlier file descriptor in\nthe select()\u0027s fdset matched the requested events.\n\nThere are only three things a driver can do with the wait argument:\n\n1) obtain the key field:\n\n\tevents \u003d wait ? wait-\u003ekey : ~0;\n\n   This will still work although it should be replaced with the new\n   poll_requested_events() function (which does exactly the same).\n   This will now even work better, since wait is no longer set to NULL\n   unnecessarily.\n\n2) use the qproc callback. This could be deadly since qproc can now be\n   NULL. Renaming qproc should prevent this from happening. There are no\n   kernel drivers that actually access this callback directly, BTW.\n\n3) test whether wait \u003d\u003d NULL to determine whether poll would return without\n   waiting. This is no longer sufficient as the correct test is now\n   wait \u003d\u003d NULL || wait-\u003e_qproc \u003d\u003d NULL.\n\n   However, the worst that can happen here is a slight performance hit in\n   the case where wait !\u003d NULL and wait-\u003e_qproc \u003d\u003d NULL. In that case the\n   driver will assume that poll_wait() will actually add the fd to the set\n   of waiting file descriptors. Of course, poll_wait() will not do that\n   since it tests for wait-\u003e_qproc. This will not break anything, though.\n\n   There is only one place in the whole kernel where this happens\n   (sock_poll_wait() in include/net/sock.h) and that code will be replaced\n   by a call to poll_does_not_wait() in the next patch.\n\n   Note that even if wait-\u003e_qproc !\u003d NULL drivers cannot rely on poll_wait()\n   actually waiting. The next file descriptor from the set might match the\n   event mask and thus any possible waits will never happen.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nReviewed-by: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nReviewed-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@infradead.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@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": "9710a78e55fe29fa2d2f1a9cbd1d399797585fd9",
      "tree": "59970afc4345363e690d57cbb9461c16d3c6e8c3",
      "parents": [
        "03ff3efb64c8a64cb8cdf35e36bead5c78eb3024"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Fri Mar 23 15:01:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:31 2012 -0700"
      },
      "message": "fs/notify/notification.c: make subsys_initcall function static\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b502bd1152472dc1b98c60434f23c23b280c7b94",
      "tree": "4de5d63e00a348108c436ebfd0639b57295e4bfe",
      "parents": [
        "d982d5955e9033015a2cc119aa7c0a878e275964"
      ],
      "author": {
        "name": "Muthu Kumar",
        "email": "muthu.lkml@gmail.com",
        "time": "Fri Mar 23 15:01:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:31 2012 -0700"
      },
      "message": "magic.h: move some FS magic numbers into magic.h\n\n- Move open-coded filesystem magic numbers into magic.h\n\n- Rearrange magic.h so that the filesystem-related constants are grouped\n  together.\n\nSigned-off-by: Muthukumar R \u003cmuthur@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": "e57f146b2837d6a2d04a8ca86cb703f509b00e98",
      "tree": "0ebde713fc9bae7a0bcf626a5a66219899acd0b3",
      "parents": [
        "7e61b3ff50f59f134054aaf43096c761fafecf0c",
        "5a1f36c90c9b21a7aa31c29a1926b376dd6a11cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:27:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:27:40 2012 -0700"
      },
      "message": "Merge tag \u0027upstream-3.4-rc1\u0027 of git://git.infradead.org/linux-ubifs\n\nPull UBIFS changes from Artem Bityutskiy:\n - Improve error messages\n - Clean-up i_nlink management\n - Minor clean-ups\n\n* tag \u0027upstream-3.4-rc1\u0027 of git://git.infradead.org/linux-ubifs:\n  UBIFS: improve error messages\n  UBIFS: kill CUR_MAX_KEY_LEN macro\n  UBIFS: do not use inc_link when i_nlink is zero\n  UBIFS: make the dbg_lock spinlock static\n  UBIFS: increase dumps loglevel\n  UBIFS: amend recovery debugging message\n"
    },
    {
      "commit": "6e55f8ed814940b0b7420ed633c08e61702bb8d4",
      "tree": "6e2afd164e3079c2102770053e7cda217778f8ec",
      "parents": [
        "49d99a2f9c4d033cc3965958a1397b1fad573dd3",
        "381b872cf7942ab8c95de156ce403bd906f3915d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:24:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:24:07 2012 -0700"
      },
      "message": "Merge tag \u0027pstore-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux\n\nPull one pstore patch from Tony Luck\n\n* tag \u0027pstore-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:\n  pstore: Introduce get_reason_str() to pstore\n"
    },
    {
      "commit": "49d99a2f9c4d033cc3965958a1397b1fad573dd3",
      "tree": "cda1849d49d40d2f25773e86605c55bc6745cf1f",
      "parents": [
        "1c3ddfe5ab886c4dc0443535e95ad8e41c41d0e5",
        "f074211f6041305b645669464343d504f4e6a290"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:19:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:19:22 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull XFS updates from Ben Myers:\n \"Scalability improvements for dquots, log grant code cleanups, plus\n  bugfixes and cleanups large and small\"\n\nFix up various trivial conflicts that were due to some of the earlier\npatches already having been integrated into v3.3 as bugfixes, and then\nthere were development patches on top of those.  Easily merged by just\ntaking the newer version from the pulled branch.\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs: (45 commits)\n  xfs: fallback to vmalloc for large buffers in xfs_getbmap\n  xfs: fallback to vmalloc for large buffers in xfs_attrmulti_attr_get\n  xfs: remove remaining scraps of struct xfs_iomap\n  xfs: fix inode lookup race\n  xfs: clean up minor sparse warnings\n  xfs: remove the global xfs_Gqm structure\n  xfs: remove the per-filesystem list of dquots\n  xfs: use per-filesystem radix trees for dquot lookup\n  xfs: per-filesystem dquot LRU lists\n  xfs: use common code for quota statistics\n  xfs: reimplement fdatasync support\n  xfs: split in-core and on-disk inode log item fields\n  xfs: make xfs_inode_item_size idempotent\n  xfs: log timestamp updates\n  xfs: log file size updates at I/O completion time\n  xfs: log file size updates as part of unwritten extent conversion\n  xfs: do not require an ioend for new EOF calculation\n  xfs: use per-filesystem I/O completion workqueues\n  quota: make Q_XQUOTASYNC a noop\n  xfs: include reservations in quota reporting\n  ...\n"
    },
    {
      "commit": "1c3ddfe5ab886c4dc0443535e95ad8e41c41d0e5",
      "tree": "c6684be0e98deb7220153c410be7c1fb7cb0dbbf",
      "parents": [
        "f63d395d47f37a4fe771e6d4b1db9d2cdae5ffc5",
        "3dd933061d3a4f33fb6ba1616e88fa55a8b8cb9c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:07:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:07:15 2012 -0700"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  cifs: clean up ordering in exit_cifs\n  cifs: clean up call to cifs_dfs_release_automount_timer()\n  CIFS: Delete echo_retries module parm\n  CIFS: Prepare credits code for a slot reservation\n  CIFS: Make wait_for_free_request killable\n  CIFS: Introduce credit-based flow control\n  CIFS: Simplify inFlight logic\n  cifs: fix issue mounting of DFS ROOT when redirecting from one domain controller to the next\n  CIFS: Respect negotiated MaxMpxCount\n  CIFS: Fix a spurious error in cifs_push_posix_locks\n"
    },
    {
      "commit": "f63d395d47f37a4fe771e6d4b1db9d2cdae5ffc5",
      "tree": "3448a14ae965802adb963762cadeb9989ce4caa2",
      "parents": [
        "643ac9fc5429e85b8b7f534544b80bcc4f34c367",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 08:53:47 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates for Linux 3.4 from Trond Myklebust:\n \"New features include:\n   - Add NFS client support for containers.\n\n     This should enable most of the necessary functionality, including\n     lockd support, and support for rpc.statd, NFSv4 idmapper and\n     RPCSEC_GSS upcalls into the correct network namespace from which\n     the mount system call was issued.\n\n   - NFSv4 idmapper scalability improvements\n\n     Base the idmapper cache on the keyring interface to allow\n     concurrent access to idmapper entries.  Start the process of\n     migrating users from the single-threaded daemon-based approach to\n     the multi-threaded request-key based approach.\n\n   - NFSv4.1 implementation id.\n\n     Allows the NFSv4.1 client and server to mutually identify each\n     other for logging and debugging purposes.\n\n   - Support the \u0027vers\u003d4.1\u0027 mount option for mounting NFSv4.1 instead of\n     having to use the more counterintuitive \u0027vers\u003d4,minorversion\u003d1\u0027.\n\n   - SUNRPC tracepoints.\n\n     Start the process of adding tracepoints in order to improve\n     debugging of the RPC layer.\n\n   - pNFS object layout support for autologin.\n\n  Important bugfixes include:\n\n   - Fix a bug in rpc_wake_up/rpc_wake_up_status that caused them to\n     fail to wake up all tasks when applied to priority waitqueues.\n\n   - Ensure that we handle read delegations correctly, when we try to\n     truncate a file.\n\n   - A number of fixes for NFSv4 state manager loops (mostly to do with\n     delegation recovery).\"\n\n* tag \u0027nfs-for-3.4-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (224 commits)\n  NFS: fix sb-\u003es_id in nfs debug prints\n  xprtrdma: Remove assumption that each segment is \u003c\u003d PAGE_SIZE\n  xprtrdma: The transport should not bug-check when a dup reply is received\n  pnfs-obj: autologin: Add support for protocol autologin\n  NFS: Remove nfs4_setup_sequence from generic rename code\n  NFS: Remove nfs4_setup_sequence from generic unlink code\n  NFS: Remove nfs4_setup_sequence from generic read code\n  NFS: Remove nfs4_setup_sequence from generic write code\n  NFS: Fix more NFS debug related build warnings\n  SUNRPC/LOCKD: Fix build warnings when CONFIG_SUNRPC_DEBUG is undefined\n  nfs: non void functions must return a value\n  SUNRPC: Kill compiler warning when RPC_DEBUG is unset\n  SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG\n  NFS: Use cond_resched_lock() to reduce latencies in the commit scans\n  NFSv4: It is not safe to dereference lsp-\u003els_state in release_lockowner\n  NFS: ncommit count is being double decremented\n  SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()\n  Try using machine credentials for RENEW calls\n  NFSv4.1: Fix a few issues in filelayout_commit_pagelist\n  NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code\n  ...\n"
    },
    {
      "commit": "aab008db8063364dc3c8ccf4981c21124866b395",
      "tree": "72914203f4decb023efdaabd0301a62d742dfa8c",
      "parents": [
        "4f5b1affdda3e0c48cac674182f52004137b0ffc",
        "16c0cfa425b8e1488f7a1873bd112a7a099325f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 19:52:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 19:52:47 2012 -0700"
      },
      "message": "Merge tag \u0027stable/for-linus-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm\n\nPull cleancache changes from Konrad Rzeszutek Wilk:\n \"This has some patches for the cleancache API that should have been\n  submitted a _long_ time ago.  They are basically cleanups:\n\n   - rename of flush to invalidate\n\n   - moving reporting of statistics into debugfs\n\n   - use __read_mostly as necessary.\n\n  Oh, and also the MAINTAINERS file change.  The files (except the\n  MAINTAINERS file) have been in #linux-next for months now.  The late\n  addition of MAINTAINERS file is a brain-fart on my side - didn\u0027t\n  realize I needed that just until I was typing this up - and I based\n  that patch on v3.3 - so the tree is on top of v3.3.\"\n\n* tag \u0027stable/for-linus-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/mm:\n  MAINTAINERS: Adding cleancache API to the list.\n  mm: cleancache: Use __read_mostly as appropiate.\n  mm: cleancache: report statistics via debugfs instead of sysfs.\n  mm: zcache/tmem/cleancache: s/flush/invalidate/\n  mm: cleancache: s/flush/invalidate/\n"
    },
    {
      "commit": "f7493e5d9cc10ac97cf1f1579fdc14117460b40b",
      "tree": "5c73bd9418b24398b33c5eb2c2fb3ea749d8c631",
      "parents": [
        "989412bbd2835f1475d1528846693eddbac744c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 16:10:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 16:10:40 2012 -0700"
      },
      "message": "vfs: tidy up sparse warnings in fs/namei.c\n\nWhile doing the fs/namei.c cleanups, I ran sparse on it, and it pointed\nout other large integers and a couple of cases of us using \u00270\u0027 instead\nof the proper \u0027NULL\u0027.\n\nSparse still doesn\u0027t understand some of the conditional locking going\non, but that\u0027s no excuse for not fixing up the trivial stuff.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "989412bbd2835f1475d1528846693eddbac744c8",
      "tree": "192a4fdeeca43951cc69d30fad6b91c6196f9e8c",
      "parents": [
        "1f1e6e523e43e312c0e0d38c09828d53e9f709fc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 15:58:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 15:58:27 2012 -0700"
      },
      "message": "vfs: tidy up fs/namei.c byte-repeat word constants\n\nIn commit commit 1de5b41cd3b2 (\"fs/namei.c: fix warnings on 32-bit\")\nAndrew said that there must be a tidier way of doing this.\n\nThis is that tidier way.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f1e6e523e43e312c0e0d38c09828d53e9f709fc",
      "tree": "8bf08328cb84dff0bc7a120a1606547e1938cbbd",
      "parents": [
        "f132c5be05e407a99cf582347a2ae0120acd3ad7"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sun Mar 18 21:23:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 15:49:18 2012 -0700"
      },
      "message": "fs: fix kernel-doc warnings in dcache.c\n\nFix kernel-doc warnings in fs/dcache.c:\n\n  Warning(fs/dcache.c:1743): No description found for parameter \u0027seqp\u0027\n  Warning(fs/dcache.c:1743): Excess function parameter \u0027seq\u0027 description in \u0027__d_lookup_rcu\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f132c5be05e407a99cf582347a2ae0120acd3ad7",
      "tree": "f089bbd244aad5d5686360080f93ee9e8592a39d",
      "parents": [
        "ba331d5decbfe1cc8b1bf10fb7005f4b972c4f0e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Thu Mar 22 21:59:52 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 15:10:43 2012 -0700"
      },
      "message": "Fix full_name_hash() behaviour when length is a multiple of 8\n\nWe want it to match what hash_name() is doing, which means extra\nmultiply by 9 in this case...\n\nReported-and-Tested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e474a00d7ff746ed177ddae14fa8b2d4bad7a00",
      "tree": "1255e88406191e4daa29e59ebd37fdc8042184e4",
      "parents": [
        "4e75732035d7e97e001bdf6e3149d3967c0221de"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 22 14:42:22 2012 -0700"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Mar 22 14:46:56 2012 -0700"
      },
      "message": "sysctl: protect poll() in entries that may go away\n\nProtect code accessing ctl_table by grabbing the header with grab_header()\nand after releasing with sysctl_head_finish().  This is needed if poll()\nis called in entries created by modules: currently only hostname and\ndomainname support poll(), but this bug may be triggered when/if modules\nuse it and if user called poll() in a file that doesn\u0027t support it.\n\nDave Jones reported the following when using a syscall fuzzer while\nhibernating/resuming:\n\nRIP: 0010:[\u003cffffffff81233e3e\u003e]  [\u003cffffffff81233e3e\u003e] proc_sys_poll+0x4e/0x90\nRAX: 0000000000000145 RBX: ffff88020cab6940 RCX: 0000000000000000\nRDX: ffffffff81233df0 RSI: 6b6b6b6b6b6b6b6b RDI: ffff88020cab6940\n[ ... ]\nCode: 00 48 89 fb 48 89 f1 48 8b 40 30 4c 8b 60 e8 b8 45 01 00 00 49 83\n7c 24 28 00 74 2e 49 8b 74 24 30 48 85 f6 74 24 48 85 c9 75 32 \u003c8b\u003e 16\nb8 45 01 00 00 48 63 d2 49 39 d5 74 10 8b 06 48 98 48 89\n\nIf an entry goes away while we are polling() it, ctl_table may not exist\nanymore.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "c999a223c2f0d31c64ef7379814cea1378b2b800",
      "tree": "ed699c3c98075bbfc4aed0ab22bd174e65e575a8",
      "parents": [
        "1a1d772433d42aaff7315b3468fef5951604f5c6"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:07 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 22 16:12:24 2012 -0500"
      },
      "message": "xfs: introduce an allocation workqueue\n\nWe currently have significant issues with the amount of stack that\nallocation in XFS uses, especially in the writeback path. We can\neasily consume 4k of stack between mapping the page, manipulating\nthe bmap btree and allocating blocks from the free list. Not to\nmention btree block readahead and other functionality that issues IO\nin the allocation path.\n\nAs a result, we can no longer fit allocation in the writeback path\nin the stack space provided on x86_64. To alleviate this problem,\nintroduce an allocation workqueue and move all allocations to a\nseperate context. This can be easily added as an interposing layer\ninto xfs_alloc_vextent(), which takes a single argument structure\nand does not return until the allocation is complete or has failed.\n\nTo do this, add a work structure and a completion to the allocation\nargs structure. This allows xfs_alloc_vextent to queue the args onto\nthe workqueue and wait for it to be completed by the worker. This\ncan be done completely transparently to the caller.\n\nThe worker function needs to ensure that it sets and clears the\nPF_TRANS flag appropriately as it is being run in an active\ntransaction context. Work can also be queued in a memory reclaim\ncontext, so a rescuer is needed for the workqueue.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "1a1d772433d42aaff7315b3468fef5951604f5c6",
      "tree": "0f2b7e5ccf4e0a99fde158d95d1225ed81a2b34e",
      "parents": [
        "5575acc7807595687288b3bbac15103f2a5462e1"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:06 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 22 15:56:52 2012 -0500"
      },
      "message": "xfs: Fix open flag handling in open_by_handle code\n\nSparse identified some unsafe handling of open flags in the xfs open\nby handle ioctl code. Update the code to use the correct access\nmacros to ensure that we handle the open flags correctly.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "5575acc7807595687288b3bbac15103f2a5462e1",
      "tree": "1a47a34756e1c0023e2df8f3b1d9e10de568601a",
      "parents": [
        "1c2ccc66bcef992bec7bad6d52cade66d632d7fb"
      ],
      "author": {
        "name": "Kamal Dasu",
        "email": "kdasu.kdev@gmail.com",
        "time": "Thu Feb 23 00:41:39 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 22 15:31:06 2012 -0500"
      },
      "message": "xfs: fix deadlock in xfs_rtfree_extent\n\nTo fix the deadlock caused by repeatedly calling xfs_rtfree_extent\n\n - removed xfs_ilock() and xfs_trans_ijoin() from xfs_rtfree_extent(),\n   instead added asserts that the inode is locked and has an inode_item\n   attached to it.\n - in xfs_bunmapi() when dealing with an inode with the rt flag\n   call xfs_ilock() and xfs_trans_ijoin() so that the\n   reference count is bumped on the inode and attached it to the\n   transaction before calling into xfs_bmap_del_extent, similar to\n   what we do in xfs_bmap_rtalloc.\n\nSigned-off-by: Kamal Dasu \u003ckdasu.kdev@gmail.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "1c2ccc66bcef992bec7bad6d52cade66d632d7fb",
      "tree": "621a3e4d527d18bc6bfb2667baf29f5a9607706a",
      "parents": [
        "f074211f6041305b645669464343d504f4e6a290"
      ],
      "author": {
        "name": "Gerard Snitselaar",
        "email": "dev@snitselaar.org",
        "time": "Fri Mar 16 18:36:18 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 22 13:48:55 2012 -0500"
      },
      "message": "fs: xfs: fix section mismatch in linux-next\n\nxfs_qm_exit() is called in init_xfs_fs().\n\nSigned-off-by: Gerard Snitselaar \u003cdev@snitselaar.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "95211279c5ad00a317c98221d7e4365e02f20836",
      "tree": "2ddc8625378d2915b8c96392f3cf6663b705ed55",
      "parents": [
        "5375871d432ae9fc581014ac117b96aaee3cd0c7",
        "12724850e8064f64b6223d26d78c0597c742c65a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge first batch of patches from Andrew Morton:\n \"A few misc things and all the MM queue\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (92 commits)\n  memcg: avoid THP split in task migration\n  thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n  memcg: clean up existing move charge code\n  mm/memcontrol.c: remove unnecessary \u0027break\u0027 in mem_cgroup_read()\n  mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()\n  mm/memcontrol.c: s/stealed/stolen/\n  memcg: fix performance of mem_cgroup_begin_update_page_stat()\n  memcg: remove PCG_FILE_MAPPED\n  memcg: use new logic for page stat accounting\n  memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n  memcg: simplify move_account() check\n  memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)\n  memcg: kill dead prev_priority stubs\n  memcg: remove PCG_CACHE page_cgroup flag\n  memcg: let css_get_next() rely upon rcu_read_lock()\n  cgroup: revert ss_id_lock to spinlock\n  idr: make idr_get_next() good for rcu_read_lock()\n  memcg: remove unnecessary thp check in page stat accounting\n  memcg: remove redundant returns\n  memcg: enum lru_list lru\n  ...\n"
    },
    {
      "commit": "3489b42a72a41d477665ab37f196ae9257180abb",
      "tree": "f90c349a10cb7ca6c1c2da5d141324c636817d33",
      "parents": [
        "8d63e318c4eb1bea6f7e3cb4b77849eaa167bfec"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 08 16:50:09 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:52 2012 -0500"
      },
      "message": "ceph: fix three bugs, two in ceph_vxattrcb_file_layout()\n\nIn ceph_vxattrcb_file_layout(), there is a check to determine\nwhether a preferred PG should be formatted into the output buffer.\nThat check assumes that a preferred PG number of 0 indicates \"no\npreference,\" but that is wrong.  No preference is indicated by a\nnegative (specifically, -1) PG number.\n\nIn addition, if that condition yields true, the preferred value\nis formatted into a sized buffer, but the size consumed by the\nearlier snprintf() call is not accounted for, opening up the\npossibilty of a buffer overrun.\n\nFinally, in ceph_vxattrcb_dir_rctime() where the nanoseconds part of\nthe time displayed did not include leading 0\u0027s, which led to\nerroneous (sub-second portion of) time values being shown.\n\nThis fixes these three issues:\n    http://tracker.newdream.net/issues/2155\n    http://tracker.newdream.net/issues/2156\n    http://tracker.newdream.net/issues/2157\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cffaba15cd95d4a16eb5a6aa5c22a79f67d555ab",
      "tree": "d752174022e8444c70afb27e798e032163f89ac9",
      "parents": [
        "d3002b974cefbb7c1e325cc296966f768ff76b06"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Wed Feb 15 07:43:54 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:51 2012 -0500"
      },
      "message": "ceph: ensure Boolean options support both senses\n\nMany ceph-related Boolean options offer the ability to both enable\nand disable a feature.  For all those that don\u0027t offer this, add\na new option so that they do.\n\nNote that ceph_show_options()--which reports mount options currently\nin effect--only reports the option if it is different from the\ndefault value.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ee57741c5209154b8ef124bcaa2496da1b69a988",
      "tree": "248a6e7bf259bb849f885f1ff4a82be74ab4913b",
      "parents": [
        "2107978668de13da484f7abc3f03516494c7fca9"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Tue Jan 24 10:08:36 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:47 2012 -0500"
      },
      "message": "rbd: make ceph_parse_options() return a pointer\n\nceph_parse_options() takes the address of a pointer as an argument\nand uses it to return the address of an allocated structure if\nsuccessful.  With this interface is not evident at call sites that\nthe pointer is always initialized.  Change the interface to return\nthe address instead (or a pointer-coded error code) to make the\nvalidity of the returned pointer obvious.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "18fa8b3feaac772925263b04b1429d80e2dfd779",
      "tree": "e9f6070faf16baf17bec93caa476afffeaa903b7",
      "parents": [
        "3ce6cd1233046eb97d6d2bd5d80c1cd40528ea2f"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon Jan 23 15:49:28 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "ceph: make ceph_setxattr() and ceph_removexattr() more alike\n\nThis patch just rearranges a few bits of code to make more\nportions of ceph_setxattr() and ceph_removexattr() identical.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "3ce6cd1233046eb97d6d2bd5d80c1cd40528ea2f",
      "tree": "43025c030db1741222b96156931b6aa2c8b85e51",
      "parents": [
        "aa4066ed7ba60421423c35f66b789bb3dd21d89e"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon Jan 23 15:49:28 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "ceph: avoid repeatedly computing the size of constant vxattr names\n\nAll names defined in the directory and file virtual extended\nattribute tables are constant, and the size of each is known at\ncompile time.  So there\u0027s no need to compute their length every\ntime any file\u0027s attribute is listed.\n\nRecord the length of each string and use it when needed to determine\nthe space need to represent them.  In addition, compute the\naggregate size of strings in each table just once at initialization\ntime.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "aa4066ed7ba60421423c35f66b789bb3dd21d89e",
      "tree": "3b3a805fd5acad82a5e4febb9770e939d9e533e3",
      "parents": [
        "881a5fa20092d221a7c4b365742c959ef4b297ec"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon Jan 23 15:49:28 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "ceph: encode type in vxattr callback routines\n\nThe names of the callback functions used for virtual extended\nattributes are based only on the last component of the attribute\nname.  Because of the way these are defined, this precludes allowing\na single (lowest) attribute name for different callbacks, dependent\non the type of file being operated on.  (For example, it might be\nnice to support both \"ceph.dir.layout\" and \"ceph.file.layout\".)\n\nJust change the callback names to avoid this problem.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "881a5fa20092d221a7c4b365742c959ef4b297ec",
      "tree": "3a983dfa715e1cf5594798bf48aa4668ba6de815",
      "parents": [
        "eb78808446aeed8e25b080c66bf823c1f188236d"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon Jan 23 15:49:28 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "ceph: drop \"_cb\" from name of struct ceph_vxattr_cb\n\nA struct ceph_vxattr_cb does not represent a callback at all, but\nrather a virtual extended attribute itself.  Drop the \"_cb\" suffix\nfrom its name to reflect that.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "eb78808446aeed8e25b080c66bf823c1f188236d",
      "tree": "d6d907a1028ead5286721f7d165c8cd20a6f4632",
      "parents": [
        "22891907193e005923a14384d82d702f6af4f0cf"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon Jan 23 15:49:28 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "ceph: use macros to normalize vxattr table definitions\n\nEntries in the ceph virtual extended attribute tables all follow a\ndistinct pattern in their definition.  Enforce this pattern through\nthe use of a macro.\n\nAlso, a null name field signals the end of the table, so make that\nbe the first field in the ceph_vxattr_cb structure.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "22891907193e005923a14384d82d702f6af4f0cf",
      "tree": "b41d7d2360f6fa013cc4a8b3732571f5d74afa1a",
      "parents": [
        "06476a69d8954f36a15ff5ddbfd47bdfcff22791"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon Jan 23 15:49:28 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "ceph: use a symbolic name for \"ceph.\" extended attribute namespace\n\nUse symbolic constants to define the top-level prefix for \"ceph.\"\nextended attribute names.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "06476a69d8954f36a15ff5ddbfd47bdfcff22791",
      "tree": "3fc48b0e9610b498b41eacbd1b23cce40ab456ec",
      "parents": [
        "b829c1954dbeb42a1277a8cb05943050ee70be94"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon Jan 23 15:49:27 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "ceph: pass inode rather than table to ceph_match_vxattr()\n\nAll callers of ceph_match_vxattr() determine what to pass as the\nfirst argument by calling ceph_inode_vxattrs(inode).  Just do that\ninside ceph_match_vxattr() itself, changing it to take an inode\nrather than the vxattr pointer as its first argument.\n\nAlso ensure the function works correctly for an empty table (i.e.,\ncontaining only a terminating null entry).\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b829c1954dbeb42a1277a8cb05943050ee70be94",
      "tree": "661cb42188119da359b1850117a36a1fcf319063",
      "parents": [
        "99f0f3b2c4be15784bb4ede33b5f2c3f7861dba7"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Mon Jan 23 15:49:27 2012 -0600"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:46 2012 -0500"
      },
      "message": "ceph: don\u0027t null-terminate xattr values\n\nFor some reason, ceph_setxattr() allocates an extra byte in which a\n\u0027\\0\u0027 is stored past the end of an extended attribute value.  This is\nnot needed, and is potentially misleading, so get rid of it.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "80834312a4da1405a9bc788313c67643de6fcb4c",
      "tree": "46fdff81b144f9307a4361f943b7f0fa4d7f1341",
      "parents": [
        "64486697771cbe219fffcb5c8e2ed9ca4fdf086c"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Thu Feb 16 11:56:29 2012 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:45 2012 -0500"
      },
      "message": "ceph: fix overflow check in build_snap_context()\n\nThe overflow check for a + n * b should be (n \u003e (ULONG_MAX - a) / b),\nrather than (n \u003e ULONG_MAX / b - a).\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "810339ec2fae5cbd0164b8acde7fb65652755864",
      "tree": "4a7ea72b1af2201d2bc521afc5e34ed6f6a8ca41",
      "parents": [
        "a661fc561190c0ee2d7cfabcfa92204e2b3aa349"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Fri Feb 03 09:55:36 2012 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:45 2012 -0500"
      },
      "message": "ceph: avoid panic with mismatched symlink sizes in fill_inode()\n\nReturn -EINVAL rather than panic if iinfo-\u003esymlink_len and inode-\u003ei_size\ndo not match.\n\nAlso use kstrndup rather than kmalloc/memcpy.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nReviewed-by: Alex Elder \u003celder@dreamhost.com\u003e\n"
    },
    {
      "commit": "a661fc561190c0ee2d7cfabcfa92204e2b3aa349",
      "tree": "792088d4d245645d5c91fbb97fd4ee2a43188bd1",
      "parents": [
        "1ce208a6ce030ea6ccd4b13c8cec0a84c0c7a1e9"
      ],
      "author": {
        "name": "Amon Ott",
        "email": "ao@m-privacy.de",
        "time": "Mon Jan 23 09:25:23 2012 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:45 2012 -0500"
      },
      "message": "ceph: use 2 instead of 1 as fallback for 32-bit inode number\n\nThe root directory of the Ceph mount has inode number 1, so falling back\nto 1 always creates a collision. 2 is unused on my test systems and seems\nless likely to collide.\n\nSigned-off-by: Amon Ott \u003cao@m-privacy.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1ce208a6ce030ea6ccd4b13c8cec0a84c0c7a1e9",
      "tree": "2957ff4c5c853464fdd174a431a55a66924d6f79",
      "parents": [
        "182fac2689b769a96e7fc9defcd560c5cca92b1e"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Jan 12 17:48:11 2012 -0800"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Mar 22 10:47:45 2012 -0500"
      },
      "message": "ceph: don\u0027t reset s_cap_ttl to zero\n\nAvoid the need to check for a special zero s_cap_ttl value by just\nusing (jiffies - 1) as the value assigned to indicate \"sometime in\nthe past.\"\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "182f514f883abb5f942c94e61c371c4b406352d4",
      "tree": "dfcdedfc4e68eee92107aa06fdf92952dadd259a",
      "parents": [
        "a8e25a83245618e6b0ddf82a9bba79c1b466804d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 21 22:30:06 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:30:06 2012 -0400"
      },
      "message": "ext4: remove useless s_dirt assignment\n\nClean-up ext4 a tiny bit by removing useless s_dirt assignment in\n\u0027ext4_fill_super()\u0027 because a bit later we anyway call\n\u0027ext4_setup_super()\u0027 which writes the superblock to the media\nunconditionally.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a8e25a83245618e6b0ddf82a9bba79c1b466804d",
      "tree": "0bcdefe7f23b4fba9a9b20e02cec08d0550de316",
      "parents": [
        "1b8b9750f07cdd6e13f12c06ae7ec853f2abbe6c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 21 22:29:15 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:29:15 2012 -0400"
      },
      "message": "ext4: write superblock only once on unmount\n\nIn some rather rare cases it is possible that ext4 may the superblock\nto the media twice. This patch makes sure this does not happen. This\nshould speed up unmounting in those cases.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1b8b9750f07cdd6e13f12c06ae7ec853f2abbe6c",
      "tree": "e760b3589e4c4e1e6b346cda33f6730ff3f713a4",
      "parents": [
        "73355192748483a5ba698345092321611f91b04f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 21 22:28:29 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:28:29 2012 -0400"
      },
      "message": "ext4: do not mark superblock as dirty unnecessarily\n\nCommit a0375156ca1041574b5d47cc7e32f10b891151b0 cleaned up superblock\ndirtying handling, but missed one place. This patch does what was\nintended: if we have the journal, then we update the superblock\nthrough the journal rather than doing this directly.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "73355192748483a5ba698345092321611f91b04f",
      "tree": "60f31f2865bef81b8e12d52bb60e63a3a967f325",
      "parents": [
        "afcff5d80a4106e732d903640161d23950eb8e3b"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed Mar 21 22:23:31 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 22:23:31 2012 -0400"
      },
      "message": "ext4: correct ext4_punch_hole return codes\n\next4_punch_hole returns -ENOTSUPP but it should be using -EOPNOTSUPP\n\nSigned-off-by: Allison Henderson \u003cachender@linux.vnet.ibm.com\u003e\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5375871d432ae9fc581014ac117b96aaee3cd0c7",
      "tree": "be98e8255b0f927fb920fb532a598b93fa140dbe",
      "parents": [
        "b57cb7231b2ce52d3dda14a7b417ae125fb2eb97",
        "dfbc2d75c1bd47c3186fa91f1655ea2f3825b0ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:55:10 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:55:10 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\nPull powerpc merge from Benjamin Herrenschmidt:\n \"Here\u0027s the powerpc batch for this merge window.  It is going to be a\n  bit more nasty than usual as in touching things outside of\n  arch/powerpc mostly due to the big iSeriesectomy :-) We finally got\n  rid of the bugger (legacy iSeries support) which was a PITA to\n  maintain and that nobody really used anymore.\n\n  Here are some of the highlights:\n\n   - Legacy iSeries is gone.  Thanks Stephen ! There\u0027s still some bits\n     and pieces remaining if you do a grep -ir series arch/powerpc but\n     they are harmless and will be removed in the next few weeks\n     hopefully.\n\n   - The \u0027fadump\u0027 functionality (Firmware Assisted Dump) replaces the\n     previous (equivalent) \"pHyp assisted dump\"...  it\u0027s a rewrite of a\n     mechanism to get the hypervisor to do crash dumps on pSeries, the\n     new implementation hopefully being much more reliable.  Thanks\n     Mahesh Salgaonkar.\n\n   - The \"EEH\" code (pSeries PCI error handling \u0026 recovery) got a big\n     spring cleaning, motivated by the need to be able to implement a\n     new backend for it on top of some new different type of firwmare.\n\n     The work isn\u0027t complete yet, but a good chunk of the cleanups is\n     there.  Note that this adds a field to struct device_node which is\n     not very nice and which Grant objects to.  I will have a patch soon\n     that moves that to a powerpc private data structure (hopefully\n     before rc1) and we\u0027ll improve things further later on (hopefully\n     getting rid of the need for that pointer completely).  Thanks Gavin\n     Shan.\n\n   - I dug into our exception \u0026 interrupt handling code to improve the\n     way we do lazy interrupt handling (and make it work properly with\n     \"edge\" triggered interrupt sources), and while at it found \u0026 fixed\n     a wagon of issues in those areas, including adding support for page\n     fault retry \u0026 fatal signals on page faults.\n\n   - Your usual random batch of small fixes \u0026 updates, including a bunch\n     of new embedded boards, both Freescale and APM based ones, etc...\"\n\nI fixed up some conflicts with the generalized irq-domain changes from\nGrant Likely, hopefully correctly.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (141 commits)\n  powerpc/ps3: Do not adjust the wrapper load address\n  powerpc: Remove the rest of the legacy iSeries include files\n  powerpc: Remove the remaining CONFIG_PPC_ISERIES pieces\n  init: Remove CONFIG_PPC_ISERIES\n  powerpc: Remove FW_FEATURE ISERIES from arch code\n  tty/hvc_vio: FW_FEATURE_ISERIES is no longer selectable\n  powerpc/spufs: Fix double unlocks\n  powerpc/5200: convert mpc5200 to use of_platform_populate()\n  powerpc/mpc5200: add options to mpc5200_defconfig\n  powerpc/mpc52xx: add a4m072 board support\n  powerpc/mpc5200: update mpc5200_defconfig to fit for charon board\n  Documentation/powerpc/mpc52xx.txt: Checkpatch cleanup\n  powerpc/44x: Add additional device support for APM821xx SoC and Bluestone board\n  powerpc/44x: Add support PCI-E for APM821xx SoC and Bluestone board\n  MAINTAINERS: Update PowerPC 4xx tree\n  powerpc/44x: The bug fixed support for APM821xx SoC and Bluestone board\n  powerpc: document the FSL MPIC message register binding\n  powerpc: add support for MPIC message register API\n  powerpc/fsl: Added aliased MSIIR register address to MSI node in dts\n  powerpc/85xx: mpc8548cds - add 36-bit dts\n  ...\n"
    },
    {
      "commit": "afcff5d80a4106e732d903640161d23950eb8e3b",
      "tree": "9a78cb5546c3f10bb98d3ce8b4f31889f5ad10bc",
      "parents": [
        "a7967f055a9438941268d725b268141c57e32a05"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Mar 21 21:47:55 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 21:47:55 2012 -0400"
      },
      "message": "ext4: remove restrictive checks for EOFBLOCKS_FL\n\nWe are going to remove the EOFBLOCKS_FL flag in the future, so this is\nthe first part of the removal. We can not remove it entirely just now,\nsince the e2fsck is still checking for it and it might cause headache to\nsome people. Instead, remove the restrictive checks now and the rest\nlater, when the new e2fsck code is out and common enough.\n\nThis is also needed because punch hole already breaks the EOFBLOCKS_FL\nsemantics, so it might cause the some troubles. So simply remove it.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a7967f055a9438941268d725b268141c57e32a05",
      "tree": "e79e8452bdb81baa850f71b5f62b23d2c326b98b",
      "parents": [
        "21e7fd22a5a0ca83befe12c58cced21975dab213"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Mar 21 21:26:22 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 21:26:22 2012 -0400"
      },
      "message": "ext4: always set then trimmed blocks count into len\n\nCurrently if the range to trim is too small, for example on 1K fs\nthe request to trim the first block, then the \u0027range-\u003elen\u0027 is not set\nreporting wrong number of discarded block to the caller.\n\nFix this by always setting the \u0027range-\u003elen\u0027 before we return. Note that\nwhen there is a failure (-EINVAL) caller can not depend on \u0027range-\u003elen\u0027\nbeing set properly.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "21e7fd22a5a0ca83befe12c58cced21975dab213",
      "tree": "bb11f7073ad3984e0ab775fc4800f5ee05864623",
      "parents": [
        "913eed83eda42012cde8a9a801c31b312545c098"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Mar 21 21:24:22 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 21:24:22 2012 -0400"
      },
      "message": "ext4: fix trimmed block count accunting\n\nCurrently when there is not enough free blocks in the block group to\ndiscard (grp-\u003ebb_free \u003c minlen) the \u0027trimmed\u0027 is bumped up anyway with\nthe number of discarded blocks from the previous iteration. Fix this\nby bumping up \u0027trimmed\u0027 only if the ext4_trim_all_free() was actually\nrun.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "913eed83eda42012cde8a9a801c31b312545c098",
      "tree": "c6d3ecf5f98fcb1da3854059dbcc51c27b078011",
      "parents": [
        "636d7e2e3b57543636d20cd083079300ccdd569d"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Mar 21 21:22:22 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 21 21:22:22 2012 -0400"
      },
      "message": "ext4: fix start and len arguments handling in ext4_trim_fs()\n\nThe overflow can happen when we are calling get_group_no_and_offset()\nwhich stores the group number in the ext4_grpblk_t type which is\nactually int. However when the blocknr is big enough the group number\nmight be bigger than ext4_grpblk_t resulting in overflow. This will\nmost likely happen with FITRIM default argument len \u003d ULLONG_MAX.\n\nFix this by using \"end\" variable instead of \"start+len\" as it is easier\nto get right and specifically check that the end is not beyond the end\nof the file system, so we are sure that the result of\nget_group_no_and_offset() will not overflow. Otherwise truncate it to\nthe size of the file system.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ad12ab259d9131a53aa11c7c4561d97f7cc900df",
      "tree": "457e99e4c4b1facf029a6a094428eaef73f5d261",
      "parents": [
        "30d73f375238441d6dc31de0d90bc39f5bb0bfe5",
        "220cca2a4f5867db595135e0450381032eb54902"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:00:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 18:00:03 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw\n\nPull gfs2 changes from Steven Whitehouse.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:\n  GFS2: Change truncate page allocation to be GFP_NOFS\n  GFS2: call gfs2_write_alloc_required for each chunk\n  GFS2: Clean up log flush header writing\n  GFS2: Remove a __GFP_NOFAIL allocation\n  GFS2: Flush pending glock work when evicting an inode\n  GFS2: make sure rgrps are up to date in func gfs2_blk2rgrpd\n  GFS2: Eliminate sd_rindex_mutex\n  GFS2: Unlock rindex mutex on glock error\n  GFS2: Make bd_cmp() static\n  GFS2: Sort the ordered write list\n  GFS2: FITRIM ioctl support\n  GFS2: Move two functions from log.c to lops.c\n  GFS2: glock statistics gathering\n"
    },
    {
      "commit": "d1d5e05ffdc110021ae7937802e88ae0d223dcdc",
      "tree": "d0960138966aa0436ffad1907f3ad14dcb625ddf",
      "parents": [
        "b69add218d32450d6604bc9080f6e33e19b06f5e"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Wed Mar 21 16:34:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:00 2012 -0700"
      },
      "message": "hugetlbfs: return error code when initializing module\n\nReturn an errno upon failure to create inode kmem cache, and unregister\nthe FS upon failure to mount.\n\n[akpm@linux-foundation.org: remove unneeded test of `error\u0027]\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40716e29243de46720e5773797791466c28904ec",
      "tree": "19616ad05cbead73d0643b002a7ced8baa292ee2",
      "parents": [
        "21a3c273f88c9cbbaf7e14505df0131d95c8f262"
      ],
      "author": {
        "name": "Steven Truelove",
        "email": "steven.truelove@utoronto.ca",
        "time": "Wed Mar 21 16:34:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugetlbfs: fix alignment of huge page requests\n\nWhen calling shmget() with SHM_HUGETLB, shmget aligns the request size to\nPAGE_SIZE, but this is not sufficient.\n\nModify hugetlb_file_setup() to align requests to the huge page size, and\nto accept an address argument so that all alignment checks can be\nperformed in hugetlb_file_setup(), rather than in its callers.  Change\nnewseg() and mmap_pgoff() to match the new prototype and eliminate a now\nredundant alignment check.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Steven Truelove \u003csteven.truelove@utoronto.ca\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21a3c273f88c9cbbaf7e14505df0131d95c8f262",
      "tree": "f3fbc0ebe490b6a339fcea3baa8b39f2260c0b1e",
      "parents": [
        "ea48cf7863c789579b170ef28e7fc62728365d6e"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:34:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "mm, hugetlb: add thread name and pid to SHM_HUGETLB mlock rlimit warning\n\nAdd the thread name and pid of the application that is allocating shm\nsegments with MAP_HUGETLB without being a part of\n/proc/sys/vm/hugetlb_shm_group or having CAP_IPC_LOCK.\n\nThis identifies the application so it may be fixed by avoiding using the\ndeprecated exception (see Documentation/feature-removal-schedule.txt).\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Jones \u003cdavej@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": "05af2e104a0c282dcd9303431e1360750ba76de6",
      "tree": "cdd5876f2d17b26cc3ded7ef85d04d0e853e9b7e",
      "parents": [
        "90481622d75715bfcb68501280a917dbfe516029"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:34:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "mm, counters: remove task argument to sync_mm_rss() and __sync_task_rss_stat()\n\nsync_mm_rss() can only be used for current to avoid race conditions in\niterating and clearing its per-task counters.  Remove the task argument\nfor it and its helper function, __sync_task_rss_stat(), to avoid thinking\nit can be used safely for anything other than current.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90481622d75715bfcb68501280a917dbfe516029",
      "tree": "63f7d9e4455366ab326ee74e6b39acf76b618fcf",
      "parents": [
        "a1d776ee3147cec2a54a645e92eb2e3e2f65a137"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Wed Mar 21 16:34:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugepages: fix use after free bug in \"quota\" handling\n\nhugetlbfs_{get,put}_quota() are badly named.  They don\u0027t interact with the\ngeneral quota handling code, and they don\u0027t much resemble its behaviour.\nRather than being about maintaining limits on on-disk block usage by\nparticular users, they are instead about maintaining limits on in-memory\npage usage (including anonymous MAP_PRIVATE copied-on-write pages)\nassociated with a particular hugetlbfs filesystem instance.\n\nWorse, they work by having callbacks to the hugetlbfs filesystem code from\nthe low-level page handling code, in particular from free_huge_page().\nThis is a layering violation of itself, but more importantly, if the\nkernel does a get_user_pages() on hugepages (which can happen from KVM\namongst others), then the free_huge_page() can be delayed until after the\nassociated inode has already been freed.  If an unmount occurs at the\nwrong time, even the hugetlbfs superblock where the \"quota\" limits are\nstored may have been freed.\n\nAndrew Barry proposed a patch to fix this by having hugepages, instead of\nstoring a pointer to their address_space and reaching the superblock from\nthere, had the hugepages store pointers directly to the superblock,\nbumping the reference count as appropriate to avoid it being freed.\nAndrew Morton rejected that version, however, on the grounds that it made\nthe existing layering violation worse.\n\nThis is a reworked version of Andrew\u0027s patch, which removes the extra, and\nsome of the existing, layering violation.  It works by introducing the\nconcept of a hugepage \"subpool\" at the lower hugepage mm layer - that is a\nfinite logical pool of hugepages to allocate from.  hugetlbfs now creates\na subpool for each filesystem instance with a page limit set, and a\npointer to the subpool gets added to each allocated hugepage, instead of\nthe address_space pointer used now.  The subpool has its own lifetime and\nis only freed once all pages in it _and_ all other references to it (i.e.\nsuperblocks) are gone.\n\nsubpools are optional - a NULL subpool pointer is taken by the code to\nmean that no subpool limits are in effect.\n\nPrevious discussion of this bug found in:  \"Fix refcounting in hugetlbfs\nquota handling.\". See:  https://lkml.org/lkml/2011/8/11/28 or\nhttp://marc.info/?l\u003dlinux-mm\u0026m\u003d126928970510627\u0026w\u003d1\n\nv2: Fixed a bug spotted by Hillf Danton, and removed the extra parameter to\nalloc_huge_page() - since it already takes the vma, it is not necessary.\n\nSigned-off-by: Andrew Barry \u003cabarry@cray.com\u003e\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1d776ee3147cec2a54a645e92eb2e3e2f65a137",
      "tree": "244e9a44121be417dc9c999bed2a439b8cb01f8d",
      "parents": [
        "ef6942224a185c9e434f6cfe69fe434e732f5b38"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Wed Mar 21 16:34:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugetlb: cleanup hugetlb.h\n\nMake a couple of small cleanups to linux/include/hugetlb.h.  The\nset_file_hugepages() function, which was not used anywhere is removed,\nand the hugetlbfs_config and hugetlbfs_inode_info structures with its\nHUGETLBFS_I helper function are moved into inode.c, the only place they\nwere used.\n\nThese structures are really linked to the hugetlbfs filesystem\nspecifically not to hugepage mm handling in general, so they belong in\nthe filesystem code not in a generally available header.\n\nIt would be nice to move the hugetlbfs_sb_info (superblock) structure in\nthere as well, but it\u0027s currently needed in a number of places via the\nhstate_vma() and hstate_inode().\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Andrew Barry \u003cabarry@cray.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "a05b0855fd15504972dba2358e5faa172a1e50ba",
      "tree": "f4cba4ef12d888ec472714f67ef7bcec318a5191",
      "parents": [
        "f5bf18fa22f8c41a13eb8762c7373eb3a93a7333"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:34:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "hugetlbfs: avoid taking i_mutex from hugetlbfs_read()\n\nTaking i_mutex in hugetlbfs_read() can result in deadlock with mmap as\nexplained below\n\n Thread A:\n  read() on hugetlbfs\n   hugetlbfs_read() called\n    i_mutex grabbed\n     hugetlbfs_read_actor() called\n      __copy_to_user() called\n       page fault is triggered\n Thread B, sharing address space with A:\n  mmap() the same file\n   -\u003emmap_sem is grabbed on task_B-\u003emm-\u003emmap_sem\n    hugetlbfs_file_mmap() is called\n     attempt to grab -\u003ei_mutex and block waiting for A to give it up\n Thread A:\n  pagefault handled blocked on attempt to grab task_A-\u003emm-\u003emmap_sem,\n which happens to be the same thing as task_B-\u003emm-\u003emmap_sem.  Block waiting\n for B to give it up.\n\nAFAIU the i_mutex locking was added to hugetlbfs_read() as per\nhttp://lkml.indiana.edu/hypermail/linux/kernel/0707.2/3066.html to take\ncare of the race between truncate and read.  This patch fixes this by\nlooking at page-\u003emapping under lock_page() (find_lock_page()) to ensure\nthat the inode didn\u0027t get truncated in the range during a parallel read.\n\nIdeally we can extend the patch to make sure we don\u0027t increase i_size in\nmmap.  But that will break userspace, because applications will now have\nto use truncate(2) to increase i_size in hugetlbfs.\n\nBased on the original patch from Hillf Danton.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[everything after 2007 :)]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b76437579d1344b612cf1851ae610c636cec7db0",
      "tree": "37c31c957f1159635258168e27e49b90347e37aa",
      "parents": [
        "9e81130b7ce23050335b1197bb51743517b5b9d0"
      ],
      "author": {
        "name": "Siddhesh Poyarekar",
        "email": "siddhesh.poyarekar@gmail.com",
        "time": "Wed Mar 21 16:34:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "procfs: mark thread stack correctly in proc/\u003cpid\u003e/maps\n\nStack for a new thread is mapped by userspace code and passed via\nsys_clone.  This memory is currently seen as anonymous in\n/proc/\u003cpid\u003e/maps, which makes it difficult to ascertain which mappings\nare being used for thread stacks.  This patch uses the individual task\nstack pointers to determine which vmas are actually thread stacks.\n\nFor a multithreaded program like the following:\n\n\t#include \u003cpthread.h\u003e\n\n\tvoid *thread_main(void *foo)\n\t{\n\t\twhile(1);\n\t}\n\n\tint main()\n\t{\n\t\tpthread_t t;\n\t\tpthread_create(\u0026t, NULL, thread_main, NULL);\n\t\tpthread_join(t, NULL);\n\t}\n\nproc/PID/maps looks like the following:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nHere, one could guess that 7f8a44492000-7f8a44c92000 is a stack since\nthe earlier vma that has no permissions (7f8a44e3d000-7f8a4503d000) but\nthat is not always a reliable way to find out which vma is a thread\nstack.  Also, /proc/PID/maps and /proc/PID/task/TID/maps has the same\ncontent.\n\nWith this patch in place, /proc/PID/task/TID/maps are treated as \u0027maps\nas the task would see it\u0027 and hence, only the vma that that task uses as\nstack is marked as [stack].  All other \u0027stack\u0027 vmas are marked as\nanonymous memory.  /proc/PID/maps acts as a thread group level view,\nwhere all thread stack vmas are marked as [stack:TID] where TID is the\nprocess ID of the task that uses that vma as stack, while the process\nstack is marked as [stack].\n\nSo /proc/PID/maps will look like this:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack:1442]\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nThus marking all vmas that are used as stacks by the threads in the\nthread group along with the process stack.  The task level maps will\nhowever like this:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack]\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nwhere only the vma that is being used as a stack by *that* task is\nmarked as [stack].\n\nAnalogous changes have been made to /proc/PID/smaps,\n/proc/PID/numa_maps, /proc/PID/task/TID/smaps and\n/proc/PID/task/TID/numa_maps. Relevant snippets from smaps and\nnuma_maps:\n\n    [siddhesh@localhost ~ ]$ pgrep a.out\n    1441\n    [siddhesh@localhost ~ ]$ cat /proc/1441/smaps | grep \"\\[stack\"\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack:1442]\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/smaps | grep \"\\[stack\"\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/smaps | grep \"\\[stack\"\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/numa_maps | grep \"stack\"\n    7f8a44492000 default stack:1442 anon\u003d2 dirty\u003d2 N0\u003d2\n    7fff6273a000 default stack anon\u003d3 dirty\u003d3 N0\u003d3\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/numa_maps | grep \"stack\"\n    7f8a44492000 default stack anon\u003d2 dirty\u003d2 N0\u003d2\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/numa_maps | grep \"stack\"\n    7fff6273a000 default stack anon\u003d3 dirty\u003d3 N0\u003d3\n\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Siddhesh Poyarekar \u003csiddhesh.poyarekar@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "092b50bacd1cdbffef2643b7a46f2a215407919c",
      "tree": "a2501b424d37c3757e9369ac36231874756bf990",
      "parents": [
        "807f0ccfe15551afd514c062585045c88ca62037"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "pagemap: introduce data structure for pagemap entry\n\nCurrently a local variable of pagemap entry in pagemap_pte_range() is\nnamed pfn and typed with u64, but it\u0027s not correct (pfn should be unsigned\nlong.)\n\nThis patch introduces special type for pagemap entries and replaces code\nwith it.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e873c49fbfdd595481976b915850e682441bcbec",
      "tree": "87ad5d125563d1eb6418e1f7b5a094fab6098108",
      "parents": [
        "025c5b2451e42c9e8dfdecd6dc84956ce8f321b5"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "pagemap: export KPF_THP\n\nThis flag shows that a given page is a subpage of a transparent hugepage.\nIt helps us debug and test the kernel by showing physical address of thp.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "025c5b2451e42c9e8dfdecd6dc84956ce8f321b5"
}
