)]}'
{
  "log": [
    {
      "commit": "f2ee7abf4c40c8e6bffced923a7c01ea2d1f6c97",
      "tree": "3c7ec119cf89f82737c55235ff7881ebeed9408f",
      "parents": [
        "b12362bdb61a230a67daa77bcd2a11e59b2802e1"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jul 28 06:41:09 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 01:41:17 2011 -0400"
      },
      "message": "vfs: avoid taking inode_hash_lock on pipes and sockets\n\nSome inodes (pipes, sockets, ...) are not hashed, no need to take\ncontended inode_hash_lock at dismantle time.\n\nnice speedup on SMP machines on socket intensive workloads.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b12362bdb61a230a67daa77bcd2a11e59b2802e1",
      "tree": "f85752d085d3618207ef6aa5b7d8a10910201fc5",
      "parents": [
        "5a30d8a2b8ddd5102c440c7e5a7c8e1fd729c818"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Jul 28 06:11:47 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 01:41:17 2011 -0400"
      },
      "message": "vfs: conditionally call inode_wb_list_del()\n\nSome inodes (pipes, sockets, ...) are not in bdi writeback list.\n\nevict() can avoid calling inode_wb_list_del() and its expensive spinlock\nby checking inode i_wb_list being empty or not.\n\nAt this point, no other cpu/user can concurrently manipulate this inode\ni_wb_list\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a30d8a2b8ddd5102c440c7e5a7c8e1fd729c818",
      "tree": "005d290c2390207a485042687ca018afbefa2993",
      "parents": [
        "b4aff1f874f679320c03e3d97b60fc7babfd4623"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Jul 11 14:20:57 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 01:38:01 2011 -0400"
      },
      "message": "VFS: Fix automount for negative autofs dentries\n\nAutofs may set the DCACHE_NEED_AUTOMOUNT flag on negative dentries.  These\nneed attention from the automounter daemon regardless of the LOOKUP_FOLLOW flag.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b4aff1f874f679320c03e3d97b60fc7babfd4623",
      "tree": "7d70626056dd81bbdb194171d89f35cd390a5a78",
      "parents": [
        "9d108d25487bf958f8093409a4c0bee6169edba6"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Jun 28 16:18:59 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 01:31:42 2011 -0400"
      },
      "message": "Btrfs: load the key from the dir item in readdir into a fake dentry\n\nIn btrfs we have 2 indexes for inodes.  One is for readdir, it\u0027s in this nice\nsequential order and works out brilliantly for readdir.  However if you use ls,\nit usually stat\u0027s each file it gets from readdir.  This is where the second\nindex comes in, which is based on a hash of the name of the file.  So then the\nlookup has to lookup this index, and then lookup the inode.  The index lookup is\ngoing to be in random order (since its based on the name hash), which gives us\nless than stellar performance.  Since we know the inode location from the\nreaddir index, I create a dummy dentry and copy the location key into\ndentry-\u003ed_fsdata.  Then on lookup if we have d_fsdata we use that location to\nlookup the inode, avoiding looking up the other directory index.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9d108d25487bf958f8093409a4c0bee6169edba6",
      "tree": "14e9e96403ffcec690f77f9e6f99429a1a2e535c",
      "parents": [
        "d6b722aa383a467a43d09ee38e866981abba08ab"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 27 22:27:33 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 27 22:27:33 2011 -0400"
      },
      "message": "devtmpfs: missing initialialization in never-hit case\n\ncreate_path() on something without a single / in it will return err\nwithout initializing it.  It actually can\u0027t happen (we call that thing\nonly if create on the same path returns -ENOENT, which won\u0027t happen\nhappen for single-component path), but in this case initializing err\nto 0 is more than making compiler to STFU - would be the right thing\nto return on such paths; the function creates a parent directory of\ngiven pathname and in that case it has no work to do...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d6b722aa383a467a43d09ee38e866981abba08ab",
      "tree": "62226cf32f7ec4367fa9dd1d96cc09cb7e577c7b",
      "parents": [
        "e371d46ae45488bcb112a99a7de462e9e3aa6764"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 27 22:21:58 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 27 22:21:58 2011 -0400"
      },
      "message": "hppfs: missing include\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e371d46ae45488bcb112a99a7de462e9e3aa6764",
      "tree": "9e2eceb292018e52304053bd8013cdb0a7f31dcc",
      "parents": [
        "b0189cd087aa82bd23277cb5c8960ab030e13e5c",
        "e57712ebebbb9db7d8dcef216437b3171ddcf115"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 18:30:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 18:30:20 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  merge fchmod() and fchmodat() guts, kill ancient broken kludge\n  xfs: fix misspelled S_IS...()\n  xfs: get rid of open-coded S_ISREG(), etc.\n  vfs: document locking requirements for d_move, __d_move and d_materialise_unique\n  omfs: fix (mode \u0026 S_IFDIR) abuse\n  btrfs: S_ISREG(mode) is not mode \u0026 S_IFREG...\n  ima: fmode_t misspelled as mode_t...\n  pci-label.c: size_t misspelled as mode_t\n  jffs2: S_ISLNK(mode \u0026 S_IFMT) is pointless\n  snd_msnd -\u003emode is fmode_t, not mode_t\n  v9fs_iop_get_acl: get rid of unused variable\n  vfs: dont chain pipe/anon/socket on superblock s_inodes list\n  Documentation: Exporting: update description of d_splice_alias\n  fs: add missing unlock in default_llseek()\n"
    },
    {
      "commit": "b0189cd087aa82bd23277cb5c8960ab030e13e5c",
      "tree": "7b1a4c152cd62ce136fd5b0e4379d58eb2244e66",
      "parents": [
        "69f1d1a6acbaa7d83ef3f4ee26209c58cd000204",
        "bc574e190d3fbed37d724e33a16aee326d6f2ac4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:42:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:42:18 2011 -0700"
      },
      "message": "Merge branch \u0027next/devel2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027next/devel2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (47 commits)\n  OMAP: Add debugfs node to show the summary of all clocks\n  OMAP2+: hwmod: Follow the recommended PRCM module enable sequence\n  OMAP2+: clock: allow per-SoC clock init code to prevent clockdomain calls from clock code\n  OMAP2+: clockdomain: Add per clkdm lock to prevent concurrent state programming\n  OMAP2+: PM: idle clkdms only if already in idle\n  OMAP2+: clockdomain: add clkdm_in_hwsup()\n  OMAP2+: clockdomain: Add 2 APIs to control clockdomain from hwmod framework\n  OMAP: clockdomain: Remove redundant call to pwrdm_wait_transition()\n  OMAP4: hwmod: Introduce the module control in hwmod control\n  OMAP4: cm: Add two new APIs for modulemode control\n  OMAP4: hwmod data: Add modulemode entry in omap_hwmod structure\n  OMAP4: hwmod data: Add PRM context register offset\n  OMAP4: prm: Remove deprecated functions\n  OMAP4: prm: Replace warm reset API with the offset based version\n  OMAP4: hwmod: Replace RSTCTRL absolute address with offset macros\n  OMAP: hwmod: Wait the idle status to be disabled\n  OMAP4: hwmod: Replace CLKCTRL absolute address with offset macros\n  OMAP2+: hwmod: Init clkdm field at boot time\n  OMAP4: hwmod data: Add clock domain attribute\n  OMAP4: clock data: Add missing divider selection for auxclks\n  ...\n"
    },
    {
      "commit": "69f1d1a6acbaa7d83ef3f4ee26209c58cd000204",
      "tree": "12be981f8a123b8361edd64b84fd72f339a9655d",
      "parents": [
        "2d86a3f04e345b03d5e429bfe14985ce26bff4dc",
        "1e09939bad24df95ddeeeca4fbec64fa94b66def"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:41:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:41:04 2011 -0700"
      },
      "message": "Merge branch \u0027next/devel\u0027 of ssh://master.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027next/devel\u0027 of ssh://master.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (128 commits)\n  ARM: S5P64X0: External Interrupt Support\n  ARM: EXYNOS4: Enable MFC on Samsung NURI\n  ARM: EXYNOS4: Enable MFC on universal_c210\n  ARM: S5PV210: Enable MFC on Goni\n  ARM: S5P: Add support for MFC device\n  ARM: EXYNOS4: Add support FIMD on SMDKC210\n  ARM: EXYNOS4: Add platform device and helper functions for FIMD\n  ARM: EXYNOS4: Add resource definition for FIMD\n  ARM: EXYNOS4: Change devname for FIMD clkdev\n  ARM: SAMSUNG: Add IRQ_I2S0 definition\n  ARM: SAMSUNG: Add platform device for idma\n  ARM: EXYNOS4: Add more registers to be saved and restored for PM\n  ARM: EXYNOS4: Add more register addresses of CMU\n  ARM: EXYNOS4: Add platform device for dwmci driver\n  ARM: EXYNOS4: configure rtc-s3c on NURI\n  ARM: EXYNOS4: configure MAX8903 secondary charger on NURI\n  ARM: EXYNOS4: configure ADC on NURI\n  ARM: EXYNOS4: configure MAX17042 fuel gauge on NURI\n  ARM: EXYNOS4: configure regulators and PMIC(MAX8997) on NURI\n  ARM: EXYNOS4: Increase NR_IRQS for devices with more IRQs\n  ...\n\nFix up tons of silly conflicts:\n - arch/arm/mach-davinci/include/mach/psc.h\n - arch/arm/mach-exynos4/Kconfig\n - arch/arm/mach-exynos4/mach-smdkc210.c\n - arch/arm/mach-exynos4/pm.c\n - arch/arm/mach-imx/mm-imx1.c\n - arch/arm/mach-imx/mm-imx21.c\n - arch/arm/mach-imx/mm-imx25.c\n - arch/arm/mach-imx/mm-imx27.c\n - arch/arm/mach-imx/mm-imx31.c\n - arch/arm/mach-imx/mm-imx35.c\n - arch/arm/mach-mx5/mm.c\n - arch/arm/mach-s5pv210/mach-goni.c\n - arch/arm/mm/Kconfig\n"
    },
    {
      "commit": "2d86a3f04e345b03d5e429bfe14985ce26bff4dc",
      "tree": "10d0d3e57fb65f4df6763e7ef859fdabcf4badd8",
      "parents": [
        "3960ef326a1838971466193ffa008ff37c1d978d",
        "5ddac6bc1c4bfcbf645d18668a5033ca257a8ea7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:13:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:13:04 2011 -0700"
      },
      "message": "Merge branch \u0027next/board\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027next/board\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  ARM: S3C64XX: Configure backup battery charger on Cragganmore\n  ARM: S3C64XX: Fix WM8915 IRQ polarity on Cragganmore\n  ARM: S3C64XX: Configure supplies for all Cragganmore regulators\n  ARM: S3C64XX: Refresh Cragganmore support\n  ARM: S3C64XX: Initial support for Wolfson/Simtec Cragganmore/Banff\n  OMAP4: Keyboard: Mux changes in the board file\n  omap: blaze: add mmc5/wl1283 device support\n  omap: 4430SDP: Register the card detect GPIO properly\n  arm: omap3: cm-t35: add support for cm-t3730\n  OMAP3: beagle: add support for beagleboard xM revision C\n  OMAP3: rx-51: Add full regulator definitions\n  omap: rx51: Platform support for lp5523 led chip\n"
    },
    {
      "commit": "3960ef326a1838971466193ffa008ff37c1d978d",
      "tree": "282b74377bccb9fa79639ce4df2dcb48652dbdec",
      "parents": [
        "62c9072bee2272232d0ed92dc8148c48c1f10f8e",
        "c8f85523e70f8202ff49858bacd72fa65245f382"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:12:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:12:10 2011 -0700"
      },
      "message": "Merge branch \u0027next/cross-platform\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027next/cross-platform\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  ARM: Consolidate the clkdev header files\n  ARM: set vga memory base at run-time\n  ARM: convert PCI defines to variables\n  ARM: pci: make pcibios_assign_all_busses use pci_has_flag\n  ARM: remove unnecessary mach/hardware.h includes\n  pci: move microblaze and powerpc pci flag functions into asm-generic\n  powerpc: rename ppc_pci_*_flags to pci_*_flags\n\nFix up conflicts in arch/microblaze/include/asm/pci-bridge.h\n"
    },
    {
      "commit": "62c9072bee2272232d0ed92dc8148c48c1f10f8e",
      "tree": "5c64b479af4b97cbc21db3d0a2a0afdae60d9e8f",
      "parents": [
        "4b30b6f23a1a59cda29cc12566eb4f32a22a8069",
        "c2fda22207e2977d0b80eac58a9004b6f8beed6d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:10:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:10:20 2011 -0700"
      },
      "message": "Merge branch \u0027next/fixes2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027next/fixes2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (24 commits)\n  ASoC: omap: McBSP: fix build breakage on OMAP1\n  OMAP: hwmod: fix the i2c-reset timeout during bootup\n  I2C: OMAP2+: add correct functionality flags to all omap2plus i2c dev_attr\n  I2C: OMAP2+: Tag all OMAP2+ hwmod defintions with I2C IP revision\n  I2C: OMAP1/OMAP2+: create omap I2C functionality flags for each cpu_... test\n  I2C: OMAP2+:  Introduce I2C IP versioning constants\n  I2C: OMAP2+: increase omap_i2c_dev_attr flags from u8 to u32\n  I2C: OMAP2+: Set hwmod flags to only allow 16-bit accesses to i2c\n  OMAP4: hwmod data: Change DSS main_clk scheme\n  OMAP4: powerdomain data: Remove unsupported MPU powerdomain state\n  OMAP4: clock data: Keep GPMC clocks always enabled and hardware managed\n  OMAP4: powerdomain data: Fix core mem states and missing cefuse flag\n  OMAP2+: PM: Initialise sleep_switch to a non-valid value\n  OMAP4: hwmod data: Modify DSS opt clocks\n  OMAP4: iommu: fix clock name\n  omap: iovmm: s/sg_dma_len(sg)/sg-\u003elength/\n  omap: iommu: fix pte programming\n  arm: omap3: cm-t35: fix slow path warning\n  arm: omap3: cm-t35: minor comments fixes\n  omap: ZOOM: QUART: Request reset GPIO\n  ...\n"
    },
    {
      "commit": "4b30b6f23a1a59cda29cc12566eb4f32a22a8069",
      "tree": "69e262a5065ce8be21c919febd29d5d9660f3e97",
      "parents": [
        "38da590bef19f23d4b610aecaad4f32de483890d",
        "6c59c115b0f295434cc4f917d180fecd84d39f81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:09:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 17:09:31 2011 -0700"
      },
      "message": "Merge branch \u0027next/soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc\n\n* \u0027next/soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:\n  MAINTAINERS: add maintainer of CSR SiRFprimaII machine\n  ARM: CSR: initializing L2 cache\n  ARM: CSR: mapping early DEBUG_LL uart\n  ARM: CSR: Adding CSR SiRFprimaII board support\n  OMAP4: clocks: Update the clock tree with 4460 clock nodes\n  OMAP4: PRCM: OMAP4460 specific PRM and CM register bitshifts\n  OMAP4: ID: add omap_has_feature for max freq supported\n  OMAP: ID: introduce chip detection for OMAP4460\n  ARM: Xilinx: merge board file into main platform code\n  ARM: Xilinx: Adding Xilinx board support\n\nFix up conflicts in arch/arm/mach-omap2/cm-regbits-44xx.h\n"
    },
    {
      "commit": "38da590bef19f23d4b610aecaad4f32de483890d",
      "tree": "4a1dbd0f6e1d171d5d366677e70b76f2e0d437e5",
      "parents": [
        "7505cb60c2d26301630b052852d484decf07aef1",
        "07e729ce894487e92405d3b221cffe587420a376"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:55:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:55:45 2011 -0700"
      },
      "message": "Merge branch \u0027next-i2c\u0027 of git://git.fluff.org/bjdooks/linux\n\n* \u0027next-i2c\u0027 of git://git.fluff.org/bjdooks/linux:\n  i2c-eg20t : Fix the issue of Combined R/W transfer mode\n  i2c-eg20t : Support Combined R/W transfer mode\n  i2c: Tegra: Add DeviceTree support\n"
    },
    {
      "commit": "7505cb60c2d26301630b052852d484decf07aef1",
      "tree": "9383737887787553bf90d42ee6886b59d80a52d8",
      "parents": [
        "00b3c28bd753afb46fb26b2f9e21dd27dacd80d4"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:09:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:48 2011 -0700"
      },
      "message": "asm-generic/atomic.h: allow SMP peeps to leverage this\n\nOnly a few core funcs need to be implemented for SMP systems, so allow the\narches to override them while getting the rest for free.\n\nAt least, this is enough to allow the Blackfin SMP port to use things.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00b3c28bd753afb46fb26b2f9e21dd27dacd80d4",
      "tree": "461b90948bd8dbd31a1752071c9d0a5cc1412185",
      "parents": [
        "f6081bd3f8152cdd3d857f55631bbb4b72182b82"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:09:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:48 2011 -0700"
      },
      "message": "asm-generic/atomic.h: add atomic_set_mask() helper\n\nSince arches are expected to implement this guy, add a common version for\npeople the same way as atomic_clear_mask is handled.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f6081bd3f8152cdd3d857f55631bbb4b72182b82",
      "tree": "fa6cf9b5432ea33d8182d2a64465d28ecfc13315",
      "parents": [
        "3eea44ea753923c6af90be808426ecddc482de61"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:09:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "asm-generic/atomic.h: fix type used in atomic_clear_mask\n\nThe atomic helpers are supposed to take an atomic_t pointer, not a random\nunsigned long pointer.  So convert atomic_clear_mask over.\n\nWhile we\u0027re here, also add some nice documentation to the func.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eea44ea753923c6af90be808426ecddc482de61",
      "tree": "6396fde749790461d6e355a0bf4d3ec88b56831b",
      "parents": [
        "acac43e2fc4b14ecf1ff229eaa8d1e011d063749"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:09:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "asm-generic/atomic.h: simplify inc/dec test helpers\n\nWe already declared inc/dec helpers, so we don\u0027t need to call the\natomic_{add,sub}_return funcs directly.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Arun Sharma \u003casharma@fb.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acac43e2fc4b14ecf1ff229eaa8d1e011d063749",
      "tree": "a0fb12d4ef71a408755a383d8c597ada8a92cbf4",
      "parents": [
        "7847777a45f9f8bfc8617dbf107bde1ecb59caee"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: Update comments in atomic.h\n\nThis clarifies the differences between \u003clinux/atomic.h\u003e and\n\u003casm-generic/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nSuggested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7847777a45f9f8bfc8617dbf107bde1ecb59caee",
      "tree": "f9e31828db79e607a763f1eaea2119b2f270dcdb",
      "parents": [
        "f24219b4e90cf70ec4a211b17fbabc725a0ddf3c"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: cleanup asm-generic atomic*.h inclusion\n\nAfter changing all consumers of atomics to include \u003clinux/atomic.h\u003e, we\nran into some compile time errors due to this dependency chain:\n\nlinux/atomic.h\n  -\u003e asm/atomic.h\n    -\u003e asm-generic/atomic-long.h\n\nwhere atomic-long.h could use funcs defined later in linux/atomic.h\nwithout a prototype.  This patches moves the code that includes\nasm-generic/atomic*.h to linux/atomic.h.\n\nArchs that need \u003casm-generic/atomic64.h\u003e need to select\nCONFIG_GENERIC_ATOMIC64 from now on (some of them used to include it\nunconditionally).\n\nCompile tested on i386 and x86_64 with allnoconfig.\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f24219b4e90cf70ec4a211b17fbabc725a0ddf3c",
      "tree": "c1c753bd425d61a5094995d9835b23b46383d9b2",
      "parents": [
        "60063497a95e716c9a689af3be2687d261f115b4"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: move atomic_add_unless to generic code\n\nThis is in preparation for more generic atomic primitives based on\n__atomic_add_unless.\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nSigned-off-by: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed",
      "tree": "75cc7df62c9713bc1a44738026878a79653faa38",
      "parents": [
        "b2c9cd3793e5878e301ec2219785a7b8ca402ef1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "asm-generic: add another generic ext2 atomic bitops\n\nThe majority of architectures implement ext2 atomic bitops as\ntest_and_{set,clear}_bit() without spinlock.\n\nThis adds this type of generic implementation in ext2-atomic-setbit.h and\nuse it wherever possible.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSuggested-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\nSuggested-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2c9cd3793e5878e301ec2219785a7b8ca402ef1",
      "tree": "e0a8a447ea8c6d59c20a1e190e2c397bfcd46a49",
      "parents": [
        "b2588c4b4c3c075e9b45d61065d86c60de2b6441"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "fail_make_request: cleanup should_fail_request\n\nThis changes should_fail_request() to more usable wrapper function of\nshould_fail().  It can avoid putting #ifdef CONFIG_FAIL_MAKE_REQUEST in\nthe middle of a function.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b2588c4b4c3c075e9b45d61065d86c60de2b6441",
      "tree": "66942e8a252101aaa7e1f0a2ee2c3d8288dda659",
      "parents": [
        "810f09b87b75d7cc3906ffffe4311003f37caa2a"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "fail_page_alloc: simplify debugfs initialization\n\nNow cleanup_fault_attr_dentries() recursively removes a directory, So we\ncan simplify the error handling in the initialization code and no need\nto hold dentry structs for each debugfs file.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "810f09b87b75d7cc3906ffffe4311003f37caa2a",
      "tree": "0c1df5b5dbcc724d3c5cefd9ae4e5168121183d5",
      "parents": [
        "7f5ddcc8d3eaccd5e169fda738530f937509645e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "failslab: simplify debugfs initialization\n\nNow cleanup_fault_attr_dentries() recursively removes a directory, So we\ncan simplify the error handling in the initialization code and no need\nto hold dentry structs for each debugfs file.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f5ddcc8d3eaccd5e169fda738530f937509645e",
      "tree": "14f5581871040f98bbdab864314e1afc00a19a4c",
      "parents": [
        "8307fc257cf3931d87e172bd8663e80c3d1e56a3"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:02 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "fault-injection: use debugfs_remove_recursive\n\nUse debugfs_remove_recursive() to simplify initialization and\ndeinitialization of fault injection debugfs files.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8307fc257cf3931d87e172bd8663e80c3d1e56a3",
      "tree": "4f265586a0617284be4baec5b5d6990cdea13b31",
      "parents": [
        "6b16f748a0d4546726bb53cad58525adfd6425e9"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:01 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "fault-injection: cleanup simple attribute of stacktrace_depth\n\nMinor cosmetic changes for simple attribute of stacktrace_depth:\n\n - use min_t()\n - reduce #ifdef by moving a function\n - do not use partly capitalized function name\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b16f748a0d4546726bb53cad58525adfd6425e9",
      "tree": "7adfca0e9adf5601650a137e93025b52cee6eb2d",
      "parents": [
        "35f46764f0101f1aca60c26de96e0c4e8e3d011f"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "fault-injection: remove nonexistent function extern\n\nshould_fail_srandom() does not exist.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35f46764f0101f1aca60c26de96e0c4e8e3d011f",
      "tree": "ca52d73e99da5774f960d320e0afe2e7e8868e46",
      "parents": [
        "3e5c4fadb9943c7539364d0c8425db071a2020e4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 26 16:09:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "fault-injection: do not include unneeded header\n\nNo need to include linux/kallsyms.h.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e5c4fadb9943c7539364d0c8425db071a2020e4",
      "tree": "34f1d5c4cbf2f330e9fd1210da6dabde3befa6bf",
      "parents": [
        "6b4d2a2733b9a17112f746d498c9f9a0427dcdd8"
      ],
      "author": {
        "name": "Sergiu Iordache",
        "email": "sergiu@chromium.org",
        "time": "Tue Jul 26 16:08:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:46 2011 -0700"
      },
      "message": "ramoops: make record_size a module parameter\n\nThe size of the dump is currently set using the RECORD_SIZE macro which\nis set to a page size.  This patch makes the record size a module\nparameter and allows it to be set through platform data as well to allow\nlarger dumps if needed.\n\nSigned-off-by: Sergiu Iordache \u003csergiu@chromium.org\u003e\nAcked-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nCc: \"Ahmed S. Darwish\" \u003cdarwish.07@gmail.com\u003e\nCc: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b4d2a2733b9a17112f746d498c9f9a0427dcdd8",
      "tree": "c0c637da5ede8828728bad87fba41e7ca7f11ca1",
      "parents": [
        "0169256e4bbf29e507cdd1df5812c093d610f1d5"
      ],
      "author": {
        "name": "Sergiu Iordache",
        "email": "sergiu@chromium.org",
        "time": "Tue Jul 26 16:08:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "ramoops: move dump_oops into platform data\n\nThe platform driver currently allows setting the mem_size and\nmem_address.\n\nince dump_oops is also a module parameter it would be more consistent if\nit could be set through platform data as well.\n\nSigned-off-by: Sergiu Iordache \u003csergiu@chromium.org\u003e\nAcked-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nCc: \"Ahmed S. Darwish\" \u003cdarwish.07@gmail.com\u003e\nCc: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0169256e4bbf29e507cdd1df5812c093d610f1d5",
      "tree": "9eb6a08580341cc4d8499217f89063577e604d3d",
      "parents": [
        "13aefd7293e7a697bbf452fca65e69cc1fa8a31c"
      ],
      "author": {
        "name": "Marco Stornelli",
        "email": "marco.stornelli@gmail.com",
        "time": "Tue Jul 26 16:08:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "ramoops: add new line to each print\n\nAdd new line to each print.\n\nSigned-off-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nReported-by: Stevie Trujillo \u003cstevie.trujillo@gmail.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Américo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13aefd7293e7a697bbf452fca65e69cc1fa8a31c",
      "tree": "2d8c2039904eda4b9079cae83145c541e8dc8c01",
      "parents": [
        "beda94da38d2a3bf7f40c01f0a8e6d86067c91cc"
      ],
      "author": {
        "name": "Marco Stornelli",
        "email": "marco.stornelli@gmail.com",
        "time": "Tue Jul 26 16:08:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "ramoops: use module parameters instead of platform data if not available\n\nUse generic module parameters instead of platform data, if platform data\nare not available.  This limitation has been introduced with commit\nc3b92ce9e75 (\"ramoops: use the platform data structure instead of module\nparams\").\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Américo Wang \u003cxiyou.wangcong@gmail.com\u003e\nReported-by: Stevie Trujillo \u003cstevie.trujillo@gmail.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "beda94da38d2a3bf7f40c01f0a8e6d86067c91cc",
      "tree": "8ba71064abc8d9ee10370ac40d66a1189dba1423",
      "parents": [
        "f7b1371eb6b3ff72e38de220663b22f7cc9df296"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@vmware.com",
        "time": "Tue Jul 26 16:08:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "Vmware balloon: switch to using sysem-wide freezable workqueue\n\nWith the arrival of concurrency-managed workqueues there is no need for\nour driver to use dedicated workqueue; system-wide one should suffice just\nfine.\n\n[akpm@linux-foundation.org: fix comment layout \u0026 grammar]\nSigned-off-by: Dmitry Torokhov \u003cdtor@vmware.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7b1371eb6b3ff72e38de220663b22f7cc9df296",
      "tree": "77befe95ffea3a30a5ca70ed2c7c18338516a779",
      "parents": [
        "c958474b6d721ff09e4abf143efc07365d63aea5"
      ],
      "author": {
        "name": "Christian Glindkamp",
        "email": "christian.glindkamp@taskit.de",
        "time": "Tue Jul 26 16:08:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "drivers/w1/slaves/w1_therm.c: add support for DS28EA00\n\nSigned-off-by: Christian Glindkamp \u003cchristian.glindkamp@taskit.de\u003e\nCc: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c958474b6d721ff09e4abf143efc07365d63aea5",
      "tree": "9fbf1f273fcb39d72d5e66a17ed9f0f45c4e7cb6",
      "parents": [
        "4302fbc8ec2ccae279c939f241bf8ce64e1a0bb7"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Tue Jul 26 16:08:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "panic, vt: do not force oops output when panic_timeout \u003c 0\n\nDon\u0027t force output if you intend to reboot immediately.\n\nIn this patch, I\u0027m disabling the functionality enabled by\nvc-\u003evc_panic_force_write if panic_timeout \u003c 0 (i.e.  no timeout).\nvc_panic_force_write is only enabled for fb video consoles if the\nFBINFO_CAN_FORCE_OUTPUT flag is set.\n\nFor our application, we\u0027re using ram_oops to preserved the panic in\nmemory.  We want to reliably, and as fast as possible, machine_restart.\nThe vc_panic_force_write flag results in a bunch of graphics driver code\nto be invoked which slows down restart and decreases reliability.  Since\nwe\u0027re already storing the panic in RAM and are going to reboot\nimmediately, there is no benefit in mode switching back to the vc in\norder to display the panic output.  The log buffer will get flushed by\nthe console_unblank() call so remote management consoles should see all\noutput.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Olaf Hering \u003colaf@aepfle.de\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Dave Airlie \u003cairlied@gmail.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4302fbc8ec2ccae279c939f241bf8ce64e1a0bb7",
      "tree": "01b7bfa2388d7996fee86c6a4e291605d2303530",
      "parents": [
        "3f0fb4e85b3842a2606c647c0a66afe2073574b4"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@chromium.org",
        "time": "Tue Jul 26 16:08:52 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "panic: panic\u003d-1 for immediate reboot\n\nWhen a kernel BUG or oops occurs, ChromeOS intends to panic and\nimmediately reboot, with stacktrace and other messages preserved in RAM\nacross reboot.\n\nBut the longer we delay, the more likely the user is to poweroff and\nlose the info.\n\npanic_timeout (seconds before rebooting) is set by panic\u003d boot option or\nsysctl or /proc/sys/kernel/panic; but 0 means wait forever, so at\npresent we have to delay at least 1 second.\n\nLet a negative number mean reboot immediately (with the small cosmetic\nbenefit of suppressing that newline-less \"Rebooting in %d seconds..\"\nmessage).\n\nSigned-off-by: Hugh Dickins \u003chughd@chromium.org\u003e\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Olaf Hering \u003colaf@aepfle.de\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Dave Airlie \u003cairlied@gmail.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f0fb4e85b3842a2606c647c0a66afe2073574b4",
      "tree": "071ed60729b9c14bc88db707d0e4020cf717184c",
      "parents": [
        "91f6cdf86e8a2bd9b9c292a750179dc2c728a2d4"
      ],
      "author": {
        "name": "Michal Miroslaw",
        "email": "mirq-linux@rere.qmqm.pl",
        "time": "Tue Jul 26 16:08:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "Documentation/DMA-API-HOWTO.txt: fix misleading example\n\nSee: DMA-API.txt, part Id, DMA_FROM_DEVICE description.\n\nSigned-off-by: Michal Miroslaw \u003cmirq-linux@rere.qmqm.pl\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "91f6cdf86e8a2bd9b9c292a750179dc2c728a2d4",
      "tree": "9c58979358d38c20e2f299c1dfb830a4d66b8e62",
      "parents": [
        "947be5dfdaaef01b43a3d5444688ebef2bd263d4"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Jul 26 16:08:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "include/linux/dma-mapping.h: remove DMA_xxBIT_MASK macros\n\ngit grep shows there are no users in tree, so we can remove them safely.\n\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nAcked-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nAcked-by: Vinod Koul \u003cvinod.koul@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "947be5dfdaaef01b43a3d5444688ebef2bd263d4",
      "tree": "5abd88d64059278c952a84c9a07a59d8b50040d6",
      "parents": [
        "444d2921215ae6c21f90eb5fa5d03f784f84f1aa"
      ],
      "author": {
        "name": "Vitaliy Ivanov",
        "email": "vitalivanov@gmail.com",
        "time": "Tue Jul 26 16:08:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "gcov: disable CONSTRUCTORS for UML\n\nSelecting GCOV for UML causing configuration mismatch:\n\n  warning: (GCOV_KERNEL) selects CONSTRUCTORS which has unmet direct dependencies (!UML)\n\nConstructors are not needed for UML.\n\nSigned-off-by: Vitaliy Ivanov \u003cvitalivanov@gmail.com\u003e\nCc: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nAcked-by: Richard Weinberger \u003crichard@nod.at\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "444d2921215ae6c21f90eb5fa5d03f784f84f1aa",
      "tree": "576048f72d3460958b466849282ce9866d29ea27",
      "parents": [
        "b34a6b1da371ed8af1221459a18c67970f7e3d53"
      ],
      "author": {
        "name": "Kai.Jiang",
        "email": "Kai.Jiang@freescale.com",
        "time": "Tue Jul 26 16:08:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:45 2011 -0700"
      },
      "message": "drivers/edac/mpc85xx_edac.c: correct offset_in_page mask bits in edac_mc_handle_ce()\n\nParameter offset_in_page in edac_mc_handle_ce() should mask the higher\nbits above the page size, not the lower bits.  The original input\nsometimes causes a crash.\n\nSigned-off-by: Kai.Jiang \u003cKai.Jiang@freescale.com\u003e\nSigned-off-by: Shaohui Xie \u003cShaohui.Xie@freescale.com\u003e\nCc: Anton Vorontsov \u003cavorontsov@mvista.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b34a6b1da371ed8af1221459a18c67970f7e3d53",
      "tree": "5addc850de13623b172395b9d0d7d670930fa6b3",
      "parents": [
        "d40dcdb0172a1ba853464983a059fb45e0aaf61a"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Tue Jul 26 16:08:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "ipc: introduce shm_rmid_forced sysctl\n\nAdd support for the shm_rmid_forced sysctl.  If set to 1, all shared\nmemory objects in current ipc namespace will be automatically forced to\nuse IPC_RMID.\n\nThe POSIX way of handling shmem allows one to create shm objects and\ncall shmdt(), leaving shm object associated with no process, thus\nconsuming memory not counted via rlimits.\n\nWith shm_rmid_forced\u003d1 the shared memory object is counted at least for\none process, so OOM killer may effectively kill the fat process holding\nthe shared memory.\n\nIt obviously breaks POSIX - some programs relying on the feature would\nstop working.  So set shm_rmid_forced\u003d1 only if you\u0027re sure nobody uses\n\"orphaned\" memory.  Use shm_rmid_forced\u003d0 by default for compatability\nreasons.\n\nThe feature was previously impemented in -ow as a configure option.\n\n[akpm@linux-foundation.org: fix documentation, per Randy]\n[akpm@linux-foundation.org: fix warning]\n[akpm@linux-foundation.org: readability/conventionality tweaks]\n[akpm@linux-foundation.org: fix shm_rmid_forced/shm_forced_rmid confusion, use standard comment layout]\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserge.hallyn@canonical.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Solar Designer \u003csolar@openwall.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d40dcdb0172a1ba853464983a059fb45e0aaf61a",
      "tree": "aa785c01ad6763c92191b86ec10f526fa772b808",
      "parents": [
        "04715206c0c2fd4ec5ca77fa51e3a5b41ce71492"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Tue Jul 26 16:08:47 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "ipc/mqueue.c: fix mq_open() return value\n\nWe return ENOMEM from mqueue_get_inode even when we have enough memory.\nNamely in case the system rlimit of mqueue was reached.  This error\npropagates to mq_queue and user sees the error unexpectedly.  So fix\nthis up to properly return EMFILE as described in the manpage:\n\n\tEMFILE The process already has the maximum number of files and\n\t       message queues open.\n\ninstead of:\n\n\tENOMEM Insufficient memory.\n\nWith the previous patch we just switch to ERR_PTR/PTR_ERR/IS_ERR error\nhandling here.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04715206c0c2fd4ec5ca77fa51e3a5b41ce71492",
      "tree": "fbead768d176d82e5e1ff6021c030b8cd6d26c9f",
      "parents": [
        "a64a26e822ddb739de464540dfd2cbb6abce47d5"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Tue Jul 26 16:08:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "ipc/mqueue.c: refactor failure handling\n\nIf new_inode fails to allocate an inode we need only to return with\nNULL.  But now we test the opposite and have all the work in a nested\nblock.  So do the opposite to save one indentation level (and remove\nunnecessary line breaks).\n\nThis is only a preparation/cleanup for the next patch where we fix up\nreturn values from mqueue_get_inode.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a64a26e822ddb739de464540dfd2cbb6abce47d5",
      "tree": "95d8e783342d64c2c63d98ec5814b4405cab7370",
      "parents": [
        "37e7b5f1535dddaace865b25df34a2d049a3a66f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jul 26 16:08:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "cpumask: add cpumask_var_t documentation\n\ncpumask_var_t has one notable difference from cpumask_t.  Add the\nexplanation.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Thiago Farina \u003ctfransosi@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "37e7b5f1535dddaace865b25df34a2d049a3a66f",
      "tree": "b7e86149b5b74170039cbd1cbe2c172f6408bd3d",
      "parents": [
        "95918f4a72ce1dbbd2ce67a7c3bfff31335f4219"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jul 26 16:08:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "cpumask: alloc_cpumask_var() use NUMA_NO_NODE\n\nNUMA_NO_NODE and numa_node_id() have different meanings.  NUMA_NO_NODE is\nobviously the recommended fallback.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95918f4a72ce1dbbd2ce67a7c3bfff31335f4219",
      "tree": "b9dc883f7b96a774522cfbb0bd87d46aed525e2d",
      "parents": [
        "32e107f71e4a993ac438f0049aa4019457911ffb"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jul 26 16:08:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "cpumask: convert for_each_cpumask() with for_each_cpu()\n\nAdapt new API fashion.\n\nSigned-off-by: 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": "32e107f71e4a993ac438f0049aa4019457911ffb",
      "tree": "3c022205c424db5d614448f5de1fbd8d9a485e89",
      "parents": [
        "b4edf8bd06916645b57df23a720b17cae4051c43"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 26 16:08:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "fs/exec.c:acct_arg_size(): ptl is no longer needed for add_mm_counter()\n\nacct_arg_size() takes -\u003epage_table_lock around add_mm_counter() if\n!SPLIT_RSS_COUNTING.  This is not needed after commit 172703b08cd0 (\"mm:\ndelete non-atomic mm counter implementation\").\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Matt Fleming \u003cmatt.fleming@linux.intel.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4edf8bd06916645b57df23a720b17cae4051c43",
      "tree": "d0b6a63dfb043822d28498eae9a89553765ce3fe",
      "parents": [
        "912193521b719fbfc2f16776febf5232fe8ba261"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@i-love.sakura.ne.jp",
        "time": "Tue Jul 26 16:08:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "exec: do not retry load_binary method if CONFIG_MODULES\u003dn\n\nIf CONFIG_MODULES\u003dn, it makes no sense to retry the list of binary formats\nhandler because the list will not be modified by request_module().\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "912193521b719fbfc2f16776febf5232fe8ba261",
      "tree": "df180e94ec0595744da6eb11f6164e539c73ea91",
      "parents": [
        "aacb3d17a73f6447c04e4d769391238dcf85568d"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Tue Jul 26 16:08:41 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "exec: do not call request_module() twice from search_binary_handler()\n\nCurrently, search_binary_handler() tries to load binary loader module\nusing request_module() if a loader for the requested program is not yet\nloaded.  But second attempt of request_module() does not affect the result\nof search_binary_handler().\n\nIf request_module() triggered recursion, calling request_module() twice\ncauses 2 to the power of MAX_KMOD_CONCURRENT (\u003d 50) repetitions.  It is\nnot an infinite loop but is sufficient for users to consider as a hang up.\n\nTherefore, this patch changes not to call request_module() twice, making 1\nto the power of MAX_KMOD_CONCURRENT repetitions in case of recursion.\n\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nReported-by: Richard Weinberger \u003crichard@nod.at\u003e\nTested-by: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aacb3d17a73f6447c04e4d769391238dcf85568d",
      "tree": "6f593f5399c72de51dc320476fa8d04e04ae46a0",
      "parents": [
        "fb0a685cb95a0267a96153af2f72486f27be5847"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jul 26 16:08:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "fs/exec.c: use BUILD_BUG_ON for VM_STACK_FLAGS \u0026 VM_STACK_INCOMPLETE_SETUP\n\nCommit a8bef8ff6ea1 (\"mm: migration: avoid race between\nshift_arg_pages() and rmap_walk() during migration by not migrating\ntemporary stacks\") introduced a BUG_ON() to ensure that VM_STACK_FLAGS\nand VM_STACK_INCOMPLETE_SETUP do not overlap.  The check is a compile\ntime one, so BUILD_BUG_ON is more appropriate.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb0a685cb95a0267a96153af2f72486f27be5847",
      "tree": "99ffae5ab7733ce8a1819fec51ca137a3af48d37",
      "parents": [
        "293eb1e7772b25a93647c798c7b89bf26c2da2e0"
      ],
      "author": {
        "name": "Daniel Rebelo de Oliveira",
        "email": "psykon@gmail.com",
        "time": "Tue Jul 26 16:08:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:44 2011 -0700"
      },
      "message": "kernel/fork.c: fix a few coding style issues\n\nSigned-off-by: Daniel Rebelo de Oliveira \u003cpsykon@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "293eb1e7772b25a93647c798c7b89bf26c2da2e0",
      "tree": "debd49012773091732ee1e1b2388462b759525a7",
      "parents": [
        "d2857e79a2ba7c155eaa1a7d3581c8d26b31e54e"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Tue Jul 26 16:08:38 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "proc: fix a race in do_io_accounting()\n\nIf an inode\u0027s mode permits opening /proc/PID/io and the resulting file\ndescriptor is kept across execve() of a setuid or similar binary, the\nptrace_may_access() check tries to prevent using this fd against the\ntask with escalated privileges.\n\nUnfortunately, there is a race in the check against execve().  If\nexecve() is processed after the ptrace check, but before the actual io\ninformation gathering, io statistics will be gathered from the\nprivileged process.  At least in theory this might lead to gathering\nsensible information (like ssh/ftp password length) that wouldn\u0027t be\navailable otherwise.\n\nHolding task-\u003esignal-\u003ecred_guard_mutex while gathering the io\ninformation should protect against the race.\n\nThe order of locking is similar to the one inside of ptrace_attach():\nfirst goes cred_guard_mutex, then lock_task_sighand().\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2857e79a2ba7c155eaa1a7d3581c8d26b31e54e",
      "tree": "6e008e65884e991c8696de2862166b7a0d603e06",
      "parents": [
        "5296f6d315bdd8f1dc97348b788638327a6ab192"
      ],
      "author": {
        "name": "Daisuke Ogino",
        "email": "ogino.daisuke@jp.fujitsu.com",
        "time": "Tue Jul 26 16:08:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "procfs: return ENOENT on opening a being-removed proc entry\n\nChange the return value to ENOENT.  This return value is then returned\nwhen opening the proc entry that have been removed.  For example,\nopen(\"/proc/bus/pci/XX/YY\") when the corresponding device is being\nhot-removed.\n\nSigned-off-by: Daisuke Ogino \u003cogino.daisuke@jp.fujitsu.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nAcked-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5296f6d315bdd8f1dc97348b788638327a6ab192",
      "tree": "311668f20565389a8dacaf1acdfc7c6406e649a4",
      "parents": [
        "99b64567486716d18b2156cad188d86478816e4f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jul 26 16:08:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "h8300/m68k/xtensa: __FD_ISSET should return 0/1\n\nHarmonise these return values with other architectures.  In some cases\nthis affects all compilers and in other cases non-gcc compilers only.\n\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: Ulrich Drepper \u003cdrepper@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99b64567486716d18b2156cad188d86478816e4f",
      "tree": "40ab51505909d417c01877c3dff97b7cabcf473d",
      "parents": [
        "2c563731fee0f625924f72e854957bc77601e8b3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jul 26 16:08:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "do_coredump: fix the \"ispipe\" error check\n\ndo_coredump() assumes that if format_corename() fails it should return\n-ENOMEM.  This is not true, for example cn_print_exe_file() can propagate\nthe error from d_path.  Even if it was true, this is too fragile.  Change\nthe code to check \"ispipe \u003c 0\".\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nReviewed-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c563731fee0f625924f72e854957bc77601e8b3",
      "tree": "76091ee6de5c2ca1eea2919b4dc5322e9472cf52",
      "parents": [
        "3141c8b165644774eb0e83d8330fbe47e45b37bf"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Tue Jul 26 16:08:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "coredump: escape / in hostname and comm\n\nChange every occurence of / in comm and hostname to !.  If the process\nchanges its name to contain /, the core is not dumped (if the directory\ntree doesn\u0027t exist like that).  The same with hostname being something\nlike myhost/3.  Fix this behaviour by using the escape loop used in %E.\n(We extract it to a separate function.)\n\nNow both with comm \u003d\u003d myprocess/1 and hostname \u003d\u003d myhost/1, the core is\ndumped like (kernel.core_pattern\u003d\u0027core.%p.%e.%h):\ncore.2349.myprocess!1.myhost!1\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3141c8b165644774eb0e83d8330fbe47e45b37bf",
      "tree": "e3b970cc1afd1900d86d69c18a8ed0f7cfd01c5d",
      "parents": [
        "0e9a6cb5e66f4b23e2a8f6b3f00949b7b3125dda"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Tue Jul 26 16:08:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "coredump: use task comm instead of (unknown)\n\nIf we don\u0027t know the file corresponding to the binary (i.e.  exe_file is\nunknown), use \"task-\u003ecomm (path unknown)\" instead of simple \"(unknown)\"\nas suggested by ak.\n\nThe fallback is the same as %e except it will append \"(path unknown)\".\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e9a6cb5e66f4b23e2a8f6b3f00949b7b3125dda",
      "tree": "f5ae8bd305b7df5f9dcb75ea86b05174c3dc5b90",
      "parents": [
        "778d3b0ff0654ad7092bf823fd32010066b12365"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jul 26 16:08:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "ptrace: unify show_regs() prototype\n\n[ poleg@redhat.com: no need to declare show_regs() in ptrace.h, sched.h does this ]\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "778d3b0ff0654ad7092bf823fd32010066b12365",
      "tree": "cd0073d8c513e1c56fd6950c4ec985f16fd004ad",
      "parents": [
        "8521fc50d433507a7cdc96bec280f9e5888a54cc"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jul 26 16:08:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "cpusets: randomize node rotor used in cpuset_mem_spread_node()\n\n[ This patch has already been accepted as commit 0ac0c0d0f837 but later\n  reverted (commit 35926ff5fba8) because it itroduced arch specific\n  __node_random which was defined only for x86 code so it broke other\n  archs.  This is a followup without any arch specific code.  Other than\n  that there are no functional changes.]\n\nSome workloads that create a large number of small files tend to assign\ntoo many pages to node 0 (multi-node systems).  Part of the reason is\nthat the rotor (in cpuset_mem_spread_node()) used to assign nodes starts\nat node 0 for newly created tasks.\n\nThis patch changes the rotor to be initialized to a random node number\nof the cpuset.\n\n[akpm@linux-foundation.org: fix layout]\n[Lee.Schermerhorn@hp.com: Define stub numa_random() for !NUMA configuration]\n[mhocko@suse.cz: Make it arch independent]\n[akpm@linux-foundation.org: fix CONFIG_NUMA\u003dy, MAX_NUMNODES\u003e1 build]\nSigned-off-by: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8521fc50d433507a7cdc96bec280f9e5888a54cc",
      "tree": "b89d7b2eb34ba80b52e1f89ca767a86847df59b8",
      "parents": [
        "3e92041d68b40c47faa34c7dc08fc650a6c36adc"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jul 26 16:08:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "memcg: get rid of percpu_charge_mutex lock\n\npercpu_charge_mutex protects from multiple simultaneous per-cpu charge\ncaches draining because we might end up having too many work items.  At\nleast this was the case until commit 26fe61684449 (\"memcg: fix percpu\ncached charge draining frequency\") when we introduced a more targeted\ndraining for async mode.\n\nNow that also sync draining is targeted we can safely remove mutex\nbecause we will not send more work than the current number of CPUs.\nFLUSHING_CACHED_CHARGE protects from sending the same work multiple\ntimes and stock-\u003enr_pages \u003d\u003d 0 protects from pointless sending a work if\nthere is obviously nothing to be done.  This is of course racy but we\ncan live with it as the race window is really small (we would have to\nsee FLUSHING_CACHED_CHARGE cleared while nr_pages would be still\nnon-zero).\n\nThe only remaining place where we can race is synchronous mode when we\nrely on FLUSHING_CACHED_CHARGE test which might have been set by other\ndrainer on the same group but we should wait in that case as well.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e92041d68b40c47faa34c7dc08fc650a6c36adc",
      "tree": "29eab5bcd1bbf333cb25ed140a245645f9d7e0c4",
      "parents": [
        "d38144b7a5f8d0a5e05d549177191374c6911009"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jul 26 16:08:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:43 2011 -0700"
      },
      "message": "memcg: add mem_cgroup_same_or_subtree() helper\n\nWe are checking whether a given two groups are same or at least in the\nsame subtree of a hierarchy at several places.  Let\u0027s make a helper for\nit to make code easier to read.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d38144b7a5f8d0a5e05d549177191374c6911009",
      "tree": "ca0737291d22791c66aad10ad1218afc3dac51fd",
      "parents": [
        "d1a05b6973c7cb33144fa965d73facc708ffc37d"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jul 26 16:08:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: unify sync and async per-cpu charge cache draining\n\nCurrently we have two ways how to drain per-CPU caches for charges.\ndrain_all_stock_sync will synchronously drain all caches while\ndrain_all_stock_async will asynchronously drain only those that refer to\na given memory cgroup or its subtree in hierarchy.  Targeted async\ndraining has been introduced by 26fe6168 (memcg: fix percpu cached\ncharge draining frequency) to reduce the cpu workers number.\n\nsync draining is currently triggered only from mem_cgroup_force_empty\nwhich is triggered only by userspace (mem_cgroup_force_empty_write) or\nwhen a cgroup is removed (mem_cgroup_pre_destroy).  Although these are\nnot usually frequent operations it still makes some sense to do targeted\ndraining as well, especially if the box has many CPUs.\n\nThis patch unifies both methods to use the single code (drain_all_stock)\nwhich relies on the original async implementation and just adds\nflush_work to wait on all caches that are still under work for the sync\nmode.  We are using FLUSHING_CACHED_CHARGE bit check to prevent from\nwaiting on a work that we haven\u0027t triggered.  Please note that both sync\nand async functions are currently protected by percpu_charge_mutex so we\ncannot race with other drainers.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1a05b6973c7cb33144fa965d73facc708ffc37d",
      "tree": "463a8bfedd56b4972f273c816fa62a55d7bc4754",
      "parents": [
        "82f9d486e59f588c7d100865c36510644abda356"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jul 26 16:08:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: do not try to drain per-cpu caches without pages\n\ndrain_all_stock_async tries to optimize a work to be done on the work\nqueue by excluding any work for the current CPU because it assumes that\nthe context we are called from already tried to charge from that cache\nand it\u0027s failed so it must be empty already.\n\nWhile the assumption is correct we can optimize it even more by checking\nthe current number of pages in the cache.  This will also reduce a work\non other CPUs with an empty stock.\n\nFor the current CPU we can simply call drain_local_stock rather than\ndeferring it to the work queue.\n\n[kamezawa.hiroyu@jp.fujitsu.com: use drain_local_stock for current CPU optimization]\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82f9d486e59f588c7d100865c36510644abda356",
      "tree": "266f3dcf4f57538196bddd77a129adfb2752335b",
      "parents": [
        "108b6a78463bb8c7163e4f9779f36ad8bbade334"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jul 26 16:08:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: add memory.vmscan_stat\n\nThe commit log of 0ae5e89c60c9 (\"memcg: count the soft_limit reclaim\nin...\") says it adds scanning stats to memory.stat file.  But it doesn\u0027t\nbecause we considered we needed to make a concensus for such new APIs.\n\nThis patch is a trial to add memory.scan_stat. This shows\n  - the number of scanned pages(total, anon, file)\n  - the number of rotated pages(total, anon, file)\n  - the number of freed pages(total, anon, file)\n  - the number of elaplsed time (including sleep/pause time)\n\n  for both of direct/soft reclaim.\n\nThe biggest difference with oringinal Ying\u0027s one is that this file\ncan be reset by some write, as\n\n  # echo 0 ...../memory.scan_stat\n\nExample of output is here. This is a result after make -j 6 kernel\nunder 300M limit.\n\n  [kamezawa@bluextal ~]$ cat /cgroup/memory/A/memory.scan_stat\n  [kamezawa@bluextal ~]$ cat /cgroup/memory/A/memory.vmscan_stat\n  scanned_pages_by_limit 9471864\n  scanned_anon_pages_by_limit 6640629\n  scanned_file_pages_by_limit 2831235\n  rotated_pages_by_limit 4243974\n  rotated_anon_pages_by_limit 3971968\n  rotated_file_pages_by_limit 272006\n  freed_pages_by_limit 2318492\n  freed_anon_pages_by_limit 962052\n  freed_file_pages_by_limit 1356440\n  elapsed_ns_by_limit 351386416101\n  scanned_pages_by_system 0\n  scanned_anon_pages_by_system 0\n  scanned_file_pages_by_system 0\n  rotated_pages_by_system 0\n  rotated_anon_pages_by_system 0\n  rotated_file_pages_by_system 0\n  freed_pages_by_system 0\n  freed_anon_pages_by_system 0\n  freed_file_pages_by_system 0\n  elapsed_ns_by_system 0\n  scanned_pages_by_limit_under_hierarchy 9471864\n  scanned_anon_pages_by_limit_under_hierarchy 6640629\n  scanned_file_pages_by_limit_under_hierarchy 2831235\n  rotated_pages_by_limit_under_hierarchy 4243974\n  rotated_anon_pages_by_limit_under_hierarchy 3971968\n  rotated_file_pages_by_limit_under_hierarchy 272006\n  freed_pages_by_limit_under_hierarchy 2318492\n  freed_anon_pages_by_limit_under_hierarchy 962052\n  freed_file_pages_by_limit_under_hierarchy 1356440\n  elapsed_ns_by_limit_under_hierarchy 351386416101\n  scanned_pages_by_system_under_hierarchy 0\n  scanned_anon_pages_by_system_under_hierarchy 0\n  scanned_file_pages_by_system_under_hierarchy 0\n  rotated_pages_by_system_under_hierarchy 0\n  rotated_anon_pages_by_system_under_hierarchy 0\n  rotated_file_pages_by_system_under_hierarchy 0\n  freed_pages_by_system_under_hierarchy 0\n  freed_anon_pages_by_system_under_hierarchy 0\n  freed_file_pages_by_system_under_hierarchy 0\n  elapsed_ns_by_system_under_hierarchy 0\n\ntotal_xxxx is for hierarchy management.\n\nThis will be useful for further memcg developments and need to be\ndevelopped before we do some complicated rework on LRU/softlimit\nmanagement.\n\nThis patch adds a new struct memcg_scanrecord into scan_control struct.\nsc-\u003enr_scanned at el is not designed for exporting information.  For\nexample, nr_scanned is reset frequentrly and incremented +2 at scanning\nmapped pages.\n\nTo avoid complexity, I added a new param in scan_control which is for\nexporting scanning score.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Andrew Bresticker \u003cabrestic@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "108b6a78463bb8c7163e4f9779f36ad8bbade334",
      "tree": "f23a3d4835cf61ba73b918169355bafbf20e3966",
      "parents": [
        "4508378b9523e22a2a0175d8bf64d932fb10a67d"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Tue Jul 26 16:08:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: fix behavior of mem_cgroup_resize_limit()\n\nCommit 22a668d7c3ef (\"memcg: fix behavior under memory.limit equals to\nmemsw.limit\") introduced \"memsw_is_minimum\" flag, which becomes true\nwhen mem_limit \u003d\u003d memsw_limit.  The flag is checked at the beginning of\nreclaim, and \"noswap\" is set if the flag is true, because using swap is\nmeaningless in this case.\n\nThis works well in most cases, but when we try to shrink mem_limit,\nwhich is the same as memsw_limit now, we might fail to shrink mem_limit\nbecause swap doesn\u0027t used.\n\nThis patch fixes this behavior by:\n - check MEM_CGROUP_RECLAIM_SHRINK at the begining of reclaim\n - If it is set, don\u0027t set \"noswap\" flag even if memsw_is_minimum is true.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4508378b9523e22a2a0175d8bf64d932fb10a67d",
      "tree": "f7ebd57322edc18ff91ed7d71236fbbd5633c21c",
      "parents": [
        "1af8efe965676ab30d6c8a5b1fccc9229f339a3b"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jul 26 16:08:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: fix vmscan count in small memcgs\n\nCommit 246e87a93934 (\"memcg: fix get_scan_count() for small targets\")\nfixes the memcg/kswapd behavior against small targets and prevent vmscan\npriority too high.\n\nBut the implementation is too naive and adds another problem to small\nmemcg.  It always force scan to 32 pages of file/anon and doesn\u0027t handle\nswappiness and other rotate_info.  It makes vmscan to scan anon LRU\nregardless of swappiness and make reclaim bad.  This patch fixes it by\nadjusting scanning count with regard to swappiness at el.\n\nAt a test \"cat 1G file under 300M limit.\" (swappiness\u003d20)\n before patch\n        scanned_pages_by_limit 360919\n        scanned_anon_pages_by_limit 180469\n        scanned_file_pages_by_limit 180450\n        rotated_pages_by_limit 31\n        rotated_anon_pages_by_limit 25\n        rotated_file_pages_by_limit 6\n        freed_pages_by_limit 180458\n        freed_anon_pages_by_limit 19\n        freed_file_pages_by_limit 180439\n        elapsed_ns_by_limit 429758872\n after patch\n        scanned_pages_by_limit 180674\n        scanned_anon_pages_by_limit 24\n        scanned_file_pages_by_limit 180650\n        rotated_pages_by_limit 35\n        rotated_anon_pages_by_limit 24\n        rotated_file_pages_by_limit 11\n        freed_pages_by_limit 180634\n        freed_anon_pages_by_limit 0\n        freed_file_pages_by_limit 180634\n        elapsed_ns_by_limit 367119089\n        scanned_pages_by_system 0\n\nthe numbers of scanning anon are decreased(as expected), and elapsed time\nreduced. By this patch, small memcgs will work better.\n(*) Because the amount of file-cache is much bigger than anon,\n    recalaim_stat\u0027s rotate-scan counter make scanning files more.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1af8efe965676ab30d6c8a5b1fccc9229f339a3b",
      "tree": "832cfd92cae498d9af1687bccc77344143df97a1",
      "parents": [
        "79dfdaccd1d5b40ff7cf4a35a0e63696ebb78b4d"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jul 26 16:08:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: change memcg_oom_mutex to spinlock\n\nmemcg_oom_mutex is used to protect memcg OOM path and eventfd interface\nfor oom_control.  None of the critical sections which it protects sleep\n(eventfd_signal works from atomic context and the rest are simple linked\nlist resp.  oom_lock atomic operations).\n\nMutex is also too heavyweight for those code paths because it triggers a\nlot of scheduling.  It also makes makes convoying effects more visible\nwhen we have a big number of oom killing because we take the lock\nmutliple times during mem_cgroup_handle_oom so we have multiple places\nwhere many processes can sleep.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79dfdaccd1d5b40ff7cf4a35a0e63696ebb78b4d",
      "tree": "27eeb38c9ca690a19f05e06a2a46f094b20bfd52",
      "parents": [
        "bb2a0de92c891b8feeedc0178acb3ae009d899a8"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue Jul 26 16:08:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: make oom_lock 0 and 1 based rather than counter\n\nCommit 867578cb (\"memcg: fix oom kill behavior\") introduced a oom_lock\ncounter which is incremented by mem_cgroup_oom_lock when we are about to\nhandle memcg OOM situation.  mem_cgroup_handle_oom falls back to a sleep\nif oom_lock \u003e 1 to prevent from multiple oom kills at the same time.\nThe counter is then decremented by mem_cgroup_oom_unlock called from the\nsame function.\n\nThis works correctly but it can lead to serious starvations when we have\nmany processes triggering OOM and many CPUs available for them (I have\ntested with 16 CPUs).\n\nConsider a process (call it A) which gets the oom_lock (the first one\nthat got to mem_cgroup_handle_oom and grabbed memcg_oom_mutex) and other\nprocesses that are blocked on the mutex.  While A releases the mutex and\ncalls mem_cgroup_out_of_memory others will wake up (one after another)\nand increase the counter and fall into sleep (memcg_oom_waitq).\n\nOnce A finishes mem_cgroup_out_of_memory it takes the mutex again and\ndecreases oom_lock and wakes other tasks (if releasing memory by\nsomebody else - e.g.  killed process - hasn\u0027t done it yet).\n\nA testcase would look like:\n  Assume malloc XXX is a program allocating XXX Megabytes of memory\n  which touches all allocated pages in a tight loop\n  # swapoff SWAP_DEVICE\n  # cgcreate -g memory:A\n  # cgset -r memory.oom_control\u003d0   A\n  # cgset -r memory.limit_in_bytes\u003d 200M\n  # for i in `seq 100`\n  # do\n  #     cgexec -g memory:A   malloc 10 \u0026\n  # done\n\nThe main problem here is that all processes still race for the mutex and\nthere is no guarantee that we will get counter back to 0 for those that\ngot back to mem_cgroup_handle_oom.  In the end the whole convoy\nin/decreases the counter but we do not get to 1 that would enable\nkilling so nothing useful can be done.  The time is basically unbounded\nbecause it highly depends on scheduling and ordering on mutex (I have\nseen this taking hours...).\n\nThis patch replaces the counter by a simple {un}lock semantic.  As\nmem_cgroup_oom_{un}lock works on the a subtree of a hierarchy we have to\nmake sure that nobody else races with us which is guaranteed by the\nmemcg_oom_mutex.\n\nWe have to be careful while locking subtrees because we can encounter a\nsubtree which is already locked: hierarchy:\n\n          A\n        /   \\\n       B     \\\n      /\\      \\\n     C  D     E\n\nB - C - D tree might be already locked.  While we want to enable locking\nE subtree because OOM situations cannot influence each other we\ndefinitely do not want to allow locking A.\n\nTherefore we have to refuse lock if any subtree is already locked and\nclear up the lock for all nodes that have been set up to the failure\npoint.\n\nOn the other hand we have to make sure that the rest of the world will\nrecognize that a group is under OOM even though it doesn\u0027t have a lock.\nTherefore we have to introduce under_oom variable which is incremented\nand decremented for the whole subtree when we enter resp.  leave\nmem_cgroup_handle_oom.  under_oom, unlike oom_lock, doesn\u0027t need be\nupdated under memcg_oom_mutex because its users only check a single\ngroup and they use atomic operations for that.\n\nThis can be checked easily by the following test case:\n\n  # cgcreate -g memory:A\n  # cgset -r memory.use_hierarchy\u003d1 A\n  # cgset -r memory.oom_control\u003d1   A\n  # cgset -r memory.limit_in_bytes\u003d 100M\n  # cgset -r memory.memsw.limit_in_bytes\u003d 100M\n  # cgcreate -g memory:A/B\n  # cgset -r memory.oom_control\u003d1 A/B\n  # cgset -r memory.limit_in_bytes\u003d20M\n  # cgset -r memory.memsw.limit_in_bytes\u003d20M\n  # cgexec -g memory:A/B malloc 30  \u0026    #-\u003ethis will be blocked by OOM of group B\n  # cgexec -g memory:A   malloc 80  \u0026    #-\u003ethis will be blocked by OOM of group A\n\nWhile B gets oom_lock A will not get it.  Both of them go into sleep and\nwait for an external action.  We can make the limit higher for A to\nenforce waking it up\n\n  # cgset -r memory.memsw.limit_in_bytes\u003d300M A\n  # cgset -r memory.limit_in_bytes\u003d300M A\n\nmalloc in A has to wake up even though it doesn\u0027t have oom_lock.\n\nFinally, the unlock path is very easy because we always unlock only the\nsubtree we have locked previously while we always decrement under_oom.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb2a0de92c891b8feeedc0178acb3ae009d899a8",
      "tree": "c2c0b3ad66c8da0e48c021927b2d747fb08b7ef3",
      "parents": [
        "1f4c025b5a5520fd2571244196b1b01ad96d18f6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jul 26 16:08:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: consolidate memory cgroup lru stat functions\n\nIn mm/memcontrol.c, there are many lru stat functions as..\n\n  mem_cgroup_zone_nr_lru_pages\n  mem_cgroup_node_nr_file_lru_pages\n  mem_cgroup_nr_file_lru_pages\n  mem_cgroup_node_nr_anon_lru_pages\n  mem_cgroup_nr_anon_lru_pages\n  mem_cgroup_node_nr_unevictable_lru_pages\n  mem_cgroup_nr_unevictable_lru_pages\n  mem_cgroup_node_nr_lru_pages\n  mem_cgroup_nr_lru_pages\n  mem_cgroup_get_local_zonestat\n\nSome of them are under #ifdef MAX_NUMNODES \u003e1 and others are not.\nThis seems bad. This patch consolidates all functions into\n\n  mem_cgroup_zone_nr_lru_pages()\n  mem_cgroup_node_nr_lru_pages()\n  mem_cgroup_nr_lru_pages()\n\nFor these functions, \"which LRU?\" information is passed by a mask.\n\nexample:\n  mem_cgroup_nr_lru_pages(mem, BIT(LRU_ACTIVE_ANON))\n\nAnd I added some macro as ALL_LRU, ALL_LRU_FILE, ALL_LRU_ANON.\n\nexample:\n  mem_cgroup_nr_lru_pages(mem, ALL_LRU)\n\nBTW, considering layout of NUMA memory placement of counters, this patch seems\nto be better.\n\nNow, when we gather all LRU information, we scan in following orer\n    for_each_lru -\u003e for_each_node -\u003e for_each_zone.\n\nThis means we\u0027ll touch cache lines in different node in turn.\n\nAfter patch, we\u0027ll scan\n    for_each_node -\u003e for_each_zone -\u003e for_each_lru(mask)\n\nThen, we\u0027ll gather information in the same cacheline at once.\n\n[akpm@linux-foundation.org: fix warnigns, build error]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f4c025b5a5520fd2571244196b1b01ad96d18f6",
      "tree": "f2123a44c9e838eac7d08fe13443cfa04cc23f33",
      "parents": [
        "b830ac1d9a2262093bb0f3f6a2fd2a1c8278daf5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jul 26 16:08:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "memcg: export memory cgroup\u0027s swappiness with mem_cgroup_swappiness()\n\nEach memory cgroup has a \u0027swappiness\u0027 value which can be accessed by\nget_swappiness(memcg).  The major user is try_to_free_mem_cgroup_pages()\nand swappiness is passed by argument.  It\u0027s propagated by scan_control.\n\nget_swappiness() is a static function but some planned updates will need\nto get swappiness from files other than memcontrol.c This patch exports\nget_swappiness() as mem_cgroup_swappiness().  With this, we can remove the\nargument of swapiness from try_to_free...  and drop swappiness from\nscan_control.  only memcg uses it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.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": "b830ac1d9a2262093bb0f3f6a2fd2a1c8278daf5",
      "tree": "580f61a7a8a621792e8ac48d2ec4a9721165eecd",
      "parents": [
        "431e2bcc371016824f419baa745f82388258f3ee"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 26 16:08:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "rtc: fix hrtimer deadlock\n\nBen reported a lockup related to rtc. The lockup happens due to:\n\nCPU0                                        CPU1\n\nrtc_irq_set_state()\t\t\t    __run_hrtimer()\n  spin_lock_irqsave(\u0026rtc-\u003eirq_task_lock)    rtc_handle_legacy_irq();\n\t\t\t\t\t      spin_lock(\u0026rtc-\u003eirq_task_lock);\n  hrtimer_cancel()\n    while (callback_running);\n\nSo the running callback never finishes as it\u0027s blocked on\nrtc-\u003eirq_task_lock.\n\nUse hrtimer_try_to_cancel() instead and drop rtc-\u003eirq_task_lock while\nwaiting for the callback.  Fix this for both rtc_irq_set_state() and\nrtc_irq_set_freq().\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Ben Greear \u003cgreearb@candelatech.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "431e2bcc371016824f419baa745f82388258f3ee",
      "tree": "11ed612c73773e5e61160efa6ff5f0c3efe5c936",
      "parents": [
        "2c4f57d12df7696d65b0247bfd57fd082a7719e6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 26 16:08:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:42 2011 -0700"
      },
      "message": "rtc: limit frequency\n\nDue to the hrtimer self rearming mode a user can DoS the machine simply\nbecause it\u0027s starved by hrtimer events.\n\nThe RTC hrtimer is self rearming.  We really need to limit the frequency\nto something sensible.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ben Greear \u003cgreearb@candelatech.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c4f57d12df7696d65b0247bfd57fd082a7719e6",
      "tree": "920060fbbbc18643711e61526be4040e57118145",
      "parents": [
        "b45d59fb92f60c9c3cda01355d42b907b863e47a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 26 16:08:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:41 2011 -0700"
      },
      "message": "rtc: handle errors correctly in rtc_irq_set_state()\n\nThe code checks the correctness of the parameters, but unconditionally\narms/disarms the hrtimer.\n\nThe result is that a random task might arm/disarm rtc timer and surprise\nthe real owner by either generating events or by stopping them.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ben Greear \u003cgreearb@candelatech.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b45d59fb92f60c9c3cda01355d42b907b863e47a",
      "tree": "99d3973697009bc2b4b712e4702f8df70fd9311e",
      "parents": [
        "fc92805a8e25e5e2b0ba7c413cc15d9f05962ee8"
      ],
      "author": {
        "name": "Mathias Krause",
        "email": "minipli@googlemail.com",
        "time": "Tue Jul 26 16:08:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:41 2011 -0700"
      },
      "message": "mn10300, exec: remove redundant set_fs(USER_DS)\n\nThe address limit is already set in flush_old_exec() so this\nset_fs(USER_DS) is redundant.\n\nSigned-off-by: Mathias Krause \u003cminipli@googlemail.com\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nAcked-by: David Howells \u003cdhowells@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": "fc92805a8e25e5e2b0ba7c413cc15d9f05962ee8",
      "tree": "841ba603726e0168d0cddaf528e9e5c472a7fed1",
      "parents": [
        "adc400f69053b16756ff3b00daa64884c8df0787"
      ],
      "author": {
        "name": "Jonghwan Choi",
        "email": "jhbird.choi@samsung.com",
        "time": "Tue Jul 26 16:08:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:41 2011 -0700"
      },
      "message": "drivers/base/power/opp.c: fix dev_opp initial value\n\nDev_opp initial value shoule be ERR_PTR(), IS_ERR() is used to check\nerror.\n\nSigned-off-by: Jonghwan Choi \u003cjhbird.choi@samsung.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "adc400f69053b16756ff3b00daa64884c8df0787",
      "tree": "e1217453e0aba0aed1adfec0bfba9baf611dd334",
      "parents": [
        "6fd4ce886440c7a1b08b6642e606ee19097829df"
      ],
      "author": {
        "name": "Mathias Krause",
        "email": "minipli@googlemail.com",
        "time": "Tue Jul 26 16:08:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:41 2011 -0700"
      },
      "message": "frv, exec: remove redundant set_fs(USER_DS)\n\nThe address limit is already set in flush_old_exec() so those calls to\nset_fs(USER_DS) are redundant.\n\nAlso removed the dead code in flush_thread().\n\nSigned-off-by: Mathias Krause \u003cminipli@googlemail.com\u003e\nAcked-by: David Howells \u003cdhowells@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": "07e729ce894487e92405d3b221cffe587420a376",
      "tree": "2c92e54c46db89480b48a3e43c12f5f205bc2cc0",
      "parents": [
        "7a9c42ccc9fd4317383e55209f825f974e64aa99"
      ],
      "author": {
        "name": "Tomoya MORINAGA",
        "email": "tomoya-linux@dsn.okisemi.com",
        "time": "Thu Jun 23 16:17:10 2011 +0900"
      },
      "committer": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Wed Jul 27 00:02:28 2011 +0100"
      },
      "message": "i2c-eg20t : Fix the issue of Combined R/W transfer mode\n\nissue-1\nIn case combined transfer mode fails halfway, the processing must be stopped halfway.\nHowever currently, the processing is continued.\nThis patch breaks the processing.\n\nissue-2\nCurrently, pch_i2c_xfer returns read/write size at that time.\nHowever pch_i2c_xfer must return the number of messages to be read/written.\nThis patch modifies correctly.\n\nSigned-off-by: Tomoya MORINAGA \u003ctomoya-linux@dsn.okisemi.com\u003e\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\n"
    },
    {
      "commit": "7a9c42ccc9fd4317383e55209f825f974e64aa99",
      "tree": "b5af15e25456fa0a591232367edf25aa7268bafe",
      "parents": [
        "5c470f39eea66ff00b31136f8bce9359d6b95375"
      ],
      "author": {
        "name": "Tomoya MORINAGA",
        "email": "tomoya-linux@dsn.okisemi.com",
        "time": "Thu Jun 09 11:29:29 2011 +0900"
      },
      "committer": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Wed Jul 27 00:02:28 2011 +0100"
      },
      "message": "i2c-eg20t : Support Combined R/W transfer mode\n\nCurrently, Combined R/W transfer mode is not supported.\nThis patch enables Combined R/W transfer mode.\n\nSigned-off-by: Tomoya MORINAGA \u003ctomoya-linux@dsn.okisemi.com\u003e\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\n"
    },
    {
      "commit": "5c470f39eea66ff00b31136f8bce9359d6b95375",
      "tree": "129c3a0cbd22fca7f3d953e5e3524505d4e4e737",
      "parents": [
        "ba5b56cb3e3d2cab73d4fee9a022bb69462a8cd9"
      ],
      "author": {
        "name": "John Bonesio",
        "email": "bones@secretlab.ca",
        "time": "Wed Jun 22 09:16:56 2011 -0700"
      },
      "committer": {
        "name": "Ben Dooks",
        "email": "ben-linux@fluff.org",
        "time": "Wed Jul 27 00:02:28 2011 +0100"
      },
      "message": "i2c: Tegra: Add DeviceTree support\n\nThis patch modifies the tegra i2c driver so that it can be initiailized\nusing the device tree along with the devices connected to the i2c bus.\n\nSigned-off-by: John Bonesio \u003cbones@secretlab.ca\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: OIof Johansson \u003colof@lixom.net\u003e\nSigned-off-by: Ben Dooks \u003cben-linux@fluff.org\u003e\n"
    },
    {
      "commit": "6fd4ce886440c7a1b08b6642e606ee19097829df",
      "tree": "cd12dc0ec7e40e9d9a26e942999de93a5e673b4d",
      "parents": [
        "ba5b56cb3e3d2cab73d4fee9a022bb69462a8cd9",
        "bf28607fbe529e20180080c4a0295b0a47834fde"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 14:17:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 14:17:28 2011 -0700"
      },
      "message": "Merge branch \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus\n\n* \u0027upstream\u0027 of git://git.linux-mips.org/pub/scm/upstream-linus: (31 commits)\n  MIPS: Close races in TLB modify handlers.\n  MIPS: Add uasm UASM_i_SRL_SAFE macro.\n  MIPS: RB532: Use hex_to_bin()\n  MIPS: Enable cpu_has_clo_clz for MIPS Technologies\u0027 platforms\n  MIPS: PowerTV: Provide cpu-feature-overrides.h\n  MIPS: Remove pointless return statement from empty void functions.\n  MIPS: Limit fixrange_init() to the FIXMAP region\n  MIPS: Install handlers for software IRQs\n  MIPS: Move FIXADDR_TOP into spaces.h\n  MIPS: Add SYNC after cacheflush\n  MIPS: pfn_valid() is broken on low memory HIGHMEM systems\n  MIPS: HIGHMEM DMA on noncoherent MIPS32 processors\n  MIPS: topdown mmap support\n  MIPS: Remove redundant addr_limit assignment on exec.\n  MIPS: AR7: Replace __attribute__((__packed__)) with __packed\n  MIPS: AR7: Remove \u0027space before tabs\u0027 in platform.c\n  MIPS: Lantiq: Add missing clk_enable and clk_disable functions.\n  MIPS: AR7: Fix trailing semicolon bug in clock.c\n  MAINTAINERS: Update MIPS entry.\n  MIPS: BCM63xx: Remove duplicate PERF_IRQSTAT_REG definition\n  ...\n"
    },
    {
      "commit": "ba5b56cb3e3d2cab73d4fee9a022bb69462a8cd9",
      "tree": "eda7ea059a41ae5d68e2ad5a36a87069187ef22a",
      "parents": [
        "243dd2809a5edd2e0e3e62781083aa44049af37d",
        "d79698da32b317e96216236f265a9b72b78ae568"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 13:38:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 13:38:50 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (23 commits)\n  ceph: document unlocked d_parent accesses\n  ceph: explicitly reference rename old_dentry parent dir in request\n  ceph: document locking for ceph_set_dentry_offset\n  ceph: avoid d_parent in ceph_dentry_hash; fix ceph_encode_fh() hashing bug\n  ceph: protect d_parent access in ceph_d_revalidate\n  ceph: protect access to d_parent\n  ceph: handle racing calls to ceph_init_dentry\n  ceph: set dir complete frag after adding capability\n  rbd: set blk_queue request sizes to object size\n  ceph: set up readahead size when rsize is not passed\n  rbd: cancel watch request when releasing the device\n  ceph: ignore lease mask\n  ceph: fix ceph_lookup_open intent usage\n  ceph: only link open operations to directory unsafe list if O_CREAT|O_TRUNC\n  ceph: fix bad parent_inode calc in ceph_lookup_open\n  ceph: avoid carrying Fw cap during write into page cache\n  libceph: don\u0027t time out osd requests that haven\u0027t been received\n  ceph: report f_bfree based on kb_avail rather than diffing.\n  ceph: only queue capsnap if caps are dirty\n  ceph: fix snap writeback when racing with writes\n  ...\n"
    },
    {
      "commit": "e57712ebebbb9db7d8dcef216437b3171ddcf115",
      "tree": "484b748a272fe32385ca37d4d87ace7d4e8732bb",
      "parents": [
        "03209378b4b25775bf5e6a86e86f074a1057a439"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 04:15:54 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 15:07:43 2011 -0400"
      },
      "message": "merge fchmod() and fchmodat() guts, kill ancient broken kludge\n\nThe kludge in question is undocumented and doesn\u0027t work for 32bit\nbinaries on amd64, sparc64 and s390.  Passing (mode_t)-1 as\nmode had (since 0.99.14v and contrary to behaviour of any\nother Unix, prescriptions of POSIX, SuS and our own manpages)\nwas kinda-sorta no-op.  Note that any software relying on\nthat (and looking for examples shows none) would be visibly\nbroken on sparc64, where practically all userland is built\n32bit.  No such complaints noticed...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "03209378b4b25775bf5e6a86e86f074a1057a439",
      "tree": "1995ce966b96082e68fd59a364b16163ac564989",
      "parents": [
        "abbede1b3a680e108d61aaa415ce5153296e775d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 20:54:24 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 15:05:30 2011 -0400"
      },
      "message": "xfs: fix misspelled S_IS...()\n\nmode_t is not a bitmap...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "abbede1b3a680e108d61aaa415ce5153296e775d",
      "tree": "0fb8b8db864e5919b02f5d7dd2d66474e76a39d5",
      "parents": [
        "c46c887744b330795eba55fdb96343c36d481765"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 02:31:30 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 15:05:16 2011 -0400"
      },
      "message": "xfs: get rid of open-coded S_ISREG(), etc.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "243dd2809a5edd2e0e3e62781083aa44049af37d",
      "tree": "2e3b28cc31dd2ff2b9121f12be71e6eba1806cc5",
      "parents": [
        "9c646cfc3d98f2e595f7757e42ff59286c6f327e"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Jul 25 15:18:44 2011 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 11:55:14 2011 -0700"
      },
      "message": "gma500: udelay(20000) it too long again\n\nso replace it with mdelay(20).\n\nFixes build error:\n\n  ERROR: \"__bad_udelay\" [drivers/staging/gma500/psb_gfx.ko] undefined!\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c646cfc3d98f2e595f7757e42ff59286c6f327e",
      "tree": "539c2334964dcd103b7c747b5308de1ddd2ce952",
      "parents": [
        "6c0cbef6662aa685c6a47a18039b9d4f1d5abcb1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 26 20:51:01 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 11:52:55 2011 -0700"
      },
      "message": "USB / Renesas: Fix build issue related to struct scatterlist\n\nFix build issue caused by undefined struct scatterlist in\ndrivers/usb/renesas_usbhs/fifo.c.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c0cbef6662aa685c6a47a18039b9d4f1d5abcb1",
      "tree": "f252a8acb18b40603fda064ebc45f040bf467fc5",
      "parents": [
        "2ac232f37fa0e8551856a575fe299c47b65b4d66"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 26 20:50:23 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 11:52:55 2011 -0700"
      },
      "message": "MMC / TMIO: Fix build issue related to struct scatterlist\n\nFix build issue caused by undefined struct scatterlist in\ndrivers/mmc/host/tmio_mmc.c.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ac232f37fa0e8551856a575fe299c47b65b4d66",
      "tree": "58ff15ecdbc383415a82ea678e5191db16a479f3",
      "parents": [
        "fa8f53ace4af9470d8414427cb3dc3c0ffc4f182",
        "5cf49d763eb141d236e92be6d4a0dc94e31fa886"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 11:34:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 11:34:40 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  jbd: change the field \"b_cow_tid\" of struct journal_head from type unsigned to tid_t\n  ext3.txt: update the links in the section \"useful links\" to the latest ones\n  ext3: Fix data corruption in inodes with journalled data\n  ext2: check xattr name_len before acquiring xattr_sem in ext2_xattr_get\n  ext3: Fix compilation with -DDX_DEBUG\n  quota: Remove unused declaration\n  jbd: Use WRITE_SYNC in journal checkpoint.\n  jbd: Fix oops in journal_remove_journal_head()\n  ext3: Return -EINVAL when start is beyond the end of fs in ext3_trim_fs()\n  ext3/ioctl.c: silence sparse warnings about different address spaces\n  ext3/ext4 Documentation: remove bh/nobh since it has been deprecated\n  ext3: Improve truncate error handling\n  ext3: use proper little-endian bitops\n  ext2: include fs.h into ext2_fs.h\n  ext3: Fix oops in ext3_try_to_allocate_with_rsv()\n  jbd: fix a bug of leaking jh-\u003eb_jcount\n  jbd: remove dependency on __GFP_NOFAIL\n  ext3: Convert ext3 to new truncate calling convention\n  jbd: Add fixed tracepoints\n  ext3: Add fixed tracepoints\n\nResolve conflicts in fs/ext3/fsync.c due to fsync locking push-down and\nnew fixed tracepoints.\n"
    },
    {
      "commit": "d79698da32b317e96216236f265a9b72b78ae568",
      "tree": "97f98e83c699794d6a5d979688587fbfdbba2ba7",
      "parents": [
        "41b02e1f9bb87b07d792b64aaeb7af3d00d69cd2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:31:26 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:31:26 2011 -0700"
      },
      "message": "ceph: document unlocked d_parent accesses\n\nFor the most part we don\u0027t care about racing with rename when directing\nMDS requests; either the old or new parent is fine.  Document that, and\ndo some minor cleanup.\n\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "41b02e1f9bb87b07d792b64aaeb7af3d00d69cd2",
      "tree": "87c9524ff96cbff2ff29d659cbefd516b553ca1f",
      "parents": [
        "4f1772645296a230e04f5c53e79cfb6f841ce634"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:31:14 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:31:14 2011 -0700"
      },
      "message": "ceph: explicitly reference rename old_dentry parent dir in request\n\nWe carry a pin on the parent directory for the rename source and dest\ndentries.  For the source it\u0027s r_locked_dir; we need to explicitly\nreference the old_dentry parent as well, since the dentry\u0027s d_parent may\nchange between when the request was created and pinned and when it is\nfreed.\n\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4f1772645296a230e04f5c53e79cfb6f841ce634",
      "tree": "b46dab3e88acef56a074c5d519a851dec5c1ade1",
      "parents": [
        "e5f86dc377e7ff2b4195831153a85a3e76fefff2"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:31:08 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:31:08 2011 -0700"
      },
      "message": "ceph: document locking for ceph_set_dentry_offset\n\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e5f86dc377e7ff2b4195831153a85a3e76fefff2",
      "tree": "f15c11fc2c9b08e64555bbb601e582dc8f7325bd",
      "parents": [
        "bf1c6aca96c9d2f117dc7e590c2bc2304e7febe1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:55 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:55 2011 -0700"
      },
      "message": "ceph: avoid d_parent in ceph_dentry_hash; fix ceph_encode_fh() hashing bug\n\nHave caller pass in a safely-obtained reference to the parent directory\nfor calculating a dentry\u0027s hash valud.\n\nWhile we\u0027re here, simpify the flow through ceph_encode_fh() so that there\nis a single exit point and cleanup.\n\nAlso fix a bug with the dentry hash calculation: calculate the hash for the\ndentry we were given, not its parent.\n\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bf1c6aca96c9d2f117dc7e590c2bc2304e7febe1",
      "tree": "1ecb6f35e572ba1e498390d1b09faf3c309bbaee",
      "parents": [
        "5f21c96dd5c615341963036ae8f5e4f5227a818d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:43 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:43 2011 -0700"
      },
      "message": "ceph: protect d_parent access in ceph_d_revalidate\n\nProtect d_parent with d_lock.  Carry a reference.  Simplify the flow so\nthat there is a single exit point and cleanup.\n\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5f21c96dd5c615341963036ae8f5e4f5227a818d",
      "tree": "898c5781623b68527427d201e3f975827d08935c",
      "parents": [
        "48d0cbd1242aac969560ef8b90f26ee3b09a6a5c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:29 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:29 2011 -0700"
      },
      "message": "ceph: protect access to d_parent\n\nd_parent is protected by d_lock: use it when looking up a dentry\u0027s parent\ndirectory inode.  Also take a reference and drop it in the caller to avoid\na use-after-free.\n\nReported-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "48d0cbd1242aac969560ef8b90f26ee3b09a6a5c",
      "tree": "228a26f8ee7d555d67c6a00e5346f3b558a2e48c",
      "parents": [
        "dfabbed6fdd509dc2beb89c954bc36014a1bc7cb"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:15 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:15 2011 -0700"
      },
      "message": "ceph: handle racing calls to ceph_init_dentry\n\nThe -\u003elookup() and prepopulate_readdir() callers are working with unhashed\ndentries, so we don\u0027t have to worry.  The export.c callers, though, need\nto initialize something they got back from d_obtain_alias() and are\npotentially racing with other callers.  Make sure we don\u0027t return unless\nthe dentry is properly initialized (by us or someone else).\n\nReported-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "dfabbed6fdd509dc2beb89c954bc36014a1bc7cb",
      "tree": "34186b6bba311438cccbd572f4f93d8165dce89b",
      "parents": [
        "029bcbd8b076fd19787b8c73e58dd0a6f2c0caf1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:02 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:30:02 2011 -0700"
      },
      "message": "ceph: set dir complete frag after adding capability\n\nCurretly ceph_add_cap clears the complete bit if we are newly issued the\nFILE_SHARED cap, which is normally the case for a newly issue cap on a new\ndirectory.  That means we clear the just-set bit.  Move the check that sets\nthe flag to after the cap is added/updated.\n\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "029bcbd8b076fd19787b8c73e58dd0a6f2c0caf1",
      "tree": "305128db78ecfb09e6a236caeeac1fbb9ece1175",
      "parents": [
        "e9852227431a0ed6ceda064f33e4218757acab6c"
      ],
      "author": {
        "name": "Josh Durgin",
        "email": "josh.durgin@dreamhost.com",
        "time": "Fri Jul 22 11:35:23 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:29:35 2011 -0700"
      },
      "message": "rbd: set blk_queue request sizes to object size\n\nThis improves performance since more requests can be merged.\n\nReviewed-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Josh Durgin \u003cjosh.durgin@dreamhost.com\u003e\n"
    },
    {
      "commit": "e9852227431a0ed6ceda064f33e4218757acab6c",
      "tree": "e48c6a6ffb96780d562943dfc45c78a0a7edc0cd",
      "parents": [
        "79e3057c4c9d32b88e6745fd220d91b0a8b2030b"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jul 22 11:12:28 2011 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jul 26 11:29:14 2011 -0700"
      },
      "message": "ceph: set up readahead size when rsize is not passed\n\nThis should improve the default read performance, as without it\nreadahead is practically disabled.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\n"
    }
  ],
  "next": "79e3057c4c9d32b88e6745fd220d91b0a8b2030b"
}
