)]}'
{
  "log": [
    {
      "commit": "f0666b1ac875ff32fe290219b150ec62eebbe10e",
      "tree": "9f38d4c5ac83b77812692ccd2db6a880bf63cf9d",
      "parents": [
        "5ef50c3bec20060bc114f62d6503c5d86d70bdd7"
      ],
      "author": {
        "name": "Sylvain Munaut",
        "email": "tnt@246tNt.com",
        "time": "Thu Aug 02 09:12:59 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Thu Aug 02 09:19:20 2012 -0700"
      },
      "message": "libceph: fix crypto key null deref, memory leak\n\nAvoid crashing if the crypto key payload was NULL, as when it was not correctly\nallocated and initialized.  Also, avoid leaking it.\n\nSigned-off-by: Sylvain Munaut \u003ctnt@246tNt.com\u003e\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "a0e881b7c189fa2bd76c024dbff91e79511c971d",
      "tree": "0c801918565b08921d21aceee5b326f64d998f5f",
      "parents": [
        "eff0d13f3823f35d70228cd151d2a2c89288ff32",
        "dbc6e0222d79e78925fe20733844a796a4b72cf9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull second vfs pile from Al Viro:\n \"The stuff in there: fsfreeze deadlock fixes by Jan (essentially, the\n  deadlock reproduced by xfstests 068), symlink and hardlink restriction\n  patches, plus assorted cleanups and fixes.\n\n  Note that another fsfreeze deadlock (emergency thaw one) is *not*\n  dealt with - the series by Fernando conflicts a lot with Jan\u0027s, breaks\n  userland ABI (FIFREEZE semantics gets changed) and trades the deadlock\n  for massive vfsmount leak; this is going to be handled next cycle.\n  There probably will be another pull request, but that stuff won\u0027t be\n  in it.\"\n\nFix up trivial conflicts due to unrelated changes next to each other in\ndrivers/{staging/gdm72xx/usb_boot.c, usb/gadget/storage_common.c}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (54 commits)\n  delousing target_core_file a bit\n  Documentation: Correct s_umount state for freeze_fs/unfreeze_fs\n  fs: Remove old freezing mechanism\n  ext2: Implement freezing\n  btrfs: Convert to new freezing mechanism\n  nilfs2: Convert to new freezing mechanism\n  ntfs: Convert to new freezing mechanism\n  fuse: Convert to new freezing mechanism\n  gfs2: Convert to new freezing mechanism\n  ocfs2: Convert to new freezing mechanism\n  xfs: Convert to new freezing code\n  ext4: Convert to new freezing mechanism\n  fs: Protect write paths by sb_start_write - sb_end_write\n  fs: Skip atime update on frozen filesystem\n  fs: Add freezing handling to mnt_want_write() / mnt_drop_write()\n  fs: Improve filesystem freezing handling\n  switch the protection of percpu_counter list to spinlock\n  nfsd: Push mnt_want_write() outside of i_mutex\n  btrfs: Push mnt_want_write() outside of i_mutex\n  fat: Push mnt_want_write() outside of i_mutex\n  ...\n"
    },
    {
      "commit": "ac694dbdbc403c00e2c14d10bc7b8412cc378259",
      "tree": "e37328cfbeaf43716dd5914cad9179e57e84df76",
      "parents": [
        "a40a1d3d0a2fd613fdec6d89d3c053268ced76ed",
        "437ea90cc3afdca5229b41c6b1d38c4842756cb9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:25:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:25:39 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge Andrew\u0027s second set of patches:\n - MM\n - a few random fixes\n - a couple of RTC leftovers\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (120 commits)\n  rtc/rtc-88pm80x: remove unneed devm_kfree\n  rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails\n  mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables\n  tmpfs: distribute interleave better across nodes\n  mm: remove redundant initialization\n  mm: warn if pg_data_t isn\u0027t initialized with zero\n  mips: zero out pg_data_t when it\u0027s allocated\n  memcg: gix memory accounting scalability in shrink_page_list\n  mm/sparse: remove index_init_lock\n  mm/sparse: more checks on mem_section number\n  mm/sparse: optimize sparse_index_alloc\n  memcg: add mem_cgroup_from_css() helper\n  memcg: further prevent OOM with too many dirty pages\n  memcg: prevent OOM with too many dirty pages\n  mm: mmu_notifier: fix freed page still mapped in secondary MMU\n  mm: memcg: only check anon swapin page charges for swap cache\n  mm: memcg: only check swap cache pages for repeated charging\n  mm: memcg: split swapin charge function into private and public part\n  mm: memcg: remove needless !mm fixup to init_mm when charging\n  mm: memcg: remove unneeded shmem charge type\n  ...\n"
    },
    {
      "commit": "3e9a97082fa639394e905e1fc4a0a7f719ca7644",
      "tree": "9985cfa26e0597128eae03a2ee7e4614efea571f",
      "parents": [
        "941c8726e4e737e74d418ccec3d8e7b946a65541",
        "d2e7c96af1e54b507ae2a6a7dd2baf588417a7e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:07:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 19:07:42 2012 -0700"
      },
      "message": "Merge tag \u0027random_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random\n\nPull random subsystem patches from Ted Ts\u0027o:\n \"This patch series contains a major revamp of how we collect entropy\n  from interrupts for /dev/random and /dev/urandom.\n\n  The goal is to addresses weaknesses discussed in the paper \"Mining\n  your Ps and Qs: Detection of Widespread Weak Keys in Network Devices\",\n  by Nadia Heninger, Zakir Durumeric, Eric Wustrow, J.  Alex Halderman,\n  which will be published in the Proceedings of the 21st Usenix Security\n  Symposium, August 2012.  (See https://factorable.net for more\n  information and an extended version of the paper.)\"\n\nFix up trivial conflicts due to nearby changes in\ndrivers/{mfd/ab3100-core.c, usb/gadget/omap_udc.c}\n\n* tag \u0027random_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (33 commits)\n  random: mix in architectural randomness in extract_buf()\n  dmi: Feed DMI table to /dev/random driver\n  random: Add comment to random_initialize()\n  random: final removal of IRQF_SAMPLE_RANDOM\n  um: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  [ARM] pxa: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  board-palmz71: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  isp1301_omap: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  pxa25x_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  omap_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  goku_udc: remove IRQF_SAMPLE_RANDOM which was commented out\n  uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  drivers: hv: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  xen-blkfront: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  n2_crypto: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  pda_power: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  i2c-pmcmsp: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  input/serio/hp_sdc.c: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  mfd: remove IRQF_SAMPLE_RANDOM which is now a no-op\n  ...\n"
    },
    {
      "commit": "6dbb35b0a74b44b2a48a5373d48074c5aa69fdf5",
      "tree": "4afb5eec521659e19c9d2343c2431054a082eb06",
      "parents": [
        "fd37ce34bd512f2b1a503f82abf8768da556a955",
        "ad0fcd4eb68059de02e1766948263c71b8a5b1dc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:45:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:45:44 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.6-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull second wave of NFS client updates from Trond Myklebust:\n\n - Patches from Bryan to allow splitting of the NFSv2/v3/v4 code into\n   separate modules.\n\n - Fix Oopses in the NFSv4 idmapper\n\n - Fix a deadlock whereby rpciod tries to allocate a new socket and ends\n   up recursing into the NFS code due to memory reclaim.\n\n - Increase the number of permitted callback connections.\n\n* tag \u0027nfs-for-3.6-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  nfs: explicitly reject LOCK_MAND flock() requests\n  nfs: increase number of permitted callback connections.\n  SUNRPC: return negative value in case rpcbind client creation error\n  NFS: Convert v4 into a module\n  NFS: Convert v3 into a module\n  NFS: Convert v2 into a module\n  NFS: Keep module parameters in the generic NFS client\n  NFS: Split out remaining NFS v4 inode functions\n  NFS: Pass super operations and xattr handlers in the nfs_subversion\n  NFS: Only initialize the ACL client in the v3 case\n  NFS: Create a try_mount rpc op\n  NFS: Remove the NFS v4 xdev mount function\n  NFS: Add version registering framework\n  NFS: Fix a number of bugs in the idmapper\n  nfs: skip commit in releasepage if we\u0027re freeing memory for fs-related reasons\n  sunrpc: clarify comments on rpc_make_runnable\n  pnfsblock: bail out partial page IO\n"
    },
    {
      "commit": "fd37ce34bd512f2b1a503f82abf8768da556a955",
      "tree": "557ff43ff5291d1704527e31293633fbc2f956d5",
      "parents": [
        "4b24ff71108164e047cf2c95990b77651163e315",
        "caacf05e5ad1abf0a2864863da4e33024bc68ec6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:43:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:43:13 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking update from David S. Miller:\n \"I think Eric Dumazet and I have dealt with all of the known routing\n  cache removal fallout.  Some other minor fixes all around.\n\n  1) Fix RCU of cached routes, particular of output routes which require\n     liberation via call_rcu() instead of call_rcu_bh().  From Eric\n     Dumazet.\n\n  2) Make sure we purge net device references in cached routes properly.\n\n  3) TG3 driver bug fixes from Michael Chan.\n\n  4) Fix reported \u0027expires\u0027 value in ipv6 routes, from Li Wei.\n\n  5) TUN driver ioctl leaks kernel bytes to userspace, from Mathias\n     Krause.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (22 commits)\n  ipv4: Properly purge netdev references on uncached routes.\n  ipv4: Cache routes in nexthop exception entries.\n  ipv4: percpu nh_rth_output cache\n  ipv4: Restore old dst_free() behavior.\n  bridge: make port attributes const\n  ipv4: remove rt_cache_rebuild_count\n  net: ipv4: fix RCU races on dst refcounts\n  net: TCP early demux cleanup\n  tun: Fix formatting.\n  net/tun: fix ioctl() based info leaks\n  tg3: Update version to 3.124\n  tg3: Fix race condition in tg3_get_stats64()\n  tg3: Add New 5719 Read DMA workaround\n  tg3: Fix Read DMA workaround for 5719 A0.\n  tg3: Request APE_LOCK_PHY before PHY access\n  ipv6: fix incorrect route \u0027expires\u0027 value passed to userspace\n  mISDN: Bugfix only few bytes are transfered on a connection\n  seeq: use PTR_RET at init_module of driver\n  bnx2x: remove cast around the kmalloc in bnx2x_prev_mark_path\n  ipv4: clean up put_child\n  ...\n"
    },
    {
      "commit": "a564b8f0398636ba30b07c0eaebdef7ff7837249",
      "tree": "10478aa5cfb2a3696db34618a479413b358c3831",
      "parents": [
        "29418aa4bd487c82016733ef5c6a06d656ed3c7d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:45:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:48 2012 -0700"
      },
      "message": "nfs: enable swap on NFS\n\nImplement the new swapfile a_ops for NFS and hook up -\u003edirect_IO.  This\nwill set the NFS socket to SOCK_MEMALLOC and run socket reconnect under\nPF_MEMALLOC as well as reset SOCK_MEMALLOC before engaging the protocol\n-\u003econnect() method.\n\nPF_MEMALLOC should allow the allocation of struct socket and related\nobjects and the early (re)setting of SOCK_MEMALLOC should allow us to\nreceive the packets required for the TCP connection buildup.\n\n[jlayton@redhat.com: Restore PF_MEMALLOC task flags in all cases]\n[dfeng@redhat.com: Fix handling of multiple swap files]\n[a.p.zijlstra@chello.nl: Original patch]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@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": "c76562b6709fee5eff8a6a779be41c0bce661fd7",
      "tree": "18e4a3c71b6d859cc58b7d1156bd1d7bfd1d6a5c",
      "parents": [
        "68243e76ee343d63c6cf76978588a885951e2818"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "netvm: prevent a stream-specific deadlock\n\nThis patch series is based on top of \"Swap-over-NBD without deadlocking\nv15\" as it depends on the same reservation of PF_MEMALLOC reserves logic.\n\nWhen a user or administrator requires swap for their application, they\ncreate a swap partition and file, format it with mkswap and activate it\nwith swapon.  In diskless systems this is not an option so if swap if\nrequired then swapping over the network is considered.  The two likely\nscenarios are when blade servers are used as part of a cluster where the\nform factor or maintenance costs do not allow the use of disks and thin\nclients.\n\nThe Linux Terminal Server Project recommends the use of the Network Block\nDevice (NBD) for swap but this is not always an option.  There is no\nguarantee that the network attached storage (NAS) device is running Linux\nor supports NBD.  However, it is likely that it supports NFS so there are\nusers that want support for swapping over NFS despite any performance\nconcern.  Some distributions currently carry patches that support swapping\nover NFS but it would be preferable to support it in the mainline kernel.\n\nPatch 1 avoids a stream-specific deadlock that potentially affects TCP.\n\nPatch 2 is a small modification to SELinux to avoid using PFMEMALLOC\n\treserves.\n\nPatch 3 adds three helpers for filesystems to handle swap cache pages.\n\tFor example, page_file_mapping() returns page-\u003emapping for\n\tfile-backed pages and the address_space of the underlying\n\tswap file for swap cache pages.\n\nPatch 4 adds two address_space_operations to allow a filesystem\n\tto pin all metadata relevant to a swapfile in memory. Upon\n\tsuccessful activation, the swapfile is marked SWP_FILE and\n\tthe address space operation -\u003edirect_IO is used for writing\n\tand -\u003ereadpage for reading in swap pages.\n\nPatch 5 notes that patch 3 is bolting\n\tfilesystem-specific-swapfile-support onto the side and that\n\tthe default handlers have different information to what\n\tis available to the filesystem. This patch refactors the\n\tcode so that there are generic handlers for each of the new\n\taddress_space operations.\n\nPatch 6 adds an API to allow a vector of kernel addresses to be\n\ttranslated to struct pages and pinned for IO.\n\nPatch 7 adds support for using highmem pages for swap by kmapping\n\tthe pages before calling the direct_IO handler.\n\nPatch 8 updates NFS to use the helpers from patch 3 where necessary.\n\nPatch 9 avoids setting PF_private on PG_swapcache pages within NFS.\n\nPatch 10 implements the new swapfile-related address_space operations\n\tfor NFS and teaches the direct IO handler how to manage\n\tkernel addresses.\n\nPatch 11 prevents page allocator recursions in NFS by using GFP_NOIO\n\twhere appropriate.\n\nPatch 12 fixes a NULL pointer dereference that occurs when using\n\tswap-over-NFS.\n\nWith the patches applied, it is possible to mount a swapfile that is on an\nNFS filesystem.  Swap performance is not great with a swap stress test\ntaking roughly twice as long to complete than if the swap device was\nbacked by NBD.\n\nThis patch: netvm: prevent a stream-specific deadlock\n\nIt could happen that all !SOCK_MEMALLOC sockets have buffered so much data\nthat we\u0027re over the global rmem limit.  This will prevent SOCK_MEMALLOC\nbuffers from receiving data, which will prevent userspace from running,\nwhich is needed to reduce the buffered data.\n\nFix this by exempting the SOCK_MEMALLOC sockets from the rmem limit.  Once\nthis change it applied, it is important that sockets that set\nSOCK_MEMALLOC do not clear the flag until the socket is being torn down.\nIf this happens, a warning is generated and the tokens reclaimed to avoid\naccounting errors until the bug is fixed.\n\n[davem@davemloft.net: Warning about clearing SOCK_MEMALLOC]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4b9e3558508980fc0cd161a545ffb55a1f13ee9",
      "tree": "abb2ab54f4b201b1cbdaf181ec16912c3dd889eb",
      "parents": [
        "0614002bb5f7411e61ffa0dfe5be1f2c84df3da3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: set PF_MEMALLOC as appropriate during SKB processing\n\nIn order to make sure pfmemalloc packets receive all memory needed to\nproceed, ensure processing of pfmemalloc SKBs happens under PF_MEMALLOC.\nThis is limited to a subset of protocols that are expected to be used for\nwriting to swap.  Taps are not allowed to use PF_MEMALLOC as these are\nexpected to communicate with userspace processes which could be paged out.\n\n[a.p.zijlstra@chello.nl: Ideas taken from various patches]\n[jslaby@suse.cz: Lock imbalance fix]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c93bdd0e03e848555d144eb44a1f275b871a8dd5",
      "tree": "8aff3bc2b9ff9f32e51040a7652bfb31257db626",
      "parents": [
        "7cb0240492caea2f6467f827313478f41877e6ef"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: allow skb allocation to use PFMEMALLOC reserves\n\nChange the skb allocation API to indicate RX usage and use this to fall\nback to the PFMEMALLOC reserve when needed.  SKBs allocated from the\nreserve are tagged in skb-\u003epfmemalloc.  If an SKB is allocated from the\nreserve and the socket is later found to be unrelated to page reclaim, the\npacket is dropped so that the memory remains available for page reclaim.\nNetwork protocols are expected to recover from this packet loss.\n\n[a.p.zijlstra@chello.nl: Ideas taken from various patches]\n[davem@davemloft.net: Use static branches, coding style corrections]\n[sebastian@breakpoint.cc: Avoid unnecessary cast, fix !CONFIG_NET build]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7cb0240492caea2f6467f827313478f41877e6ef",
      "tree": "4836f7c2c07ed199e3122ea70bedf34f048ecd81",
      "parents": [
        "99a1dec70d5acbd8c6b3928cdebb4a2d1da676c8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "netvm: allow the use of __GFP_MEMALLOC by specific sockets\n\nAllow specific sockets to be tagged SOCK_MEMALLOC and use __GFP_MEMALLOC\nfor their allocations.  These sockets will be able to go below watermarks\nand allocate from the emergency reserve.  Such sockets are to be used to\nservice the VM (iow.  to swap over).  They must be handled kernel side,\nexposing such a socket to user-space is a bug.\n\nThere is a risk that the reserves be depleted so for now, the\nadministrator is responsible for increasing min_free_kbytes as necessary\nto prevent deadlock for their workloads.\n\n[a.p.zijlstra@chello.nl: Original patches]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99a1dec70d5acbd8c6b3928cdebb4a2d1da676c8",
      "tree": "ac61a8b479065fa3ed3fdddf17e91366dcddcea5",
      "parents": [
        "183f6371aac2a5496a8ef2b0b0a68562652c3cdb"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:46 2012 -0700"
      },
      "message": "net: introduce sk_gfp_atomic() to allow addition of GFP flags depending on the individual socket\n\nIntroduce sk_gfp_atomic(), this function allows to inject sock specific\nflags to each sock related allocation.  It is only used on allocation\npaths that may be required for writing pages back to network storage.\n\n[davem@davemloft.net: Use sk_gfp_atomic only when necessary]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c255a458055e459f65eb7b7f51dc5dbdd0caf1d8",
      "tree": "b143b1914eeb6f27f53e30f9f0275d0f1ca5480b",
      "parents": [
        "80934513b230bfcf70265f2ef0fdae89fb391633"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jul 31 16:43:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:43 2012 -0700"
      },
      "message": "memcg: rename config variables\n\nSanity:\n\nCONFIG_CGROUP_MEM_RES_CTLR -\u003e CONFIG_MEMCG\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP -\u003e CONFIG_MEMCG_SWAP\nCONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED -\u003e CONFIG_MEMCG_SWAP_ENABLED\nCONFIG_CGROUP_MEM_RES_CTLR_KMEM -\u003e CONFIG_MEMCG_KMEM\n\n[mhocko@suse.cz: fix missed bits]\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "caacf05e5ad1abf0a2864863da4e33024bc68ec6",
      "tree": "9a82e97a072e288f604bd3dbbe07e1796581fad0",
      "parents": [
        "c5038a8327b980a5b279fa193163c468011de009"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:06:50 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:06:50 2012 -0700"
      },
      "message": "ipv4: Properly purge netdev references on uncached routes.\n\nWhen a device is unregistered, we have to purge all of the\nreferences to it that may exist in the entire system.\n\nIf a route is uncached, we currently have no way of accomplishing\nthis.\n\nSo create a global list that is scanned when a network device goes\ndown.  This mirrors the logic in net/core/dst.c\u0027s dst_ifdown().\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c5038a8327b980a5b279fa193163c468011de009",
      "tree": "6d24fd005340e73360f9c1aa20dd3a1d21fd1625",
      "parents": [
        "d26b3a7c4b3b26319f18bb645de93eba8f4bdcd5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:02:02 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 15:02:02 2012 -0700"
      },
      "message": "ipv4: Cache routes in nexthop exception entries.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "08843b79fb35d33859e0f8f11a7318341076e4d1",
      "tree": "e56e122146985b359d50787e3d1df640c4582dfa",
      "parents": [
        "cc8362b1f6d724e46f515121d442779924b19fec",
        "2c142baa7b237584bae7dc28630851701497e1ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 14:42:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 14:42:28 2012 -0700"
      },
      "message": "Merge branch \u0027nfsd-next\u0027 of git://linux-nfs.org/~bfields/linux\n\nPull nfsd changes from J. Bruce Fields:\n \"This has been an unusually quiet cycle--mostly bugfixes and cleanup.\n  The one large piece is Stanislav\u0027s work to containerize the server\u0027s\n  grace period--but that in itself is just one more step in a\n  not-yet-complete project to allow fully containerized nfs service.\n\n  There are a number of outstanding delegation, container, v4 state, and\n  gss patches that aren\u0027t quite ready yet; 3.7 may be wilder.\"\n\n* \u0027nfsd-next\u0027 of git://linux-nfs.org/~bfields/linux: (35 commits)\n  NFSd: make boot_time variable per network namespace\n  NFSd: make grace end flag per network namespace\n  Lockd: move grace period management from lockd() to per-net functions\n  LockD: pass actual network namespace to grace period management functions\n  LockD: manage grace list per network namespace\n  SUNRPC: service request network namespace helper introduced\n  NFSd: make nfsd4_manager allocated per network namespace context.\n  LockD: make lockd manager allocated per network namespace\n  LockD: manage grace period per network namespace\n  Lockd: add more debug to host shutdown functions\n  Lockd: host complaining function introduced\n  LockD: manage used host count per networks namespace\n  LockD: manage garbage collection timeout per networks namespace\n  LockD: make garbage collector network namespace aware.\n  LockD: mark host per network namespace on garbage collect\n  nfsd4: fix missing fault_inject.h include\n  locks: move lease-specific code out of locks_delete_lock\n  locks: prevent side-effects of locks_release_private before file_lock is initialized\n  NFSd: set nfsd_serv to NULL after service destruction\n  NFSd: introduce nfsd_destroy() helper\n  ...\n"
    },
    {
      "commit": "d26b3a7c4b3b26319f18bb645de93eba8f4bdcd5",
      "tree": "ca86c03450fafdc89dac98ce403b1906fcaa025d",
      "parents": [
        "54764bb647b2e847c512acf8d443df965da35000"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Jul 31 05:45:30 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 14:41:39 2012 -0700"
      },
      "message": "ipv4: percpu nh_rth_output cache\n\nInput path is mostly run under RCU and doesnt touch dst refcnt\n\nBut output path on forwarding or UDP workloads hits\nbadly dst refcount, and we have lot of false sharing, for example\nin ipv4_mtu() when reading rt-\u003ert_pmtu\n\nUsing a percpu cache for nh_rth_output gives a nice performance\nincrease at a small cost.\n\n24 udpflood test on my 24 cpu machine (dummy0 output device)\n(each process sends 1.000.000 udp frames, 24 processes are started)\n\nbefore : 5.24 s\nafter : 2.06 s\nFor reference, time on linux-3.5 : 6.60 s\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nTested-by: Alexander Duyck \u003calexander.h.duyck@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "54764bb647b2e847c512acf8d443df965da35000",
      "tree": "3918f6f42679d0ebdcef230f28285f99d178be62",
      "parents": [
        "5a0d513b622ee41e117fc37e26e27e8ef42e8dae"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jul 31 01:08:23 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 31 14:41:38 2012 -0700"
      },
      "message": "ipv4: Restore old dst_free() behavior.\n\ncommit 404e0a8b6a55 (net: ipv4: fix RCU races on dst refcounts) tried\nto solve a race but added a problem at device/fib dismantle time :\n\nWe really want to call dst_free() as soon as possible, even if sockets\nstill have dst in their cache.\ndst_release() calls in free_fib_info_rcu() are not welcomed.\n\nRoot of the problem was that now we also cache output routes (in\nnh_rth_output), we must use call_rcu() instead of call_rcu_bh() in\nrt_free(), because output route lookups are done in process context.\n\nBased on feedback and initial patch from David Miller (adding another\ncall_rcu_bh() call in fib, but it appears it was not the right fix)\n\nI left the inet_sk_rx_dst_set() helper and added __rcu attributes\nto nh_rth_output and nh_rth_input to better document what is going on in\nthis code.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cc8362b1f6d724e46f515121d442779924b19fec",
      "tree": "86fb5c3767e538ec9ded57dd7b3ce5d69dcde691",
      "parents": [
        "2e3ee613480563a6d5c01b57d342e65cc58c06df",
        "1fe5e9932156f6122c3b1ff6ba7541c27c86718c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 14:35:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 14:35:28 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\nPull Ceph changes from Sage Weil:\n \"Lots of stuff this time around:\n\n   - lots of cleanup and refactoring in the libceph messenger code, and\n     many hard to hit races and bugs closed as a result.\n   - lots of cleanup and refactoring in the rbd code from Alex Elder,\n     mostly in preparation for the layering functionality that will be\n     coming in 3.7.\n   - some misc rbd cleanups from Josh Durgin that are finally going\n     upstream\n   - support for CRUSH tunables (used by newer clusters to improve the\n     data placement)\n   - some cleanup in our use of d_parent that Al brought up a while back\n   - a random collection of fixes across the tree\n\n  There is another patch coming that fixes up our -\u003eatomic_open()\n  behavior, but I\u0027m going to hammer on it a bit more before sending it.\"\n\nFix up conflicts due to commits that were already committed earlier in\ndrivers/block/rbd.c, net/ceph/{messenger.c, osd_client.c}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (132 commits)\n  rbd: create rbd_refresh_helper()\n  rbd: return obj version in __rbd_refresh_header()\n  rbd: fixes in rbd_header_from_disk()\n  rbd: always pass ops array to rbd_req_sync_op()\n  rbd: pass null version pointer in add_snap()\n  rbd: make rbd_create_rw_ops() return a pointer\n  rbd: have __rbd_add_snap_dev() return a pointer\n  libceph: recheck con state after allocating incoming message\n  libceph: change ceph_con_in_msg_alloc convention to be less weird\n  libceph: avoid dropping con mutex before fault\n  libceph: verify state after retaking con lock after dispatch\n  libceph: revoke mon_client messages on session restart\n  libceph: fix handling of immediate socket connect failure\n  ceph: update MAINTAINERS file\n  libceph: be less chatty about stray replies\n  libceph: clear all flags on con_close\n  libceph: clean up con flags\n  libceph: replace connection state bits with states\n  libceph: drop unnecessary CLOSED check in socket state change callback\n  libceph: close socket directly from ceph_con_close()\n  ...\n"
    },
    {
      "commit": "1fad1e9a747687a7399bf58e87974f9b1bbcae06",
      "tree": "fde2dc9a35321e21c99e06d4b79d5fa06fd34679",
      "parents": [
        "bbeb0af25f493261c15ceee176c99b7fd6fd5479",
        "f44106e2173f08ccb1c9195d85a6c22388b461c1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 19:16:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 19:16:57 2012 -0700"
      },
      "message": "Merge tag \u0027nfs-for-3.6-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"Features include:\n   - More preparatory patches for modularising NFSv2/v3/v4.  Split out\n     the various NFSv2/v3/v4-specific code into separate files\n   - More preparation for the NFSv4 migration code\n   - Ensure that OPEN(O_CREATE) observes the pNFS mds threshold\n     parameters\n   - pNFS fast failover when the data servers are down\n   - Various cleanups and debugging patches\"\n\n* tag \u0027nfs-for-3.6-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (67 commits)\n  nfs: fix fl_type tests in NFSv4 code\n  NFS: fix pnfs regression with directio writes\n  NFS: fix pnfs regression with directio reads\n  sunrpc: clnt: Add missing braces\n  nfs: fix stub return type warnings\n  NFS: exit_nfs_v4() shouldn\u0027t be an __exit function\n  SUNRPC: Add a missing spin_unlock to gss_mech_list_pseudoflavors\n  NFS: Split out NFS v4 client functions\n  NFS: Split out the NFS v4 filesystem types\n  NFS: Create a single nfs_clone_super() function\n  NFS: Split out NFS v4 server creating code\n  NFS: Initialize the NFS v4 client from init_nfs_v4()\n  NFS: Move the v4 getroot code to nfs4getroot.c\n  NFS: Split out NFS v4 file operations\n  NFS: Initialize v4 sysctls from nfs_init_v4()\n  NFS: Create an init_nfs_v4() function\n  NFS: Split out NFS v4 inode operations\n  NFS: Split out NFS v3 inode operations\n  NFS: Split out NFS v2 inode operations\n  NFS: Clean up nfs4_proc_setclientid() and friends\n  ...\n"
    },
    {
      "commit": "6139919133377652992a5fe134e22abce3e9c25e",
      "tree": "57245239564583e968e4e8fb94d493bde69fb18b",
      "parents": [
        "4740a623d20c51d167da7f752b63e2b8714b2543"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:19:45 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:19:45 2012 -0700"
      },
      "message": "libceph: recheck con state after allocating incoming message\n\nWe drop the lock when calling the -\u003ealloc_msg() con op, which means\nwe need to (a) not clobber con-\u003ein_msg without the mutex held, and (b)\nwe need to verify that we are still in the OPEN state when we retake\nit to avoid causing any mayhem.  If the state does change, -EAGAIN\nwill get us back to con_work() and loop.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "4740a623d20c51d167da7f752b63e2b8714b2543",
      "tree": "25616d4073f56a2383fd155c457d97603d65b220",
      "parents": [
        "8636ea672f0c5ab7478c42c5b6705ebd1db7eb6a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:19:30 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:19:30 2012 -0700"
      },
      "message": "libceph: change ceph_con_in_msg_alloc convention to be less weird\n\nThis function\u0027s calling convention is very limiting.  In particular,\nwe can\u0027t return any error other than ENOMEM (and only implicitly),\nwhich is a problem (see next patch).\n\nInstead, return an normal 0 or error code, and make the skip a pointer\noutput parameter.  Drop the useless in_hdr argument (we have the con\npointer).\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "8636ea672f0c5ab7478c42c5b6705ebd1db7eb6a",
      "tree": "9fdb08cf293f181c566c830dadccf8d176ef2184",
      "parents": [
        "7b862e07b1a4d5c963d19027f10ea78085f27f9b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:17:13 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:17:13 2012 -0700"
      },
      "message": "libceph: avoid dropping con mutex before fault\n\nThe ceph_fault() function takes the con mutex, so we should avoid\ndropping it before calling it.  This fixes a potential race with\nanother thread calling ceph_con_close(), or _open(), or similar (we\ndon\u0027t reverify con-\u003estate after retaking the lock).\n\nAdd annotation so that lockdep realizes we will drop the mutex before\nreturning.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "7b862e07b1a4d5c963d19027f10ea78085f27f9b",
      "tree": "003d412e6ebfd50f03cabd0bc82aa3916d3bbd06",
      "parents": [
        "4f471e4a9c7db0256834e1b376ea50c82e345c3c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:56 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:56 2012 -0700"
      },
      "message": "libceph: verify state after retaking con lock after dispatch\n\nWe drop the con mutex when delivering a message.  When we retake the\nlock, we need to verify we are still in the OPEN state before\npreparing to read the next tag, or else we risk stepping on a\nconnection that has been closed.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "4f471e4a9c7db0256834e1b376ea50c82e345c3c",
      "tree": "9533ad03db8fcbeb38c08e9b43f38b0687e26792",
      "parents": [
        "8007b8d626b49c34fb146ec16dc639d8b10c862f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:40 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:40 2012 -0700"
      },
      "message": "libceph: revoke mon_client messages on session restart\n\nRevoke all mon_client messages when we shut down the old connection.\nThis is mostly moot since we are re-using the same ceph_connection,\nbut it is cleaner.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "8007b8d626b49c34fb146ec16dc639d8b10c862f",
      "tree": "0271899a42c00696a7fefad0bdab0c7f5e74b892",
      "parents": [
        "09d9032751bfdabcba8752ab4b01a30fedea3d67"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:16 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:16 2012 -0700"
      },
      "message": "libceph: fix handling of immediate socket connect failure\n\nIf the connect() call immediately fails such that sock \u003d\u003d NULL, we\nstill need con_close_socket() to reset our socket state to CLOSED.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "756a16a5d53c072cd1f937b261641c1a3b53fdd7",
      "tree": "03cd42968c534a0f2407422d255b07bb0c956c8d",
      "parents": [
        "43c7427d100769451601b8a36988ac0528ce0124"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:26:13 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:03 2012 -0700"
      },
      "message": "libceph: be less chatty about stray replies\n\nThere are many (normal) conditions that can lead to us getting\nunexpected replies, include cluster topology changes, osd failures,\nand timeouts.  There\u0027s no need to spam the console about it.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "43c7427d100769451601b8a36988ac0528ce0124",
      "tree": "b2105d55b3d88f37aa89df0d6a3730ebf85e4676",
      "parents": [
        "4a8616920860920abaa51193146fe36b38ef09aa"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 17:30:40 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:02 2012 -0700"
      },
      "message": "libceph: clear all flags on con_close\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "4a8616920860920abaa51193146fe36b38ef09aa",
      "tree": "306a64ebcfaaae76b1b45d8f8916e6f68a190255",
      "parents": [
        "8dacc7da69a491c515851e68de6036f21b5663ce"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 17:29:55 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:01 2012 -0700"
      },
      "message": "libceph: clean up con flags\n\nRename flags with CON_FLAG prefix, move the definitions into the c file,\nand (better) document their meaning.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "8dacc7da69a491c515851e68de6036f21b5663ce",
      "tree": "72e96abb5bc27d2a185cdea2f08a090302f0ede3",
      "parents": [
        "d7353dd5aaf22ed611fbcd0d4a4a12fb30659290"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 17:24:40 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:16:00 2012 -0700"
      },
      "message": "libceph: replace connection state bits with states\n\nUse a simple set of 6 enumerated values for the socket states (CON_STATE_*)\nand use those instead of the state bits.  All of the con-\u003estate checks are\nnow under the protection of the con mutex, so this is safe.  It also\nsimplifies many of the state checks because we can check for anything other\nthan the expected state instead of various bits for races we can think of.\n\nThis appears to hold up well to stress testing both with and without socket\nfailure injection on the server side.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "d7353dd5aaf22ed611fbcd0d4a4a12fb30659290",
      "tree": "1f7ce70d3de6ac74bcc1d03e0b2e912c37732bac",
      "parents": [
        "ee76e0736db8455e3b11827d6899bd2a4e1d0584"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 17:19:43 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:59 2012 -0700"
      },
      "message": "libceph: drop unnecessary CLOSED check in socket state change callback\n\nIf we are CLOSED, the socket is closed and we won\u0027t get these.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "ee76e0736db8455e3b11827d6899bd2a4e1d0584",
      "tree": "ef44731396059db4379b369f0315100c21638509",
      "parents": [
        "2e8cb10063820af7ed7638e3fd9013eee21266e7"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 16:45:49 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:58 2012 -0700"
      },
      "message": "libceph: close socket directly from ceph_con_close()\n\nIt is simpler to do this immediately, since we already hold the con mutex.\nIt also avoids the need to deal with a not-quite-CLOSED socket in con_work.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "2e8cb10063820af7ed7638e3fd9013eee21266e7",
      "tree": "f871b278cdb099d4fe152366e5e09bbcb65deffd",
      "parents": [
        "a59b55a602b6c741052d79c1e3643f8440cddd27"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 15:40:04 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:58 2012 -0700"
      },
      "message": "libceph: drop gratuitous socket close calls in con_work\n\nIf the state is CLOSED or OPENING, we shouldn\u0027t have a socket.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "a59b55a602b6c741052d79c1e3643f8440cddd27",
      "tree": "4ffe59cd04d00fe0835256065b5b08a7c5505d1b",
      "parents": [
        "00650931e52e97fe64096bec167f5a6780dfd94a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 15:34:04 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:57 2012 -0700"
      },
      "message": "libceph: move ceph_con_send() closed check under the con mutex\n\nTake the con mutex before checking whether the connection is closed to\navoid racing with someone else closing it.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "00650931e52e97fe64096bec167f5a6780dfd94a",
      "tree": "ec6f3675e8229ac8dc3628a7c3ae7f2d2bbafceb",
      "parents": [
        "3b5ede07b55b52c3be27749d183d87257d032065"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 15:33:04 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:56 2012 -0700"
      },
      "message": "libceph: move msgr clear_standby under con mutex protection\n\nAvoid dropping and retaking con-\u003emutex in the ceph_con_send() case by\nleaving locking up to the caller.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "3b5ede07b55b52c3be27749d183d87257d032065",
      "tree": "7ea6b52c37dd8117b5fa67b5b193a2e70a05298c",
      "parents": [
        "070c633f60c23a89c226eb696f4a17b08a164b10"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Fri Jul 20 15:22:53 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:55 2012 -0700"
      },
      "message": "libceph: fix fault locking; close socket on lossy fault\n\nIf we fault on a lossy connection, we should still close the socket\nimmediately, and do so under the con mutex.\n\nWe should also take the con mutex before printing out the state bits in\nthe debug output.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "048a9d2d069e3d63c9169de82649be00de65a8f6",
      "tree": "eab3feebe35a32b6539f4921912820cecb97ecf3",
      "parents": [
        "21ec6ffa46719a4ed45531b5b01014c26f0416c4"
      ],
      "author": {
        "name": "Jiaju Zhang",
        "email": "jjzhang@suse.de",
        "time": "Fri Jul 20 08:18:36 2012 -0500"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:36 2012 -0700"
      },
      "message": "libceph: trivial fix for the incorrect debug output\n\nThis is a trivial fix for the debug output, as it is inconsistent\nwith the function name so may confuse people when debugging.\n\n[elder@inktank.com: switched to use __func__]\n\nSigned-off-by: Jiaju Zhang \u003cjjzhang@suse.de\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "85effe183dd45854d1ad1a370b88cddb403c4c91",
      "tree": "a824f3e030171ad81c7c372ab00bba657d62ae9e",
      "parents": [
        "5469155f2bc83bb2c88b0a0370c3d54d87eed06e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:22:05 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:34 2012 -0700"
      },
      "message": "libceph: reset connection retry on successfully negotiation\n\nWe exponentially back off when we encounter connection errors.  If several\nerrors accumulate, we will eventually wait ages before even trying to\nreconnect.\n\nFix this by resetting the backoff counter after a successful negotiation/\nconnection with the remote node.  Fixes ceph issue #2802.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "5469155f2bc83bb2c88b0a0370c3d54d87eed06e",
      "tree": "2124283bd87d274ed0008f0a22711ff4f1b4982d",
      "parents": [
        "a53aab645c82f0146e35684b34692c69b5118121"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:21:40 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:33 2012 -0700"
      },
      "message": "libceph: protect ceph_con_open() with mutex\n\nTake the con mutex while we are initiating a ceph open.  This is necessary\nbecause the may have previously been in use and then closed, which could\nresult in a racing workqueue running con_work().\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\n"
    },
    {
      "commit": "a4107026976f06c9a6ce8cc84a763564ee39d901",
      "tree": "f8f83ffd302b50f9296fb36cc046409feafd597c",
      "parents": [
        "6194ea895e447fdf4adfd23f67873a32bf4f15ae"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:20:25 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:31 2012 -0700"
      },
      "message": "libceph: (re)initialize bio_iter on start of message receive\n\nPreviously, we were opportunistically initializing the bio_iter if it\nappeared to be uninitialized in the middle of the read path.  The problem\nis that a sequence like:\n\n - start reading message\n - initialize bio_iter\n - read half a message\n - messenger fault, reconnect\n - restart reading message\n - ** bio_iter now non-NULL, not reinitialized **\n - read past end of bio, crash\n\nInstead, initialize the bio_iter unconditionally when we allocate/claim\nthe message for read.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\n"
    },
    {
      "commit": "6194ea895e447fdf4adfd23f67873a32bf4f15ae",
      "tree": "89a9642972fa31892a62665b13881794988f01d4",
      "parents": [
        "8c50c817566dfa4581f82373aac39f3e608a7dc8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:19:28 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:31 2012 -0700"
      },
      "message": "libceph: resubmit linger ops when pg mapping changes\n\nThe linger op registration (i.e., watch) modifies the object state.  As\nsuch, the OSD will reply with success if it has already applied without\ndoing the associated side-effects (setting up the watch session state).\nIf we lose the ACK and resubmit, we will see success but the watch will not\nbe correctly registered and we won\u0027t get notifies.\n\nTo fix this, always resubmit the linger op with a new tid.  We accomplish\nthis by re-registering as a linger (i.e., \u0027registered\u0027) if we are not yet\nregistered.  Then the second loop will treat this just like a normal\ncase of re-registering.\n\nThis mirrors a similar fix on the userland ceph.git, commit 5dd68b95, and\nceph bug #2796.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\n"
    },
    {
      "commit": "8c50c817566dfa4581f82373aac39f3e608a7dc8",
      "tree": "875162b047de3e18de801e1e6152f6d8f4810652",
      "parents": [
        "3a140a0d5c4b9e35373b016e41dfc85f1e526bdb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:24:37 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:30 2012 -0700"
      },
      "message": "libceph: fix mutex coverage for ceph_con_close\n\nHold the mutex while twiddling all of the state bits to avoid possible\nraces.  While we\u0027re here, make not of why we cannot close the socket\ndirectly.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\n"
    },
    {
      "commit": "3a140a0d5c4b9e35373b016e41dfc85f1e526bdb",
      "tree": "e145ddbb09f0493fa60c98406f6b84f36b94fb95",
      "parents": [
        "546f04ef716dd49521774653d8b032a7d64c05d9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:24:21 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:29 2012 -0700"
      },
      "message": "libceph: report socket read/write error message\n\nWe need to set error_msg to something useful before calling ceph_fault();\ndo so here for try_{read,write}().  This is more informative than\n\nlibceph: osd0 192.168.106.220:6801 (null)\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\n"
    },
    {
      "commit": "546f04ef716dd49521774653d8b032a7d64c05d9",
      "tree": "162f548fc7a81b05eb1db715997b3a04693c1bcc",
      "parents": [
        "1fe60e51a3744528f3939b1b1167ca909133d9ae"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:23 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 18:15:23 2012 -0700"
      },
      "message": "libceph: support crush tunables\n\nThe server side recently added support for tuning some magic\ncrush variables. Decode these variables if they are present, or use the\ndefault values if they are not present.\n\nCorresponds to ceph.git commit 89af369c25f274fe62ef730e5e8aad0c54f1e5a5.\n\nSigned-off-by: caleb miles \u003ccaleb.miles@inktank.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\n"
    },
    {
      "commit": "caea33da898e4e14f0ba58173e3b7689981d2c0b",
      "tree": "70eba39a96cfb8cd6c9c90ceac9eeac6e9f3cfe4",
      "parents": [
        "89d77c8fa8e6d1cb7e2cce95b428be30ddcc6f23"
      ],
      "author": {
        "name": "Stanislav Kinsbursky",
        "email": "skinsbursky@parallels.com",
        "time": "Fri Jul 20 15:57:48 2012 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 30 20:39:05 2012 -0400"
      },
      "message": "SUNRPC: return negative value in case rpcbind client creation error\n\nWithout this patch kernel will panic on LockD start, because lockd_up() checks\nlockd_up_net() result for negative value.\nFrom my pow it\u0027s better to return negative value from rpcbind routines instead\nof replacing all such checks like in lockd_up().\n\nSigned-off-by: Stanislav Kinsbursky \u003cskinsbursky@parallels.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org [\u003e\u003d 3.0]\n"
    },
    {
      "commit": "1fe60e51a3744528f3939b1b1167ca909133d9ae",
      "tree": "06ca8731f1be425ffbd6ffcdfd9e94b89b05ceec",
      "parents": [
        "d1f57ea66369b5c34bd42f104b8070db409447f9"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:23:22 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 16:23:22 2012 -0700"
      },
      "message": "libceph: move feature bits to separate header\n\nThis is simply cleanup that will keep things more closely synced with the\nuserland code.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\nReviewed-by: Alex Elder \u003celder@inktank.com\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@inktank.com\u003e\n"
    },
    {
      "commit": "5cf02d09b50b1ee1c2d536c9cf64af5a7d433f56",
      "tree": "7851ae064cdde3cd1eb2c0ef068bfecf24f53571",
      "parents": [
        "506026c3ec270e18402f0c9d33fee37482c23861"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jul 23 13:58:51 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 30 18:55:59 2012 -0400"
      },
      "message": "nfs: skip commit in releasepage if we\u0027re freeing memory for fs-related reasons\n\nWe\u0027ve had some reports of a deadlock where rpciod ends up with a stack\ntrace like this:\n\n    PID: 2507   TASK: ffff88103691ab40  CPU: 14  COMMAND: \"rpciod/14\"\n     #0 [ffff8810343bf2f0] schedule at ffffffff814dabd9\n     #1 [ffff8810343bf3b8] nfs_wait_bit_killable at ffffffffa038fc04 [nfs]\n     #2 [ffff8810343bf3c8] __wait_on_bit at ffffffff814dbc2f\n     #3 [ffff8810343bf418] out_of_line_wait_on_bit at ffffffff814dbcd8\n     #4 [ffff8810343bf488] nfs_commit_inode at ffffffffa039e0c1 [nfs]\n     #5 [ffff8810343bf4f8] nfs_release_page at ffffffffa038bef6 [nfs]\n     #6 [ffff8810343bf528] try_to_release_page at ffffffff8110c670\n     #7 [ffff8810343bf538] shrink_page_list.clone.0 at ffffffff81126271\n     #8 [ffff8810343bf668] shrink_inactive_list at ffffffff81126638\n     #9 [ffff8810343bf818] shrink_zone at ffffffff8112788f\n    #10 [ffff8810343bf8c8] do_try_to_free_pages at ffffffff81127b1e\n    #11 [ffff8810343bf958] try_to_free_pages at ffffffff8112812f\n    #12 [ffff8810343bfa08] __alloc_pages_nodemask at ffffffff8111fdad\n    #13 [ffff8810343bfb28] kmem_getpages at ffffffff81159942\n    #14 [ffff8810343bfb58] fallback_alloc at ffffffff8115a55a\n    #15 [ffff8810343bfbd8] ____cache_alloc_node at ffffffff8115a2d9\n    #16 [ffff8810343bfc38] kmem_cache_alloc at ffffffff8115b09b\n    #17 [ffff8810343bfc78] sk_prot_alloc at ffffffff81411808\n    #18 [ffff8810343bfcb8] sk_alloc at ffffffff8141197c\n    #19 [ffff8810343bfce8] inet_create at ffffffff81483ba6\n    #20 [ffff8810343bfd38] __sock_create at ffffffff8140b4a7\n    #21 [ffff8810343bfd98] xs_create_sock at ffffffffa01f649b [sunrpc]\n    #22 [ffff8810343bfdd8] xs_tcp_setup_socket at ffffffffa01f6965 [sunrpc]\n    #23 [ffff8810343bfe38] worker_thread at ffffffff810887d0\n    #24 [ffff8810343bfee8] kthread at ffffffff8108dd96\n    #25 [ffff8810343bff48] kernel_thread at ffffffff8100c1ca\n\nrpciod is trying to allocate memory for a new socket to talk to the\nserver. The VM ends up calling -\u003ereleasepage to get more memory, and it\ntries to do a blocking commit. That commit can\u0027t succeed however without\na connected socket, so we deadlock.\n\nFix this by setting PF_FSTRANS on the workqueue task prior to doing the\nsocket allocation, and having nfs_release_page check for that flag when\ndeciding whether to do a commit call. Also, set PF_FSTRANS\nunconditionally in rpc_async_schedule since that function can also do\nallocations sometimes.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "506026c3ec270e18402f0c9d33fee37482c23861",
      "tree": "cdfab41737e1493ec17ac433cfefde13618d177e",
      "parents": [
        "159e0561e322dd8008fff59e36efff8d2bdd0b0e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jul 23 15:51:55 2012 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 30 18:55:08 2012 -0400"
      },
      "message": "sunrpc: clarify comments on rpc_make_runnable\n\nrpc_make_runnable is not generally called with the queue lock held, unless\nit\u0027s waking up a task that has been sitting on a waitqueue. This is safe\nwhen the task has not entered the FSM yet, but the comments don\u0027t really\nspell this out.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cac5d07e3ca696dcacfb123553cf6c722111cfd3",
      "tree": "edf07097e0366f4d9ff22247f35f3a66522c10a6",
      "parents": [
        "0add3e8567a42b8137e26c0595a59f893d8592e0"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Jul 18 11:17:11 2012 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 30 17:58:08 2012 -0400"
      },
      "message": "sunrpc: clnt: Add missing braces\n\nAdd a missing set of braces that commit 4e0038b6b24\n(\"SUNRPC: Move clnt-\u003ecl_server into struct rpc_xprt\")\nforgot.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@vger.kernel.org [\u003e\u003d 3.4]\n"
    },
    {
      "commit": "5a0d513b622ee41e117fc37e26e27e8ef42e8dae",
      "tree": "a6aab978a0cd162e60c794bb0eb7104215c661eb",
      "parents": [
        "0c7462a2351b4cc502f326aad7fedd04909928be"
      ],
      "author": {
        "name": "stephen hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Mon Jul 30 08:55:49 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 30 14:53:22 2012 -0700"
      },
      "message": "bridge: make port attributes const\n\nSimple table that can be marked const.\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0c7462a2351b4cc502f326aad7fedd04909928be",
      "tree": "0f60f604b836d310d7a587b701232870d00f3446",
      "parents": [
        "404e0a8b6a55d5e1cd138c6deb1bca9abdf75d8c"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Jul 30 07:14:29 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 30 14:53:22 2012 -0700"
      },
      "message": "ipv4: remove rt_cache_rebuild_count\n\nAfter IP route cache removal, rt_cache_rebuild_count is no longer\nused.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "404e0a8b6a55d5e1cd138c6deb1bca9abdf75d8c",
      "tree": "38e9748d38c415cc97b973fecb9279cd43f76393",
      "parents": [
        "cca32e4bf999a34ac08d959f351f2b30bcd02460"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Jul 29 23:20:37 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 30 14:53:22 2012 -0700"
      },
      "message": "net: ipv4: fix RCU races on dst refcounts\n\ncommit c6cffba4ffa2 (ipv4: Fix input route performance regression.)\nadded various fatal races with dst refcounts.\n\ncrashes happen on tcp workloads if routes are added/deleted at the same\ntime.\n\nThe dst_free() calls from free_fib_info_rcu() are clearly racy.\n\nWe need instead regular dst refcounting (dst_release()) and make\nsure dst_release() is aware of RCU grace periods :\n\nAdd DST_RCU_FREE flag so that dst_release() respects an RCU grace period\nbefore dst destruction for cached dst\n\nIntroduce a new inet_sk_rx_dst_set() helper, using atomic_inc_not_zero()\nto make sure we dont increase a zero refcount (On a dst currently\nwaiting an rcu grace period before destruction)\n\nrt_cache_route() must take a reference on the new cached route, and\nrelease it if was not able to install it.\n\nWith this patch, my machines survive various benchmarks.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "cca32e4bf999a34ac08d959f351f2b30bcd02460",
      "tree": "7456e3d00b57ab353bb726219cec83b8b4d101ab",
      "parents": [
        "8bbb181308bc348e02bfdbebdedd4e4ec9d452ce"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Jul 29 21:06:13 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 30 14:53:21 2012 -0700"
      },
      "message": "net: TCP early demux cleanup\n\nearly_demux() handlers should be called in RCU context, and as we\nuse skb_dst_set_noref(skb, dst), caller must not exit from RCU context\nbefore dst use (skb_dst(skb)) or release (skb_drop(dst))\n\nTherefore, rcu_read_lock()/rcu_read_unlock() pairs around\n-\u003eearly_demux() are confusing and not needed :\n\nProtocol handlers are already in an RCU read lock section.\n(__netif_receive_skb() does the rcu_read_lock() )\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a2a3258417eb6a1799cf893350771428875a8287",
      "tree": "f8906aa980d79af72e7e02d5592512a914c4b721",
      "parents": [
        "a16cb1f70799c851410d9dca0a24122e258df06c"
      ],
      "author": {
        "name": "Guanjun He",
        "email": "gjhe@suse.com",
        "time": "Sun Jul 08 19:50:33 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 09:29:53 2012 -0700"
      },
      "message": "libceph: prevent the race of incoming work during teardown\n\nAdd an atomic variable \u0027stopping\u0027 as flag in struct ceph_messenger,\nset this flag to 1 in function ceph_destroy_client(), and add the condition code\nin function ceph_data_ready() to test the flag value, if true(1), just return.\n\nSigned-off-by: Guanjun He \u003cgjhe@suse.com\u003e\nReviewed-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "a16cb1f70799c851410d9dca0a24122e258df06c",
      "tree": "0290805d3594d770da3937da7fa68841c1e294ac",
      "parents": [
        "cd43045c2de60f40a0aea49bfb252a2eafe58f8c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Tue Jul 10 11:53:34 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 09:29:52 2012 -0700"
      },
      "message": "libceph: fix messenger retry\n\nIn ancient times, the messenger could both initiate and accept connections.\nAn artifact if that was data structures to store/process an incoming\nceph_msg_connect request and send an outgoing ceph_msg_connect_reply.\nSadly, the negotiation code was referencing those structures and ignoring\nimportant information (like the peer\u0027s connect_seq) from the correct ones.\n\nAmong other things, this fixes tight reconnect loops where the server sends\nRETRY_SESSION and we (the client) retries with the same connect_seq as last\ntime.  This bug pretty easily triggered by injecting socket failures on the\nMDS and running some fs workload like workunits/direct_io/test_sync_io.\n\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "cd43045c2de60f40a0aea49bfb252a2eafe58f8c",
      "tree": "7324cec5953ff47fdf3dc63d1ed5518d86412594",
      "parents": [
        "d50b409fb8698571d8209e5adfe122e287e31290"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 09 14:31:41 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 09:29:51 2012 -0700"
      },
      "message": "libceph: initialize rb, list nodes in ceph_osd_request\n\nThese don\u0027t strictly need to be initialized based on how they are used, but\nit is good practice to do so.\n\nReported-by: Alex Elder \u003celder@inktank.com\u003e\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "d50b409fb8698571d8209e5adfe122e287e31290",
      "tree": "1cd91dd0bc9964e115253a0d58bbef6a12f8f015",
      "parents": [
        "fbb85a478f6d4cce6942f1c25c6a68ec5b1e7e7f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 09 14:22:34 2012 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@inktank.com",
        "time": "Mon Jul 30 09:29:50 2012 -0700"
      },
      "message": "libceph: initialize msgpool message types\n\nInitialize the type field for messages in a msgpool.  The caller was doing\nthis for osd ops, but not for the reply messages.\n\nReported-by: Alex Elder \u003celder@inktank.com\u003e\nSigned-off-by: Sage Weil \u003csage@inktank.com\u003e\n"
    },
    {
      "commit": "8253947e2cdfb14717c9212b751b7aec9ea9ef5e",
      "tree": "9089fdfff63ec45eec1cd49d74ca53b3a4096226",
      "parents": [
        "b41a9a66f67817f8acd85bd650e012a14da39faa"
      ],
      "author": {
        "name": "Li Wei",
        "email": "lw@cn.fujitsu.com",
        "time": "Sun Jul 29 16:01:30 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 29 23:18:31 2012 -0700"
      },
      "message": "ipv6: fix incorrect route \u0027expires\u0027 value passed to userspace\n\nWhen userspace use RTM_GETROUTE to dump route table, with an already\nexpired route entry, we always got an \u0027expires\u0027 value(2147157)\ncalculated base on INT_MAX.\n\nThe reason of this problem is in the following satement:\n\trt-\u003edst.expires - jiffies \u003c INT_MAX\ngcc promoted the type of both sides of \u0027\u003c\u0027 to unsigned long, thus\na small negative value would be considered greater than INT_MAX.\n\nWith the help of Eric Dumazet, do the out of bound checks in\nrtnl_put_cacheinfo(), _after_ conversion to clock_t.\n\nSigned-off-by: Li Wei \u003clw@cn.fujitsu.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "61648d91fc278fd1d500da8061d17e6920cd3500",
      "tree": "8feb4021d7d7af0e37bbb09e619a64c02673f52f",
      "parents": [
        "4ea4bf7ebcbacee2f4736d261efb0693e87a34c9"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "mlin@ss.pku.edu.cn",
        "time": "Sun Jul 29 02:00:03 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 29 23:18:30 2012 -0700"
      },
      "message": "ipv4: clean up put_child\n\nThe first parameter struct trie *t is not used anymore.\nRemove it.\n\nSigned-off-by: Lin Ming \u003cmlin@ss.pku.edu.cn\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4ea4bf7ebcbacee2f4736d261efb0693e87a34c9",
      "tree": "865493c206fa14af75d0c09abf1787a466d80e0e",
      "parents": [
        "1a0150a93c496986297fc08304ac564213c08942"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "mlin@ss.pku.edu.cn",
        "time": "Sun Jul 29 01:19:55 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 29 23:18:30 2012 -0700"
      },
      "message": "ipv4: fix debug info in tnode_new\n\nIt should print size of struct rt_trie_node * allocated instead of size\nof struct rt_trie_node.\n\nSigned-off-by: Lin Ming \u003cmlin@ss.pku.edu.cn\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "faf02010290e202e275c1bf94ca9dd808bf85607",
      "tree": "987d42740c98a37577adb31d0a432a19068ccf44",
      "parents": [
        "a8104a9fcdeb82e22d7acd55fca20746581067d3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jul 20 02:37:29 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 21:24:15 2012 +0400"
      },
      "message": "clean unix_bind() up a bit\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a8104a9fcdeb82e22d7acd55fca20746581067d3",
      "tree": "3036dae685f9b12a878dd02e439f0050114d7745",
      "parents": [
        "8e4bfca1d1f0de62301dd223675717e7a5f63a27"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jul 20 02:25:00 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 21:24:15 2012 +0400"
      },
      "message": "pull mnt_want_write()/mnt_drop_write() into kern_path_create()/done_path_create() resp.\n\nOne side effect - attempt to create a cross-device link on a read-only fs fails\nwith EROFS instead of EXDEV now.  Makes more sense, POSIX allows, etc.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "921a1650de9eed40dd64d681aba4a4d98856f289",
      "tree": "c4740f5ee8de85ebbb1b519acf2b8e249bce0c56",
      "parents": [
        "25b2692a8ace4c2684d3899a0bfe55f8c4248899"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jul 20 01:15:31 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 29 21:24:13 2012 +0400"
      },
      "message": "new helper: done_path_create()\n\nreleases what needs to be released after {kern,user}_path_create()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "59ea33a68a9083ac98515e4861c00e71efdc49a1",
      "tree": "709ce54c4ab4e140d8fa77ed63b3711445d9ac79",
      "parents": [
        "6081030769f23c83c0564e993be146db568bf68b"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jul 27 10:38:50 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 27 13:45:51 2012 -0700"
      },
      "message": "tcp: perform DMA to userspace only if there is a task waiting for it\n\nBack in 2006, commit 1a2449a87b (\"[I/OAT]: TCP recv offload to I/OAT\")\nadded support for receive offloading to IOAT dma engine if available.\n\nThe code in tcp_rcv_established() tries to perform early DMA copy if\napplicable. It however does so without checking whether the userspace\ntask is actually expecting the data in the buffer.\n\nThis is not a problem under normal circumstances, but there is a corner\ncase where this doesn\u0027t work -- and that\u0027s when MSG_TRUNC flag to\nrecvmsg() is used.\n\nIf the IOAT dma engine is not used, the code properly checks whether\nthere is a valid ucopy.task and the socket is owned by userspace, but\nmisses the check in the dmaengine case.\n\nThis problem can be observed in real trivially -- for example \u0027tbench\u0027 is a\ngood reproducer, as it makes a heavy use of MSG_TRUNC. On systems utilizing\nIOAT, you will soon find tbench waiting indefinitely in sk_wait_data(), as they\nhave been already early-copied in tcp_rcv_established() using dma engine.\n\nThis patch introduces the same check we are performing in the simple\niovec copy case to the IOAT case as well. It fixes the indefinite\nrecvmsg(MSG_TRUNC) hangs.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6081030769f23c83c0564e993be146db568bf68b",
      "tree": "d69db9413e18f4b702fdc6078b483207b4835d6b",
      "parents": [
        "505fbcf035c245a1a42cd80184feecf61ee868dc"
      ],
      "author": {
        "name": "Jesse Gross",
        "email": "jesse@nicira.com",
        "time": "Fri Jul 27 10:19:40 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 27 13:45:51 2012 -0700"
      },
      "message": "Revert \"openvswitch: potential NULL deref in sample()\"\n\nThis reverts commit 5b3e7e6cb5771bedda51cdb6f715d1da8cd9e644.\n\nThe problem that the original commit was attempting to fix can\nnever happen in practice because validation is done one a per-flow\nbasis rather than a per-packet basis.  Adding additional checks at\nruntime is unnecessary and inconsistent with the rest of the code.\n\nCC: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "505fbcf035c245a1a42cd80184feecf61ee868dc",
      "tree": "6931cf7a377b79e2bbb227f32f2f0856fe4d87a2",
      "parents": [
        "b1beb681cba5358f62e6187340660ade226a5fcc"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Fri Jul 27 06:23:40 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 27 13:45:51 2012 -0700"
      },
      "message": "ipv4: fix TCP early demux\n\ncommit 92101b3b2e317 (ipv4: Prepare for change of rt-\u003ert_iif encoding.)\ninvalidated TCP early demux, because rx_dst_ifindex is not properly\ninitialized and checked.\n\nAlso remove the use of inet_iif(skb) in favor or skb-\u003eskb_iif\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1beb681cba5358f62e6187340660ade226a5fcc",
      "tree": "72dfe8df581bee6b804847794fa77af207327aea",
      "parents": [
        "e4c7f259c5be99dcfc3d98f913590663b0305bf8"
      ],
      "author": {
        "name": "Jiri Benc",
        "email": "jbenc@redhat.com",
        "time": "Fri Jul 27 02:58:22 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 27 13:45:50 2012 -0700"
      },
      "message": "net: fix rtnetlink IFF_PROMISC and IFF_ALLMULTI handling\n\nWhen device flags are set using rtnetlink, IFF_PROMISC and IFF_ALLMULTI\nflags are handled specially. Function dev_change_flags sets IFF_PROMISC and\nIFF_ALLMULTI bits in dev-\u003egflags according to the passed value but\ndo_setlink passes a result of rtnl_dev_combine_flags which takes those bits\nfrom dev-\u003eflags.\n\nThis can be easily trigerred by doing:\n\ntcpdump -i eth0 \u0026\nip l s up eth0\n\nip sets IFF_UP flag in ifi_flags and ifi_change, which is combined with\nIFF_PROMISC by rtnl_dev_combine_flags, causing __dev_change_flags to set\nIFF_PROMISC in gflags.\n\nReported-by: Max Matveev \u003cmakc@redhat.com\u003e\nSigned-off-by: Jiri Benc \u003cjbenc@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "42493570100b91ef663c4c6f0c0fdab238f9d3c2",
      "tree": "a97aede6490c7eea90b83b1bf3bd26037e5485c9",
      "parents": [
        "b387e41e523c1aa347cff055455d0dd129357df4"
      ],
      "author": {
        "name": "Hangbin Liu",
        "email": "liuhangbin@gmail.com",
        "time": "Thu Jul 26 22:52:21 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jul 27 13:45:50 2012 -0700"
      },
      "message": "tcp: Add TCP_USER_TIMEOUT negative value check\n\nTCP_USER_TIMEOUT is a TCP level socket option that takes an unsigned int. But\npatch \"tcp: Add TCP_USER_TIMEOUT socket option\"(dca43c75) didn\u0027t check the negative\nvalues. If a user assign -1 to it, the socket will set successfully and wait\nfor 4294967295 miliseconds. This patch add a negative value check to avoid\nthis issue.\n\nSigned-off-by: Hangbin Liu \u003cliuhangbin@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa0b3b2bee1d3ca8355de76caebf65b836c9bb6e",
      "tree": "e1ba9eb2e96b55af1008162ec662b03ea24f9989",
      "parents": [
        "6ee127b7dd63afe4d6d0a58293786bf4bf336850",
        "d45bb11616c94c76c6e40960a120c0687b708a2e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 20:26:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 20:26:27 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.6-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds\n\nPull LED subsystem update from Bryan Wu.\n\n* \u0027for-3.6-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (50 commits)\n  leds-lp8788: forgotten unlock at lp8788_led_work\n  LEDS: propagate error codes in blinkm_detect()\n  LEDS: memory leak in blinkm_led_common_set()\n  leds: add new lp8788 led driver\n  LEDS: add BlinkM RGB LED driver, documentation and update MAINTAINERS\n  leds: max8997: Simplify max8997_led_set_mode implementation\n  leds/leds-s3c24xx: use devm_gpio_request\n  leds: convert Network Space v2 LED driver to devm_kzalloc() and cleanup error exit path\n  leds: convert DAC124S085 LED driver to devm_kzalloc()\n  leds: convert LM3530 LED driver to devm_kzalloc() and cleanup error exit path\n  leds: convert TCA6507 LED driver to devm_kzalloc()\n  leds: convert Freescale MC13783 LED driver to devm_kzalloc() and cleanup error exit path\n  leds: convert ADP5520 LED driver to devm_kzalloc() and cleanup error exit path\n  leds: convert PCA955x LED driver to devm_kzalloc() and cleanup error exit path\n  leds: convert Sun Fire LED driver to devm_kzalloc() and cleanup error exit path\n  leds: convert PCA9532 LED driver to devm_kzalloc()\n  leds: convert LT3593 LED driver to devm_kzalloc()\n  leds: convert Renesas TPU LED driver to devm_kzalloc() and cleanup error exit path\n  leds: convert LP5523 LED driver to devm_kzalloc() and cleanup error exit path\n  leds: convert PCA9633 LED driver to devm_kzalloc()\n  ...\n"
    },
    {
      "commit": "1e30c1b3866968ff584ae3cd3909ef93957bb215",
      "tree": "0ee70a264f7bed4047f68ed3aeb68d6c4cf4e136",
      "parents": [
        "a1857ebe752d77d96c89d964500a9528df6d320e",
        "c7109986db3c945f50ceed884a30e0fd8af3b89b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 18:09:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 18:09:01 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking updates and fixes from David Miller:\n\n1) Reinstate the no-ref optimization for input route lookups in ipv4 to\n   fix some routing cache removal perf regressions.\n\n2) Make TCP socket pre-demux work on ipv6 side too, from Eric Dumazet.\n\n3) Get RX hash value from correct place in be2net driver, from\n   Sarveshwar Bandi.\n\n4) Validation of FIB cached routes missing critical check, from Eric\n   Dumazet.\n\n5) EEH support in mlx4 driver, from Kleber Sacilotto de Souza.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (23 commits)\n  ipv6: Early TCP socket demux\n  ipv4: Fix input route performance regression.\n  pch_gbe: vlan skb len fix\n  pch_gbe: add extra clean tx\n  pch_gbe: fix transmit watchdog timeout\n  ixgbe: fix panic while dumping packets on Tx hang with IOMMU\n  be2net: Fix to parse RSS hash from Receive completions correctly.\n  net/mlx4_en: Limit the RFS filter IDs to be \u003c RPS_NO_FILTER\n  hyperv: Add error handling to rndis_filter_device_add()\n  hyperv: Add a check for ring_size value\n  ipv4: rt_cache_valid must check expired routes\n  net/pch_gpe: Cannot disable ethernet autonegation\n  qeth: repair crash in qeth_l3_vlan_rx_kill_vid()\n  netiucv: cleanup attribute usage\n  net: wiznet add missing HAS_IOMEM dependency\n  be2net: Missing byteswap in be_get_fw_log_level causes oops on PowerPC\n  mlx4: Add support for EEH error recovery\n  cdc-ncm: tag Ericsson WWAN devices (eg F5521gw) with FLAG_WWAN\n  wanmain: comparing array with NULL\n  caif: fix NULL pointer check\n  ...\n"
    },
    {
      "commit": "c7109986db3c945f50ceed884a30e0fd8af3b89b",
      "tree": "c0852e90a7d06bdc95a54d6adad19d2a9e3d7d5e",
      "parents": [
        "c6cffba4ffa26a8ffacd0bb9f3144e34f20da7de"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Thu Jul 26 12:18:11 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 26 15:50:39 2012 -0700"
      },
      "message": "ipv6: Early TCP socket demux\n\nThis is the IPv6 missing bits for infrastructure added in commit\n41063e9dd1195 (ipv4: Early TCP socket demux.)\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c6cffba4ffa26a8ffacd0bb9f3144e34f20da7de",
      "tree": "b67532a74343d42bcf8784b8e32d7cf6d69313db",
      "parents": [
        "4487e64de63b8e42efe5a5543871c42c5a5859d9"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 26 11:14:38 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jul 26 15:50:39 2012 -0700"
      },
      "message": "ipv4: Fix input route performance regression.\n\nWith the routing cache removal we lost the \"noref\" code paths on\ninput, and this can kill some routing workloads.\n\nReinstate the noref path when we hit a cached route in the FIB\nnexthops.\n\nWith help from Eric Dumazet.\n\nReported-by: Alexander Duyck \u003calexander.duyck@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4331debc51ee1ce319f4a389484e0e8e05de2aca",
      "tree": "84eafe4afed26328cfe3098ff7103c1222d70aa8",
      "parents": [
        "6d8d2dd8ad92ec89f540e73b7a46c5835a7a06a6"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Jul 25 05:11:23 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jul 25 15:24:14 2012 -0700"
      },
      "message": "ipv4: rt_cache_valid must check expired routes\n\ncommit d2d68ba9fe8 (ipv4: Cache input routes in fib_info nexthops.)\nintroduced rt_cache_valid() helper. It unfortunately doesn\u0027t check if\nroute is expired before caching it.\n\nI noticed sk_setup_caps() was constantly called on a tcp workload.\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b72ff6484fe303e01498b58621810a114f3cf09",
      "tree": "ec1608e0839d237c526672d9802d52fa90dafd44",
      "parents": [
        "c66b9b7d365444b433307ebb18734757cb668a02"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Tue Jul 24 08:16:25 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 24 13:55:21 2012 -0700"
      },
      "message": "wanmain: comparing array with NULL\n\ngcc really should warn about these !\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9cb429d692b341e972b12e6cd097364050ebbb26",
      "tree": "39450b1d5650322fc6cffca581f34edbc06233ee",
      "parents": [
        "c20cd5d753a452807b080bbf390e2f844d7991b3"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Jul 24 01:19:31 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 24 13:54:15 2012 -0700"
      },
      "message": "tcp: early_demux fixes\n\n1) Remove a non needed pskb_may_pull() in tcp_v4_early_demux()\n   and fix a potential bug if skb-\u003ehead was reallocated\n   (iph \u0026 th pointers were not reloaded)\n\nTCP stack will pull/check headers anyway.\n\n2) must reload iph in ip_rcv_finish() after early_demux()\n call since skb-\u003ehead might have changed.\n\n3) skb-\u003edev-\u003eifindex can be now replaced by skb-\u003eskb_iif\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d14b7a419a664cd7c1c585c9e7fffee9e9051d53",
      "tree": "42a1d5b61b58fa0a75252b082c4c6cef6fa9fd8d",
      "parents": [
        "e8ff13b0bf88b5e696323a1eec877783d965b3c6",
        "a58b3a4aba2fd5c445d9deccc73192bff48b591d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 13:34:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 13:34:56 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial tree from Jiri Kosina:\n \"Trivial updates all over the place as usual.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (29 commits)\n  Fix typo in include/linux/clk.h .\n  pci: hotplug: Fix typo in pci\n  iommu: Fix typo in iommu\n  video: Fix typo in drivers/video\n  Documentation: Add newline at end-of-file to files lacking one\n  arm,unicore32: Remove obsolete \"select MISC_DEVICES\"\n  module.c: spelling s/postition/position/g\n  cpufreq: Fix typo in cpufreq driver\n  trivial: typo in comment in mksysmap\n  mach-omap2: Fix typo in debug message and comment\n  scsi: aha152x: Fix sparse warning and make printing pointer address more portable.\n  Change email address for Steve Glendinning\n  Btrfs: fix typo in convert_extent_bit\n  via: Remove bogus if check\n  netprio_cgroup.c: fix comment typo\n  backlight: fix memory leak on obscure error path\n  Documentation: asus-laptop.txt references an obsolete Kconfig item\n  Documentation: ManagementStyle: fixed typo\n  mm/vmscan: cleanup comment error in balance_pgdat\n  mm: cleanup on the comments of zone_reclaim_stat\n  ...\n"
    },
    {
      "commit": "3c4cfadef6a1665d9cd02a543782d03d3e6740c6",
      "tree": "3df72faaacd494d5ac8c9668df4f529b1b5e4457",
      "parents": [
        "e017507f37d5cb8b541df165a824958bc333bec3",
        "320f5ea0cedc08ef65d67e056bcb9d181386ef2c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 10:01:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 24 10:01:50 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking changes from David S Miller:\n\n 1) Remove the ipv4 routing cache.  Now lookups go directly into the FIB\n    trie and use prebuilt routes cached there.\n\n    No more garbage collection, no more rDOS attacks on the routing\n    cache.  Instead we now get predictable and consistent performance,\n    no matter what the pattern of traffic we service.\n\n    This has been almost 2 years in the making.  Special thanks to\n    Julian Anastasov, Eric Dumazet, Steffen Klassert, and others who\n    have helped along the way.\n\n    I\u0027m sure that with a change of this magnitude there will be some\n    kind of fallout, but such things ought the be simple to fix at this\n    point.  Luckily I\u0027m not European so I\u0027ll be around all of August to\n    fix things :-)\n\n    The major stages of this work here are each fronted by a forced\n    merge commit whose commit message contains a top-level description\n    of the motivations and implementation issues.\n\n 2) Pre-demux of established ipv4 TCP sockets, saves a route demux on\n    input.\n\n 3) TCP SYN/ACK performance tweaks from Eric Dumazet.\n\n 4) Add namespace support for netfilter L4 conntrack helpers, from Gao\n    Feng.\n\n 5) Add config mechanism for Energy Efficient Ethernet to ethtool, from\n    Yuval Mintz.\n\n 6) Remove quadratic behavior from /proc/net/unix, from Eric Dumazet.\n\n 7) Support for connection tracker helpers in userspace, from Pablo\n    Neira Ayuso.\n\n 8) Allow userspace driven TX load balancing functions in TEAM driver,\n    from Jiri Pirko.\n\n 9) Kill off NLMSG_PUT and RTA_PUT macros, more gross stuff with\n    embedded gotos.\n\n10) TCP Small Queues, essentially minimize the amount of TCP data queued\n    up in the packet scheduler layer.  Whereas the existing BQL (Byte\n    Queue Limits) limits the pkt_sched --\u003e netdevice queuing levels,\n    this controls the TCP --\u003e pkt_sched queueing levels.\n\n    From Eric Dumazet.\n\n11) Reduce the number of get_page/put_page ops done on SKB fragments,\n    from Alexander Duyck.\n\n12) Implement protection against blind resets in TCP (RFC 5961), from\n    Eric Dumazet.\n\n13) Support the client side of TCP Fast Open, basically the ability to\n    send data in the SYN exchange, from Yuchung Cheng.\n\n    Basically, the sender queues up data with a sendmsg() call using\n    MSG_FASTOPEN, then they do the connect() which emits the queued up\n    fastopen data.\n\n14) Avoid all the problems we get into in TCP when timers or PMTU events\n    hit a locked socket.  The TCP Small Queues changes added a\n    tcp_release_cb() that allows us to queue work up to the\n    release_sock() caller, and that\u0027s what we use here too.  From Eric\n    Dumazet.\n\n15) Zero copy on TX support for TUN driver, from Michael S. Tsirkin.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1870 commits)\n  genetlink: define lockdep_genl_is_held() when CONFIG_LOCKDEP\n  r8169: revert \"add byte queue limit support\".\n  ipv4: Change rt-\u003ert_iif encoding.\n  net: Make skb-\u003eskb_iif always track skb-\u003edev\n  ipv4: Prepare for change of rt-\u003ert_iif encoding.\n  ipv4: Remove all RTCF_DIRECTSRC handliing.\n  ipv4: Really ignore ICMP address requests/replies.\n  decnet: Don\u0027t set RTCF_DIRECTSRC.\n  net/ipv4/ip_vti.c: Fix __rcu warnings detected by sparse.\n  ipv4: Remove redundant assignment\n  rds: set correct msg_namelen\n  openvswitch: potential NULL deref in sample()\n  tcp: dont drop MTU reduction indications\n  bnx2x: Add new 57840 device IDs\n  tcp: avoid oops in tcp_metrics and reset tcpm_stamp\n  niu: Change niu_rbr_fill() to use unlikely() to check niu_rbr_add_page() return value\n  niu: Fix to check for dma mapping errors.\n  net: Fix references to out-of-scope variables in put_cmsg_compat()\n  net: ethernet: davinci_emac: add pm_runtime support\n  net: ethernet: davinci_emac: Remove unnecessary #include\n  ...\n"
    },
    {
      "commit": "320f5ea0cedc08ef65d67e056bcb9d181386ef2c",
      "tree": "5845fb51d8cdd01729bba4e757e38a801386a4fb",
      "parents": [
        "17bcb684f08649a2ab6a7dcd8288332e72d208f1"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Jul 24 13:44:01 2012 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jul 24 00:01:30 2012 -0700"
      },
      "message": "genetlink: define lockdep_genl_is_held() when CONFIG_LOCKDEP\n\nlockdep_is_held() is defined when CONFIG_LOCKDEP, not CONFIG_PROVE_LOCKING.\n\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "19cd67e2d51225b164560b54b85f943e07deee8a",
      "tree": "cadec9758a57fe2a805081e47f0439c870deb6d0",
      "parents": [
        "0da3e65ba892b8c63d55fa5ec197b6fae55f75f8"
      ],
      "author": {
        "name": "Shuah Khan",
        "email": "shuahkhan@gmail.com",
        "time": "Thu Jun 14 04:34:30 2012 +0800"
      },
      "committer": {
        "name": "Bryan Wu",
        "email": "bryan.wu@canonical.com",
        "time": "Tue Jul 24 07:52:34 2012 +0800"
      },
      "message": "leds: Rename led_brightness_set() to led_set_brightness()\n\nRename leds external interface led_brightness_set() to led_set_brightness().\nThis is the second phase of the change to reduce confusion between the\nleds internal and external interfaces that set brightness. With this change,\nnow the external interface is led_set_brightness(). The first phase renamed\nthe internal interface led_set_brightness() to __led_set_brightness().\nThere are no changes to the interface implementations.\n\nSigned-off-by: Shuah Khan \u003cshuahkhan@gmail.com\u003e\nSigned-off-by: Bryan Wu \u003cbryan.wu@canonical.com\u003e\n"
    },
    {
      "commit": "13378cad02afc2adc6c0e07fca03903c7ada0b37",
      "tree": "e12625227f409a7b658c4f39a2dc926cf60bb27e",
      "parents": [
        "b68581778cd0051a3fb9a2b614dee7eccb5127ff"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:57:45 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 16:36:27 2012 -0700"
      },
      "message": "ipv4: Change rt-\u003ert_iif encoding.\n\nOn input packet processing, rt-\u003ert_iif will be zero if we should\nuse skb-\u003edev-\u003eifindex.\n\nSince we access rt-\u003ert_iif consistently via inet_iif(), that is\nthe only spot whose interpretation have to adjust.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b68581778cd0051a3fb9a2b614dee7eccb5127ff",
      "tree": "fadc77a8c3f1b0a77e05a69fad951f83ead67d43",
      "parents": [
        "92101b3b2e3178087127709a556b091dae314e9e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 16:27:54 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 16:36:27 2012 -0700"
      },
      "message": "net: Make skb-\u003eskb_iif always track skb-\u003edev\n\nMake it follow device decapsulation, from things such as VLAN and\nbonding.\n\nThe stuff that actually cares about pre-demuxed device pointers, is\nhandled by the \"orig_dev\" variable in __netif_receive_skb().  And\nthe only consumer of that is the po-\u003eorigdev feature of AF_PACKET\nsockets.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "92101b3b2e3178087127709a556b091dae314e9e",
      "tree": "06359f8823da3ed7617c5ea78e4a56bc5e958fea",
      "parents": [
        "fe3edf45792a7d2f0edff4e2fcdd9a84c1a388a0"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 16:29:00 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 16:36:26 2012 -0700"
      },
      "message": "ipv4: Prepare for change of rt-\u003ert_iif encoding.\n\nUse inet_iif() consistently, and for TCP record the input interface of\ncached RX dst in inet sock.\n\nrt-\u003ert_iif is going to be encoded differently, so that we can\nlegitimately cache input routes in the FIB info more aggressively.\n\nWhen the input interface is \"use SKB device index\" the rt-\u003ert_iif will\nbe set to zero.\n\nThis forces us to move the TCP RX dst cache installation into the ipv4\nspecific code, and as well it should since doing the route caching for\nipv6 is pointless at the moment since it is not inspected in the ipv6\ninput paths yet.\n\nAlso, remove the unlikely on dst-\u003eobsolete, all ipv4 dsts have\nobsolete set to a non-zero value to force invocation of the check\ncallback.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fe3edf45792a7d2f0edff4e2fcdd9a84c1a388a0",
      "tree": "db004ea2ef6cdda3c48888365c88cc098fa85782",
      "parents": [
        "838942a594017817d33b2d914152305054e255af"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:22:20 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:22:20 2012 -0700"
      },
      "message": "ipv4: Remove all RTCF_DIRECTSRC handliing.\n\nThe last and final kernel user, ICMP address replies,\nhas been removed.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "838942a594017817d33b2d914152305054e255af",
      "tree": "dd2f656813e142e49f3365c13916be45eef5178e",
      "parents": [
        "8acfaa948440717a11d15a4ea579d68a5366fea4"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:20:26 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:20:26 2012 -0700"
      },
      "message": "ipv4: Really ignore ICMP address requests/replies.\n\nAlexey removed kernel side support for requests, and the\nonly thing we do for replies is log a message if something\ndoesn\u0027t look right.\n\nAs Alexey\u0027s comment indicates, this belongs in userspace (if\nanywhere), and thus we can safely just get rid of this code.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8acfaa948440717a11d15a4ea579d68a5366fea4",
      "tree": "c45079797cb0ab4034c131f25d088f157c020d53",
      "parents": [
        "e7d4b18cbebc635fafd634688bbf66c59912879f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:16:59 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:16:59 2012 -0700"
      },
      "message": "decnet: Don\u0027t set RTCF_DIRECTSRC.\n\nIt\u0027s an ipv4 defined route flag, and only ipv4 uses it.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e7d4b18cbebc635fafd634688bbf66c59912879f",
      "tree": "ae1470ea8268a27ef8721710fea2ae15090fe6fa",
      "parents": [
        "8fe5cb873b7ef7f4fa49477455e8f2e3d555230e"
      ],
      "author": {
        "name": "Saurabh",
        "email": "saurabh.mohan@vyatta.com",
        "time": "Mon Jul 23 07:52:04 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:00:54 2012 -0700"
      },
      "message": "net/ipv4/ip_vti.c: Fix __rcu warnings detected by sparse.\n\nWith CONFIG_SPARSE_RCU_POINTER\u003dy sparse identified references which did not\nspecificy __rcu in ip_vti.c\n\nSigned-off-by: Saurabh Mohan \u003csaurabh.mohan@vyatta.com\u003e\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8fe5cb873b7ef7f4fa49477455e8f2e3d555230e",
      "tree": "fbe339035f8a8ef6af443a93ec047455cb1ffe83",
      "parents": [
        "06b6a1cf6e776426766298d055bb3991957d90a7"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "mlin@ss.pku.edu.cn",
        "time": "Mon Jul 23 04:11:21 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 13:00:54 2012 -0700"
      },
      "message": "ipv4: Remove redundant assignment\n\nIt is redundant to set no_addr and accept_local to 0 and then set them\nwith other values just after that.\n\nSigned-off-by: Lin Ming \u003cmlin@ss.pku.edu.cn\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a66d2c8f7ec1284206ca7c14569e2a607583f1e3",
      "tree": "08cf68bcef3559b370843cab8191e5cc0f740bde",
      "parents": [
        "a6be1fcbc57f95bb47ef3c8e4ee3d83731b8f21e",
        "8cae6f7158ec1fa44c8a04a43db7d8020ec60437"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 23 12:27:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 23 12:27:27 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull the big VFS changes from Al Viro:\n \"This one is *big* and changes quite a few things around VFS.  What\u0027s in there:\n\n   - the first of two really major architecture changes - death to open\n     intents.\n\n     The former is finally there; it was very long in making, but with\n     Miklos getting through really hard and messy final push in\n     fs/namei.c, we finally have it.  Unlike his variant, this one\n     doesn\u0027t introduce struct opendata; what we have instead is\n     -\u003eatomic_open() taking preallocated struct file * and passing\n     everything via its fields.\n\n     Instead of returning struct file *, it returns -E...  on error, 0\n     on success and 1 in \"deal with it yourself\" case (e.g.  symlink\n     found on server, etc.).\n\n     See comments before fs/namei.c:atomic_open().  That made a lot of\n     goodies finally possible and quite a few are in that pile:\n     -\u003elookup(), -\u003ed_revalidate() and -\u003ecreate() do not get struct\n     nameidata * anymore; -\u003elookup() and -\u003ed_revalidate() get lookup\n     flags instead, -\u003ecreate() gets \"do we want it exclusive\" flag.\n\n     With the introduction of new helper (kern_path_locked()) we are rid\n     of all struct nameidata instances outside of fs/namei.c; it\u0027s still\n     visible in namei.h, but not for long.  Come the next cycle,\n     declaration will move either to fs/internal.h or to fs/namei.c\n     itself.  [me, miklos, hch]\n\n   - The second major change: behaviour of final fput().  Now we have\n     __fput() done without any locks held by caller *and* not from deep\n     in call stack.\n\n     That obviously lifts a lot of constraints on the locking in there.\n     Moreover, it\u0027s legal now to call fput() from atomic contexts (which\n     has immediately simplified life for aio.c).  We also don\u0027t need\n     anti-recursion logics in __scm_destroy() anymore.\n\n     There is a price, though - the damn thing has become partially\n     asynchronous.  For fput() from normal process we are guaranteed\n     that pending __fput() will be done before the caller returns to\n     userland, exits or gets stopped for ptrace.\n\n     For kernel threads and atomic contexts it\u0027s done via\n     schedule_work(), so theoretically we might need a way to make sure\n     it\u0027s finished; so far only one such place had been found, but there\n     might be more.\n\n     There\u0027s flush_delayed_fput() (do all pending __fput()) and there\u0027s\n     __fput_sync() (fput() analog doing __fput() immediately).  I hope\n     we won\u0027t need them often; see warnings in fs/file_table.c for\n     details.  [me, based on task_work series from Oleg merged last\n     cycle]\n\n   - sync series from Jan\n\n   - large part of \"death to sync_supers()\" work from Artem; the only\n     bits missing here are exofs and ext4 ones.  As far as I understand,\n     those are going via the exofs and ext4 trees resp.; once they are\n     in, we can put -\u003ewrite_super() to the rest, along with the thread\n     calling it.\n\n   - preparatory bits from unionmount series (from dhowells).\n\n   - assorted cleanups and fixes all over the place, as usual.\n\n  This is not the last pile for this cycle; there\u0027s at least jlayton\u0027s\n  ESTALE work and fsfreeze series (the latter - in dire need of fixes,\n  so I\u0027m not sure it\u0027ll make the cut this cycle).  I\u0027ll probably throw\n  symlink/hardlink restrictions stuff from Kees into the next pile, too.\n  Plus there\u0027s a lot of misc patches I hadn\u0027t thrown into that one -\n  it\u0027s large enough as it is...\"\n\n* \u0027for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (127 commits)\n  ext4: switch EXT4_IOC_RESIZE_FS to mnt_want_write_file()\n  btrfs: switch btrfs_ioctl_balance() to mnt_want_write_file()\n  switch dentry_open() to struct path, make it grab references itself\n  spufs: shift dget/mntget towards dentry_open()\n  zoran: don\u0027t bother with struct file * in zoran_map\n  ecryptfs: don\u0027t reinvent the wheels, please - use struct completion\n  don\u0027t expose I_NEW inodes via dentry-\u003ed_inode\n  tidy up namei.c a bit\n  unobfuscate follow_up() a bit\n  ext3: pass custom EOF to generic_file_llseek_size()\n  ext4: use core vfs llseek code for dir seeks\n  vfs: allow custom EOF in generic_file_llseek code\n  vfs: Avoid unnecessary WB_SYNC_NONE writeback during sys_sync and reorder sync passes\n  vfs: Remove unnecessary flushing of block devices\n  vfs: Make sys_sync writeout also block device inodes\n  vfs: Create function for iterating over block devices\n  vfs: Reorder operations during sys_sync\n  quota: Move quota syncing to -\u003esync_fs method\n  quota: Split dquot_quota_sync() to writeback and cache flushing part\n  vfs: Move noop_backing_dev_info check from sync into writeback\n  ...\n"
    },
    {
      "commit": "06b6a1cf6e776426766298d055bb3991957d90a7",
      "tree": "516f0dbc5c54033a0a6fa66f7c2a813dc338a787",
      "parents": [
        "5b3e7e6cb5771bedda51cdb6f715d1da8cd9e644"
      ],
      "author": {
        "name": "Weiping Pan",
        "email": "wpan@redhat.com",
        "time": "Mon Jul 23 10:37:48 2012 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 01:01:44 2012 -0700"
      },
      "message": "rds: set correct msg_namelen\n\nJay Fenlason (fenlason@redhat.com) found a bug,\nthat recvfrom() on an RDS socket can return the contents of random kernel\nmemory to userspace if it was called with a address length larger than\nsizeof(struct sockaddr_in).\nrds_recvmsg() also fails to set the addr_len paramater properly before\nreturning, but that\u0027s just a bug.\nThere are also a number of cases wher recvfrom() can return an entirely bogus\naddress. Anything in rds_recvmsg() that returns a non-negative value but does\nnot go through the \"sin \u003d (struct sockaddr_in *)msg-\u003emsg_name;\" code path\nat the end of the while(1) loop will return up to 128 bytes of kernel memory\nto userspace.\n\nAnd I write two test programs to reproduce this bug, you will see that in\nrds_server, fromAddr will be overwritten and the following sock_fd will be\ndestroyed.\nYes, it is the programmer\u0027s fault to set msg_namelen incorrectly, but it is\nbetter to make the kernel copy the real length of address to user space in\nsuch case.\n\nHow to run the test programs ?\nI test them on 32bit x86 system, 3.5.0-rc7.\n\n1 compile\ngcc -o rds_client rds_client.c\ngcc -o rds_server rds_server.c\n\n2 run ./rds_server on one console\n\n3 run ./rds_client on another console\n\n4 you will see something like:\nserver is waiting to receive data...\nold socket fd\u003d3\nserver received data from client:data from client\nmsg.msg_namelen\u003d32\nnew socket fd\u003d-1067277685\nsendmsg()\n: Bad file descriptor\n\n/***************** rds_client.c ********************/\n\nint main(void)\n{\n\tint sock_fd;\n\tstruct sockaddr_in serverAddr;\n\tstruct sockaddr_in toAddr;\n\tchar recvBuffer[128] \u003d \"data from client\";\n\tstruct msghdr msg;\n\tstruct iovec iov;\n\n\tsock_fd \u003d socket(AF_RDS, SOCK_SEQPACKET, 0);\n\tif (sock_fd \u003c 0) {\n\t\tperror(\"create socket error\\n\");\n\t\texit(1);\n\t}\n\n\tmemset(\u0026serverAddr, 0, sizeof(serverAddr));\n\tserverAddr.sin_family \u003d AF_INET;\n\tserverAddr.sin_addr.s_addr \u003d inet_addr(\"127.0.0.1\");\n\tserverAddr.sin_port \u003d htons(4001);\n\n\tif (bind(sock_fd, (struct sockaddr*)\u0026serverAddr, sizeof(serverAddr)) \u003c 0) {\n\t\tperror(\"bind() error\\n\");\n\t\tclose(sock_fd);\n\t\texit(1);\n\t}\n\n\tmemset(\u0026toAddr, 0, sizeof(toAddr));\n\ttoAddr.sin_family \u003d AF_INET;\n\ttoAddr.sin_addr.s_addr \u003d inet_addr(\"127.0.0.1\");\n\ttoAddr.sin_port \u003d htons(4000);\n\tmsg.msg_name \u003d \u0026toAddr;\n\tmsg.msg_namelen \u003d sizeof(toAddr);\n\tmsg.msg_iov \u003d \u0026iov;\n\tmsg.msg_iovlen \u003d 1;\n\tmsg.msg_iov-\u003eiov_base \u003d recvBuffer;\n\tmsg.msg_iov-\u003eiov_len \u003d strlen(recvBuffer) + 1;\n\tmsg.msg_control \u003d 0;\n\tmsg.msg_controllen \u003d 0;\n\tmsg.msg_flags \u003d 0;\n\n\tif (sendmsg(sock_fd, \u0026msg, 0) \u003d\u003d -1) {\n\t\tperror(\"sendto() error\\n\");\n\t\tclose(sock_fd);\n\t\texit(1);\n\t}\n\n\tprintf(\"client send data:%s\\n\", recvBuffer);\n\n\tmemset(recvBuffer, \u0027\\0\u0027, 128);\n\n\tmsg.msg_name \u003d \u0026toAddr;\n\tmsg.msg_namelen \u003d sizeof(toAddr);\n\tmsg.msg_iov \u003d \u0026iov;\n\tmsg.msg_iovlen \u003d 1;\n\tmsg.msg_iov-\u003eiov_base \u003d recvBuffer;\n\tmsg.msg_iov-\u003eiov_len \u003d 128;\n\tmsg.msg_control \u003d 0;\n\tmsg.msg_controllen \u003d 0;\n\tmsg.msg_flags \u003d 0;\n\tif (recvmsg(sock_fd, \u0026msg, 0) \u003d\u003d -1) {\n\t\tperror(\"recvmsg() error\\n\");\n\t\tclose(sock_fd);\n\t\texit(1);\n\t}\n\n\tprintf(\"receive data from server:%s\\n\", recvBuffer);\n\n\tclose(sock_fd);\n\n\treturn 0;\n}\n\n/***************** rds_server.c ********************/\n\nint main(void)\n{\n\tstruct sockaddr_in fromAddr;\n\tint sock_fd;\n\tstruct sockaddr_in serverAddr;\n\tunsigned int addrLen;\n\tchar recvBuffer[128];\n\tstruct msghdr msg;\n\tstruct iovec iov;\n\n\tsock_fd \u003d socket(AF_RDS, SOCK_SEQPACKET, 0);\n\tif(sock_fd \u003c 0) {\n\t\tperror(\"create socket error\\n\");\n\t\texit(0);\n\t}\n\n\tmemset(\u0026serverAddr, 0, sizeof(serverAddr));\n\tserverAddr.sin_family \u003d AF_INET;\n\tserverAddr.sin_addr.s_addr \u003d inet_addr(\"127.0.0.1\");\n\tserverAddr.sin_port \u003d htons(4000);\n\tif (bind(sock_fd, (struct sockaddr*)\u0026serverAddr, sizeof(serverAddr)) \u003c 0) {\n\t\tperror(\"bind error\\n\");\n\t\tclose(sock_fd);\n\t\texit(1);\n\t}\n\n\tprintf(\"server is waiting to receive data...\\n\");\n\tmsg.msg_name \u003d \u0026fromAddr;\n\n\t/*\n\t * I add 16 to sizeof(fromAddr), ie 32,\n\t * and pay attention to the definition of fromAddr,\n\t * recvmsg() will overwrite sock_fd,\n\t * since kernel will copy 32 bytes to userspace.\n\t *\n\t * If you just use sizeof(fromAddr), it works fine.\n\t * */\n\tmsg.msg_namelen \u003d sizeof(fromAddr) + 16;\n\t/* msg.msg_namelen \u003d sizeof(fromAddr); */\n\tmsg.msg_iov \u003d \u0026iov;\n\tmsg.msg_iovlen \u003d 1;\n\tmsg.msg_iov-\u003eiov_base \u003d recvBuffer;\n\tmsg.msg_iov-\u003eiov_len \u003d 128;\n\tmsg.msg_control \u003d 0;\n\tmsg.msg_controllen \u003d 0;\n\tmsg.msg_flags \u003d 0;\n\n\twhile (1) {\n\t\tprintf(\"old socket fd\u003d%d\\n\", sock_fd);\n\t\tif (recvmsg(sock_fd, \u0026msg, 0) \u003d\u003d -1) {\n\t\t\tperror(\"recvmsg() error\\n\");\n\t\t\tclose(sock_fd);\n\t\t\texit(1);\n\t\t}\n\t\tprintf(\"server received data from client:%s\\n\", recvBuffer);\n\t\tprintf(\"msg.msg_namelen\u003d%d\\n\", msg.msg_namelen);\n\t\tprintf(\"new socket fd\u003d%d\\n\", sock_fd);\n\t\tstrcat(recvBuffer, \"--data from server\");\n\t\tif (sendmsg(sock_fd, \u0026msg, 0) \u003d\u003d -1) {\n\t\t\tperror(\"sendmsg()\\n\");\n\t\t\tclose(sock_fd);\n\t\t\texit(1);\n\t\t}\n\t}\n\n\tclose(sock_fd);\n\treturn 0;\n}\n\nSigned-off-by: Weiping Pan \u003cwpan@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5b3e7e6cb5771bedda51cdb6f715d1da8cd9e644",
      "tree": "f722cb5fa6902c344e5345e3156df61a30f4f6a4",
      "parents": [
        "563d34d05786263893ba4a1042eb9b9374127cf5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Mon Jul 23 10:46:28 2012 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 00:59:54 2012 -0700"
      },
      "message": "openvswitch: potential NULL deref in sample()\n\nIf there is no OVS_SAMPLE_ATTR_ACTIONS set then \"acts_list\" is NULL and\nit leads to a NULL dereference when we call nla_len(acts_list).  This\nis a static checker fix, not something I have seen in testing.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "563d34d05786263893ba4a1042eb9b9374127cf5",
      "tree": "e9ce502c1f32bea966c81d5597d0a29eb4b9d244",
      "parents": [
        "c3def943c7117d42caaed3478731ea7c3c87190e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Jul 23 09:48:52 2012 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 00:58:46 2012 -0700"
      },
      "message": "tcp: dont drop MTU reduction indications\n\nICMP messages generated in output path if frame length is bigger than\nmtu are actually lost because socket is owned by user (doing the xmit)\n\nOne example is the ipgre_tunnel_xmit() calling\nicmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu));\n\nWe had a similar case fixed in commit a34a101e1e6 (ipv6: disable GSO on\nsockets hitting dst_allfrag).\n\nProblem of such fix is that it relied on retransmit timers, so short tcp\nsessions paid a too big latency increase price.\n\nThis patch uses the tcp_release_cb() infrastructure so that MTU\nreduction messages (ICMP messages) are not lost, and no extra delay\nis added in TCP transmits.\n\nReported-by: Maciej Żenczykowski \u003cmaze@google.com\u003e\nDiagnosed-by: Neal Cardwell \u003cncardwell@google.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Nandita Dukkipati \u003cnanditad@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Tore Anderson \u003ctore@fud.no\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9a0a9502cbf19d31f7387e3066f3d1a491bef616",
      "tree": "de744eaedb4c0942fab7d0c6af583460b2803fa0",
      "parents": [
        "9b70749e64132e17ab02239b82fcb4a2c55554d1"
      ],
      "author": {
        "name": "Julian Anastasov",
        "email": "ja@ssi.bg",
        "time": "Mon Jul 23 10:46:38 2012 +0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jul 23 00:57:12 2012 -0700"
      },
      "message": "tcp: avoid oops in tcp_metrics and reset tcpm_stamp\n\n\tIn tcp_tw_remember_stamp we incorrectly checked tw\ninstead of tm, it can lead to oops if the cached entry is\nnot found.\n\n\ttcpm_stamp was not updated in tcpm_check_stamp when\ntcpm_suck_dst was called, move the update into tcpm_suck_dst,\nso that we do not call it infinitely on every next cache hit\nafter TCP_METRICS_TIMEOUT.\n\nSigned-off-by: Julian Anastasov \u003cja@ssi.bg\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "818810472b129004c16fc51bf0a570b60776bfb7",
      "tree": "132cc06300eee66d5e29905a652e79bf585416f6",
      "parents": [
        "5e9965c15ba88319500284e590733f4a4629a288"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Jul 22 11:37:20 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 17:50:49 2012 -0700"
      },
      "message": "net: Fix references to out-of-scope variables in put_cmsg_compat()\n\nIn net/compat.c::put_cmsg_compat() we may assign \u0027data\u0027 the address of\neither the \u0027ctv\u0027 or \u0027cts\u0027 local variables inside the \u0027if\n(!COMPAT_USE_64BIT_TIME)\u0027 branch.\n\nThose variables go out of scope at the end of the \u0027if\u0027 statement, so\nwhen we use \u0027data\u0027 further down in \u0027copy_to_user(CMSG_COMPAT_DATA(cm),\ndata, cmlen - sizeof(struct compat_cmsghdr))\u0027 there\u0027s no telling what\nit may be refering to - not good.\n\nFix the problem by simply giving \u0027ctv\u0027 and \u0027cts\u0027 function scope.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5e9965c15ba88319500284e590733f4a4629a288",
      "tree": "ab76263b9f43fb75048a50141d199f445f5fdd2d",
      "parents": [
        "3ba97381343b271296487bf073eb670d5465a8b8",
        "2860583fe840d972573363dfa190b2149a604534"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 17:04:15 2012 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 17:04:15 2012 -0700"
      },
      "message": "Merge branch \u0027kill_rtcache\u0027\n\nThe ipv4 routing cache is non-deterministic, performance wise, and is\nsubject to reasonably easy to launch denial of service attacks.\n\nThe routing cache works great for well behaved traffic, and the world\nwas a much friendlier place when the tradeoffs that led to the routing\ncache\u0027s design were considered.\n\nWhat it boils down to is that the performance of the routing cache is\na product of the traffic patterns seen by a system rather than being a\nproduct of the contents of the routing tables.  The former of which is\ncontrollable by external entitites.\n\nEven for \"well behaved\" legitimate traffic, high volume sites can see\nhit rates in the routing cache of only ~%10.\n\nThe general flow of this patch series is that first the routing cache\nis removed.  We build a completely new rtable entry every lookup\nrequest.\n\nNext we make some simplifications due to the fact that removing the\nrouting cache causes several members of struct rtable to become no\nlonger necessary.\n\nThen we need to make some amends such that we can legally cache\npre-constructed routes in the FIB nexthops.  Firstly, we need to\ninvalidate routes which are hit with nexthop exceptions.  Secondly we\nhave to change the semantics of rt-\u003ert_gateway such that zero means\nthat the destination is on-link and non-zero otherwise.\n\nNow that the preparations are ready, we start caching precomputed\nroutes in the FIB nexthops.  Output and input routes need different\nkinds of care when determining if we can legally do such caching or\nnot.  The details are in the commit log messages for those changes.\n\nThe patch series then winds down with some more struct rtable\nsimplifications and other tidy ups that remove unnecessary overhead.\n\nOn a SPARC-T3 output route lookups are ~876 cycles.  Input route\nlookups are ~1169 cycles with rpfilter disabled, and about ~1468\ncycles with rpfilter enabled.\n\nThese measurements were taken with the kbench_mod test module in the\nnet_test_tools GIT tree:\n\ngit://git.kernel.org/pub/scm/linux/kernel/git/davem/net_test_tools.git\n\nThat GIT tree also includes a udpflood tester tool and stresses\nroute lookups on packet output.\n\nFor example, on the same SPARC-T3 system we can run:\n\n\ttime ./udpflood -l 10000000 10.2.2.11\n\nwith routing cache:\nreal    1m21.955s       user    0m6.530s        sys     1m15.390s\n\nwithout routing cache:\nreal    1m31.678s       user    0m6.520s        sys     1m25.140s\n\nPerformance undoubtedly can easily be improved further.\n\nFor example fib_table_lookup() performs a lot of excessive\ncomputations with all the masking and shifting, some of it\nconditionalized to deal with edge cases.\n\nAlso, Eric\u0027s no-ref optimization for input route lookups can be\nre-instated for the FIB nexthop caching code path.  I would be really\npleased if someone would work on that.\n\nIn fact anyone suitable motivated can just fire up perf on the loading\nof the test net_test_tools benchmark kernel module.  I spend much of\nmy time going:\n\nbash# perf record insmod ./kbench_mod.ko dst\u003d172.30.42.22 src\u003d74.128.0.1 iif\u003d2\nbash# perf report\n\nThanks to helpful feedback from Joe Perches, Eric Dumazet, Ben\nHutchings, and others.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6120d3dbb1220792ebea88cd475e1ec8f8620a93",
      "tree": "0ca01ed01651ddb1f54f6fe43c2288acb8d361c3",
      "parents": [
        "3ffa3c0e3f6e62f67fc2346ca60161dfb030083d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 24 10:03:05 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 22 23:58:00 2012 +0400"
      },
      "message": "get rid of -\u003escm_work_list\n\nrecursion in __scm_destroy() will be cut by delaying final fput()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "406a3c638ce8b17d9704052c07955490f732c2b8",
      "tree": "db759dfccc6c09196773d0cc1ec260a7a4e9db07",
      "parents": [
        "0690899b4d4501b3505be069b9a687e68ccbe15b"
      ],
      "author": {
        "name": "John Fastabend",
        "email": "john.r.fastabend@intel.com",
        "time": "Fri Jul 20 10:39:25 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 12:44:01 2012 -0700"
      },
      "message": "net: netprio_cgroup: rework update socket logic\n\nInstead of updating the sk_cgrp_prioidx struct field on every send\nthis only updates the field when a task is moved via cgroup\ninfrastructure.\n\nThis allows sockets that may be used by a kernel worker thread\nto be managed. For example in the iscsi case today a user can\nput iscsid in a netprio cgroup and control traffic will be sent\nwith the correct sk_cgrp_prioidx value set but as soon as data\nis sent the kernel worker thread isssues a send and sk_cgrp_prioidx\nis updated with the kernel worker threads value which is the\ndefault case.\n\nIt seems more correct to only update the field when the user\nexplicitly sets it via control group infrastructure. This allows\nthe users to manage sockets that may be used with other threads.\n\nSigned-off-by: John Fastabend \u003cjohn.r.fastabend@intel.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "dcc0fb782b3a6e2abfeaaeb45dd88ed09596be0f",
      "tree": "072bab4fb0b1badd6f2dfc7879a9badeda4e43e7",
      "parents": [
        "1080e512d44d4f67b8beb8edf25a1bbcb1066dc7"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Jul 20 09:23:20 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 12:39:33 2012 -0700"
      },
      "message": "skbuff: export skb_copy_ubufs\n\nExport skb_copy_ubufs so that modules can orphan frags.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1080e512d44d4f67b8beb8edf25a1bbcb1066dc7",
      "tree": "02cecc2d69f820ac082578daa228cdbe2a4503dd",
      "parents": [
        "868eefeb17d40f6acde00ad8165a268529cf6d24"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Jul 20 09:23:17 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 12:39:33 2012 -0700"
      },
      "message": "net: orphan frags on receive\n\nzero copy packets are normally sent to the outside\nnetwork, but bridging, tun etc might loop them\nback to host networking stack. If this happens\ndestructors will never be called, so orphan\nthe frags immediately on receive.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "70008aa50e927670ceee7f0c87e159ca7b1517a2",
      "tree": "378f175d159a03f1e2fc9c93d654d4f2a776c3cf",
      "parents": [
        "a353e0ce0fd42d8859260666d1e9b10f2abd4698"
      ],
      "author": {
        "name": "Michael S. Tsirkin",
        "email": "mst@redhat.com",
        "time": "Fri Jul 20 09:23:10 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 12:39:33 2012 -0700"
      },
      "message": "skbuff: convert to skb_orphan_frags\n\nReduce code duplication a bit using the new helper.\n\nSigned-off-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1d69c2b343c7e1dc9584b7aa446f40dbab4c4f80",
      "tree": "1d3741024e7a8c4197955e013be318b28e68df72",
      "parents": [
        "fd183f6a73fc0ff3e32c636dbb539e35d4c530c9"
      ],
      "author": {
        "name": "Mark A. Greer",
        "email": "mgreer@animalcreek.com",
        "time": "Fri Jul 20 13:35:13 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 22 12:28:11 2012 -0700"
      },
      "message": "rtnl: Add #ifdef CONFIG_RPS around num_rx_queues reference\n\nCommit 76ff5cc91935c51fcf1a6a99ffa28b97a6e7a884\n(rtnl: allow to specify number of rx and tx queues\non device creation) added a reference to the net_device\nstructure\u0027s \u0027num_rx_queues\u0027 member in\n\n\tnet/core/rtnetlink.c:rtnl_fill_ifinfo()\n\nHowever, the definition for \u0027num_rx_queues\u0027 is surrounded\nby an \u0027#ifdef CONFIG_RPS\u0027 while the new reference to it is\nnot.  This causes a compile error when CONFIG_RPS is not\ndefined.\n\nFix the compile error by surrounding the new reference to\n\u0027num_rx_queues\u0027 by an \u0027#ifdef CONFIG_RPS\u0027.\n\nCC: Jiri Pirko \u003cjiri@resnulli.us\u003e\nSigned-off-by: Mark A. Greer \u003cmgreer@animalcreek.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "5aa93bcf66f4af094d6f11096e81d5501a0b4ba5"
}
