)]}'
{
  "log": [
    {
      "commit": "a591afc01d9e48affbacb365558a31e53c85af45",
      "tree": "9bb91f4eb94ec69fc4706c4944788ec5f3586063",
      "parents": [
        "820d41cf0cd0e94a5661e093821e2e5c6b36a9d8",
        "31796ac4e8f0e88f5c10f1ad6dab8f19bebe44a4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 18:12:23 2012 -0700"
      },
      "message": "Merge branch \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x32 support for x86-64 from Ingo Molnar:\n \"This tree introduces the X32 binary format and execution mode for x86:\n  32-bit data space binaries using 64-bit instructions and 64-bit kernel\n  syscalls.\n\n  This allows applications whose working set fits into a 32 bits address\n  space to make use of 64-bit instructions while using a 32-bit address\n  space with shorter pointers, more compressed data structures, etc.\"\n\nFix up trivial context conflicts in arch/x86/{Kconfig,vdso/vma.c}\n\n* \u0027x86-x32-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)\n  x32: Fix alignment fail in struct compat_siginfo\n  x32: Fix stupid ia32/x32 inversion in the siginfo format\n  x32: Add ptrace for x32\n  x32: Switch to a 64-bit clock_t\n  x32: Provide separate is_ia32_task() and is_x32_task() predicates\n  x86, mtrr: Use explicit sizing and padding for the 64-bit ioctls\n  x86/x32: Fix the binutils auto-detect\n  x32: Warn and disable rather than error if binutils too old\n  x32: Only clear TIF_X32 flag once\n  x32: Make sure TS_COMPAT is cleared for x32 tasks\n  fs: Remove missed -\u003efds_bits from cessation use of fd_set structs internally\n  fs: Fix close_on_exec pointer in alloc_fdtable\n  x32: Drop non-__vdso weak symbols from the x32 VDSO\n  x32: Fix coding style violations in the x32 VDSO code\n  x32: Add x32 VDSO support\n  x32: Allow x32 to be configured\n  x32: If configured, add x32 system calls to system call tables\n  x32: Handle process creation\n  x32: Signal-related system calls\n  x86: Add #ifdef CONFIG_COMPAT to \u003casm/sys_ia32.h\u003e\n  ...\n"
    },
    {
      "commit": "6268b325c3066234e7bddb99d2b98bcedb0c0033",
      "tree": "5dca66fae30aa44e314ec6713ab31b773ad788e4",
      "parents": [
        "12679a2d7e3bfbdc7586e3e86d1ca90c46659363"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 17:00:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 17:00:56 2012 -0700"
      },
      "message": "Revert \"ext4: don\u0027t release page refs in ext4_end_bio()\"\n\nThis reverts commit b43d17f319f2c502b17139d1cf70731b2b62c644.\n\nDave Jones reports that it causes lockups on his laptop, and his debug\noutput showed a lot of processes hung waiting for page_writeback (or\nmore commonly - processes hung waiting for a lock that was held during\nthat writeback wait).\n\nThe page_writeback hint made Ted suggest that Dave look at this commit,\nand Dave verified that reverting it makes his problems go away.\n\nTed says:\n \"That commit fixes a race which is seen when you write into fallocated\n  (and hence uninitialized) disk blocks under *very* heavy memory\n  pressure.  Furthermore, although theoretically it could trigger under\n  normal direct I/O writes, it only seems to trigger if you are issuing\n  a huge number of AIO writes, such that a just-written page can get\n  evicted from memory, and then read back into memory, before the\n  workqueue has a chance to update the extent tree.\n\n  This race has been around for a little over a year, and no one noticed\n  until two months ago; it only happens under fairly exotic conditions,\n  and in fact even after trying very hard to create a simple repro under\n  lab conditions, we could only reproduce the problem and confirm the\n  fix on production servers running MySQL on very fast PCIe-attached\n  flash devices.\n\n  Given that Dave was able to hit this problem pretty quickly, if we\n  confirm that this commit is at fault, the only reasonable thing to do\n  is to revert it IMO.\"\n\nReported-and-tested-by: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71db34fc4330f7c784397acb9f1e6ee7f7b32eb2",
      "tree": "77dd08f6f778a799dcd0c48eb72d0742349df235",
      "parents": [
        "50483c3268918ee51a56d1baa39b9149d2d0d521",
        "797a9d797f8483bb67f265c761b76dcd5a077a23"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:53:25 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd changes from Bruce Fields:\n\nHighlights:\n - Benny Halevy and Tigran Mkrtchyan implemented some more 4.1 features,\n   moving us closer to a complete 4.1 implementation.\n - Bernd Schubert fixed a long-standing problem with readdir cookies on\n   ext2/3/4.\n - Jeff Layton performed a long-overdue overhaul of the server reboot\n   recovery code which will allow us to deprecate the current code (a\n   rather unusual user of the vfs), and give us some needed flexibility\n   for further improvements.\n - Like the client, we now support numeric uid\u0027s and gid\u0027s in the\n   auth_sys case, allowing easier upgrades from NFSv2/v3 to v4.x.\n\nPlus miscellaneous bugfixes and cleanup.\n\nThanks to everyone!\n\nThere are also some delegation fixes waiting on vfs review that I\nsuppose will have to wait for 3.5.  With that done I think we\u0027ll finally\nturn off the \"EXPERIMENTAL\" dependency for v4 (though that\u0027s mostly\nsymbolic as it\u0027s been on by default in distro\u0027s for a while).\n\nAnd the list of 4.1 todo\u0027s should be achievable for 3.5 as well:\n\n   http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues\n\nthough we may still want a bit more experience with it before turning it\non by default.\n\n* \u0027for-3.4\u0027 of git://linux-nfs.org/~bfields/linux: (55 commits)\n  nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled\n  nfsd4: use auth_unix unconditionally on backchannel\n  nfsd: fix NULL pointer dereference in cld_pipe_downcall\n  nfsd4: memory corruption in numeric_name_to_id()\n  sunrpc: skip portmap calls on sessions backchannel\n  nfsd4: allow numeric idmapping\n  nfsd: don\u0027t allow legacy client tracker init for anything but init_net\n  nfsd: add notifier to handle mount/unmount of rpc_pipefs sb\n  nfsd: add the infrastructure to handle the cld upcall\n  nfsd: add a header describing upcall to nfsdcld\n  nfsd: add a per-net-namespace struct for nfsd\n  sunrpc: create nfsd dir in rpc_pipefs\n  nfsd: add nfsd4_client_tracking_ops struct and a way to set it\n  nfsd: convert nfs4_client-\u003ecl_cb_flags to a generic flags field\n  NFSD: Fix nfs4_verifier memory alignment\n  NFSD: Fix warnings when NFSD_DEBUG is not defined\n  nfsd: vfs_llseek() with 32 or 64 bit offsets (hashes)\n  nfsd: rename \u0027int access\u0027 to \u0027int may_flags\u0027 in nfsd_open()\n  ext4: return 32/64-bit dir name hash according to usage type\n  fs: add new FMODE flags: FMODE_32bithash and FMODE_64bithash\n  ...\n"
    },
    {
      "commit": "18a06efae5b37bf5cb7473b5ba91a50907a8f7ac",
      "tree": "4506ce1c713a370af739bec8b890f93ad51a2c84",
      "parents": [
        "0a03726ca982129b1e054f0e8c34ca7eea348acd",
        "10bdfb5ef7e1a429a3de31e498942a8ae5749a46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:07:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:07:08 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nSingle fix for a commit from the first batch of patches through Andrew.\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e:\n  pagemap: remove remaining unneeded spin_lock()\n"
    },
    {
      "commit": "10bdfb5ef7e1a429a3de31e498942a8ae5749a46",
      "tree": "2bda472ac8825a0616ca8632fdc5623f4f8bb0fe",
      "parents": [
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Thu Mar 29 13:58:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:06:43 2012 -0700"
      },
      "message": "pagemap: remove remaining unneeded spin_lock()\n\nCommit 025c5b2451e4 (\"thp: optimize away unnecessary page table\nlocking\") moves spin_lock() into pmd_trans_huge_lock() in order to avoid\nlocking unless pmd is for thp.  So this spin_lock() is a bug.\n\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "797a9d797f8483bb67f265c761b76dcd5a077a23",
      "tree": "bc114410d0b6f7cc596d1ef8e2905fab00bf321b",
      "parents": [
        "4ca1f872cda31fe1cfe5e90e027f7bef4980364c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Mar 29 07:52:49 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 29 08:01:07 2012 -0400"
      },
      "message": "nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled\n\nOtherwise, we get a warning or error similar to this when building with\nCONFIG_NFSD_V4 disabled:\n\n    ERROR: \"nfsd4_cld_block\" [fs/nfsd/nfsd.ko] undefined!\n\nFix this by wrapping the calls to rpc_pipefs_notifier_register and\n..._unregister in another function and providing no-op replacements\nwhen CONFIG_NFSD_V4 is disabled.\n\nReported-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "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": "4ca1f872cda31fe1cfe5e90e027f7bef4980364c",
      "tree": "18c154d1548ce19b37cbcbc17de1e57cdc065b3a",
      "parents": [
        "21f72c9f0a6774d104fb655bda6099c378518945"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 14:18:16 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 19:14:36 2012 -0400"
      },
      "message": "nfsd4: use auth_unix unconditionally on backchannel\n\nThis isn\u0027t actually correct, but it works with the Linux client, and\nagrees with the behavior we used to have before commit 80fc015bdfe.\n\nLater patches will implement the spec-mandated behavior (which is to use\nthe security parameters explicitly given by the client in create_session\nor backchannel_ctl).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\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": "21f72c9f0a6774d104fb655bda6099c378518945",
      "tree": "fa320f8b928d9aa4277711f03d6d44af60e151b4",
      "parents": [
        "3af706135bcc06b1519ba50beaf1b47d32d0fc26"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 28 07:36:01 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 10:10:24 2012 -0400"
      },
      "message": "nfsd: fix NULL pointer dereference in cld_pipe_downcall\n\nIf we find that \"cup\" is NULL in this case, then we obviously don\u0027t\nwant to dereference it. What we really want to print in this case\nis the xid that we copied off earlier.\n\nReported-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "3af706135bcc06b1519ba50beaf1b47d32d0fc26",
      "tree": "52ee3c46416e12fae8f9a1f6e7a6faa3cd3416ad",
      "parents": [
        "92769108f5382a0bdb4c35eb80c183fb7797cfae"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Mar 28 13:44:59 2012 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 28 10:10:23 2012 -0400"
      },
      "message": "nfsd4: memory corruption in numeric_name_to_id()\n\n\"id\" is type is a uid_t (32 bits) but on 64 bit systems strict_strtoul()\nmodifies 64 bits of data.  We should use kstrtouint() instead.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\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": "e9541ce8efc22c233a045f091c2b969923709038",
      "tree": "db3fc2a326dae9ada480bbdaeb08202a4b596098",
      "parents": [
        "cc27e0d407021a278d08c1952f5af4ab38c49eda"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Mar 22 16:07:18 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "nfsd4: allow numeric idmapping\n\nMimic the client side by providing a module parameter that turns off\nidmapping in the auth_sys case, for backwards compatibility with NFSv2\nand NFSv3.\n\nUnlike in the client case, we don\u0027t have any way to negotiate, since the\nclient can return an error to us if it doesn\u0027t like the id that we\nreturn to it in (for example) a getattr call.\n\nHowever, it has always been possible for servers to return numeric id\u0027s,\nand as far as we\u0027re aware clients have always been able to handle them.\n\nAlso, in the auth_sys case clients already need to have numeric id\u0027s the\nsame between client and server.\n\nTherefore we believe it\u0027s safe to default this to on; but the module\nparameter is available to return to previous behavior if this proves to\nbe a problem in some unexpected setup.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "cc27e0d407021a278d08c1952f5af4ab38c49eda",
      "tree": "553dcc5c2acdce04caab305c02693303abb4e822",
      "parents": [
        "813fd320c16691eac508fe350b4ee7362c6c4a56"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:09 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "nfsd: don\u0027t allow legacy client tracker init for anything but init_net\n\nThis code isn\u0027t set up for containers, so don\u0027t allow it to be\nused for anything but init_net.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "813fd320c16691eac508fe350b4ee7362c6c4a56",
      "tree": "3ec14685fb13b2f5fba6ed1ce78e5e6bdb7c173e",
      "parents": [
        "f3f8014862d813cca81a597c83bd1dbf0fb2b8f6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:08 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "nfsd: add notifier to handle mount/unmount of rpc_pipefs sb\n\nIn the event that rpc_pipefs isn\u0027t mounted when nfsd starts, we\nmust register a notifier to handle creating the dentry once it\nis mounted, and to remove the dentry on unmount.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "f3f8014862d813cca81a597c83bd1dbf0fb2b8f6",
      "tree": "f9d41fd42d38690d3f8e9e70a3542928706065c7",
      "parents": [
        "0ab628d856a63d63b47307b09851d1e955c706ac"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:07 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:48 2012 -0400"
      },
      "message": "nfsd: add the infrastructure to handle the cld upcall\n\n...and add a mechanism for switching between the \"legacy\" tracker and\nthe new one. The decision is made by looking to see whether the\nv4recoverydir exists. If it does, then the legacy client tracker is\nused.\n\nIf it\u0027s not, then the kernel will create a \"cld\" pipe in rpc_pipefs.\nThat pipe is used to talk to a daemon for handling the upcall.\n\nMost of the data structures for the new client tracker are handled on a\nper-namespace basis, so this upcall should be essentially ready for\ncontainerization. For now however, nfsd just starts it by calling the\ninitialization and exit functions for init_net.\n\nI\u0027m making the assumption that at some point in the future we\u0027ll be able\nto determine the net namespace from the nfs4_client. Until then, this\npatch hardcodes init_net in those places. I\u0027ve sprinkled some \"FIXME\"\ncomments around that code to attempt to make it clear where we\u0027ll need\nto fix that up later.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "7ea34ac15e45b790f2faa7d5f69c560a43f2de70",
      "tree": "1f44c11731e76f25036042d8b41231e42348e958",
      "parents": [
        "b3537c35c21f0e6750aa8bd786949b55509c6d0d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:05 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "nfsd: add a per-net-namespace struct for nfsd\n\nEventually, we\u0027ll need this when nfsd gets containerized fully. For\nnow, create a struct on a per-net-namespace basis that will just hold\na pointer to the cld_net structure. That struct will hold all of the\nper-net data that we need for the cld tracker.\n\nEventually we can add other pernet objects to struct nfsd_net.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "2a4317c55438d8589a015d42912454ede12031f0",
      "tree": "cfcc8d551c750bd46ea86fb5fd4ed5d305063615",
      "parents": [
        "a52d726bbd928164609e6abc4dc967e819dbf09c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 16:42:43 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "nfsd: add nfsd4_client_tracking_ops struct and a way to set it\n\nAbstract out the mechanism that we use to track clients into a set of\nclient name tracking functions.\n\nThis gives us a mechanism to plug in a new set of client tracking\nfunctions without disturbing the callers. It also gives us a way to\ndecide on what tracking scheme to use at runtime.\n\nFor now, this just looks like pointless abstraction, but later we\u0027ll\nadd a new alternate scheme for tracking clients on stable storage.\n\nNote too that this patch anticipates the eventual containerization\nof this code by passing in struct net pointers in places. No attempt\nis made to containerize the legacy client tracker however.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "a52d726bbd928164609e6abc4dc967e819dbf09c",
      "tree": "604df65589a95311ab297f80ce377e82525ce597",
      "parents": [
        "1df00640c9111c881633d9b219f18e66c52599ec"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Mar 21 09:52:02 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:49:47 2012 -0400"
      },
      "message": "nfsd: convert nfs4_client-\u003ecl_cb_flags to a generic flags field\n\nWe\u0027ll need a way to flag the nfs4_client as already being recorded on\nstable storage so that we don\u0027t continually upcall. Currently, that\u0027s\nrecorded in the cl_firststate field of the client struct. Using an\nentire u32 to store a flag is rather wasteful though.\n\nThe cl_cb_flags field is only using 2 bits right now, so repurpose that\nto a generic flags field. Rename NFSD4_CLIENT_KILL to\nNFSD4_CLIENT_CB_KILL to make it evident that it\u0027s part of the callback\nflags. Add a mask that we can use for existing checks that look to see\nwhether any flags are set, so that the new flags don\u0027t interfere.\n\nConvert all references to cl_firstate to the NFSD4_CLIENT_STABLE flag,\nand add a new NFSD4_CLIENT_RECLAIM_COMPLETE flag.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "1df00640c9111c881633d9b219f18e66c52599ec",
      "tree": "e36d3924d84f47ec93f6650ff1fd5b8ea7d10d24",
      "parents": [
        "ab4684d1560f8d77f6ce82bd3f1f82937070d397",
        "5a7c9eec9fde1da0e3adf0a4ddb64ff2a324a492"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Mar 21 16:42:14 2012 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 26 11:48:54 2012 -0400"
      },
      "message": "Merge nfs containerization work from Trond\u0027s tree\n\nThe nfs containerization work is a prerequisite for Jeff Layton\u0027s reboot\nrecovery rework.\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"
    }
  ],
  "next": "73355192748483a5ba698345092321611f91b04f"
}
