)]}'
{
  "log": [
    {
      "commit": "56b85f32d530d09d6805488ad00775d4e0e3baab",
      "tree": "e7fbe69e338ef775d3b2dd822aa915d259b4bc94",
      "parents": [
        "3e5b08cbbf78bedd316904ab0cf3b27119433ee5",
        "568389c257fa7d74ce36c2f78bad31965fded4cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:39:20 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 14:39:20 2011 -0800"
      },
      "message": "Merge branch \u0027tty-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6\n\n* \u0027tty-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (36 commits)\n  serial: apbuart: Fixup apbuart_console_init()\n  TTY: Add tty ioctl to figure device node of the system console.\n  tty: add \u0027active\u0027 sysfs attribute to tty0 and console device\n  drivers: serial: apbuart: Handle OF failures gracefully\n  Serial: Avoid unbalanced IRQ wake disable during resume\n  tty: fix typos/errors in tty_driver.h comments\n  pch_uart : fix warnings for 64bit compile\n  8250: fix uninitialized FIFOs\n  ip2: fix compiler warning on ip2main_pci_tbl\n  specialix: fix compiler warning on specialix_pci_tbl\n  rocket: fix compiler warning on rocket_pci_ids\n  8250: add a UPIO_DWAPB32 for 32 bit accesses\n  8250: use container_of() instead of casting\n  serial: omap-serial: Add support for kernel debugger\n  serial: fix pch_uart kconfig \u0026 build\n  drivers: char: hvc: add arm JTAG DCC console support\n  RS485 documentation: add 16C950 UART description\n  serial: ifx6x60: fix memory leak\n  serial: ifx6x60: free IRQ on error\n  Serial: EG20T: add PCH_UART driver\n  ...\n\nFixed up conflicts in drivers/serial/apbuart.c with evil merge that\nmakes the code look fairly sane (unlike either side).\n"
    },
    {
      "commit": "b74c79e99389cd79b31fcc08f82c24e492e63c7e",
      "tree": "763c6b412517306670bc625e90035f2d16bb739f",
      "parents": [
        "34286d6662308d82aed891852d04c7c3a2649b16"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:58 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: provide rcu-walk aware permission i_ops\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "34286d6662308d82aed891852d04c7c3a2649b16",
      "tree": "c4b7311404d302e7cb94df7a4690298e1059910a",
      "parents": [
        "44a7d7a878c9cbb74f236ea755b25b6b2e26a9a9"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:57 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:29 2011 +1100"
      },
      "message": "fs: rcu-walk aware d_revalidate method\n\nRequire filesystems be aware of .d_revalidate being called in rcu-walk\nmode (nd-\u003eflags \u0026 LOOKUP_RCU). For now do a simple push down, returning\n-ECHILD from all implementations.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "31e6b01f4183ff419a6d1f86177cbf4662347cec",
      "tree": "e215ec9af88352c55e024f784f3d9f8eb13fab85",
      "parents": [
        "3c22cd5709e8143444a6d08682a87f4c57902df3"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:52 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:27 2011 +1100"
      },
      "message": "fs: rcu-walk for path lookup\n\nPerform common cases of path lookups without any stores or locking in the\nancestor dentry elements. This is called rcu-walk, as opposed to the current\nalgorithm which is a refcount based walk, or ref-walk.\n\nThis results in far fewer atomic operations on every path element,\nsignificantly improving path lookup performance. It also avoids cacheline\nbouncing on common dentries, significantly improving scalability.\n\nThe overall design is like this:\n* LOOKUP_RCU is set in nd-\u003eflags, which distinguishes rcu-walk from ref-walk.\n* Take the RCU lock for the entire path walk, starting with the acquiring\n  of the starting path (eg. root/cwd/fd-path). So now dentry refcounts are\n  not required for dentry persistence.\n* synchronize_rcu is called when unregistering a filesystem, so we can\n  access d_ops and i_ops during rcu-walk.\n* Similarly take the vfsmount lock for the entire path walk. So now mnt\n  refcounts are not required for persistence. Also we are free to perform mount\n  lookups, and to assume dentry mount points and mount roots are stable up and\n  down the path.\n* Have a per-dentry seqlock to protect the dentry name, parent, and inode,\n  so we can load this tuple atomically, and also check whether any of its\n  members have changed.\n* Dentry lookups (based on parent, candidate string tuple) recheck the parent\n  sequence after the child is found in case anything changed in the parent\n  during the path walk.\n* inode is also RCU protected so we can load d_inode and use the inode for\n  limited things.\n* i_mode, i_uid, i_gid can be tested for exec permissions during path walk.\n* i_op can be loaded.\n\nWhen we reach the destination dentry, we lock it, recheck lookup sequence,\nand increment its refcount and mountpoint refcount. RCU and vfsmount locks\nare dropped. This is termed \"dropping rcu-walk\". If the dentry refcount does\nnot match, we can not drop rcu-walk gracefully at the current point in the\nlokup, so instead return -ECHILD (for want of a better errno). This signals the\npath walking code to re-do the entire lookup with a ref-walk.\n\nAside from the final dentry, there are other situations that may be encounted\nwhere we cannot continue rcu-walk. In that case, we drop rcu-walk (ie. take\na reference on the last good dentry) and continue with a ref-walk. Again, if\nwe can drop rcu-walk gracefully, we return -ECHILD and do the whole lookup\nusing ref-walk. But it is very important that we can continue with ref-walk\nfor most cases, particularly to avoid the overhead of double lookups, and to\ngain the scalability advantages on common path elements (like cwd and root).\n\nThe cases where rcu-walk cannot continue are:\n* NULL dentry (ie. any uncached path element)\n* parent with d_inode-\u003ei_op-\u003epermission or ACLs\n* dentries with d_revalidate\n* Following links\n\nIn future patches, permission checks and d_revalidate become rcu-walk aware. It\nmay be possible eventually to make following links rcu-walk aware.\n\nUncached path elements will always require dropping to ref-walk mode, at the\nvery least because i_mutex needs to be grabbed, and objects allocated.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b5c84bf6f6fa3a7dfdcb556023a62953574b60ee",
      "tree": "7a2c299a180713e21d5cb653cb933121adf53c31",
      "parents": [
        "949854d02455080d20cd3e1db28a3a18daf7599d"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:38 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:23 2011 +1100"
      },
      "message": "fs: dcache remove dcache_lock\n\ndcache_lock no longer protects anything. remove it.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b1e6a015a580ad145689ad1d6b4aa0e03e6c868b",
      "tree": "57a10ef164e4d2f798d9b832dbeaf973aca2ab83",
      "parents": [
        "621e155a3591962420eacdd39f6f0aa29ceb221e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:28 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: change d_hash for rcu-walk\n\nChange d_hash so it may be called from lock-free RCU lookups. See similar\npatch for d_compare for details.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "621e155a3591962420eacdd39f6f0aa29ceb221e",
      "tree": "387a9fb396f1bf24514b712c294182e36ba51076",
      "parents": [
        "fb2d5b86aff355a27ebfc132d3c99f4a940cc3fe"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:27 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:19 2011 +1100"
      },
      "message": "fs: change d_compare for rcu-walk\n\nChange d_compare so it may be called from lock-free RCU lookups. This\ndoes put significant restrictions on what may be done from the callback,\nhowever there don\u0027t seem to have been any problems with in-tree fses.\nIf some strange use case pops up that _really_ cannot cope with the\nrcu-walk rules, we can just add new rcu-unaware callbacks, which would\ncause name lookup to drop out of rcu-walk mode.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fe15ce446beb3a33583af81ffe6c9d01a75314ed",
      "tree": "bc8af66b6dd2d0f21a2a3f48a19975ae2cdbae4e",
      "parents": [
        "5eef7fa905c814826f518aca2d414ca77508ce30"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:23 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:18 2011 +1100"
      },
      "message": "fs: change d_delete semantics\n\nChange d_delete from a dentry deletion notification to a dentry caching\nadvise, more like -\u003edrop_inode. Require it to be constant and idempotent,\nand not take d_lock. This is how all existing filesystems use the callback\nanyway.\n\nThis makes fine grained dentry locking of dput and dentry lru scanning\nmuch simpler.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "8a87694ed159d7abd2c9ed657416696c05db2252",
      "tree": "90c28dd15ad2386d454156f91ee25801ff97f0d2",
      "parents": [
        "989d873fc5b6a96695b97738dea8d9f02a60f8ab"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jan 04 07:14:24 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 04 11:01:09 2011 -0800"
      },
      "message": "remove trim_fs method from Documentation/filesystems/Locking\n\nThe -\u003etrim_fs has been removed meanwhile, so remove it from the documentation\nas well.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b83be6f20a0e468f715b14225c9f897538dfe5ad",
      "tree": "30a1f540cdfdbe08245cbea29f170a21bb23b009",
      "parents": [
        "4ef9e11d6867f88951e30db910fa015300e31871"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch",
        "time": "Thu Dec 16 12:04:54 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 30 10:00:50 2010 -0800"
      },
      "message": "update Documentation/filesystems/Locking\n\nMostly inspired by all the recent BKL removal changes, but a lot of older\nupdates also weren\u0027t properly recorded.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38971ce2fac484249d697fe48a9b0851a0b62572",
      "tree": "5ff677e2f2225a8b7971c2bb84e1c66bc4c54d38",
      "parents": [
        "caa4a59574a39e6574664e82b92455d41eca27a8",
        "5b362ac3799ff4225c40935500f520cad4d7ed66"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 14 08:51:12 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 14 08:51:12 2010 -0800"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: Fix panic after nfs_umount()\n  nfs: remove extraneous and problematic calls to nfs_clear_request\n  nfs: kernel should return EPROTONOSUPPORT when not support NFSv4\n  NFS: Fix fcntl F_GETLK not reporting some conflicts\n  nfs: Discard ACL cache on mode update\n  NFS: Readdir cleanups\n  NFS: nfs_readdir_search_for_cookie() don\u0027t mark as eof if cookie not found\n  NFS: Fix a memory leak in nfs_readdir\n  Call the filesystem back whenever a page is removed from the page cache\n  NFS: Ensure we use the correct cookie in nfs_readdir_xdr_filler\n"
    },
    {
      "commit": "4fe65cab844e6d3d7d310e66a501d5e7242ecb54",
      "tree": "46d80c5091d14a9d2492d1e49e421a2c6ae889bd",
      "parents": [
        "64141da587241301ce8638cc945f8b67853156ec"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Dec 02 14:31:19 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 02 14:51:15 2010 -0800"
      },
      "message": "Documentation/filesystems/vfs.txt: fix -\u003erepeasepage() description\n\n-\u003ereleasepage() does not remove the page from the mapping.\n\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6072d13c429373c5d63b69dadbbef40a9b035552",
      "tree": "a2bf745efaa4092f2a8d7d9a9b160c2a7a3b303f",
      "parents": [
        "0aded708d125a3ff7e5abaea9c2d9c6d7ebbfdcd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 01 13:35:19 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 02 09:55:21 2010 -0500"
      },
      "message": "Call the filesystem back whenever a page is removed from the page cache\n\nNFS needs to be able to release objects that are stored in the page\ncache once the page itself is no longer visible from the page cache.\n\nThis patch adds a callback to the address space operations that allows\nfilesystems to perform page cleanups once the page has been removed\nfrom the page cache.\n\nOriginal patch by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[trondmy: cover the cases of invalidate_inode_pages2() and\n          truncate_inode_pages()]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "09c9feb94672bdb3ca6d424a292ffc26eff8ca0b",
      "tree": "e73e487f5b89de79c62ae784f0eda0721bc8f3c1",
      "parents": [
        "2b35f4d9cab365d37c7b34ce51e1c1144c312d05"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Nov 18 12:27:32 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 18 15:00:46 2010 -0800"
      },
      "message": "Documentation: make configfs example code simpler, clearer\n\nIf \"p\" is NULL then it will cause an oops when we pass it to\nsimple_strtoul().  In this case \"p\" can not be NULL so I removed the\ncheck.  I also changed the check a little to make it more explicit that\nwe are testing whether p points to the NUL char.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "23308ba54dcdb54481163bfb07dd8aeca76a7a2e",
      "tree": "3c96c14ee801188978dd2e2c3c84f9ed7535660e",
      "parents": [
        "281e66057757ddf32ffe679a08f9634fa9f70a7a"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Thu Nov 04 16:20:24 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Nov 16 12:50:17 2010 -0800"
      },
      "message": "console: add /proc/consoles\n\nIt allows users to see what consoles are currently known to the system\nand with what flags.\n\nIt is based on Werner\u0027s patch, the part about traversing fds was\nremoved, the code was moved to kernel/printk.c, where consoles are\nhandled and it makes more sense to me.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e [cleanups]\nSigned-off-by: \"Dr. Werner Fink\" \u003cwerner@suse.de\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "5d0af85cd0964bb845b63d5059bb20e8f7731e65",
      "tree": "8c3bb47546b361be20e972cf6069ccd29f38ba41",
      "parents": [
        "f6614b7bb405a9b35dd28baea989a749492c46b2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Oct 28 21:37:10 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Nov 10 12:00:47 2010 -0600"
      },
      "message": "xfs: remove experimental tag from the delaylog option\n\nWe promised to do this for 2.6.37, and the code looks stable enough to\nkeep that promise.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "bb8430a2c8fe2b726033017daadf73c69b0348ea",
      "tree": "feb6063cab812816bc67bca4e509995b5ad9217d",
      "parents": [
        "51ee4b84f5c86935b438d6636f34b523edb415a8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 31 08:35:31 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 06:35:15 2010 -0700"
      },
      "message": "locks: remove fl_copy_lock lock_manager operation\n\nThis one was only used for a nasty hack in nfsd, which has recently\nbeen removed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f063a0c0c995d010960efcc1b2ed14b99674f25c",
      "tree": "106e30acd1a58b3cf9f3c15abe1de83f1919e03b",
      "parents": [
        "3c3762957818dc902222733a8184f23102e24472",
        "5af634789c93b97cfb314a102436716be8fbc577"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 12:13:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 12:13:00 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (841 commits)\n  Staging: brcm80211: fix usage of roundup in structures\n  Staging: bcm: fix up network device reference counting\n  Staging: keucr: fix up US_ macro change\n  staging: brcm80211: brcmfmac: Removed codeversion from firmware filenames.\n  staging: brcm80211: Remove unnecessary header files.\n  staging: brcm80211: Remove unnecessary includes from bcmutils.c\n  staging: brcm80211: Removed unnecessary pktsetprio() function.\n  Staging: brcm80211: remove typedefs.h\n  Staging: brcm80211: remove uintptr typedef usage\n  Staging: hv: remove struct vmbus_channel_interface\n  Staging: hv: remove Open from struct vmbus_channel_interface\n  Staging: hv: storvsc: call vmbus_open directly\n  Staging: hv: netvsc: call vmbus_open directly\n  Staging: hv: channel: export vmbus_open to modules\n  Staging: hv: remove Close from struct vmbus_channel_interface\n  Staging: hv: netvsc: call vmbus_close directly\n  Staging: hv: storvsc: call vmbus_close directly\n  Staging: hv: channel: export vmbus_close to modules\n  Staging: hv: remove SendPacket from struct vmbus_channel_interface\n  Staging: hv: storvsc: call vmbus_sendpacket directly\n  ...\n\nFix up conflicts in\n\tdrivers/staging/cx25821/cx25821-audio-upstream.c\n\tdrivers/staging/cx25821/cx25821-audio.h\ndue to warring whitespace cleanups (neither of which were all that great)\n"
    },
    {
      "commit": "e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7",
      "tree": "ea51b391f7d74ca695dcb9f5e46eb02688a92ed9",
      "parents": [
        "81280572ca6f54009edfa4deee563e8678784218",
        "a4ac0d847af9dd34d5953a5e264400326144b6b2"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 28 09:44:56 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 28 09:44:56 2010 -0700"
      },
      "message": "Merge \u0027staging-next\u0027 to Linus\u0027s tree\n\nThis merges the staging-next tree to Linus\u0027s tree and resolves\nsome conflicts that were present due to changes in other trees that were\naffected by files here.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "76381a42e4a5606774fd48413e6282cd7130ff2c",
      "tree": "b7d6f73804b1bb7bca4198991c42122fa6ff159e",
      "parents": [
        "ad77dbce567128d59b37a14c9562c8af6f63aeca"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Sep 28 00:27:41 2010 +0530"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Thu Oct 28 09:08:46 2010 -0500"
      },
      "message": "fs/9p: Add access \u003d client option to opt in acl evaluation.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Venkateswararao Jujjuri \u003cjvrao@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "a107e5a3a473a2ea62bd5af24e11b84adf1486ff",
      "tree": "d36c2cb38d8be88d4d75cdebc354aa140aa0e470",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "a269029d0e2192046be4c07ed78a45022469ee4c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "message": "Merge branch \u0027next\u0027 into upstream-merge\n\nConflicts:\n\tfs/ext4/inode.c\n\tfs/ext4/mballoc.c\n\tinclude/trace/events/ext4.h\n"
    },
    {
      "commit": "bfff68738f1cb5c93dab1114634cea02aae9e7ba",
      "tree": "b6cdf3f26e86464c7088cab62d837eb32f559fb9",
      "parents": [
        "e6fa0be699449d28a20e815bfe9ce26725ec4962"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "message": "ext4: add support for lazy inode table initialization\n\nWhen the lazy_itable_init extended option is passed to mke2fs, it\nconsiderably speeds up filesystem creation because inode tables are\nnot zeroed out.  The fact that parts of the inode table are\nuninitialized is not a problem so long as the block group descriptors,\nwhich contain information regarding how much of the inode table has\nbeen initialized, has not been corrupted However, if the block group\nchecksums are not valid, e2fsck must scan the entire inode table, and\nthe the old, uninitialized data could potentially cause e2fsck to\nreport false problems.\n\nHence, it is important for the inode tables to be initialized as soon\nas possble.  This commit adds this feature so that mke2fs can safely\nuse the lazy inode table initialization feature to speed up formatting\nfile systems.\n\nThis is done via a new new kernel thread called ext4lazyinit, which is\ncreated on demand and destroyed, when it is no longer needed.  There\nis only one thread for all ext4 filesystems in the system. When the\nfirst filesystem with inititable mount option is mounted, ext4lazyinit\nthread is created, then the filesystem can register its request in the\nrequest list.\n\nThis thread then walks through the list of requests picking up\nscheduled requests and invoking ext4_init_inode_table(). Next schedule\ntime for the request is computed by multiplying the time it took to\nzero out last inode table with wait multiplier, which can be set with\nthe (init_itable\u003dn) mount option (default is 10).  We are doing\nthis so we do not take the whole I/O bandwidth. When the thread is no\nlonger necessary (request list is empty) it frees the appropriate\nstructures and exits (and can be created later later by another\nfilesystem).\n\nWe do not disturb regular inode allocations in any way, it just do not\ncare whether the inode table is, or is not zeroed. But when zeroing, we\nhave to skip used inodes, obviously. Also we should prevent new inode\nallocations from the group, while zeroing is on the way. For that we\ntake write alloc_sem lock in ext4_init_inode_table() and read alloc_sem\nin the ext4_claim_inode, so when we are unlucky and allocator hits the\ngroup which is currently being zeroed, it just has to wait.\n\nThis can be suppresed using the mount option no_init_itable.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "03f890f8c2f5c9008d3d8f6d85267717ced4bd79",
      "tree": "0e61bcc8e94152ef85ccb402868966adb8d44c40",
      "parents": [
        "b40d4f84becd69275451baee7f0801c85eb58437"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Oct 27 15:34:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:13 2010 -0700"
      },
      "message": "/proc/pid/pagemap: document in Documentation/filesystems/proc.txt\n\nDocument /proc/pid/pagemap in Documentation/filesystems/proc.txt\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nCc: Richard Guenther \u003crguenther@suse.de\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: 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": "b40d4f84becd69275451baee7f0801c85eb58437",
      "tree": "78258f7b431a900bf8292d25970dea74b8aa283f",
      "parents": [
        "d16e15f5b029fc7d03540ba0e5fb23b0abb0ebe0"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Oct 27 15:34:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:13 2010 -0700"
      },
      "message": "/proc/pid/smaps: export amount of anonymous memory in a mapping\n\nExport the number of anonymous pages in a mapping via smaps.\n\nEven the private pages in a mapping backed by a file, would be marked as\nanonymous, when they are modified. Export this information to user-space via\nsmaps.\n\nExporting this count will help gdb to make a better decision on which\nareas need to be dumped in its coredump; and should be useful to others\nstudying the memory usage of a process.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\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": "426e1f5cec4821945642230218876b0e89aafab1",
      "tree": "2728ace018d0698886989da586210ef1543a7098",
      "parents": [
        "9e5fca251f44832cb996961048ea977f80faf6ea",
        "63997e98a3be68d7cec806d22bf9b02b2e1daabb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -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: (52 commits)\n  split invalidate_inodes()\n  fs: skip I_FREEING inodes in writeback_sb_inodes\n  fs: fold invalidate_list into invalidate_inodes\n  fs: do not drop inode_lock in dispose_list\n  fs: inode split IO and LRU lists\n  fs: switch bdev inode bdi\u0027s correctly\n  fs: fix buffer invalidation in invalidate_list\n  fsnotify: use dget_parent\n  smbfs: use dget_parent\n  exportfs: use dget_parent\n  fs: use RCU read side protection in d_validate\n  fs: clean up dentry lru modification\n  fs: split __shrink_dcache_sb\n  fs: improve DCACHE_REFERENCED usage\n  fs: use percpu counter for nr_dentry and nr_dentry_unused\n  fs: simplify __d_free\n  fs: take dcache_lock inside __d_path\n  fs: do not assign default i_ino in new_inode\n  fs: introduce a per-cpu last_ino allocator\n  new helper: ihold()\n  ...\n"
    },
    {
      "commit": "18a043f9413277523cf5011e594caa1747db4948",
      "tree": "f5d7e908bf62e67184f91ce83b6b7624755826ac",
      "parents": [
        "31453a9764f7e2a72a6e2c502ace586e2663a68c",
        "eb1c86b8b501ad9a073d9d519105979d31fa0ef2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:24:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:24:28 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: rename nfs.upcall -\u003e nfs.idmap\n  NFS: Fix a compile issue in nfs_root\n"
    },
    {
      "commit": "0f4d208f1975f16f269134cee5f44c1f048581da",
      "tree": "0a09155b2e961a7d75f7235dcc72a7fc118272ee",
      "parents": [
        "a4f7326da2bfe788b85509ec0c261e64596cdde4"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Tue Oct 26 14:21:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "Documentation/filesystems/proc.txt: improve smaps field documentation\n\nSigned-off-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@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": "eb1c86b8b501ad9a073d9d519105979d31fa0ef2",
      "tree": "79ae2136722d2cd43f60113efcab5bf833f8ef15",
      "parents": [
        "036a1075978e35811f22be3ff86a70cb8d22cb85"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Tue Oct 26 13:27:42 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 26 13:57:10 2010 -0400"
      },
      "message": "NFS: rename nfs.upcall -\u003e nfs.idmap\n\nThis patch renames the idmapper upcall program from nfs.upcall to nfs.idmap in\nthe NFS documentation.  This is because the program has been renamed in the\nnfs-utils source.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a4dd8dce14014665862ce7911b38cb2c69e366dd",
      "tree": "00e79b2845d5d49abcd83cf253db83a52d482265",
      "parents": [
        "b18cae4224bde7e5a332c19bc99247b2098ea232",
        "411b5e05617593efebc06241dbc56f42150f2abe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 09:52:09 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  net/sunrpc: Use static const char arrays\n  nfs4: fix channel attribute sanity-checks\n  NFSv4.1: Use more sensible names for \u0027initialize_mountpoint\u0027\n  NFSv4.1: pnfs: filelayout: add driver\u0027s LAYOUTGET and GETDEVICEINFO infrastructure\n  NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure\n  NFS: client needs to maintain list of inodes with active layouts\n  NFS: create and destroy inode\u0027s layout cache\n  NFSv4.1: pnfs: filelayout: introduce minimal file layout driver\n  NFSv4.1: pnfs: full mount/umount infrastructure\n  NFS: set layout driver\n  NFS: ask for layouttypes during v4 fsinfo call\n  NFS: change stateid to be a union\n  NFSv4.1: pnfsd, pnfs: protocol level pnfs constants\n  SUNRPC: define xdr_decode_opaque_fixed\n  NFSD: remove duplicate NFS4_STATEID_SIZE\n"
    },
    {
      "commit": "e1455d1bdccbe056ba53479741b1452106ce59aa",
      "tree": "ed3c4205d7cf72e5ec78e802554178524a368c65",
      "parents": [
        "8358e7d71e712d3bd4e20ecf23e6fd7480c83684"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Oct 06 10:46:53 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:18:22 2010 -0400"
      },
      "message": "update block_device_operations documentation\n\nUpdated Documentation/filesystems/Locking to match the code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d9d1dc802ffae507956ceb350eb3f4a995734f1e",
      "tree": "b64db0fa1fd93ddd37b30a700a370d9d978475a0",
      "parents": [
        "0e45b67d5aeb3dcfb6b149cf61c30b9a8e503f74"
      ],
      "author": {
        "name": "Valerie Aurora",
        "email": "vaurora@redhat.com",
        "time": "Mon Aug 30 17:23:12 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:18:21 2010 -0400"
      },
      "message": "Documentation: Fix trivial typo in filesystems/sharedsubtree.txt\n\nDocumentation: Fix trivial typo in filesystems/sharedsubtree.txt\n\nThis typo is easy to ignore unless you have spent a great deal of time\nthinking about how to eliminate duplicate dentries in unions.\n\nSigned-off-by: Valerie Aurora \u003cvaurora@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "74eb94b218d087798a52c0b4f1379b635287a4b8",
      "tree": "4e467c3014c2b1169f6f71d88cf5d1598f3ce28e",
      "parents": [
        "7b6181e06841f5ad15c4ff708b967b4db65a64de",
        "9a84d38031c258a17bb39beed1e500eadee67407"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 25 13:48:29 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.37\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (67 commits)\n  SUNRPC: Cleanup duplicate assignment in rpcauth_refreshcred\n  nfs: fix unchecked value\n  Ask for time_delta during fsinfo probe\n  Revalidate caches on lock\n  SUNRPC: After calling xprt_release(), we must restart from call_reserve\n  NFSv4: Fix up the \u0027dircount\u0027 hint in encode_readdir\n  NFSv4: Clean up nfs4_decode_dirent\n  NFSv4: nfs4_decode_dirent must clear entry-\u003efattr-\u003evalid\n  NFSv4: Fix a regression in decode_getfattr\n  NFSv4: Fix up decode_attr_filehandle() to handle the case of empty fh pointer\n  NFS: Ensure we check all allocation return values in new readdir code\n  NFS: Readdir plus in v4\n  NFS: introduce generic decode_getattr function\n  NFS: check xdr_decode for errors\n  NFS: nfs_readdir_filler catch all errors\n  NFS: readdir with vmapped pages\n  NFS: remove page size checking code\n  NFS: decode_dirent should use an xdr_stream\n  SUNRPC: Add a helper function xdr_inline_peek\n  NFS: remove readdir plus limit\n  ...\n"
    },
    {
      "commit": "02c35fca7cf4ea2dfdc6db279e230cacbbf4b870",
      "tree": "7449a8a3fb119d862f6c163c05cf43d58443c377",
      "parents": [
        "85e174ba6b786ad336eb2df105b4f66d0932e70a"
      ],
      "author": {
        "name": "Fred Isaman",
        "email": "iisaman@netapp.com",
        "time": "Wed Oct 20 00:17:59 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 24 18:07:10 2010 -0400"
      },
      "message": "NFSv4.1: pnfs: full mount/umount infrastructure\n\nAllow a module implementing a layout type to register, and\nhave its mount/umount routines called for filesystems that\nthe server declares support it.\n\nSigned-off-by: Fred Isaman \u003ciisaman@netapp.com\u003e\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Bian Naimeng \u003cbiannm@cn.fujitsu.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6c2754c28f2388a276fe21edde826f2113c8f60e",
      "tree": "cfb966a1bbe36f10a7f55d0e38d34dfb275b9992",
      "parents": [
        "ab34c02afeafd047a831e6fe2a4dd875ce86bee0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 08:14:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 23 08:14:12 2010 -0700"
      },
      "message": "Revert \"tty: Add a new file /proc/tty/consoles\"\n\nThis reverts commit f4a3e0bceb57466c31757f25e4e0ed108d1299ec.  Jiri\nSladby points out that the tty structure we\u0027re using may already be\ngone, and Al Viro doesn\u0027t hold back in complaining about the random\nloading of \u0027filp-\u003eprivate_data\u0027 which doesn\u0027t have to be a pointer at\nall, nor does checking the magic field for TTY_MAGIC prove anything.\n\nBelated review by Al:\n\n \"a) global variable depending on stdin of the last opener? Affecting\n     output of read(2)? Really?\n\n  b) iterator is broken; list should be locked in -\u003estart(), unlocked in\n     -\u003estop() and *NOT* unlocked/relocked in -\u003enext()\n\n  c) -\u003eshow() ought to do nothing in case of -\u003edevice \u003d\u003d NULL, instead\n     of skipping those in -\u003enext()/-\u003estart()\n\n  d) regardless of the merits of the bright idea about asterisk at that\n     line in output *and* regardless of (a), the implementation is not\n     only atrociously ugly, it\u0027s actually very likely to be a roothole.\n     Verifying that Cthulhu knows what number happens to be address of a\n     tty_struct by blindly dereferencing memory at that address...\n     Ouch.\n\n  Please revert that crap.\"\n\nAnd Christoph pipes in and NAK\u0027s the approach of walking fd tables etc\ntoo.  So it\u0027s pretty unanimous.\n\nNoticed-by: Jri Slaby \u003cjslaby@suse.cz\u003e\nRequested-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Werner Fink \u003cwerner@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73ecf3a6e3f0206bf56a0fefe3b3eda042fb7034",
      "tree": "866f0ebb2b148479e93b5ac955097b1cc94ceb4e",
      "parents": [
        "b9da0571050c09863e59f94d0b8594a290d61b88",
        "cd3ecad19aea8debae9a48b53de2ec7a571f24e9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 19:59:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 19:59:04 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (49 commits)\n  serial8250: ratelimit \"too much work\" error\n  serial: bfin_sport_uart: speed up sport RX sample rate to be 3% faster\n  serial: abstraction for 8250 legacy ports\n  serial/imx: check that the buffer is non-empty before sending it out\n  serial: mfd: add more baud rates support\n  jsm: Remove the uart port on errors\n  Alchemy: Add UART PM methods.\n  8250: allow platforms to override PM hook.\n  altera_uart: Don\u0027t use plain integer as NULL pointer\n  altera_uart: Fix missing prototype for registering an early console\n  altera_uart: Fixup type usage of port flags\n  altera_uart: Make it possible to use Altera UART and 8250 ports together\n  altera_uart: Add support for different address strides\n  altera_uart: Add support for getting mapbase and IRQ from resources\n  altera_uart: Add support for polling mode (IRQ-less)\n  serial: Factor out uart_poll_timeout() from 8250 driver\n  serial: mark the 8250 driver as maintained\n  serial: 8250: Don\u0027t delay after transmitter is ready.\n  tty: MAINTAINERS: add drivers/serial/jsm/ as maintained driver\n  vcs: invoke the vt update callback when /dev/vcs* is written to\n  ...\n"
    },
    {
      "commit": "f4a3e0bceb57466c31757f25e4e0ed108d1299ec",
      "tree": "c08eda0100e97ebd1fe4ab90b5d8eb142e505673",
      "parents": [
        "a9e2e06015201c32c43d3615c9bf5e0d4efb4302"
      ],
      "author": {
        "name": "Dr. Werner Fink",
        "email": "werner@suse.de",
        "time": "Wed Sep 22 12:45:40 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 22 10:20:05 2010 -0700"
      },
      "message": "tty: Add a new file /proc/tty/consoles\n\nAdd a new file /proc/tty/consoles to be able to determine the registered\nsystem console lines.  If the reading process holds /dev/console open at\nthe regular standard input stream the active device will be marked by an\nasterisk.  Show possible operations and also decode the used flags of\nthe listed console lines.\n\nSigned-off-by: Werner Fink \u003cwerner@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7bdb0d18bfd381cc5491eb95973ec5604b356c7e",
      "tree": "1abe07df935a336eeac5c7705dc9b59341b47b0a",
      "parents": [
        "75d9bbc73804285020aa4d99bd2a9600edea8945"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Mon Oct 11 16:46:39 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 11 14:14:55 2010 -0700"
      },
      "message": "ocfs2: Add a mount option \"coherency\u003d*\" to handle cluster coherency for O_DIRECT writes.\n\nCurrently, the default behavior of O_DIRECT writes was allowing\nconcurrent writing among nodes to the same file, with no cluster\ncoherency guaranteed (no EX lock held).  This can leave stale data in\nthe cache for buffered reads on other nodes.\n\nThe new mount option introduce a chance to choose two different\nbehaviors for O_DIRECT writes:\n\n    * coherency\u003dfull, as the default value, will disallow\n                      concurrent O_DIRECT writes by taking\n                      EX locks.\n\n    * coherency\u003dbuffered, allow concurrent O_DIRECT writes\n                          without EX lock among nodes, which\n                          gains high performance at risk of\n                          getting stale data on other nodes.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "955a857e062642cd3ebe1dc7bb38c0f85d8f8f17",
      "tree": "f95fc349c245c4a0a3f6f8fcc5bf02f36a756134",
      "parents": [
        "aa510da5bfe1dfe263215fd0e05dac96e738a782"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Wed Sep 29 15:41:49 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 07 18:48:49 2010 -0400"
      },
      "message": "NFS: new idmapper\n\nThis patch creates a new idmapper system that uses the request-key function to\nplace a call into userspace to map user and group ids to names.  The old\nidmapper was single threaded, which prevented more than one request from running\nat a single time.  This means that a user would have to wait for an upcall to\nfinish before accessing a cached result.\n\nThe upcall result is stored on a keyring of type id_resolver.  See the file\nDocumentation/filesystems/nfs/idmapper.txt for instructions.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\n[Trond: fix up the return value of nfs_idmap_lookup_name and clean up code]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2116b7a473bf1c8d26998b477c294e7fe294921f",
      "tree": "5f06aca6b425916f763d83fa4516bca51c8f9a60",
      "parents": [
        "5af74aa5e97fcc0cc3955bc2a7ff6f3a13fa41cb"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 22:55:57 2010 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 05 09:08:21 2010 -0700"
      },
      "message": "smbfs: move to drivers/staging\n\nsmbfs has been scheduled for removal in 2.6.27, so\nmaybe we can now move it to drivers/staging on the\nway out.\n\nsmbfs still uses the big kernel lock and nobody\nis going to fix that, so we should be getting\nrid of it soon.\n\nThis removes the 32 bit compat mount and ioctl\nhandling code, which is implemented in common fs\ncode, and moves all smbfs related files into\ndrivers/staging/smbfs.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "306a075362a288683f6346185f97dd0e06df19da",
      "tree": "bcade14a2a0b634c5bf64eab87db8219d8d6981c",
      "parents": [
        "8d2321037896aa4868a67f45b2d6ed52b579a48a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Sep 17 10:54:37 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 17 10:54:37 2010 -0400"
      },
      "message": "NFS: Allow NFSROOT debugging messages to be enabled dynamically\n\nAs a convenience, introduce a kernel command line option to enable\nNFSROOT debugging messages.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b19dd42faf413b4705d4adb38521e82d73fa4249",
      "tree": "fbfdea065c3772b2de2c37238af6afcad2e42934",
      "parents": [
        "c6d7ba8b12636923f3e30997dec69bed58e176b6"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Jul 04 00:15:10 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Aug 14 00:24:24 2010 +0200"
      },
      "message": "bkl: Remove locked .ioctl file operation\n\nThe last user is gone, so we can safely remove this\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "062e27ec1b49d12bdb1ecc94d74b5fee5a5775db",
      "tree": "28ebc44e789cebe7ec7b52ed74349438cf936eb2",
      "parents": [
        "bf25db365428dbd182768baa9850bef7afaac80d",
        "66048c381bb1e3a7c6fc69c28721843d6ec11c8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 09:20:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 09:20:13 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus:\n  Squashfs: fix checkpatch.pl warnings\n  Squashfs: fix filename typo\n  Squashfs: update Kconfig and documentation for LZO\n  Squashfs: fix block size use in LZO decompressor\n  Squashfs: Add LZO compression support\n  squashfs: fix filename in header comment\n  Squashfs: Make XATTR config name consistent with other file systems\n  squashfs: fix compiler inline warning\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -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: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "51b1bd2ace1595b72956224deda349efa880b693",
      "tree": "82732bb33d26379c05494dcdba8ea390ae0621db",
      "parents": [
        "a63d83f427fbce97a6cea0db2e64b0eb8435cd10"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:19:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "oom: deprecate oom_adj tunable\n\n/proc/pid/oom_adj is now deprecated so that that it may eventually be\nremoved.  The target date for removal is August 2012.\n\nA warning will be printed to the kernel log if a task attempts to use this\ninterface.  Future warning will be suppressed until the kernel is rebooted\nto prevent spamming the kernel log.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a63d83f427fbce97a6cea0db2e64b0eb8435cd10",
      "tree": "8ac229cdf6e2289d97e82e35774057106fe7f4a2",
      "parents": [
        "74bcbf40546bb7500f2a7ba4ff3cc056a6bd004a"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:19:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:02 2010 -0700"
      },
      "message": "oom: badness heuristic rewrite\n\nThis a complete rewrite of the oom killer\u0027s badness() heuristic which is\nused to determine which task to kill in oom conditions.  The goal is to\nmake it as simple and predictable as possible so the results are better\nunderstood and we end up killing the task which will lead to the most\nmemory freeing while still respecting the fine-tuning from userspace.\n\nInstead of basing the heuristic on mm-\u003etotal_vm for each task, the task\u0027s\nrss and swap space is used instead.  This is a better indication of the\namount of memory that will be freeable if the oom killed task is chosen\nand subsequently exits.  This helps specifically in cases where KDE or\nGNOME is chosen for oom kill on desktop systems instead of a memory\nhogging task.\n\nThe baseline for the heuristic is a proportion of memory that each task is\ncurrently using in memory plus swap compared to the amount of \"allowable\"\nmemory.  \"Allowable,\" in this sense, means the system-wide resources for\nunconstrained oom conditions, the set of mempolicy nodes, the mems\nattached to current\u0027s cpuset, or a memory controller\u0027s limit.  The\nproportion is given on a scale of 0 (never kill) to 1000 (always kill),\nroughly meaning that if a task has a badness() score of 500 that the task\nconsumes approximately 50% of allowable memory resident in RAM or in swap\nspace.\n\nThe proportion is always relative to the amount of \"allowable\" memory and\nnot the total amount of RAM systemwide so that mempolicies and cpusets may\noperate in isolation; they shall not need to know the true size of the\nmachine on which they are running if they are bound to a specific set of\nnodes or mems, respectively.\n\nRoot tasks are given 3% extra memory just like __vm_enough_memory()\nprovides in LSMs.  In the event of two tasks consuming similar amounts of\nmemory, it is generally better to save root\u0027s task.\n\nBecause of the change in the badness() heuristic\u0027s baseline, it is also\nnecessary to introduce a new user interface to tune it.  It\u0027s not possible\nto redefine the meaning of /proc/pid/oom_adj with a new scale since the\nABI cannot be changed for backward compatability.  Instead, a new tunable,\n/proc/pid/oom_score_adj, is added that ranges from -1000 to +1000.  It may\nbe used to polarize the heuristic such that certain tasks are never\nconsidered for oom kill while others may always be considered.  The value\nis added directly into the badness() score so a value of -500, for\nexample, means to discount 50% of its memory consumption in comparison to\nother tasks either on the system, bound to the mempolicy, in the cpuset,\nor sharing the same memory controller.\n\n/proc/pid/oom_adj is changed so that its meaning is rescaled into the\nunits used by /proc/pid/oom_score_adj, and vice versa.  Changing one of\nthese per-task tunables will rescale the value of the other to an\nequivalent meaning.  Although /proc/pid/oom_adj was originally defined as\na bitshift on the badness score, it now shares the same linear growth as\n/proc/pid/oom_score_adj but with different granularity.  This is required\nso the ABI is not broken with userspace applications and allows oom_adj to\nbe deprecated for future removal.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "336fb3b97b78edc65bae0b223b83bf676cfe29e2",
      "tree": "dd4ed24835334b6f2d3d06623dea7184117d98bd",
      "parents": [
        "b70a3e0702dee2ed9435e06a8bde7d9fa2228895"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 08 00:37:12 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:40 2010 -0400"
      },
      "message": "update VFS documentation for method changes.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1e2317350971c8b01e6adddc798a00e9bcc1a440",
      "tree": "651dd728ac563504c510356bddcc8ae879c2d3fe",
      "parents": [
        "2c27c65ed0696f0b5df2dad2cf6462d72164d547"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 07 09:29:20 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:40 2010 -0400"
      },
      "message": "update documentation for the new truncate sequence\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a57f9a3e811cf1246b394f0cc667c6bc5a52e099",
      "tree": "488b4dd7cd061e7e0e059acb8443967e21051aab",
      "parents": [
        "09dc942c2a767e2d298f1cc9294bc19c7d7208c5",
        "89c0fd014d34d409a7b196667c2b9a4813b6c968"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:10:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:10:55 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (45 commits)\n  nilfs2: reject filesystem with unsupported block size\n  nilfs2: avoid rec_len overflow with 64KB block size\n  nilfs2: simplify nilfs_get_page function\n  nilfs2: reject incompatible filesystem\n  nilfs2: add feature set fields to super block\n  nilfs2: clarify byte offset in super block format\n  nilfs2: apply read-ahead for nilfs_btree_lookup_contig\n  nilfs2: introduce check flag to btree node buffer\n  nilfs2: add btree get block function with readahead option\n  nilfs2: add read ahead mode to nilfs_btnode_submit_block\n  nilfs2: fix buffer head leak in nilfs_btnode_submit_block\n  nilfs2: eliminate inline keywords in btree implementation\n  nilfs2: get maximum number of child nodes from bmap object\n  nilfs2: reduce repetitive calculation of max number of child nodes\n  nilfs2: optimize calculation of min/max number of btree node children\n  nilfs2: remove redundant pointer checks in bmap lookup functions\n  nilfs2: get rid of nilfs_bmap_union\n  nilfs2: unify bmap set_target_v operations\n  nilfs2: get rid of nilfs_btree uses\n  nilfs2: get rid of nilfs_direct uses\n  ...\n"
    },
    {
      "commit": "3b7433b8a8a83c87972065b1852b7dcae691e464",
      "tree": "93fa2c003f8baef5ab0733b53bac77961ed5240c",
      "parents": [
        "4a386c3e177ca2fbc70c9283d0b46537844763a0",
        "6ee0578b4daaea01c96b172c6aacca43fd9807a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (55 commits)\n  workqueue: mark init_workqueues() as early_initcall()\n  workqueue: explain for_each_*cwq_cpu() iterators\n  fscache: fix build on !CONFIG_SYSCTL\n  slow-work: kill it\n  gfs2: use workqueue instead of slow-work\n  drm: use workqueue instead of slow-work\n  cifs: use workqueue instead of slow-work\n  fscache: drop references to slow-work\n  fscache: convert operation to use workqueue instead of slow-work\n  fscache: convert object to use workqueue instead of slow-work\n  workqueue: fix how cpu number is stored in work-\u003edata\n  workqueue: fix mayday_mask handling on UP\n  workqueue: fix build problem on !CONFIG_SMP\n  workqueue: fix locking in retry path of maybe_create_worker()\n  async: use workqueue for worker pool\n  workqueue: remove WQ_SINGLE_CPU and use WQ_UNBOUND instead\n  workqueue: implement unbound workqueue\n  workqueue: prepare for WQ_UNBOUND implementation\n  libata: take advantage of cmwq and remove concurrency limitations\n  workqueue: fix worker management invocation without pending works\n  ...\n\nFixed up conflicts in fs/cifs/* as per Tejun. Other trivial conflicts in\ninclude/linux/workqueue.h, kernel/trace/Kconfig and kernel/workqueue.c\n"
    },
    {
      "commit": "1cfd2bda8c486ae0e7a8005354758ebb68172bca",
      "tree": "76ce15f377d8d6eb3ae4aa8b8b0b415457e38d36",
      "parents": [
        "b57bdda58cda0aaf6def042d101dd85977a286ed",
        "763e9db9994e27a7d2cb3701c8a097a867d0e0b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:36 2010 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (30 commits)\n  PCI: update for owner removal from struct device_attribute\n  PCI: Fix warnings when CONFIG_DMI unset\n  PCI: Do not run NVidia quirks related to MSI with MSI disabled\n  x86/PCI: use for_each_pci_dev()\n  PCI: use for_each_pci_dev()\n  PCI: MSI: Restore read_msi_msg_desc(); add get_cached_msi_msg_desc()\n  PCI: export SMBIOS provided firmware instance and label to sysfs\n  PCI: Allow read/write access to sysfs I/O port resources\n  x86/PCI: use host bridge _CRS info on ASRock ALiveSATA2-GLAN\n  PCI: remove unused HAVE_ARCH_PCI_SET_DMA_MAX_SEGMENT_{SIZE|BOUNDARY}\n  PCI: disable mmio during bar sizing\n  PCI: MSI: Remove unsafe and unnecessary hardware access\n  PCI: Default PCIe ASPM control to on and require !EMBEDDED to disable\n  PCI: kernel oops on access to pci proc file while hot-removal\n  PCI: pci-sysfs: remove casts from void*\n  ACPI: Disable ASPM if the platform won\u0027t provide _OSC control for PCIe\n  PCI hotplug: make sure child bridges are enabled at hotplug time\n  PCI hotplug: shpchp: Removed check for hotplug of display devices\n  PCI hotplug: pciehp: Fixed return value sign for pciehp_unconfigure_device\n  PCI: Don\u0027t enable aspm before drivers have had a chance to veto it\n  ...\n"
    },
    {
      "commit": "4b676d2dbed3dadc6ef913d58f85360547fa071e",
      "tree": "7af04b23f20cda409ce71bd857fb140d3d8770f1",
      "parents": [
        "f3065f60ddfd4b5e34a412851d91d0cf27cdbf7e"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Aug 05 23:42:54 2010 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Aug 05 23:42:54 2010 +0100"
      },
      "message": "Squashfs: update Kconfig and documentation for LZO\n\nUpdate compression types supported and add some help text for\nthe LZO Kconfig option.\n\nAlso add missing \"default n\" line and make some trivial whitespace\ncleanups too.\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "a5307032718b1e90e6d07008d7fd44d1446db7d7",
      "tree": "d22552c20960a9c68feb4fd2748241eea71fa781",
      "parents": [
        "30a69000a4ba9cf49e8b826431847cc80881b59b"
      ],
      "author": {
        "name": "Ira Weiny",
        "email": "weiny2@llnl.gov",
        "time": "Thu Jul 15 11:34:44 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:34 2010 -0700"
      },
      "message": "sysfs: Fix one more signature discrepancy between sysfs implementation and docs.\n\nSigned-off-by: Ira Weiny \u003cweiny2@llnl.gov\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "30a69000a4ba9cf49e8b826431847cc80881b59b",
      "tree": "a0fe01bb1f5256046c4ab86d75bc6777fa821bc5",
      "parents": [
        "e3ed249af8cb2f73fc6ef5494d2ddef43fb0ff19"
      ],
      "author": {
        "name": "Bart Van Assche",
        "email": "bvanassche@acm.org",
        "time": "Tue Jul 20 15:22:05 2010 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 05 13:53:34 2010 -0700"
      },
      "message": "sysfs: fix discrepancies between implementation and documentation\n\nFix all discrepancies I know of between the sysfs implementation and its\ndocumentation.\n\nSigned-off-by: Bart Van Assche \u003cbart.vanassche@gmail.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4",
      "tree": "5adc1ff2eaf64d450bf28bb6b2ce890db2567288",
      "parents": [
        "5cf65713f87775c548e3eb48dbafa32e12f28000",
        "0ea6e61122196509af82cc4f36cbdaacbefb8227"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 15:31:02 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (48 commits)\n  Documentation: update broken web addresses.\n  fix comment typo \"choosed\" -\u003e \"chosen\"\n  hostap:hostap_hw.c Fix typo in comment\n  Fix spelling contorller -\u003e controller in comments\n  Kconfig.debug: FAIL_IO_TIMEOUT: typo Faul -\u003e Fault\n  fs/Kconfig: Fix typo Userpace -\u003e Userspace\n  Removing dead MACH_U300_BS26\n  drivers/infiniband: Remove unnecessary casts of private_data\n  fs/ocfs2: Remove unnecessary casts of private_data\n  libfc: use ARRAY_SIZE\n  scsi: bfa: use ARRAY_SIZE\n  drm: i915: use ARRAY_SIZE\n  drm: drm_edid: use ARRAY_SIZE\n  synclink: use ARRAY_SIZE\n  block: cciss: use ARRAY_SIZE\n  comment typo fixes: charater \u003d\u003e character\n  fix comment typos concerning \"challenge\"\n  arm: plat-spear: fix typo in kerneldoc\n  reiserfs: typo comment fix\n  update email address\n  ...\n"
    },
    {
      "commit": "6ba74014c1ab0e37af7de6f64b4eccbbae3cb9e7",
      "tree": "8f3892fc44f1e403675a6d7e88fda5c70e56ee4c",
      "parents": [
        "5abd9ccced7a726c817dd6b5b96bc933859138d1",
        "3ff1c25927e3af61c6bf0e4ed959504058ae4565"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:47:58 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1443 commits)\n  phy/marvell: add 88ec048 support\n  igb: Program MDICNFG register prior to PHY init\n  e1000e: correct MAC-PHY interconnect register offset for 82579\n  hso: Add new product ID\n  can: Add driver for esd CAN-USB/2 device\n  l2tp: fix export of header file for userspace\n  can-raw: Fix skb_orphan_try handling\n  Revert \"net: remove zap_completion_queue\"\n  net: cleanup inclusion\n  phy/marvell: add 88e1121 interface mode support\n  u32: negative offset fix\n  net: Fix a typo from \"dev\" to \"ndev\"\n  igb: Use irq_synchronize per vector when using MSI-X\n  ixgbevf: fix null pointer dereference due to filter being set for VLAN 0\n  e1000e: Fix irq_synchronize in MSI-X case\n  e1000e: register pm_qos request on hardware activation\n  ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice\n  net: Add getsockopt support for TCP thin-streams\n  cxgb4: update driver version\n  cxgb4: add new PCI IDs\n  ...\n\nManually fix up conflicts in:\n - drivers/net/e1000e/netdev.c: due to pm_qos registration\n   infrastructure changes\n - drivers/net/phy/marvell.c: conflict between adding 88ec048 support\n   and cleaning up the IDs\n - drivers/net/wireless/ipw2x00/ipw2100.c: trivial ipw2100_pm_qos_req\n   conflict (registration change vs marking it static)\n"
    },
    {
      "commit": "0ea6e61122196509af82cc4f36cbdaacbefb8227",
      "tree": "1e6e65d3b73c9c620497966b1786f163a1782228",
      "parents": [
        "d790d4d583aeaed9fc6f8a9f4d9f8ce6b1c15c7f"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Fri Jul 23 20:51:24 2010 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 04 15:21:40 2010 +0200"
      },
      "message": "Documentation: update broken web addresses.\n\nBelow you will find an updated version from the original series bunching all patches into one big patch\nupdating broken web addresses that are located in Documentation/*\nSome of the addresses date as far far back as 1995 etc... so searching became a bit difficult,\nthe best way to deal with these is to use web.archive.org to locate these addresses that are outdated.\nNow there are also some addresses pointing to .spec files some are located, but some(after searching\non the companies site)where still no where to be found. In this case I just changed the address\nto the company site this way the users can contact the company and they can locate them for the users.\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Thomas Weber \u003cweber@corscience.de\u003e\nSigned-off-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nCc: Paulo Marques \u003cpmarques@grupopie.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Michael Neuling \u003cmikey@neuling.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "8633328be242677fdedc42052838dd0608e7f342",
      "tree": "20b16af605298a1d05973d7ec2d0a479412ed3e6",
      "parents": [
        "2491762cfb475dbdfa3db11ebea6de49f58b7fac"
      ],
      "author": {
        "name": "Alex Williamson",
        "email": "alex.williamson@redhat.com",
        "time": "Mon Jul 19 09:45:34 2010 -0600"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Fri Jul 30 09:32:08 2010 -0700"
      },
      "message": "PCI: Allow read/write access to sysfs I/O port resources\n\nPCI sysfs resource files currently only allow mmap\u0027ing.  On x86 this\nworks fine for memory backed BARs, but doesn\u0027t work at all for I/O\nport backed BARs.  Add read/write to I/O port PCI sysfs resource\nfiles to allow userspace access to these device regions.\n\nAcked-by: Chris Wright \u003cchrisw@redhat.com\u003e\nSigned-off-by: Alex Williamson \u003calex.williamson@redhat.com\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "a64afb057b607c04383ab5fb53c51421ba18c434",
      "tree": "8f90f37bbdf1c81311342d8781da1742b3192f74",
      "parents": [
        "0664ce8d0fde731d76fa7e86b3afb54f3a6830ff"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Jul 20 17:50:52 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 26 13:16:51 2010 -0500"
      },
      "message": "xfs: remove obsolete osyncisosync mount option\n\nSince Linux 2.6.33 the kernel has support for real O_SYNC, which made\nthe osyncisosync option a no-op.  Warn the users about this and remove\nthe mount flag for it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\n\n"
    },
    {
      "commit": "802d31775404ee335ca1e97a82e1e706a4c843be",
      "tree": "3753263ea97748e6c2b01f29fb7f81c19381eb7b",
      "parents": [
        "773bc4f3b6898634a80a41c72a1f34cb89992dcd"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jul 05 14:27:04 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:12 2010 +0900"
      },
      "message": "nilfs2: add nodiscard mount option\n\nNilfs has \"discard\" mount option which issues discard/TRIM commands to\nunderlying block device, but it lacks a complementary option and has\nno way to disable the feature through remount.\n\nThis adds \"nodiscard\" option to resolve this imbalance.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "773bc4f3b6898634a80a41c72a1f34cb89992dcd",
      "tree": "ee6f12c0fbfa959a79861904498d04db8d899cc2",
      "parents": [
        "325020477a51ffa849418b3e38189fd266f2ae20"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jul 05 13:00:08 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Jul 23 10:02:12 2010 +0900"
      },
      "message": "nilfs2: add barrier mount option\n\nNilfs enables write barriers by default and has \"nobarrier\" mount\noption to disable this feature.  But it lacks the complementary option\nand has no way to re-enable the feature on remount.\n\nThis adds \"barrier\" option to resolve this imbalance.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "8b8edefa2fffbff97f9eec8b70e78ae23abad1a0",
      "tree": "7f0efac8adb9c9ed7be8af63e51510954f1c51dc",
      "parents": [
        "e120153ddf8620fd0a194d301e9c5a8b28483bb5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 20 22:09:01 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 22 22:58:34 2010 +0200"
      },
      "message": "fscache: convert object to use workqueue instead of slow-work\n\nMake fscache object state transition callbacks use workqueue instead\nof slow-work.  New dedicated unbound CPU workqueue fscache_object_wq\nis created.  get/put callbacks are renamed and modified to take\n@object and called directly from the enqueue wrapper and the work\nfunction.  While at it, make all open coded instances of get/put to\nuse fscache_get/put_object().\n\n* Unbound workqueue is used.\n\n* work_busy() output is printed instead of slow-work flags in object\n  debugging outputs.  They mean basically the same thing bit-for-bit.\n\n* sysctl fscache.object_max_active added to control concurrency.  The\n  default value is nr_cpus clamped between 4 and\n  WQ_UNBOUND_MAX_ACTIVE.\n\n* slow_work_sleep_till_thread_needed() is replaced with fscache\n  private implementation fscache_object_sleep_till_congested() which\n  waits on fscache_object_wq congestion.\n\n* debugfs support is dropped for now.  Tracing API based debug\n  facility is planned to be added.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "1bf7dbfde8fe7ddaa8e2e1b4e0fc41a9fc6aa7a5",
      "tree": "fdb99e686fa40e79cc53f80dfed58e9b548ed4eb",
      "parents": [
        "ad8456361fa19068cf49b50a4f98e41b73c08e76",
        "f9369729496a0f4c607a4cc1ea4dfeddbbfc505a"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jun 04 13:22:30 2010 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jun 04 13:22:30 2010 -0500"
      },
      "message": "Merge branch \u0027master\u0027 into for-linus\n"
    },
    {
      "commit": "8cbccbe76168a0c627d2274e4a322116804db30f",
      "tree": "7ad89d1260643ef23bcee47dc3fd9fc576edac55",
      "parents": [
        "0dea7c12fc2c15de8b2104a322a1f47919d753fd"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Jun 02 16:02:44 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Jun 03 03:18:18 2010 -0700"
      },
      "message": "ipconfig: document DHCP hostname and DNS record\n\nNow it\u0027s possible to update the DNS record for $HOST_NAME with\n\n\tip\u003d::::$HOST_NAME::dhcp\n\nCC: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "99a4d54620264a614c89597bc5aaab22ec83f89c",
      "tree": "84079064510e337afaee2e5fa5b120fb2650c1a0",
      "parents": [
        "5b257b4a1f9239624c6b5e669763de04e482c2b3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Jun 03 16:22:29 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 03 16:22:29 2010 +1000"
      },
      "message": "xfs: remove done roadmap item from xfs-delayed-logging-design.txt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n\n\n"
    },
    {
      "commit": "7bb46a6734a7e1ad4beaecc11cae7ed3ff81d30f",
      "tree": "e575d9c55e2a6ccc645dcb3ae2564de458b428f2",
      "parents": [
        "7000d3c424e5bb350e502a477fb0e1ed42f8b10e"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Thu May 27 01:05:33 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:15:33 2010 -0400"
      },
      "message": "fs: introduce new truncate sequence\n\nIntroduce a new truncate calling sequence into fs/mm subsystems. Rather than\nsetattr \u003e vmtruncate \u003e truncate, have filesystems call their truncate sequence\nfrom -\u003esetattr if filesystem specific operations are required. vmtruncate is\ndeprecated, and truncate_pagecache and inode_newsize_ok helpers introduced\npreviously should be used.\n\nsimple_setattr is introduced for simple in-ram filesystems to implement\nthe new truncate sequence. Eventually all filesystems should be converted\nto implement a setattr, and the default code in notify_change should go\naway.\n\nsimple_setsize is also introduced to perform just the ATTR_SIZE portion\nof simple_setattr (ie. changing i_size and trimming pagecache).\n\nTo implement the new truncate sequence:\n- filesystem specific manipulations (eg freeing blocks) must be done in\n  the setattr method rather than -\u003etruncate.\n- vmtruncate can not be used by core code to trim blocks past i_size in\n  the event of write failure after allocation, so this must be performed\n  in the fs code.\n- convert usage of helpers block_write_begin, nobh_write_begin,\n  cont_write_begin, and *blockdev_direct_IO* to use _newtrunc postfixed\n  variants. These avoid calling vmtruncate to trim blocks (see previous).\n- inode_setattr should not be used. generic_setattr is a new function\n  to be used to copy simple attributes into the generic inode.\n- make use of the better opportunity to handle errors with the new sequence.\n\nBig problem with the previous calling sequence: the filesystem is not called\nuntil i_size has already changed.  This means it is not allowed to fail the\ncall, and also it does not know what the previous i_size was. Also, generic\ncode calling vmtruncate to truncate allocated blocks in case of error had\nno good way to return a meaningful error (or, for example, atomically handle\nblock deallocation).\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "866707fc2721df8fee637fcf0239628b9231f9ea",
      "tree": "485b1a369c1b879a2dd556e44bd30a23e6bfd87f",
      "parents": [
        "ca572727dbb945e443564029a495157fd2e72995"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@suse.de",
        "time": "Wed May 26 14:44:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:56 2010 -0700"
      },
      "message": "Documentation/filesystems/Locking: update documentation on llseek() wrt BKL\n\nThe inode\u0027s i_size is not protected by the big kernel lock.  Therefore it\ndoes not make sense to recommend taking the BKL in filesystems llseek\noperations.  Instead it should use the inode\u0027s mutex or use just use\ni_size_read() instead.  Add a note that this is not protecting\nfile-\u003ef_pos.\n\nSigned-off-by: Jan Blunck \u003cjblunck@suse.de\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: John Kacur \u003cjkacur@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": "63a6440326e4cd01d6a663069208a0e68e9b833f",
      "tree": "ad3fa7a941d3eb59c4f584486cabc60247df9bdf",
      "parents": [
        "f45471cbda9df24f990154a963741c9bd4c0b0aa",
        "899f4530334da9292556e1f8f5791468e0136ff1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 26 08:57:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 26 08:57:20 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus:\n  squashfs: update documentation to include description of xattr layout\n  squashfs: fix name reading in squashfs_xattr_get\n  squashfs: constify xattr handlers\n  squashfs: xattr fix sparse warnings\n  squashfs: xattr_lookup sparse fix\n  squashfs: add xattr support configure option\n  squashfs: add new extended inode types\n  squashfs: add support for xattr reading\n  squashfs: add xattr id support\n"
    },
    {
      "commit": "899f4530334da9292556e1f8f5791468e0136ff1",
      "tree": "d4edc8eb5cf308880ecdb51cbdffa5c0f65f84f8",
      "parents": [
        "5c80f5aa409b211ab193c56fb6b77d73b61966e5"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Tue May 25 02:47:00 2010 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Wed May 26 01:12:26 2010 +0100"
      },
      "message": "squashfs: update documentation to include description of xattr layout\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "110b93842e36b17598cf24874e90d0401431cda2",
      "tree": "d95591d129ea8ed8d5b8e489e2d5ae68e79586c4",
      "parents": [
        "4961ab934a1254b1ad9420cea0ded617b57f022b",
        "88e88374ee4958786397a57f684de6f1fc5e0242"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:17:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:17:01 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: Ensure inode allocation buffers are fully replayed\n  xfs: enable background pushing of the CIL\n  xfs: forced unmounts need to push the CIL\n  xfs: Introduce delayed logging core code\n  xfs: Delayed logging design documentation\n  xfs: Improve scalability of busy extent tracking\n  xfs: make the log ticket ID available outside the log infrastructure\n  xfs: clean up log ticket overrun debug output\n  xfs: Clean up XFS_BLI_* flag namespace\n  xfs: modify buffer item reference counting\n  xfs: allow log ticket allocation to take allocation flags\n  xfs: Don\u0027t reuse the same transaction ID for duplicated transactions.\n"
    },
    {
      "commit": "971ada0f6659488c3f36aed4c6f7670ff5ce4368",
      "tree": "41cae3f0baf63eca482e4e17c3081cc6a8a86439",
      "parents": [
        "15d77835ac48dbc2d4884376ea6a08b65b1c40ba"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon May 24 14:32:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:57 2010 -0700"
      },
      "message": "mempolicy: document cpuset interaction with tmpfs mpol mount option\n\nUpdate Documentation/filesystems/tmpfs.txt to describe the interaction of\ntmpfs mount option memory policy with tasks\u0027 cpuset mems_allowed.\n\nNote: the mount(8) man page [in the util-linux-ng package] requires\nsimiliar updates.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88e88374ee4958786397a57f684de6f1fc5e0242",
      "tree": "750fe86ece5d65e597223eb07c5ce7cf5b3749a0",
      "parents": [
        "7e125f7b9cbfce4101191b8076d606c517a73066",
        "ccf7c23fc129e75ef60e6f59f60a485b7a056598"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 11:57:36 2010 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 11:57:36 2010 -0500"
      },
      "message": "Merge branch \u0027delayed-logging-for-2.6.35\u0027 into for-linus\n"
    },
    {
      "commit": "a9a745daadab26f13884ff26a50fa38247c11ce9",
      "tree": "a68d4b8bf12c9ea405d3a97b0c3015c5de31145f",
      "parents": [
        "ed3b4d6cdc81e8feefdbfa3c584614be301b6d39"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri May 14 21:43:11 2010 +1000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon May 24 10:35:39 2010 -0500"
      },
      "message": "xfs: Delayed logging design documentation\n\nDocument the design of the delayed logging implementation. This\nincludes assumptions made, dead ends followed, the reasoning behind\nthe structuring of the code, the layout of various structures, how\nthings fit together, traps and pit-falls avoided, etc. This is all\ntoo much to document in the code itself, so do it in a separate\nfile.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "7ce1418f95e918cfc5ad36e3ec3431145c768cd0",
      "tree": "10fd5bf66a5d0cb71cbf0ffb17b354969a7cc4c4",
      "parents": [
        "a6f039869ff87e0a8d621e31d14bbb120c1dfa93",
        "1907131bbeabb33db313bad34f3ec1a5faedbd64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:50:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 10:50:28 2010 -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: (31 commits)\n  dquot: Detect partial write error to quota file in write_blk() and add printk_ratelimit for quota error messages\n  ocfs2: Fix lock inversion in quotas during umount\n  ocfs2: Use __dquot_transfer to avoid lock inversion\n  ocfs2: Fix NULL pointer deref when writing local dquot\n  ocfs2: Fix estimate of credits needed for quota allocation\n  ocfs2: Fix quota locking\n  ocfs2: Avoid unnecessary block mapping when refreshing quota info\n  ocfs2: Do not map blocks from local quota file on each write\n  quota: Refactor dquot_transfer code so that OCFS2 can pass in its references\n  quota: unify quota init condition in setattr\n  quota: remove sb_has_quota_active in get/set_info\n  quota: unify -\u003eset_dqblk\n  quota: unify -\u003eget_dqblk\n  ext3: make barrier options consistent with ext4\n  quota: Make quota stat accounting lockless.\n  suppress warning: \"quotatypes\" defined but not used\n  ext3: Fix waiting on transaction during fsync\n  jbd: Provide function to check whether transaction will issue data barrier\n  ufs: add ufs speciffic -\u003esetattr call\n  BKL: Remove BKL from ext2 filesystem\n  ...\n"
    },
    {
      "commit": "0636c73ee7b129f77f577aaaefc8dde057be6d18",
      "tree": "6cf9dba3119f9ec6fa346572c8a5bd693828bf45",
      "parents": [
        "dde9588853b1bde542eab247f8838c472806688f"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Apr 30 11:09:34 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:41 2010 +0200"
      },
      "message": "ext3: make barrier options consistent with ext4\n\next4 was updated to accept barrier/nobarrier mount options\nin addition to the older barrier\u003d0/1.  The barrier story\nis complex enough, we should help people by making the options\nthe same at least, even if the defaults are different.\n\nThis patch allows the barrier/nobarrier mount options for ext3,\nwhile keeping nobarrier the default.\n\nIt also unconditionally displays barrier status in show_options,\nand prints a message at mount time if barriers are not enabled,\njust as ext4 does.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b9d8b45ee3c5f62cdbd34ee006f3dd2ac51f7018",
      "tree": "9e941a38200988eb7721517fa41322518034114a",
      "parents": [
        "be867b194a3ae3c680c29521287ae49b4d44d420"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Tue May 04 21:45:38 2010 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 21 09:37:31 2010 -0700"
      },
      "message": "sysfs-namespaces: add a high-level Documentation file\n\nThe first three paragraphs are almost verbatim taken from Eric\u0027s\ncommit message on the patch introducing network ns tags.  The next\ntwo paragraphs I wrote to be a brief high level overview.  The last\nsection is taken from the commit message on \"Implement sysfs tagged\ndirectory support\", but updated.  Hopefully correctly.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d7dbf4ffee1c7a17e2e5b5f01efe76fbd1671db6",
      "tree": "2f4eda25c0c9eb6de1e573dba92b4d23fc383db5",
      "parents": [
        "677abe49ad017679627af9d3bbd9a7ecb3d94c42",
        "d240e06713007bba309b074a386b7072b73c31a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:47:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:47:00 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (23 commits)\n  nilfs2: disallow remount of snapshot from/to a regular mount\n  nilfs2: use huge_encode_dev/huge_decode_dev\n  nilfs2: update comment on deactivate_super at nilfs_get_sb\n  nilfs2: replace MS_VERBOSE with MS_SILENT\n  nilfs2: add missing initialization of s_mode\n  nilfs2: fix misuse of open_bdev_exclusive/close_bdev_exclusive\n  nilfs2: enlarge s_volume_name member in nilfs_super_block\n  nilfs2: use checkpoint number instead of timestamp to select super block\n  nilfs2: add missing endian conversion on super block magic number\n  nilfs2: make nilfs_sc_*_ops static\n  nilfs2: add kernel doc comments to persistent object allocator functions\n  nilfs2: change sc_timer from a pointer to an embedded one in struct nilfs_sc_info\n  nilfs2: remove nilfs_segctor_init() in segment.c\n  nilfs2: insert checkpoint number in segment summary header\n  nilfs2: add a print message after loading nilfs2\n  nilfs2: cleanup multi kmem_cache_{create,destroy} code\n  nilfs2: move out checksum routines to segment buffer code\n  nilfs2: move pointer to super root block into logs\n  nilfs2: change default of \u0027errors\u0027 mount option to \u0027remount-ro\u0027 mode\n  nilfs2: Combine nilfs_btree_release_path() and nilfs_btree_free_path()\n  ...\n"
    },
    {
      "commit": "677abe49ad017679627af9d3bbd9a7ecb3d94c42",
      "tree": "7cdb7fbc95b51b288e923a3978e17ed2207a4118",
      "parents": [
        "e90e4d9234c953b29267cc4fc9ad804128773313",
        "6a99be5d7b5973767b1ffa4fa68fed0738589c99"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:29:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:29:15 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:\n  GFS2: Fix typo\n  GFS2: stuck in inode wait, no glocks stuck\n  GFS2: Eliminate useless err variable\n  GFS2: Fix writing to non-page aligned gfs2_quota structures\n  GFS2: Add some useful messages\n  GFS2: fix quota state reporting\n  GFS2: Various gfs2_logd improvements\n  GFS2: glock livelock\n  GFS2: Clean up stuffed file copying\n  GFS2: docs update\n  GFS2: Remove space from slab cache name\n"
    },
    {
      "commit": "03e62303cf56e87337115f14842321043df2b4bb",
      "tree": "3024495955beccddbae347d99613bcdd33801ee4",
      "parents": [
        "33cf23b0a535475aead57707cb9f4fe135a93544",
        "18d3a98f3c1b0e27ce026afa4d1ef042f2903726"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:20:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:20:17 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (47 commits)\n  ocfs2: Silence a gcc warning.\n  ocfs2: Don\u0027t retry xattr set in case value extension fails.\n  ocfs2:dlm: avoid dlm-\u003east_lock lockres-\u003espinlock dependency break\n  ocfs2: Reset xattr value size after xa_cleanup_value_truncate().\n  fs/ocfs2/dlm: Use kstrdup\n  fs/ocfs2/dlm: Drop memory allocation cast\n  Ocfs2: Optimize punching-hole code.\n  Ocfs2: Make ocfs2_find_cpos_for_left_leaf() public.\n  Ocfs2: Fix hole punching to correctly do CoW during cluster zeroing.\n  Ocfs2: Optimize ocfs2 truncate to use ocfs2_remove_btree_range() instead.\n  ocfs2: Block signals for mkdir/link/symlink/O_CREAT.\n  ocfs2: Wrap signal blocking in void functions.\n  ocfs2/dlm: Increase o2dlm lockres hash size\n  ocfs2: Make ocfs2_extend_trans() really extend.\n  ocfs2/trivial: Code cleanup for allocation reservation.\n  ocfs2: make ocfs2_adjust_resv_from_alloc simple.\n  ocfs2: Make nointr a default mount option\n  ocfs2/dlm: Make o2dlm domain join/leave messages KERN_NOTICE\n  o2net: log socket state changes\n  ocfs2: print node # when tcp fails\n  ...\n"
    },
    {
      "commit": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "f72caf7e496465182eeda842ac66a5e75404ddf1",
      "tree": "682e2e4b34d6240ea5dbc516d368dd14b21de182",
      "parents": [
        "6a6be470c3071559970c5659354484d4f664050e",
        "e4e83ea47babd9d4bf95a13aed87f8ef51e46472"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:24:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:24:54 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.35\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.35\u0027 of git://linux-nfs.org/~bfields/linux: (45 commits)\n  Revert \"nfsd4: distinguish expired from stale stateids\"\n  nfsd: safer initialization order in find_file()\n  nfs4: minor callback code simplification, comment\n  NFSD: don\u0027t report compiled-out versions as present\n  nfsd4: implement reclaim_complete\n  nfsd4: nfsd4_destroy_session must set callback client under the state lock\n  nfsd4: keep a reference count on client while in use\n  nfsd4: mark_client_expired\n  nfsd4: introduce nfs4_client.cl_refcount\n  nfsd4: refactor expire_client\n  nfsd4: extend the client_lock to cover cl_lru\n  nfsd4: use list_move in move_to_confirmed\n  nfsd4: fold release_session into expire_client\n  nfsd4: rename sessionid_lock to client_lock\n  nfsd4: fix bare destroy_session null dereference\n  nfsd4: use local variable in nfs4svc_encode_compoundres\n  nfsd: further comment typos\n  sunrpc: centralise most calls to svc_xprt_received\n  nfsd4: fix unlikely race in session replay case\n  nfsd4: fix filehandle comment\n  ...\n"
    },
    {
      "commit": "6e0b7b2c39b91b467270dd0bc383914f99e1fb28",
      "tree": "bdd28cb3ab5653404220d2bd9089203168ef869f",
      "parents": [
        "e4e47eb15b7884963efe7f98231009c5770a2c3d",
        "4308ad801193f14ff42cb746da37cf07e35f0d08"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:09:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 19 17:09:40 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Clear CPU mask in affinity_hint when none is provided\n  genirq: Add CPU mask affinity hint\n  genirq: Remove IRQF_DISABLED from core code\n  genirq: Run irq handlers with interrupts disabled\n  genirq: Introduce request_any_context_irq()\n  genirq: Expose irq_desc-\u003enode in proc/irq\n\nFixed up trivial conflicts in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "4dc6ec00f6347b72312fa41dfc587d5302b05544",
      "tree": "fbb00e0c8341561f155a6dcd6fc5f83282c638b0",
      "parents": [
        "ab707e156593ff7fffd615757332dbff6616836a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Apr 19 15:11:28 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu May 13 12:03:11 2010 -0400"
      },
      "message": "nfsd4: implement reclaim_complete\n\nThis is a mandatory operation.  Also, here (not in open) is where we\nshould be committing the reboot recovery information.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "34441427aab4bdb3069a4ffcda69a99357abcb2e",
      "tree": "3beebde910f25b0945e9105017fd743c9e5241a5",
      "parents": [
        "3c904afd7358e9ef515eb5df36b6f25c2b7fc2da"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Tue May 11 14:06:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 11 17:33:41 2010 -0700"
      },
      "message": "revert \"procfs: provide stack information for threads\" and its fixup commits\n\nOriginally, commit d899bf7b (\"procfs: provide stack information for\nthreads\") attempted to introduce a new feature for showing where the\nthreadstack was located and how many pages are being utilized by the\nstack.\n\nCommit c44972f1 (\"procfs: disable per-task stack usage on NOMMU\") was\napplied to fix the NO_MMU case.\n\nCommit 89240ba0 (\"x86, fs: Fix x86 procfs stack information for threads on\n64-bit\") was applied to fix a bug in ia32 executables being loaded.\n\nCommit 9ebd4eba7 (\"procfs: fix /proc/\u003cpid\u003e/stat stack pointer for kernel\nthreads\") was applied to fix a bug which had kernel threads printing a\nuserland stack address.\n\nCommit 1306d603f (\u0027proc: partially revert \"procfs: provide stack\ninformation for threads\"\u0027) was then applied to revert the stack pages\nbeing used to solve a significant performance regression.\n\nThis patch nearly undoes the effect of all these patches.\n\nThe reason for reverting these is it provides an unusable value in\nfield 28.  For x86_64, a fork will result in the task-\u003estack_start\nvalue being updated to the current user top of stack and not the stack\nstart address.  This unpredictability of the stack_start value makes\nit worthless.  That includes the intended use of showing how much stack\nspace a thread has.\n\nOther architectures will get different values.  As an example, ia64\ngets 0.  The do_fork() and copy_process() functions appear to treat the\nstack_start and stack_size parameters as architecture specific.\n\nI only partially reverted c44972f1 (\"procfs: disable per-task stack usage\non NOMMU\") .  If I had completely reverted it, I would have had to change\nmm/Makefile only build pagewalk.o when CONFIG_PROC_PAGE_MONITOR is\nconfigured.  Since I could not test the builds without significant effort,\nI decided to not change mm/Makefile.\n\nI only partially reverted 89240ba0 (\"x86, fs: Fix x86 procfs stack\ninformation for threads on 64-bit\") .  I left the KSTK_ESP() change in\nplace as that seemed worthwhile.\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: Stefani Seibold \u003cstefani@seibold.net\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\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": "ca0dbd86b12be9af7cda230890eb741d5cb8b624",
      "tree": "007bb05cf7032e81e97da4e704641aa15103e2f8",
      "parents": [
        "ce60d4d5d50a5454768faa522da98aa5f8070bd0"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Fri May 07 16:52:26 2010 -0300"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon May 10 23:42:27 2010 +0200"
      },
      "message": "doc: inode uses a mutex instead of a semaphore.\n\nReplace the introduced i_sem by an i_mutex in the filesystem locking\ndocumentation. This was introduced [1] after all occurrences were\nalready replaced in the same text [2]. However, the term \"inode\nsemaphore\" has not been replaced then, and it\u0027s replaced now.\n\n[1] afddba49d18f346e5cc2938b6ed7c512db18ca68\n[2] a7bc02f4f47fd0e7860c6589f0ad000d1476f7a3\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "a8cd4561ea176f51e9f4707873ca4eff8fd5ee70",
      "tree": "82f4f90f732fcc06480073bf494bab503fc24d62",
      "parents": [
        "7d7fb0e6eb78600e5d4fb0f28858e97d38ef6bbf"
      ],
      "author": {
        "name": "Anand Gadiyar",
        "email": "gadiyar@ti.com",
        "time": "Mon May 10 14:51:19 2010 +0530"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon May 10 11:56:30 2010 +0200"
      },
      "message": "fix \"seperate\" typos in comments\n\ns/seperate/separate\n\nSigned-off-by: Anand Gadiyar \u003cgadiyar@ti.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "277a6a34175dcb0ee98dceee619e0e3190347a25",
      "tree": "bda68b681972c608b78de87f5e856a649f2a04e7",
      "parents": [
        "73bb48869b14fd5094b9ec173a2bf86bc0e464d4"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Fri Apr 02 18:02:33 2010 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon May 10 11:32:30 2010 +0900"
      },
      "message": "nilfs2: change default of \u0027errors\u0027 mount option to \u0027remount-ro\u0027 mode\n\nLike ext3, nilfs has \u0027errors\u0027 mount option to allow specifying desired\nbehavior on severe errors.\n\nCurrently, the default action is \u0027errors\u003dcontinue\u0027 and has potential\nto advance filesystem corruption for severe errors.\n\nThis will change the action to \u0027errors\u003dremount-ro\u0027 to avoid the issue.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\n"
    },
    {
      "commit": "83f92318fa33cc084e14e64dc903e605f75884c1",
      "tree": "c7466c64019fb050c69cab27b4388e3a86d58b1a",
      "parents": [
        "b07f8f24dfe54da0f074b78949044842e8df881f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Apr 05 18:17:16 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:07 2010 -0700"
      },
      "message": "ocfs2: Add dir_resv_level mount option\n\nThe default behavior for directory reservations stays the same, but we add a\nmount option so people can tweak the size of directory reservations\naccording to their workloads.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "b07f8f24dfe54da0f074b78949044842e8df881f",
      "tree": "8cc24b0a1e02a9b7f1241fbfecca50ac6881b938",
      "parents": [
        "6b82021b9e91cd689fdffadbcdb9a42597bbe764"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Apr 05 18:17:15 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:07 2010 -0700"
      },
      "message": "ocfs2: change default reservation window sizes\n\nThe default reservation size of 4 (32-bit windows) is a bit too ambitious.\nScale it back to 16 bits (resv_level\u003d2). I have been testing various sizes\non a 4-node cluster which runs a mixed workload that is heavily threaded.\nWith a 256MB local alloc, I get *roughly* the following levels of average file\nfragmentation:\n\nresv_level\u003d0\t70%\nresv_level\u003d1\t21%\nresv_level\u003d2\t23%\nresv_level\u003d3\t24%\nresv_level\u003d4\t60%\nresv_level\u003d5\tdid not test\nresv_level\u003d6\t60%\n\nresv_level\u003d2 seemed like a good compromise between not letting windows be\ntoo small, but not so big that heavier workloads will immediately suffer\nwithout tuning.\n\nThis patch also change the behavior of directory reservations - they now\ntrack file reservations.  The previous compromise of giving directory\nwindows only 8 bits wound up fragmenting more at some window sizes because\nfile allocations had smaller unused windows to poach from.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "d02f00cc057809d96c044cc72d5b9809d59f7d49",
      "tree": "44a6d81ecf9fb4b5aa91c0501a8da2ee36890a38",
      "parents": [
        "ec20cec7a351584ca6c70ead012e73d61f9a8e04"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 07 13:10:48 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:17:30 2010 -0700"
      },
      "message": "ocfs2: allocation reservations\n\nThis patch improves Ocfs2 allocation policy by allowing an inode to\nreserve a portion of the local alloc bitmap for itself. The reserved\nportion (allocation window) is advisory in that other allocation\nwindows might steal it if the local alloc bitmap becomes\nfull. Otherwise, the reservations are honored and guaranteed to be\nfree. When the local alloc window is moved to a different portion of\nthe bitmap, existing reservations are discarded.\n\nReservation windows are represented internally by a red-black\ntree. Within that tree, each node represents the reservation window of\none inode. An LRU of active reservations is also maintained. When new\ndata is written, we allocate it from the inodes window. When all bits\nin a window are exhausted, we allocate a new one as close to the\nprevious one as possible. Should we not find free space, an existing\nreservation is pulled off the LRU and cannibalized.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a33f32244d8550da8b4a26e277ce07d5c6d158b5",
      "tree": "2b24b891e48ae791446fef6d1b9e520190c03c62",
      "parents": [
        "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1"
      ],
      "author": {
        "name": "Francis Galiegue",
        "email": "fgaliegue@gmail.com",
        "time": "Fri Apr 23 00:08:02 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:09:52 2010 +0200"
      },
      "message": "Documentation/: it\u0027s -\u003e its where appropriate\n\nFix obvious cases of \"it\u0027s\" being used when \"its\" was meant.\n\nSigned-off-by: Francis Galiegue \u003cfgaliegue@gmail.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1",
      "tree": "797676a336b050bfa1ef879377c07e541b9075d6",
      "parents": [
        "4cb3ca7cd7e2cae8d1daf5345ec99a1e8502cf3f",
        "c81eddb0e3728661d1585fbc564449c94165cc36"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "7c7145f6acc68100dbdc5d3c5c64fe3af1c99c89",
      "tree": "5e93e3eb4787229032f1df222fa490112f4b0c32",
      "parents": [
        "92d6b71ab906be706f3679353b30a8d2c3831144",
        "0d0fb0f9c5fddef4a10242fe3337f00f528a3099"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 13 14:12:17 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 13 14:12:17 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/core\n\nReason: Get the upstream IRQF_DISABLED related changes.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9208d24253e5e644f8cb1b87b69de44897668303",
      "tree": "130092938941e26f32428497ce9335dcebeb367d",
      "parents": [
        "476ada0436351672fbf482db54cb94b8ba877709"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Thu Mar 18 08:01:33 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Mon Apr 05 10:37:36 2010 -0500"
      },
      "message": "9p: documentation update\n\nThis patch adds documentation for new 9P options introduced in\n2.6.34.\n\nSigned-off-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "9f321603724be7386ea39ea41fd885954db60a4a",
      "tree": "efd64c26c2fb2698ecd95c2f10dc1016b45ba4a4",
      "parents": [
        "9d54e2c0b0a03b0f05fc4f988323c858ec9d7740",
        "82593f87b6c1922a8f8317bb165c6c7794fa4639"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 29 14:42:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 29 14:42:25 2010 -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: (28 commits)\n  ceph: update discussion list address in MAINTAINERS\n  ceph: some documentations fixes\n  ceph: fix use after free on mds __unregister_request\n  ceph: avoid loaded term \u0027OSD\u0027 in documention\n  ceph: fix possible double-free of mds request reference\n  ceph: fix session check on mds reply\n  ceph: handle kmalloc() failure\n  ceph: propagate mds session allocation failures to caller\n  ceph: make write_begin wait propagate ERESTARTSYS\n  ceph: fix snap rebuild condition\n  ceph: avoid reopening osd connections when address hasn\u0027t changed\n  ceph: rename r_sent_stamp r_stamp\n  ceph: fix connection fault con_work reentrancy problem\n  ceph: prevent dup stale messages to console for restarting mds\n  ceph: fix pg pool decoding from incremental osdmap update\n  ceph: fix mds sync() race with completing requests\n  ceph: only release unused caps with mds requests\n  ceph: clean up handle_cap_grant, handle_caps wrt session mutex\n  ceph: fix session locking in handle_caps, ceph_check_caps\n  ceph: drop unnecessary WARN_ON in caps migration\n  ...\n"
    },
    {
      "commit": "8136b58dd0fce0b4cb649ac690e0493fb6fdacdb",
      "tree": "7872de6b64028e7b10d6688baea9834523a4b974",
      "parents": [
        "94aa8ae13db2ecf2ec1b4e65a65d3fe92b468e0e"
      ],
      "author": {
        "name": "Cheng Renquan",
        "email": "crquan@gmail.com",
        "time": "Mon Mar 29 19:05:57 2010 +0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Mar 29 09:52:11 2010 -0700"
      },
      "message": "ceph: some documentations fixes\n\nNew documentation should have an entry in the 00-INDEX.  Correct git\nurls.\n\nSigned-off-by: Cheng Renquan \u003ccrquan@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4cb947b59c5835783fb96aad2f7d92b1e4250aff",
      "tree": "0a3b180a0074e3ed92af499d2c4f578cd7710151",
      "parents": [
        "7c9a84a57b57978f0ea0d2dc16394d75a781e6a5"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Thu Mar 25 11:04:49 2010 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 29 14:28:52 2010 +0100"
      },
      "message": "GFS2: docs update\n\nNow http://sources.redhat.com/cluster/ is redirected to\nhttp://sources.redhat.com/cluster/wiki/\n\nAlso fixed tabs in the end.\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5574169613b40b85d6f4c67208fa4846b897a0a1",
      "tree": "050644509a39366d77fb03fc20efce19103cbefe",
      "parents": [
        "926f2ae04f183098cf9a30521776fb2759c8afeb"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 23 13:35:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 24 16:31:21 2010 -0700"
      },
      "message": "doc: add the documentation for mpol\u003dlocal\n\ncommit 3f226aa1c (mempolicy: support mpol\u003dlocal tmpfs mount option) added\nnew mpol\u003dlocal mount option.  but it didn\u0027t add a documentation.\n\nThis patch does it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ravikiran Thirumalai \u003ckiran@scalex86.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.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": "92d6b71ab906be706f3679353b30a8d2c3831144",
      "tree": "2b82cc7f065f947f4a6430e0de3bc63a4870907d",
      "parents": [
        "220bf991b0366cc50a94feede3d7341fa5710ee4"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Thu Mar 11 14:08:56 2010 -0800"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Mar 24 14:10:03 2010 +0100"
      },
      "message": "genirq: Expose irq_desc-\u003enode in proc/irq\n\nExpose irq_desc-\u003enode as /proc/irq/*/node.\n\nThis file provides device hardware locality information for apps\ndesiring to include hardware locality in irq mapping decisions.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    }
  ],
  "next": "23ab15ad7a9d042afa7303b735b6e24faa607241"
}
