)]}'
{
  "log": [
    {
      "commit": "0400a6b0cb756f976bae32ae8db47bfa9853897c",
      "tree": "ec1393f7e5eeec02a0cc4504d98a138ae458f443",
      "parents": [
        "c34c32ea97718bb24fc06158733580003ba89211"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 09 16:00:53 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:18:22 2011 -0500"
      },
      "message": "NFSv4/4.1: Fix nfs4_schedule_state_recovery abuses\n\nnfs4_schedule_state_recovery() should only be used when we need to force\nthe state manager to check the lease. If we just want to start the\nstate manager in order to handle a state recovery situation, we should be\nusing nfs4_schedule_state_manager().\n\nThis patch fixes the abuses of nfs4_schedule_state_recovery() by replacing\nits use with a set of helper functions that do the right thing.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c34c32ea97718bb24fc06158733580003ba89211",
      "tree": "e11ca3f95ecc237499cd5d06f2377cc327c208b1",
      "parents": [
        "114f64b5f24abac33a42f4f1856eb3a9766d497e"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Mar 09 13:13:46 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:05:01 2011 -0500"
      },
      "message": "NFSv4.1 reclaim complete must wait for completion\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\n[Trond: fix whitespace errors]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "114f64b5f24abac33a42f4f1856eb3a9766d497e",
      "tree": "a3f5129bec4e2d7cf2afa0848798a5e74f422a3e",
      "parents": [
        "7d6d63d6427090cbb1d282364b65b12634ca59bd"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Mar 09 13:13:45 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:05:00 2011 -0500"
      },
      "message": "NFSv4: remove duplicate clientid in struct nfs_client\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d6d63d6427090cbb1d282364b65b12634ca59bd",
      "tree": "b75f3278469f86453e8b90ced1a5c3698a9c4a93",
      "parents": [
        "4cea288aaf0e11647880cc487350b1dc45d9febc"
      ],
      "author": {
        "name": "Ricardo Labiaga",
        "email": "Ricardo.Labiaga@netapp.com",
        "time": "Wed Mar 09 13:13:44 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:59 2011 -0500"
      },
      "message": "NFSv4.1: Retry CREATE_SESSION on NFS4ERR_DELAY\n\nFix bug where we currently retry the EXCHANGEID call again, eventhough\nwe already have a valid clientid.  Instead, delay and retry the CREATE_SESSION\ncall.\n\nSigned-off-by: Ricardo Labiaga \u003cRicardo.Labiaga@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3fa0b4e201d254b52a251fa348bd53e53000cff6",
      "tree": "ad5e41b45d5c8603901b34631b688ae5e3793942",
      "parents": [
        "43b7c3f051dea504afccc39bcb56d8e26c2e0b77"
      ],
      "author": {
        "name": "Frank Filz",
        "email": "ffilzlnx@us.ibm.com",
        "time": "Thu Dec 02 19:31:23 2010 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:58 2011 -0500"
      },
      "message": "(try3-resend) Fix nfs_compat_user_ino64 so it doesn\u0027t cause problems if bit 31 or 63 are set in fileid\n\nThe problem was use of an int32, which when converted to a uint64\nis sign extended resulting in a fileid that doesn\u0027t fit in 32 bits\neven though the intent of the function is to fit the fileid into\n32 bits.\n\nSigned-off-by: Frank Filz \u003cffilzlnx@us.ibm.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n[Trond: Added an include for compat.h]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "43b7c3f051dea504afccc39bcb56d8e26c2e0b77",
      "tree": "6d031d1804acf9a5abeeb6b1597cb6821f96e493",
      "parents": [
        "b9f810570d9cc13177128e11a74e22d37aa68a1a"
      ],
      "author": {
        "name": "Jovi Zhang",
        "email": "bookjovi@gmail.com",
        "time": "Wed Mar 02 23:19:37 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:56 2011 -0500"
      },
      "message": "nfs: fix compilation warning\n\nthis commit fix compilation warning as following:\nlinux-2.6/fs/nfs/nfs4proc.c:3265: warning: comparison of distinct pointer types lacks a cast\n\nSigned-off-by: Jovi Zhang \u003cbookjovi@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b9f810570d9cc13177128e11a74e22d37aa68a1a",
      "tree": "91c120b297c357695ae4be5dcd373ce220d0dedd",
      "parents": [
        "a5e502681007779d4762fb3ef7e80a3ecd1cfe6b"
      ],
      "author": {
        "name": "Stanislav Fomichev",
        "email": "kernel@fomichev.me",
        "time": "Sat Feb 05 23:13:01 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:55 2011 -0500"
      },
      "message": "nfs: add kmalloc return value check in decode_and_add_ds\n\nadd kmalloc return value check in decode_and_add_ds\n\nSigned-off-by: Stanislav Fomichev \u003ckernel@fomichev.me\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d2224e7afbf2a6556f4f8f25bc0e96d99ec4d2bd",
      "tree": "e8eea0db32178870bee34073547b982216035e45",
      "parents": [
        "bf294b41cefcb22fc3139e0f42c5b3f06728bd5e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sun Mar 06 17:14:13 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:53 2011 -0500"
      },
      "message": "nfs: close NFSv4 COMMIT vs. CLOSE race\n\nI\u0027ve been adding in more artificial delays in the NFSv4 commit and close\ncodepaths to uncover races. The kernel I\u0027m testing has the patch to\nclose the race in __rpc_wait_for_completion_task that\u0027s in Trond\u0027s\ncthon2011 branch. The reproducer I\u0027ve been using does this in a loop:\n\n\tmkdir(\"DIR\");\n\tfd \u003d open(\"DIR/FILE\", O_WRONLY|O_CREAT|O_EXCL, 0644);\n\twrite(fd, \"abcdefg\", 7);\n\tclose(fd);\n\tunlink(\"DIR/FILE\");\n\trmdir(\"DIR\");\n\nThe above reproducer shouldn\u0027t result in any silly-renaming. However,\nwhen I add a \"msleep(100)\" just after the nfs_commit_clear_lock call in\nnfs_commit_release, I can almost always force one to occur. If I can\nforce it to occur with that, then it can happen without that delay\ngiven the right timing.\n\nnfs_commit_inode waits for the NFS_INO_COMMIT bit to clear when called\nwith FLUSH_SYNC set. nfs_commit_rpcsetup on the other hand does not wait\nfor the task to complete before putting its reference to it, so the last\nreference get put in rpc_release task and gets queued to a workqueue.\n\nIn this situation, the last open context reference may be put by the\nCOMMIT release instead of the close() syscall. The close() syscall\nreturns too quickly and the unlink runs while the d_count is still\nhigh since the COMMIT release hasn\u0027t put its dentry reference yet.\n\nFix this by having rpc_commit_rpcsetup wait for the RPC call to complete\nbefore putting the task reference when FLUSH_SYNC is set. With this, the\nlast reference is put by the process that\u0027s initiating the FLUSH_SYNC\ncommit and the race is closed.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bf294b41cefcb22fc3139e0f42c5b3f06728bd5e",
      "tree": "250251c040a2d2e278b5a2ddd03c8d20a27be129",
      "parents": [
        "214d93b02c4fe93638ad268613c9702a81ed9192"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 21 11:05:41 2011 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 10 15:04:52 2011 -0500"
      },
      "message": "SUNRPC: Close a race in __rpc_wait_for_completion_task()\n\nAlthough they run as rpciod background tasks, under normal operation\n(i.e. no SIGKILL), functions like nfs_sillyrename(), nfs4_proc_unlck()\nand nfs4_do_close() want to be fully synchronous. This means that when we\nexit, we want all references to the rpc_task to be gone, and we want\nany dentry references etc. held by that task to be released.\n\nFor this reason these functions call __rpc_wait_for_completion_task(),\nfollowed by rpc_put_task() in the expectation that the latter will be\nreleasing the last reference to the rpc_task, and thus ensuring that the\ncallback_ops-\u003erpc_release() has been called synchronously.\n\nThis patch fixes a race which exists due to the fact that\nrpciod calls rpc_complete_task() (in order to wake up the callers of\n__rpc_wait_for_completion_task()) and then subsequently calls\nrpc_put_task() without ensuring that these two steps are done atomically.\n\nIn order to avoid adding new spin locks, the patch uses the existing\nwaitqueue spin lock to order the rpc_task reference count releases between\nthe waiting process and rpciod.\nThe common case where nobody is waiting for completion is optimised for by\nchecking if the RPC_TASK_ASYNC flag is cleared and/or if the rpc_task\nreference count is 1: in those cases we drop trying to grab the spin lock,\nand immediately free up the rpc_task.\n\nThose few processes that need to put the rpc_task from inside an\nasynchronous context and that do not care about ordering are given a new\nhelper: rpc_put_task_async().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fb62c00a6d8942775abc23d1621db1252e2d93d1",
      "tree": "ef8760123f5a2b692126ecb7a70f2689053885c1",
      "parents": [
        "5c4b4be3b6b937256103a5ae49177e0c3a17cb8f",
        "455cec0abff563574cca432ced49f734117ca113"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 05 10:43:22 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 05 10:43:22 2011 -0800"
      },
      "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:\n  ceph: no .snap inside of snapped namespace\n  libceph: fix msgr standby handling\n  libceph: fix msgr keepalive flag\n  libceph: fix msgr backoff\n  libceph: retry after authorization failure\n  libceph: fix handling of short returns from get_user_pages\n  ceph: do not clear I_COMPLETE from d_release\n  ceph: do not set I_COMPLETE\n  Revert \"ceph: keep reference to parent inode on ceph_dentry\"\n"
    },
    {
      "commit": "e9e3d724e2145f5039b423c290ce2b2c3d8f94bc",
      "tree": "9b0ff4de361fe358a5a2400b35a48206688b5f71",
      "parents": [
        "3256f80fbbc25bd2504bd564844c615227621e56"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Fri Mar 04 19:26:03 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 04 17:28:52 2011 -0800"
      },
      "message": "nfs4: Ensure that ACL pages sent over NFS were not allocated from the slab (v3)\n\nThe \"bad_page()\" page allocator sanity check was reported recently (call\nchain as follows):\n\n  bad_page+0x69/0x91\n  free_hot_cold_page+0x81/0x144\n  skb_release_data+0x5f/0x98\n  __kfree_skb+0x11/0x1a\n  tcp_ack+0x6a3/0x1868\n  tcp_rcv_established+0x7a6/0x8b9\n  tcp_v4_do_rcv+0x2a/0x2fa\n  tcp_v4_rcv+0x9a2/0x9f6\n  do_timer+0x2df/0x52c\n  ip_local_deliver+0x19d/0x263\n  ip_rcv+0x539/0x57c\n  netif_receive_skb+0x470/0x49f\n  :virtio_net:virtnet_poll+0x46b/0x5c5\n  net_rx_action+0xac/0x1b3\n  __do_softirq+0x89/0x133\n  call_softirq+0x1c/0x28\n  do_softirq+0x2c/0x7d\n  do_IRQ+0xec/0xf5\n  default_idle+0x0/0x50\n  ret_from_intr+0x0/0xa\n  default_idle+0x29/0x50\n  cpu_idle+0x95/0xb8\n  start_kernel+0x220/0x225\n  _sinittext+0x22f/0x236\n\nIt occurs because an skb with a fraglist was freed from the tcp\nretransmit queue when it was acked, but a page on that fraglist had\nPG_Slab set (indicating it was allocated from the Slab allocator (which\nmeans the free path above can\u0027t safely free it via put_page.\n\nWe tracked this back to an nfsv4 setacl operation, in which the nfs code\nattempted to fill convert the passed in buffer to an array of pages in\n__nfs4_proc_set_acl, which gets used by the skb-\u003efrags list in\nxs_sendpages.  __nfs4_proc_set_acl just converts each page in the buffer\nto a page struct via virt_to_page, but the vfs allocates the buffer via\nkmalloc, meaning the PG_slab bit is set.  We can\u0027t create a buffer with\nkmalloc and free it later in the tcp ack path with put_page, so we need\nto either:\n\n1) ensure that when we create the list of pages, no page struct has\n   PG_Slab set\n\n or\n\n2) not use a page list to send this data\n\nGiven that these buffers can be multiple pages and arbitrarily sized, I\nthink (1) is the right way to go.  I\u0027ve written the below patch to\nallocate a page from the buddy allocator directly and copy the data over\nto it.  This ensures that we have a put_page free-able page for every\nentry that winds up on an skb frag list, so it can be safely freed when\nthe frame is acked.  We do a put page on each entry after the\nrpc_call_sync call so as to drop our own reference count to the page,\nleaving only the ref count taken by tcp_sendpages.  This way the data\nwill be properly freed when the ack comes in\n\nSuccessfully tested by myself to solve the above oops.\n\nNote, as this is the result of a setacl operation that exceeded a page\nof data, I think this amounts to a local DOS triggerable by an\nuprivlidged user, so I\u0027m CCing security on this as well.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCC: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCC: security@kernel.org\nCC: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "455cec0abff563574cca432ced49f734117ca113",
      "tree": "594e8dd5ac6c48a97836e5ca1e6ce451e157f2a2",
      "parents": [
        "e00de341fdb76c955703b4438100f9933c452b7f"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 13:44:35 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Mar 04 12:25:09 2011 -0800"
      },
      "message": "ceph: no .snap inside of snapped namespace\n\nOtherwise you can do things like\n\n# mkdir .snap/foo\n# cd .snap/foo/.snap\n# ls\n\u003cbadness\u003e\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8336026942fdf6a96a45057a2fe6d7f7946979d5",
      "tree": "b831d361f5865a86ec645dccd87d74922099ac22",
      "parents": [
        "4c7fd114c65830cb052b6f3d0ab5b11626e64d5d",
        "69102e9b4b61f56a26717659ec2e572a6b18458d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 15:37:59 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 15:37:59 2011 -0800"
      },
      "message": "Merge branch \u0027i_nlink\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027i_nlink\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  hfs: fix rename() over non-empty directory\n  udf: fix i_nlink limit\n  fix reiserfs mkdir() breakage\n  exofs: i_nlink races in rename()\n  nilfs2: i_nlink races in rename()\n  minix: i_nlink races in rename()\n  ufs: i_nlink races in rename()\n  sysv: i_nlink races in rename()\n"
    },
    {
      "commit": "4c7fd114c65830cb052b6f3d0ab5b11626e64d5d",
      "tree": "bc6e04138c59caa5661f8ae5f9b833125ae4f26c",
      "parents": [
        "c640e13f8efeb38daa4c0b0891a46d32b01e51ac",
        "af24ee9ea8d532e16883251a6684dfa1be8eec29"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 12:44:22 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 12:44:22 2011 -0800"
      },
      "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: zero proper structure size for geometry calls\n"
    },
    {
      "commit": "c640e13f8efeb38daa4c0b0891a46d32b01e51ac",
      "tree": "e4f5963008d2c8288b4f12cfc812be6dba8f7e5d",
      "parents": [
        "cbdbb4c1d22e26f9d5314fefe6f2c7e5ed7f6a0f",
        "72746ac643928f6c3113b5aa783d8ea1b13949d2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 12:42:48 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 03 12:42:48 2011 -0800"
      },
      "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:\n  nilfs2: fix regression that i-flag is not set on changeless checkpoints\n"
    },
    {
      "commit": "16a8b70a5a757db513f036bbcc73309f6c507d81",
      "tree": "e075716a8e58149894fcad3fa36ebf6ea16cfc6e",
      "parents": [
        "b545cc1505eb49247071ce9f4092665de788ca00"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 28 12:49:15 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 10:09:52 2011 -0800"
      },
      "message": "ceph: do not clear I_COMPLETE from d_release\n\nFirst, this was racy anyway: d_release isn\u0027t called until well after the\ndentry is unhashed.  Second, this runs afoul of the recent dcache change\nthat clears d_parent prior to calling d_release (949854d0), causing a NULL\npointer dereference.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "b545cc1505eb49247071ce9f4092665de788ca00",
      "tree": "25bfbae54c086a1fdd0801efdd07aa4bdfdac951",
      "parents": [
        "9bde178d052418af0b8e0f12932cf02ab4764c9d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 28 12:46:46 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 10:09:51 2011 -0800"
      },
      "message": "ceph: do not set I_COMPLETE\n\nDo not set the I_COMPLETE flag on directories until we resolve races with\ndcache pruning.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "9bde178d052418af0b8e0f12932cf02ab4764c9d",
      "tree": "e70cf12b6687ce93005ca97937e5b79da42e09a1",
      "parents": [
        "f5412be599602124d2bdd49947b231dd77c0bf99"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Feb 28 09:47:37 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Mar 03 10:09:50 2011 -0800"
      },
      "message": "Revert \"ceph: keep reference to parent inode on ceph_dentry\"\n\nThis reverts commit 97d79b403ef03f729883246208ef5d8a2ebc4d68.\n\nThis fails to account for d_parent changes due to rename or disconnected\ndentries due to submounts or NFS reexports.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "69102e9b4b61f56a26717659ec2e572a6b18458d",
      "tree": "85f94fc81091e1f8014c9696359587884dceb3b8",
      "parents": [
        "810c1b2e48d32a8605928c3609262d94853c3a76"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 23:46:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:40 2011 -0500"
      },
      "message": "hfs: fix rename() over non-empty directory\n\nmerge hfs_unlink() and hfs_rmdir(), while we are at it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "810c1b2e48d32a8605928c3609262d94853c3a76",
      "tree": "8b1552e74152d7a2c8d129bd1c2cd30d0a1222bf",
      "parents": [
        "99890a3be1ee67346300f1e0a873006588760f2a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 10:15:26 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:40 2011 -0500"
      },
      "message": "udf: fix i_nlink limit\n\n(256 \u003c\u003c sizeof(x)) - 1 is not the maximal possible value of x...\nIn reality, the maximal allowed value for UDF FileLinkCount is\n65535.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "99890a3be1ee67346300f1e0a873006588760f2a",
      "tree": "a2d704543672fd5c36c95aee728cddaf2f2c26d5",
      "parents": [
        "babfe56046885749b6a90a3c4409219a1f16cf48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 09:35:13 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:40 2011 -0500"
      },
      "message": "fix reiserfs mkdir() breakage\n\nif directory has so many subdirectories that its link count is set\nto 1 (i.e. \"can\u0027t tell accurately\") and reiserfs_new_inode() fails,\nwe shouldn\u0027t decrement the parent\u0027s link count in cleanup path;\nthat\u0027s what DEC_DIR_INODE_NLINK() is for.  As it is, we end up\nwith parent suddenly getting zero i_nlink, with very unpleasant\neffects.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "babfe56046885749b6a90a3c4409219a1f16cf48",
      "tree": "67c9c4f3a03902a94036e573a3d82fe290eeac4d",
      "parents": [
        "30eb43d31478f0fca28423623f3ec6af13f845fa"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 16:42:38 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:17 2011 -0500"
      },
      "message": "exofs: i_nlink races in rename()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "30eb43d31478f0fca28423623f3ec6af13f845fa",
      "tree": "7bcf4777cd9c4da6c5c1f9f44cb59bed73e9c64b",
      "parents": [
        "6f88049caf56022c773272e03ddfa8cf79867059"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 12:01:13 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:17 2011 -0500"
      },
      "message": "nilfs2: i_nlink races in rename()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6f88049caf56022c773272e03ddfa8cf79867059",
      "tree": "fa437786f79a0470f3a7e74a441952baa8edfb8e",
      "parents": [
        "37750cdda36721fa7fa816f5f58258d2c013b248"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 09:41:38 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:16 2011 -0500"
      },
      "message": "minix: i_nlink races in rename()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "37750cdda36721fa7fa816f5f58258d2c013b248",
      "tree": "0c8f83e9865dc279f00881e71c442c7dfc198104",
      "parents": [
        "4787d45fa76b97e224a8299086bb5fb496275796"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 09:40:21 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:16 2011 -0500"
      },
      "message": "ufs: i_nlink races in rename()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4787d45fa76b97e224a8299086bb5fb496275796",
      "tree": "8473ed7fd9d5bc00a8720340d226d7478f4163e6",
      "parents": [
        "cbdbb4c1d22e26f9d5314fefe6f2c7e5ed7f6a0f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 02 09:38:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 03 01:28:16 2011 -0500"
      },
      "message": "sysv: i_nlink races in rename()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7d222ea2ac7aebf1ac06a76e7739ed17480fd38",
      "tree": "a6de80eed5413b32cf41bcb73d108a8f11253c8e",
      "parents": [
        "7a16d387dda10ecc0c4fbf086b89bfb1eb84d9c2",
        "a74ea43df1afc68f265c0ac2cb64031d855ae97b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 02 20:01:57 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 02 20:01:57 2011 -0800"
      },
      "message": "Merge branch \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6\n\n* \u0027devicetree/merge\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  of/promtree: allow DT device matching by fixing \u0027name\u0027 brokenness (v5)\n  x86: OLPC: have prom_early_alloc BUG rather than return NULL\n  of/flattree: Drop an uninteresting message to pr_debug level\n  of: Add missing of_address.h to xilinx ehci driver\n"
    },
    {
      "commit": "8aaccf7fa2a2f148db1edbe7b09e3119c3f910cf",
      "tree": "745b2a06ae4b30eae93ee87efc2621962dafb0e5",
      "parents": [
        "337fc720d85b98a71b1ff6e3a5449a24a7c33cfe"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Mon Feb 14 22:34:22 2011 +0100"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Wed Mar 02 13:45:18 2011 -0700"
      },
      "message": "of/flattree: Drop an uninteresting message to pr_debug level\n\nThis message looks like an error (which it isn\u0027t) when booting with a\nflattened device tree.  Remove the message from normal kernel builds.\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "e8a80c6f769dd4622d8b211b398452158ee60c0b",
      "tree": "e538f674c219d98d8829d6286aa9be6feee16c93",
      "parents": [
        "dd9c1549edef02290edced639f67b54a25abbe0e"
      ],
      "author": {
        "name": "Josh Hunt",
        "email": "johunt@akamai.com",
        "time": "Thu Feb 24 11:48:22 2011 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Mar 02 11:03:52 2011 +0100"
      },
      "message": "ext2: Fix link count corruption under heavy link+rename load\n\nvfs_rename_other() does not lock renamed inode with i_mutex. Thus changing\ni_nlink in a non-atomic manner (which happens in ext2_rename()) can corrupt\nit as reported and analyzed by Josh.\n\nIn fact, there is no good reason to mess with i_nlink of the moved file.\nWe did it presumably to simulate linking into the new directory and unlinking\nfrom an old one. But the practical effect of this is disputable because fsck\ncan possibly treat file as being properly linked into both directories without\nwriting any error which is confusing. So we just stop increment-decrement\ngames with i_nlink which also fixes the corruption.\n\nCC: stable@kernel.org\nCC: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Josh Hunt \u003cjohunt@akamai.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "af24ee9ea8d532e16883251a6684dfa1be8eec29",
      "tree": "0c6da066dd656121c077ba6b595503e0b6a41180",
      "parents": [
        "dd9c1549edef02290edced639f67b54a25abbe0e"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Mar 01 17:50:00 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Mar 01 21:21:13 2011 -0600"
      },
      "message": "xfs: zero proper structure size for geometry calls\n\nCommit 493f3358cb289ccf716c5a14fa5bb52ab75943e5 added this call to\nxfs_fs_geometry() in order to avoid passing kernel stack data back\nto user space:\n\n+       memset(geo, 0, sizeof(*geo));\n\nUnfortunately, one of the callers of that function passes the\naddress of a smaller data type, cast to fit the type that\nxfs_fs_geometry() requires.  As a result, this can happen:\n\nKernel panic - not syncing: stack-protector: Kernel stack is corrupted\nin: f87aca93\n\nPid: 262, comm: xfs_fsr Not tainted 2.6.38-rc6-493f3358cb2+ #1\nCall Trace:\n\n[\u003cc12991ac\u003e] ? panic+0x50/0x150\n[\u003cc102ed71\u003e] ? __stack_chk_fail+0x10/0x18\n[\u003cf87aca93\u003e] ? xfs_ioc_fsgeometry_v1+0x56/0x5d [xfs]\n\nFix this by fixing that one caller to pass the right type and then\ncopy out the subset it is interested in.\n\nNote: This patch is an alternative to one originally proposed by\nEric Sandeen.\n\nReported-by: Jeffrey Hundstad \u003cjeffrey.hundstad@mnsu.edu\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nTested-by: Jeffrey Hundstad \u003cjeffrey.hundstad@mnsu.edu\u003e\n"
    },
    {
      "commit": "72746ac643928f6c3113b5aa783d8ea1b13949d2",
      "tree": "c1d151eae5e963dd3f57079e0287c2259257bc29",
      "parents": [
        "dd9c1549edef02290edced639f67b54a25abbe0e"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Feb 28 13:41:11 2011 +0900"
      },
      "committer": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Wed Mar 02 09:55:18 2011 +0900"
      },
      "message": "nilfs2: fix regression that i-flag is not set on changeless checkpoints\n\nAccording to the report from Jiro SEKIBA titled \"regression in\n2.6.37?\"  (Message-Id: \u003c8739n8vs1f.wl%jir@sekiba.com\u003e), on 2.6.37 and\nlater kernels, lscp command no longer displays \"i\" flag on checkpoints\nthat snapshot operations or garbage collection created.\n\nThis is a regression of nilfs2 checkpointing function, and it\u0027s\ncritical since it broke behavior of a part of nilfs2 applications.\nFor instance, snapshot manager of TimeBrowse gets to create\nmeaningless snapshots continuously; snapshot creation triggers another\ncheckpoint, but applications cannot distinguish whether the new\ncheckpoint contains meaningful changes or not without the i-flag.\n\nThis patch fixes the regression and brings that application behavior\nback to normal.\n\nReported-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nTested-by: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nCc: stable \u003cstable@kernel.org\u003e  [2.6.37]\n"
    },
    {
      "commit": "e6eb5ce1b202ac9cdcfda5be559c9b9d8ec7542c",
      "tree": "804e89136479b335c2d4dd14dd6cbf8041a8ff8a",
      "parents": [
        "af06216a8ef1c430cc6ad22b562f3a11a512c5dd"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Feb 26 10:54:00 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 28 18:08:31 2011 -0800"
      },
      "message": "fs/block_dev.c: fix new kernel-doc warning\n\nFix new kernel-doc warning in fs/block_dev.c:\n\nWarning(fs/block_dev.c:937): No description found for parameter \u0027kill_dirty\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58da94f0139d848884ec4827593f1082276bbbf8",
      "tree": "10c06edc4788327c53f53c8b9b67236ffb718d0e",
      "parents": [
        "158a5d61f780b707da0b559cf60d72294006aa97",
        "8d56addd70c7c0626502569e22cc8fce49ae39f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 28 17:53:04 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 28 17:53:04 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: fix truncate after open\n  fuse: fix hang of single threaded fuseblk filesystem\n"
    },
    {
      "commit": "158a5d61f780b707da0b559cf60d72294006aa97",
      "tree": "f4e86dfdca114123f282ba9000ee7470844e91c0",
      "parents": [
        "c4319c7db8c3805e4811eaceeee6c2fa51411bd4",
        "52c303c56c3638944b5f733e3961dc58eb8c7270"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 28 17:52:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 28 17:52:47 2011 -0800"
      },
      "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:\n  ocfs2: Check heartbeat mode for kernel stacks only\n  Ocfs2/refcounttree: Fix a bug for refcounttree to writeback clusters in a right number.\n  ocfs2: Fix estimate of necessary credits for mkdir\n"
    },
    {
      "commit": "7137c6bd455234bcb7560fd829e6ee49cae5fed6",
      "tree": "7b463cfaf8a051fd6bc2bd2aaf4141659c982ee5",
      "parents": [
        "3bd9a5d734c7cc7533b27abf451416c7f50095a7"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Feb 25 14:44:27 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 15:07:37 2011 -0800"
      },
      "message": "aio: fix race between io_destroy() and io_submit()\n\nA race can occur when io_submit() races with io_destroy():\n\n CPU1\t\t\t\t\t\tCPU2\nio_submit()\n  do_io_submit()\n    ...\n    ctx \u003d lookup_ioctx(ctx_id);\n\t\t\t\t\t\tio_destroy()\n    Now do_io_submit() holds the last reference to ctx.\n    ...\n    queue new AIO\n    put_ioctx(ctx) - frees ctx with active AIOs\n\nWe solve this issue by checking whether ctx is being destroyed in AIO\nsubmission path after adding new AIO to ctx.  Then we are guaranteed that\neither io_destroy() waits for new AIO or we see that ctx is being\ndestroyed and bail out.\n\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3bd9a5d734c7cc7533b27abf451416c7f50095a7",
      "tree": "357fc4ec95d7163cb96891151df51f6d7d130d0a",
      "parents": [
        "29723fccc837d20039078f7a571e8d457eb0d6c6"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@gmail.com",
        "time": "Fri Feb 25 14:44:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 15:07:37 2011 -0800"
      },
      "message": "aio: fix rcu ioctx lookup\n\naio-dio-invalidate-failure GPFs in aio_put_req from io_submit.\n\nlookup_ioctx doesn\u0027t implement the rcu lookup pattern properly.\nrcu_read_lock does not prevent refcount going to zero, so we might take\na refcount on a zero count ioctx.\n\nFix the bug by atomically testing for zero refcount before incrementing.\n\n[jack@suse.cz: added comment into the code]\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "294f6cf48666825d23c9372ef37631232746e40d",
      "tree": "2190540b4d02534d17d1c4ee11b1ce96dba16daa",
      "parents": [
        "2876592f231d436c295b67726313f6f3cfb6e243"
      ],
      "author": {
        "name": "Timo Warns",
        "email": "Warns@pre-sense.de",
        "time": "Fri Feb 25 14:44:21 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 15:07:36 2011 -0800"
      },
      "message": "ldm: corrupted partition table can cause kernel oops\n\nThe kernel automatically evaluates partition tables of storage devices.\nThe code for evaluating LDM partitions (in fs/partitions/ldm.c) contains\na bug that causes a kernel oops on certain corrupted LDM partitions.  A\nkernel subsystem seems to crash, because, after the oops, the kernel no\nlonger recognizes newly connected storage devices.\n\nThe patch changes ldm_parse_vmdb() to Validate the value of vblk_size.\n\nSigned-off-by: Timo Warns \u003cwarns@pre-sense.de\u003e\nCc: Eugene Teo \u003ceugeneteo@kernel.sg\u003e\nAcked-by: Richard Russon \u003cldm@flatcap.org\u003e\nCc: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22bacca48a1755f79b7e0f192ddb9fbb7fc6e64e",
      "tree": "7762c2923b3bded3f6c01f9fc509b4726401794f",
      "parents": [
        "6366213ee3355278a90d1c20a1971c68fa3af68b"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Fri Feb 25 14:44:12 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 15:07:36 2011 -0800"
      },
      "message": "epoll: prevent creating circular epoll structures\n\nIn several places, an epoll fd can call another file\u0027s -\u003ef_op-\u003epoll()\nmethod with ep-\u003emtx held.  This is in general unsafe, because that other\nfile could itself be an epoll fd that contains the original epoll fd.\n\nThe code defends against this possibility in its own -\u003epoll() method using\nep_call_nested, but there are several other unsafe calls to -\u003epoll\nelsewhere that can be made to deadlock.  For example, the following simple\nprogram causes the call in ep_insert recursively call the original fd\u0027s\n-\u003epoll, leading to deadlock:\n\n #include \u003cunistd.h\u003e\n #include \u003csys/epoll.h\u003e\n\n int main(void) {\n     int e1, e2, p[2];\n     struct epoll_event evt \u003d {\n         .events \u003d EPOLLIN\n     };\n\n     e1 \u003d epoll_create(1);\n     e2 \u003d epoll_create(2);\n     pipe(p);\n\n     epoll_ctl(e2, EPOLL_CTL_ADD, e1, \u0026evt);\n     epoll_ctl(e1, EPOLL_CTL_ADD, p[0], \u0026evt);\n     write(p[1], p, sizeof p);\n     epoll_ctl(e1, EPOLL_CTL_ADD, e2, \u0026evt);\n\n     return 0;\n }\n\nOn insertion, check whether the inserted file is itself a struct epoll,\nand if so, do a recursive walk to detect whether inserting this file would\ncreate a loop of epoll structures, which could lead to deadlock.\n\n[nelhage@ksplice.com: Use epmutex to serialize concurrent inserts]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Nelson Elhage \u003cnelhage@ksplice.com\u003e\nReported-by: Nelson Elhage \u003cnelhage@ksplice.com\u003e\nTested-by: Nelson Elhage \u003cnelhage@ksplice.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.34+, possibly earlier]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4660ba63f1c4e07c20a435e084f12ba48a82bd2b",
      "tree": "494973a1dd4102eede20298f478574801af31b86",
      "parents": [
        "958ede7f1b72b29cd0d29ec88ee2bcb4c87dab61",
        "ec29ed5b407d618a8128f5942aade9e1758aa14b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 14:03:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 14:03:39 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: fix fiemap bugs with delalloc\n  Btrfs: set FMODE_EXCL in btrfs_device-\u003emode\n  Btrfs: make btrfs_rm_device() fail gracefully\n  Btrfs: Avoid accessing unmapped kernel address\n  Btrfs: Fix BTRFS_IOC_SUBVOL_SETFLAGS ioctl\n  Btrfs: allow balance to explicitly allocate chunks as it relocates\n  Btrfs: put ENOSPC debugging under a mount option\n"
    },
    {
      "commit": "638691a7a46a4ae9a7b56c603299e42d7f6e722e",
      "tree": "f744b3fbdd4704ef9ae122b67a14785b4a7a6b65",
      "parents": [
        "0a93ea2e897bd793cc0aaaddc397eff32ac8d6fe",
        "f0b4f7e2f29af678bd9af43422c537dcb6008603"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 11:13:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 11:13:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md:\n  md: Fix - again - partition detection when array becomes active\n  Fix over-zealous flush_disk when changing device size.\n  md: avoid spinlock problem in blk_throtl_exit\n  md: correctly handle probe of an \u0027mdp\u0027 device.\n  md: don\u0027t set_capacity before array is active.\n  md: Fix raid1-\u003eraid0 takeover\n"
    },
    {
      "commit": "f129ccc9231c95513a1227ca9da876beeb03e577",
      "tree": "cf894d2358a6a4dc251a42900cc80058255b55dd",
      "parents": [
        "4662db446190ddef8fbab024f72dee77dd04b8f2"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@au1.ibm.com",
        "time": "Fri Feb 25 15:33:02 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 11:12:37 2011 -0800"
      },
      "message": "afs: Fix oops in afs_unlink_writeback\n\nI\u0027m seeing the following oops when testing afs:\n\n  Unable to handle kernel paging request for data at address 0x00000008\n  ...\n  NIP [c0000000003393b0] .afs_unlink_writeback+0x38/0xc0\n  LR [c00000000033987c] .afs_put_writeback+0x98/0xec\n  Call Trace:\n  [c00000000345f600] [c00000000033987c] .afs_put_writeback+0x98/0xec\n  [c00000000345f690] [c00000000033ae80] .afs_write_begin+0x6a4/0x75c\n  [c00000000345f790] [c00000000012b77c] .generic_file_buffered_write+0x148/0x320\n  [c00000000345f8d0] [c00000000012e1b8] .__generic_file_aio_write+0x37c/0x3e4\n  [c00000000345f9d0] [c00000000012e2a8] .generic_file_aio_write+0x88/0xfc\n  [c00000000345fa90] [c0000000003390a8] .afs_file_write+0x10c/0x178\n  [c00000000345fb40] [c000000000188788] .do_sync_write+0xc4/0x128\n  [c00000000345fcc0] [c000000000189658] .vfs_write+0xe8/0x1d8\n  [c00000000345fd70] [c000000000189884] .SyS_write+0x68/0xb0\n  [c00000000345fe30] [c000000000008564] syscall_exit+0x0/0x40\n\nafs_write_begin hits an error and calls afs_unlink_writeback. In there\nwe do list_del_init on an uninitialised list.\n\nThe patch below initialises -\u003elink when creating the afs_writeback struct.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d56addd70c7c0626502569e22cc8fce49ae39f5",
      "tree": "43e5e51dfa7a1b7e566cb235d44d5991e0c806d0",
      "parents": [
        "5a18ec176c934ca1bc9dc61580a5e0e90a9b5733"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 25 14:44:58 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 25 14:44:58 2011 +0100"
      },
      "message": "fuse: fix truncate after open\n\nCommit e1181ee6 \"vfs: pass struct file to do_truncate on O_TRUNC\nopens\" broke the behavior of open(O_TRUNC|O_RDONLY) in fuse.  Fuse\nassumed that when called from open, a truncate() will be done, not an\nftruncate().\n\nFix by restoring the old behavior, based on the ATTR_OPEN flag.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "5a18ec176c934ca1bc9dc61580a5e0e90a9b5733",
      "tree": "6995509f59166fff90ce240ce72e3858f61ac101",
      "parents": [
        "4662db446190ddef8fbab024f72dee77dd04b8f2"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 25 14:44:58 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 25 14:44:58 2011 +0100"
      },
      "message": "fuse: fix hang of single threaded fuseblk filesystem\n\nSingle threaded NTFS-3G could get stuck if a delayed RELEASE reply\ntriggered a DESTROY request via path_put().\n\nFix this by\n\n a) making RELEASE requests synchronous, whenever possible, on fuseblk\n filesystems\n\n b) if not possible (triggered by an asynchronous read/write) then do\n the path_put() in a separate thread with schedule_work().\n\nReported-by: Oliver Neukum \u003coneukum@suse.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "e7407d1619713f4b1fdff3a485e1bd8e77bd480d",
      "tree": "18def7871239d5de7dea8cb115badb53d64fccb4",
      "parents": [
        "8074b26f67165bf045d92e778c9c10dc5e207fc6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 24 09:56:32 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 24 08:55:55 2011 -0800"
      },
      "message": "block: bd_link_disk_holder() should hold on to holder_dir\n\nThe new implementation of bd_link_disk_holder() added by 49731baa41d\n(block: restore multiple bd_link_disk_holder() support) didn\u0027t get an\nextra reference for the holder_dir kobject of the slave bdev; however,\nbdev kills holder_dir on removal, not release, so if the slave bdev is\nremoved while there are holder links, the holder_dir will be destroyed\nwhile there still are holder links, which leads to oops later when\nbd_unlink_disk_order() tries to remove those links.\n\nMake bd_link_disk_holder() grab an extra reference for the slave\u0027s\nholder_dir and put it in bd_unlink_disk_holder().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: \"Hawrylewicz Czarnowski, Przemyslaw\" \u003cprzemyslaw.hawrylewicz.czarnowski@intel.com\u003e\nTested-by: \"Hawrylewicz Czarnowski, Przemyslaw\" \u003cprzemyslaw.hawrylewicz.czarnowski@intel.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf9faa2aa30e2ebf30287536712ed2717bb47002",
      "tree": "06db8ec432cb57dc507e42cdeda878c2b3038d5c",
      "parents": [
        "2aa15890f3c191326678f1bd68af61ec6b8753ec"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Wed Feb 23 16:59:49 2011 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Feb 24 02:10:57 2011 -0500"
      },
      "message": "Unlock vfsmount_lock in do_umount\n\nBy the commit\n\tb3e19d9 2011-01-07 fs: scale mntget/mntput\nvfsmount_lock was introduced around testing mnt_count.\nFix the mis-typed \u0027unlock\u0027\n\nSigned-off-by: J. R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "93b270f76e7ef3b81001576860c2701931cdc78b",
      "tree": "abaca0e4d3e86721815498fafd06295dd9cfd002",
      "parents": [
        "da9cf5050a2e3dbc3cf26a8d908482eb4485ed49"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 24 17:25:47 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 24 17:25:47 2011 +1100"
      },
      "message": "Fix over-zealous flush_disk when changing device size.\n\nThere are two cases when we call flush_disk.\nIn one, the device has disappeared (check_disk_change) so any\ndata will hold becomes irrelevant.\nIn the oter, the device has changed size (check_disk_size_change)\nso data we hold may be irrelevant.\n\nIn both cases it makes sense to discard any \u0027clean\u0027 buffers,\nso they will be read back from the device if needed.\n\nIn the former case it makes sense to discard \u0027dirty\u0027 buffers\nas there will never be anywhere safe to write the data.  In the\nsecond case it *does*not* make sense to discard dirty buffers\nas that will lead to file system corruption when you simply enlarge\nthe containing devices.\n\nflush_disk calls __invalidate_devices.\n__invalidate_device calls both invalidate_inodes and invalidate_bdev.\n\ninvalidate_inodes *does* discard I_DIRTY inodes and this does lead\nto fs corruption.\n\ninvalidate_bev *does*not* discard dirty pages, but I don\u0027t really care\nabout that at present.\n\nSo this patch adds a flag to __invalidate_device (calling it\n__invalidate_device2) to indicate whether dirty buffers should be\nkilled, and this is passed to invalidate_inodes which can choose to\nskip dirty inodes.\n\nflusk_disk then passes true from check_disk_change and false from\ncheck_disk_size_change.\n\ndm avoids tripping over this problem by calling i_size_write directly\nrathher than using check_disk_size_change.\n\nmd does use check_disk_size_change and so is affected.\n\nThis regression was introduced by commit 608aeef17a which causes\ncheck_disk_size_change to call flush_disk, so it is suitable for any\nkernel since 2.6.27.\n\nCc: stable@kernel.org\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "2aa15890f3c191326678f1bd68af61ec6b8753ec",
      "tree": "347f5fdcd0678b12be92f266cd2a5e7a74749403",
      "parents": [
        "78794b2cdeac37ac1fd950fc9c4454b56d88ac03"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 23 13:49:47 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 23 19:52:52 2011 -0800"
      },
      "message": "mm: prevent concurrent unmap_mapping_range() on the same inode\n\nMichael Leun reported that running parallel opens on a fuse filesystem\ncan trigger a \"kernel BUG at mm/truncate.c:475\"\n\nGurudas Pai reported the same bug on NFS.\n\nThe reason is, unmap_mapping_range() is not prepared for more than\none concurrent invocation per inode.  For example:\n\n  thread1: going through a big range, stops in the middle of a vma and\n     stores the restart address in vm_truncate_count.\n\n  thread2: comes in with a small (e.g. single page) unmap request on\n     the same vma, somewhere before restart_address, finds that the\n     vma was already unmapped up to the restart address and happily\n     returns without doing anything.\n\nAnother scenario would be two big unmap requests, both having to\nrestart the unmapping and each one setting vm_truncate_count to its\nown value.  This could go on forever without any of them being able to\nfinish.\n\nTruncate and hole punching already serialize with i_mutex.  Other\ncallers of unmap_mapping_range() do not, and it\u0027s difficult to get\ni_mutex protection for all callers.  In particular -\u003ed_revalidate(),\nwhich calls invalidate_inode_pages2_range() in fuse, may be called\nwith or without i_mutex.\n\nThis patch adds a new mutex to \u0027struct address_space\u0027 to prevent\nrunning multiple concurrent unmap_mapping_range() on the same mapping.\n\n[ We\u0027ll hopefully get rid of all this with the upcoming mm\n  preemptibility series by Peter Zijlstra, the \"mm: Remove i_mmap_mutex\n  lockbreak\" patch in particular.  But that is for 2.6.39 ]\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nReported-by: Michael Leun \u003clkml20101129@newton.leun.net\u003e\nReported-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nTested-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec29ed5b407d618a8128f5942aade9e1758aa14b",
      "tree": "19b3c13f15504cf9de116f0bd55045ebcf0d0cfc",
      "parents": [
        "fb01aa85b8b29c1a4e1f4a28ea54175de6bf7559"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 23 16:23:20 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 23 16:23:20 2011 -0500"
      },
      "message": "Btrfs: fix fiemap bugs with delalloc\n\nThe Btrfs fiemap code wasn\u0027t properly returning delalloc extents,\nso applications that trust fiemap to decide if there are holes in the\nfile see holes instead of delalloc.\n\nThis reworks the btrfs fiemap code, adding a get_extent helper that\nsearches for delalloc ranges and also adding a helper for extent_fiemap\nthat skips past holes in the file.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "be715140b5c3baf8ab6708060cfab80bef279d18",
      "tree": "f16e9241cd872adab59485e66523f9fb7eb7ab3b",
      "parents": [
        "3a3675b7f23f83ca8c67c9c2b6edf707fd28d1ba"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue Feb 15 17:07:36 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Feb 22 15:08:44 2011 -0600"
      },
      "message": "xfs: check if device support discard in xfs_ioc_trim()\n\nRight now we, are relying on the fact that when we attempt to\nactually do the discard, blkdev_issue_discar() returns -EOPNOTSUPP\nand the user is informed that the device does not support discard.\n\nHowever, in the case where the we do not hit any suitable free\nextent to trim in FITRIM code, it will finish without any error.\nThis is very confusing, because it seems that FITRIM was successful\neven though the device does not actually supports discard.\n\nSolution: Check for the discard support before attempt to search for\nfree extents.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "3a3675b7f23f83ca8c67c9c2b6edf707fd28d1ba",
      "tree": "ca218171c9493272b40a4bb9c9a2099ba1240a47",
      "parents": [
        "d8204a37baf5474d3154eb536c936369be2bd5c0"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Mon Feb 14 13:45:28 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Feb 22 15:06:47 2011 -0600"
      },
      "message": "xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1\n\nThe FSGEOMETRY_V1 ioctl (and its compat equivalent) calls out to\nxfs_fs_geometry() with a version number of 3.  This code path does not\nfill in the logsunit member of the passed xfs_fsop_geom_t, leading to\nthe leaking of four bytes of uninitialized stack data to potentially\nunprivileged callers.\n\nv2 switches to memset() to avoid future issues if structure members\nchange, on suggestion of Dave Chinner.\n\nSigned-off-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nReviewed-by: Eugene Teo \u003ceugeneteo@kernel.org\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "3b71710f081e90f9682a65d479cf8ae038d74213",
      "tree": "88b152f9ae06a08e72ae590d447c1b7c43af68fc",
      "parents": [
        "951f3512dba5bd44cda3e5ee22b4b522e4bb09fb",
        "55f9cf6bbaa682958a7dd2755f883b768270c3ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 17:25:00 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 17:25:00 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  eCryptfs: Copy up lower inode attrs in getattr\n  ecryptfs: read on a directory should return EISDIR if not supported\n  eCryptfs: Handle NULL nameidata pointers\n  eCryptfs: Revert \"dont call lookup_one_len to avoid NULL nameidata\"\n"
    },
    {
      "commit": "361821854b71fc3a53c9e17701538247bddbd4ba",
      "tree": "c3082e10459f288a2dbae2f864e523a92cb43caa",
      "parents": [
        "c756d08a00a2f151363d95ad27e12ca6b27cb3f6"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Feb 20 20:08:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 15:07:04 2011 -0800"
      },
      "message": "Docbook: add fs/eventfd.c and fix typos in it\n\nAdd fs/eventfd.c to filesystems docbook.\nMake typo corrections in fs/eventfd.c.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8bd89ca22010847e85de37b77d9f19f16b1962ad",
      "tree": "0bcee2ae6a85443177a6d95ed960301e0f4c9d57",
      "parents": [
        "b08b69a110bd981909c248f89997dcdcdfd5a39c",
        "97d79b403ef03f729883246208ef5d8a2ebc4d68"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 15:01:38 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 15:01:38 2011 -0800"
      },
      "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:\n  ceph: keep reference to parent inode on ceph_dentry\n  ceph: queue cap_snaps once per realm\n  libceph: fix socket write error handling\n  libceph: fix socket read error handling\n"
    },
    {
      "commit": "b4f5c46245cf4ca437849c0d04c176b4c150622d",
      "tree": "cce1de413b60cfd313329b4f421451ef92a12fdb",
      "parents": [
        "97b9c3e145a1ddb5a9d8115c82a8981b3f13cba2",
        "eed9e8307e01d6d8d6170afcb2f00e1a471b87d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 14:57:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 21 14:57:39 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] update cifs version\n  cifs: Fix regression in LANMAN (LM) auth code\n  cifs: fix handling of scopeid in cifs_convert_address\n"
    },
    {
      "commit": "eed9e8307e01d6d8d6170afcb2f00e1a471b87d4",
      "tree": "b5b71f4c879274643498e1bc60d088f8b6a4dbac",
      "parents": [
        "5e640927a597a7c3e72b61e8bce74c22e906de65"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Feb 21 22:31:47 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Feb 21 22:31:47 2011 +0000"
      },
      "message": "[CIFS] update cifs version\n\nUpdate version to 1.71 so we can more easily spot modules with the last two fixes\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5e640927a597a7c3e72b61e8bce74c22e906de65",
      "tree": "5abf62d38ac5f1f88e3666308eb65d71fa82c038",
      "parents": [
        "9616125611ee47693186533d76e403856a36b3c8"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Thu Feb 17 14:38:31 2011 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Feb 21 21:53:30 2011 +0000"
      },
      "message": "cifs: Fix regression in LANMAN (LM) auth code\n\nLANMAN response length was changed to 16 bytes instead of 24 bytes.\nRevert it back to 24 bytes.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nCC: stable@kernel.org\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "55f9cf6bbaa682958a7dd2755f883b768270c3ce",
      "tree": "64c105d0d8f361be09f7eb5a771515e16d4e14fa",
      "parents": [
        "323ef68faf1bbd9b1e66aea268fd09d358d7e8ab"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Tue Jan 11 12:43:42 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Feb 21 14:46:36 2011 -0600"
      },
      "message": "eCryptfs: Copy up lower inode attrs in getattr\n\nThe lower filesystem may do some type of inode revalidation during a\ngetattr call. eCryptfs should take advantage of that by copying the\nlower inode attributes to the eCryptfs inode after a call to\nvfs_getattr() on the lower inode.\n\nI originally wrote this fix while working on eCryptfs on nfsv3 support,\nbut discovered it also fixed an eCryptfs on ext4 nanosecond timestamp\nbug that was reported.\n\nhttps://bugs.launchpad.net/bugs/613873\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "323ef68faf1bbd9b1e66aea268fd09d358d7e8ab",
      "tree": "d728a47b8345f3d45ee388df51cade09a16137db",
      "parents": [
        "70b8902199003b098fde86d1db02e7465115a02c"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@canonical.com",
        "time": "Wed Feb 16 04:49:59 2011 +0000"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Feb 21 14:46:36 2011 -0600"
      },
      "message": "ecryptfs: read on a directory should return EISDIR if not supported\n\nread() calls against a file descriptor connected to a directory are\nincorrectly returning EINVAL rather than EISDIR:\n\n  [EISDIR]\n    [XSI] [Option Start] The fildes argument refers to a directory and the\n    implementation does not allow the directory to be read using read()\n    or pread(). The readdir() function should be used instead. [Option End]\n\nThis occurs because we do not have a .read operation defined for\necryptfs directories.  Connect this up to generic_read_dir().\n\nBugLink: http://bugs.launchpad.net/bugs/719691\nSigned-off-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "70b8902199003b098fde86d1db02e7465115a02c",
      "tree": "f0576b1a4df43be528e7cc44a36204090ad1994a",
      "parents": [
        "8787c7a3e0e3f1aa21856d6b6cd6880cc93497e9"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Feb 17 17:35:20 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Feb 21 14:45:57 2011 -0600"
      },
      "message": "eCryptfs: Handle NULL nameidata pointers\n\nAllow for NULL nameidata pointers in eCryptfs create, lookup, and\nd_revalidate functions.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "52c303c56c3638944b5f733e3961dc58eb8c7270",
      "tree": "d709069b626580ce7632f9377dd71950f38d5f28",
      "parents": [
        "acf3bb007e5636ef4c17505affb0974175108553"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 31 11:31:04 2011 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Sun Feb 20 02:36:28 2011 -0800"
      },
      "message": "ocfs2: Check heartbeat mode for kernel stacks only\n\nCommit 2c442719e90a44a6982c033d69df4aae4b167cfa added some checks for proper\nheartbeat mode when the o2cb stack is running.  Unfortunately, it didn\u0027t\ntake into account that a userpsace stack could be running. Fix this by only\ndoing the check if o2cb is in use. This patch allows userspace stacks to\nmount the fs again.\n\nCc: stable@kernel.org\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "acf3bb007e5636ef4c17505affb0974175108553",
      "tree": "5e5c44104bcc865184c8472af85151271dbc03bd",
      "parents": [
        "705773a6656bba66f2a80a44ddaacf9620df8a59"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri Jan 21 18:20:18 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Sun Feb 20 02:36:12 2011 -0800"
      },
      "message": "Ocfs2/refcounttree: Fix a bug for refcounttree to writeback clusters in a right number.\n\nCurrent refcounttree codes actually didn\u0027t writeback the new pages out in\nwrite-back mode, due to a bug of always passing a ZERO number of clusters\nto \u0027ocfs2_cow_sync_writeback\u0027, the patch tries to pass a proper one in.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "705773a6656bba66f2a80a44ddaacf9620df8a59",
      "tree": "8fc55763274643daa997dbed87f728a59f5b6b4a",
      "parents": [
        "0cc9d5257857608ba85885b75fcada13d359b5d1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Feb 03 14:16:19 2011 +0100"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Sun Feb 20 02:33:32 2011 -0800"
      },
      "message": "ocfs2: Fix estimate of necessary credits for mkdir\n\nIn the rare case that INLINE_DATA, INDEX_DIR, QUOTA, XATTR features are\ndisabled and both the allocation of the directory inode and the allocation\nof the first directory block need to relink allocation group, there need\nnot be enough credits reserved in a transaction. Fix the estimate.\n\nCC: Mark Fasheh \u003cmfasheh@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "97d79b403ef03f729883246208ef5d8a2ebc4d68",
      "tree": "6badfd07e1ae880bd30f99dfb55227d3210b6e3a",
      "parents": [
        "e8e1ba96b207deba1339b09983f8b29f92cb1497"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Tue Jan 18 13:37:28 2011 -0800"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Feb 19 19:59:14 2011 -0800"
      },
      "message": "ceph: keep reference to parent inode on ceph_dentry\n\nWhen creating a new dentry we now hold a reference to the parent\ninode in the ceph_dentry.  This is required due to the new RCU\nchanges from 949854d0, which set dentry-\u003ed_parent to NULL in d_kill before\ncalling the -\u003erelease() callback.  If/when that behavior is changed, we can\nrevert this hack.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bc3adfc6703edfd2484902b5391092c717076f87",
      "tree": "9df3b216990f6b321095bcc6c35444f5e0d8165c",
      "parents": [
        "3c18d4de86e4a7f93815c081e50e0543fa27200f",
        "3233cdbd9fa347a6d6897a94cc6ed0302ae83c4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 18 12:36:06 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 18 12:36:06 2011 -0800"
      },
      "message": "Merge branch \u0027fixes-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027fixes-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: make sure MAYDAY_INITIAL_TIMEOUT is at least 2 jiffies long\n  workqueue, freezer: unify spelling of \u0027freeze\u0027 + \u0027able\u0027 to \u0027freezable\u0027\n  workqueue: wake up a worker when a rescuer is leaving a gcwq\n"
    },
    {
      "commit": "8787c7a3e0e3f1aa21856d6b6cd6880cc93497e9",
      "tree": "5d8e9c0b3ed94c2a584812ae7223c4f72cc3d8ee",
      "parents": [
        "85e2efbb1db9a18d218006706d6e4fbeb0216213"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Feb 17 18:51:24 2011 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Feb 17 20:30:29 2011 -0600"
      },
      "message": "eCryptfs: Revert \"dont call lookup_one_len to avoid NULL nameidata\"\n\nThis reverts commit 21edad32205e97dc7ccb81a85234c77e760364c8 and commit\n93c3fe40c279f002906ad14584c30671097d4394, which fixed a regression by\nthe former.\n\nAl Viro pointed out bypassed dcache lookups in\necryptfs_new_lower_dentry(), misuse of vfs_path_lookup() in\necryptfs_lookup_one_lower() and a dislike of passing nameidata to the\nlower filesystem.\n\nReported-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "fa7ea87a057958a8b7926c1a60a3ca6d696328ed",
      "tree": "4795fb5b14dfd3112b650456007e167eb90c1645",
      "parents": [
        "ee715087024b91a6ceb85ba2d02f6c35d354a48c"
      ],
      "author": {
        "name": "Timo Warns",
        "email": "warns@pre-sense.de",
        "time": "Thu Feb 17 22:27:40 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 17 17:50:51 2011 -0800"
      },
      "message": "fs/partitions: Validate map_count in Mac partition tables\n\nValidate number of blocks in map and remove redundant variable.\n\nSigned-off-by: Timo Warns \u003cwarns@pre-sense.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee715087024b91a6ceb85ba2d02f6c35d354a48c",
      "tree": "9f6bdcd5932d35eb9f15ae3dd647c6f5063873a4",
      "parents": [
        "68ac01a2de5faed5e19a78c06314804c6184a650",
        "47c85291d3dd1a51501555000b90f8e281a0458e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 16 21:53:41 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 16 21:53:41 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: correctly handle return value from nfsd_map_name_to_*\n"
    },
    {
      "commit": "9616125611ee47693186533d76e403856a36b3c8",
      "tree": "4bbeff100868bd97bb1eea660838fde851602441",
      "parents": [
        "a2640111d5edb3f4e6dd6089c0dbddc7590110b4"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Feb 16 09:34:16 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Feb 17 05:35:33 2011 +0000"
      },
      "message": "cifs: fix handling of scopeid in cifs_convert_address\n\nThe code finds, the \u0027%\u0027 sign in an ipv6 address and copies that to a\nbuffer allocated on the stack. It then ignores that buffer, and passes\n\u0027pct\u0027 to simple_strtoul(), which doesn\u0027t work right because we\u0027re\ncomparing \u0027endp\u0027 against a completely different string.\n\nFix it by passing the correct pointer. While we\u0027re at it, this is a\ngood candidate for conversion to strict_strtoul as well.\n\nCc: stable@kernel.org\nCc: David Howells \u003cdhowells@redhat.com\u003e\nReported-by: BjÃ¶rn JACKE \u003cbj@sernet.de\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "e51900f7d38cbcfb481d84567fd92540e7e1d23a",
      "tree": "f732388a0efab2967fddc0afd0f2200731e34d02",
      "parents": [
        "a2640111d5edb3f4e6dd6089c0dbddc7590110b4"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Wed Feb 16 18:11:53 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 16 16:48:13 2011 -0800"
      },
      "message": "block: revert block_dev read-only check\n\nThis reverts commit 75f1dc0d076d (\"block: check bdev_read_only() from\nblkdev_get()\").  That commit added stricter checking to make sure\ndevices that were being used read-only were actually opened in that\nmode.\n\nIt turns out that the change breaks a bunch of kernel code that opens\nblock devices.  Affected systems include dm, md, and the loop device.\nBecause strict checking for read-only opens of block devices was not\ndone before this, the code that opens the devices was opening them\nread-write even if they were being used read-only.  Auditing all that\ncode will take time, and new userspace packages for dm, mdadm, etc.\nwill also be required.\n\nSigned-off-by: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "47c85291d3dd1a51501555000b90f8e281a0458e",
      "tree": "ea581e7c383b25242355335c4c06aad21b9bf4cc",
      "parents": [
        "85e2efbb1db9a18d218006706d6e4fbeb0216213"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 16 13:08:35 2011 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Wed Feb 16 18:31:05 2011 -0500"
      },
      "message": "nfsd: correctly handle return value from nfsd_map_name_to_*\n\nThese functions return an nfs status, not a host_err.  So don\u0027t\ntry to convert  before returning.\n\nThis is a regression introduced by\n3c726023402a2f3b28f49b9d90ebf9e71151157d; I fixed up two of the callers,\nbut missed these two.\n\nCc: stable@kernel.org\nReported-by: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "fb01aa85b8b29c1a4e1f4a28ea54175de6bf7559",
      "tree": "af7fc0623980c03c3f808f9ec157341d8549133d",
      "parents": [
        "9b3517e9136824346227b7b04f8f7ea1f3a726cc"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Feb 15 18:12:57 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 16:34:00 2011 -0500"
      },
      "message": "Btrfs: set FMODE_EXCL in btrfs_device-\u003emode\n\nThis fixes a bug introduced in d4d77629, where the device added online\n(and therefore initialized via btrfs_init_new_device()) would be left\nwith the positive bdev-\u003ebd_holders after unmount.  Since d4d77629 we no\nlonger OR FMODE_EXCL explicitly on blkdev_put(), set it in\nbtrfs_device-\u003emode.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9b3517e9136824346227b7b04f8f7ea1f3a726cc",
      "tree": "b317f5ed612c5adae478a7acd48f6d8096a1656d",
      "parents": [
        "ca9b688c1c9a21635cfc8af8b68565b154185196"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Tue Feb 15 18:14:25 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:37:59 2011 -0500"
      },
      "message": "Btrfs: make btrfs_rm_device() fail gracefully\n\nIf shrinking done as part of the online device removal fails add that\ndevice back to the allocation list and increment the rw_devices counter.\nThis fixes two bugs:\n\n1) we could have a perfectly good device out of alloc list for no good\nreason;\n\n2) in the btrfs consisting of two devices, failure in btrfs_rm_device()\ncould lead to a situation where it was impossible to remove any of the\ndevices because of the \"unable to remove the only writeable device\"\nerror.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ca9b688c1c9a21635cfc8af8b68565b154185196",
      "tree": "bfc9eed8a9099503645b467733707246b246ed19",
      "parents": [
        "b4dc2b8c694ead005b828f5fb7fa1134db5b6275"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 16 06:06:41 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:37:58 2011 -0500"
      },
      "message": "Btrfs: Avoid accessing unmapped kernel address\n\nWhen decompressing a chunk of data, we\u0027ll copy the data out to\na working buffer if the data is stored in more than one page,\notherwise we\u0027ll use the mapped page directly to avoid memory\ncopy.\n\nIn the latter case, we\u0027ll end up accessing the kernel address\nafter we\u0027ve unmapped the page in a corner case.\n\nReported-by: Juan Francisco Cantero Hurtado \u003ciam@juanfra.info\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b4dc2b8c694ead005b828f5fb7fa1134db5b6275",
      "tree": "ba01c2bb5381ab9a34c4152ed4dd83c1797f780c",
      "parents": [
        "c87f08ca44e83b2c8d28f63f9c33f3a270a04bbe"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Feb 16 06:06:34 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:37:58 2011 -0500"
      },
      "message": "Btrfs: Fix BTRFS_IOC_SUBVOL_SETFLAGS ioctl\n\n- Check user-specified flags correctly\n- Check the inode owership\n- Search root item in root tree but not fs tree\n\nReported-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c87f08ca44e83b2c8d28f63f9c33f3a270a04bbe",
      "tree": "05cebe37380861a89faaea50c1ccb360ffb0f975",
      "parents": [
        "91435650c233b93e0da389db74f4b2c11c5ad2d4"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 13:57:04 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:28:47 2011 -0500"
      },
      "message": "Btrfs: allow balance to explicitly allocate chunks as it relocates\n\nBtrfs device shrinking and balancing ends up reallocating all the blocks\nin order to allow COW to move them to new destinations.  It is somewhat\nawkward in terms of ENOSPC because most of the enospc code is built\naround the idea that some operation on a reference counted tree triggers\nallocations in the non-reference counted trees.\n\nThis commit changes the balancing code to deal with enospc by trying to\nallocate a new chunk.  If that allocation succeeds, we go ahead and\nretry whatever failed due to enospc.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "91435650c233b93e0da389db74f4b2c11c5ad2d4",
      "tree": "c4f8fef1348a0ac188dca47020d86b206ed5d41f",
      "parents": [
        "c26a920373a983b52223eed5a13b97404d8b4158"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 13:10:41 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Feb 16 15:28:36 2011 -0500"
      },
      "message": "Btrfs: put ENOSPC debugging under a mount option\n\nENOSPC in btrfs is getting to the point where the extra debugging isn\u0027t\nrequired.  I\u0027ve put it under mount -o enospc_debug just in case someone\nis having difficult problems.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3abb17e82f08628b59e20d8cbcb55e2204180f69",
      "tree": "890a411ebda28a9b9e6c90520429554a9e7fb95a",
      "parents": [
        "85e2efbb1db9a18d218006706d6e4fbeb0216213"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 16 08:56:55 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 16 08:56:55 2011 -0800"
      },
      "message": "vfs: fix BUG_ON() in fs/namei.c:1461\n\nWhen Al moved the nameidata_dentry_drop_rcu_maybe() call into the\ndo_follow_link function in commit 844a391799c2 (\"nothing in\ndo_follow_link() is going to see RCU\"), he mistakenly left the\n\n\tBUG_ON(inode !\u003d path-\u003edentry-\u003ed_inode);\n\nbehind.  Which would otherwise be ok, but that BUG_ON() really needs to\nbe _after_ dropping RCU, since the dentry isn\u0027t necessarily stable\notherwise.\n\nSo complete the code movement in that commit, and move the BUG_ON() into\ndo_follow_link() too.  This means that we need to pass in \u0027inode\u0027 as an\nargument (just for this one use), but that\u0027s a small thing.  And\neventually we may be confident enough in our path lookup that we can\njust remove the BUG_ON() and the unnecessary inode argument.\n\nReported-and-tested-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58a69cb47ec6991bf006a3e5d202e8571b0327a4",
      "tree": "56abdf817649c352f70bff3263f9351ed6c42062",
      "parents": [
        "7576958a9d5a4a677ad7dd40901cdbb6c1110c98"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 09:25:31 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:48:59 2011 +0100"
      },
      "message": "workqueue, freezer: unify spelling of \u0027freeze\u0027 + \u0027able\u0027 to \u0027freezable\u0027\n\nThere are two spellings in use for \u0027freeze\u0027 + \u0027able\u0027 - \u0027freezable\u0027 and\n\u0027freezeable\u0027.  The former is the more prominent one.  The latter is\nmostly used by workqueue and in a few other odd places.  Unify the\nspelling to \u0027freezable\u0027.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f60c153d503e798b354333772e7c00f1e8733e71",
      "tree": "f34aef151cd9566412dede029cb85762c8be0866",
      "parents": [
        "a1213b091cd50c3038b3ae480c2f1fae2713f010",
        "83f6b0c18204f68961f58b9f69e5dba0d36056a2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 12:06:38 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 12:06:38 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: break lease on unlink due to rename\n  nfsd4: acquire only one lease per file\n  nfsd4: modify fi_delegations under recall_lock\n  nfsd4: remove unused deleg dprintk\u0027s.\n  nfsd4: split lease setting into separate function\n  nfsd4: fix leak on allocation error\n  nfsd4: add helper function for lease setup\n  nfsd4: split up nfsd_break_deleg_cb\n  NFSD: memory corruption due to writing beyond the stat array\n  NFSD: use nfserr for status after decode_cb_op_status\n  nfsd: don\u0027t leak dentry count on mnt_want_write failure\n"
    },
    {
      "commit": "055d219441cc23f631240335fd369b6b5852681a",
      "tree": "4b9edd925dcda0b72a4ca3ec146f516f52e51bee",
      "parents": [
        "007a14af2649c9ac77f38cd23469518ffb8b355a",
        "4e924a4f53a0e1ea060bd50695a12a238b250322"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 08:06:36 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 08:06:36 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  get rid of nameidata_dentry_drop_rcu() calling nameidata_drop_rcu()\n  drop out of RCU in return_reval\n  split do_revalidate() into RCU and non-RCU cases\n  in do_lookup() split RCU and non-RCU cases of need_revalidate\n  nothing in do_follow_link() is going to see RCU\n"
    },
    {
      "commit": "007a14af2649c9ac77f38cd23469518ffb8b355a",
      "tree": "d6bc4477c11d7c8fd892f059acf0fc1ed547ba52",
      "parents": [
        "261cd298a8c363d7985e3482946edb4bfedacf98",
        "c26a920373a983b52223eed5a13b97404d8b4158"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 08:00:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 08:00:35 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: check return value of alloc_extent_map()\n  Btrfs - Fix memory leak in btrfs_init_new_device()\n  btrfs: prevent heap corruption in btrfs_ioctl_space_info()\n  Btrfs: Fix balance panic\n  Btrfs: don\u0027t release pages when we can\u0027t clear the uptodate bits\n  Btrfs: fix page-\u003eprivate races\n"
    },
    {
      "commit": "261cd298a8c363d7985e3482946edb4bfedacf98",
      "tree": "2b0335444f995b406ea4b9f31bc8eaffaed2e807",
      "parents": [
        "1abe3af27120a66711e00eb3112ecd4f8292a470"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Feb 15 09:43:32 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 15 07:34:16 2011 -0800"
      },
      "message": "s390: remove task_show_regs\n\ntask_show_regs used to be a debugging aid in the early bringup days\nof Linux on s390. /proc/\u003cpid\u003e/status is a world readable file, it\nis not a good idea to show the registers of a process. The only\ncorrect fix is to remove task_show_regs.\n\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e924a4f53a0e1ea060bd50695a12a238b250322",
      "tree": "868af33c6c1ca390e688c8aaf19f4fe1fca2bc27",
      "parents": [
        "f60aef7ec625236a6366722bb1be7b37596bf0ae"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 01:42:59 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 02:26:54 2011 -0500"
      },
      "message": "get rid of nameidata_dentry_drop_rcu() calling nameidata_drop_rcu()\n\ncan\u0027t happen anymore and didn\u0027t work right anyway\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f60aef7ec625236a6366722bb1be7b37596bf0ae",
      "tree": "9ac12873b513fdb820eda3bf7c2894edac384901",
      "parents": [
        "f5e1c1c1afc1d979e2ac6a24cc99ba7143639f4d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 01:35:28 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 02:26:54 2011 -0500"
      },
      "message": "drop out of RCU in return_reval\n\n... thus killing the need to handle drop-from-RCU in d_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f5e1c1c1afc1d979e2ac6a24cc99ba7143639f4d",
      "tree": "48dad00e6bead517191094c0c05ef7b01c226e25",
      "parents": [
        "24643087e748bf192f1182766716e522dc1c972f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 01:32:55 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 02:26:54 2011 -0500"
      },
      "message": "split do_revalidate() into RCU and non-RCU cases\n\nfixing oopsen in lookup_one_len()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "24643087e748bf192f1182766716e522dc1c972f",
      "tree": "f67283376c36f6745f1f26c9f67b953ff0b4de55",
      "parents": [
        "844a391799c25d9ba85cbce33e4697db06083ec6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 01:26:22 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 02:26:54 2011 -0500"
      },
      "message": "in do_lookup() split RCU and non-RCU cases of need_revalidate\n\nand use unlikely() instead of gotos, for fsck sake...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "844a391799c25d9ba85cbce33e4697db06083ec6",
      "tree": "6f08be3adfe934f24ef8f98b09d3d1a6319a6c92",
      "parents": [
        "795abaf1e4e188c4171e3cd3dbb11a9fcacaf505"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 00:38:26 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 15 02:26:53 2011 -0500"
      },
      "message": "nothing in do_follow_link() is going to see RCU\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c26a920373a983b52223eed5a13b97404d8b4158",
      "tree": "a7f76fe1b0cecbc712f0b152ff537805f126b113",
      "parents": [
        "67100f255dba284bcbb5ce795355dad1cff35658"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Mon Feb 14 00:45:29 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 16:21:37 2011 -0500"
      },
      "message": "Btrfs: check return value of alloc_extent_map()\n\nI add the check on the return value of alloc_extent_map() to several places.\nIn addition, alloc_extent_map() returns only the address or NULL.\nTherefore, check by IS_ERR() is unnecessary. So, I remove IS_ERR() checking.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "67100f255dba284bcbb5ce795355dad1cff35658",
      "tree": "f343a1c2bb24b4a4cc965933b41e6d0271fe05fb",
      "parents": [
        "51788b1bdd0d68345bab0af4301e7fa429277228"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Sun Feb 06 19:58:21 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 16:21:31 2011 -0500"
      },
      "message": "Btrfs - Fix memory leak in btrfs_init_new_device()\n\nMemory allocated by calling kstrdup() should be freed.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "51788b1bdd0d68345bab0af4301e7fa429277228",
      "tree": "52895ef3c348c2dfa1f1ef2c4557d9f7515dfc3b",
      "parents": [
        "6848ad6461e551849ba3c32d945d4f45e96453a6"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Mon Feb 14 16:04:23 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 16:04:23 2011 -0500"
      },
      "message": "btrfs: prevent heap corruption in btrfs_ioctl_space_info()\n\nCommit bf5fc093c5b625e4259203f1cee7ca73488a5620 refactored\nbtrfs_ioctl_space_info() and introduced several security issues.\n\nspace_args.space_slots is an unsigned 64-bit type controlled by a\npossibly unprivileged caller.  The comparison as a signed int type\nallows providing values that are treated as negative and cause the\nsubsequent allocation size calculation to wrap, or be truncated to 0.\nBy providing a size that\u0027s truncated to 0, kmalloc() will return\nZERO_SIZE_PTR.  It\u0027s also possible to provide a value smaller than the\nslot count.  The subsequent loop ignores the allocation size when\ncopying data in, resulting in a heap overflow or write to ZERO_SIZE_PTR.\n\nThe fix changes the slot count type and comparison typecast to u64,\nwhich prevents truncation or signedness errors, and also ensures that we\ndon\u0027t copy more data than we\u0027ve allocated in the subsequent loop.  Note\nthat zero-size allocations are no longer possible since there is already\nan explicit check for space_args.space_slots being 0 and truncation of\nthis value is no longer an issue.\n\nSigned-off-by: Dan Rosenberg \u003cdrosenberg@vsecurity.com\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nReviewed-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6848ad6461e551849ba3c32d945d4f45e96453a6",
      "tree": "86ab53a68e0b3181594808b43ef9fec333ea61f2",
      "parents": [
        "e3f24cc521cb7ba60ac137abd1939e4e03435e80"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.z.yan@linux.intel.com",
        "time": "Mon Feb 14 16:00:03 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 16:00:03 2011 -0500"
      },
      "message": "Btrfs: Fix balance panic\n\nMark the cloned backref_node as checked in clone_backref_node()\n\nSigned-off-by: Yan, Zheng \u003czheng.z.yan@intel.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e3f24cc521cb7ba60ac137abd1939e4e03435e80",
      "tree": "e054136e5b2cf6a2bc9a62dd616393676cd316dd",
      "parents": [
        "eb14ab8ed24a0405fd056068b28c33a1cd846024"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 12:52:08 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 13:04:01 2011 -0500"
      },
      "message": "Btrfs: don\u0027t release pages when we can\u0027t clear the uptodate bits\n\nBtrfs tracks uptodate state in an rbtree as well as in the\npage bits.  This is supposed to enable us to use block sizes other than\nthe page size, but there are a few parts still missing before that\ncompletely works.\n\nBut, our readpage routine trusts this additional range based tracking\nof uptodateness, much in the same way the buffer head up to date bits\nare trusted for the other filesystems.\n\nThe problem is that sometimes we need to allocate memory in order to\nsplit records in the rbtree, even when we are just clearing bits.  This\ncan be difficult when our clearing function is called GFP_ATOMIC, which\ncan happen in the releasepage path.\n\nSo, what happens today looks like this:\n\nreleasepage called with GFP_ATOMIC\nbtrfs_releasepage calls clear_extent_bit\nclear_extent_bit fails to allocate ram, leaving the up to date bit set\nbtrfs_releasepage returns success\n\nThe end result is the page being gone, but btrfs thinking the range is\nup to date.   Later on if someone tries to read that same page, the\nbtrfs readpage code will return immediately thinking the page is already\nup to date.\n\nThis commit fixes things to fail the releasepage when we can\u0027t clear the\nextent state bits.  It covers both data pages and metadata tree blocks.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "eb14ab8ed24a0405fd056068b28c33a1cd846024",
      "tree": "1451cad453a3ff66bc5369dc83daf7e3a50c4897",
      "parents": [
        "3a90983dbdcb2f4f48c0d771d8e5b4d88f27fae6"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 10 12:35:00 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 14 13:03:52 2011 -0500"
      },
      "message": "Btrfs: fix page-\u003eprivate races\n\nThere is a race where btrfs_releasepage can drop the\npage-\u003eprivate contents just as alloc_extent_buffer is setting\nup pages for metadata.  Because of how the Btrfs page flags work,\nthis results in us skipping the crc on the page during IO.\n\nThis patch sovles the race by waiting until after the extent buffer\nis inserted into the radix tree before it sets page private.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "83f6b0c18204f68961f58b9f69e5dba0d36056a2",
      "tree": "87d08d398b61bee64a2ebc5a538f57f752c6c0d9",
      "parents": [
        "acfdf5c383b38f7f4dddae41b97c97f1ae058f49"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Feb 06 16:46:30 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd: break lease on unlink due to rename\n\n4795bb37effb7b8fe77e2d2034545d062d3788a8 \"nfsd: break lease on unlink,\nlink, and rename\", only broke the lease on the file that was being\nrenamed, and didn\u0027t handle the case where the target path refers to an\nalready-existing file that will be unlinked by a rename--in that case\nthe target file should have any leases broken as well.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "acfdf5c383b38f7f4dddae41b97c97f1ae058f49",
      "tree": "f04f5f069191fa984a394154efdf766898bffcaf",
      "parents": [
        "5d926e8c2f46dc09f4ddde86644a5f1d0726a470"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 19:20:39 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd4: acquire only one lease per file\n\nInstead of acquiring one lease each time another client opens a file,\nnfsd can acquire just one lease to represent all of them, and reference\ncount it to determine when to release it.\n\nThis fixes a regression introduced by\nc45821d263a8a5109d69a9e8942b8d65bcd5f31a \"locks: eliminate fl_mylease\ncallback\": after that patch, only the struct file * is used to determine\nwho owns a given lease.  But since we recently converted the server to\nshare a single struct file per open, if we acquire multiple leases on\nthe same file from nfsd, it then becomes impossible on unlocking a lease\nto determine which of those leases (all of whom share the same struct\nfile *) we meant to remove.\n\nThanks to Takashi Iwai \u003ctiwai@suse.de\u003e for catching a bug in a previous\nversion of this patch.\n\nTested-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "5d926e8c2f46dc09f4ddde86644a5f1d0726a470",
      "tree": "ef30c949c75ee204c3108159caf9eeb22daf8418",
      "parents": [
        "65bc58f5187e2ff4011ef1bd3082e83cd1b036f1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 07 16:53:46 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd4: modify fi_delegations under recall_lock\n\nModify fi_delegations only under the recall_lock, allowing us to use\nthat list on lease breaks.\n\nAlso some trivial cleanup to simplify later changes.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "65bc58f5187e2ff4011ef1bd3082e83cd1b036f1",
      "tree": "c634f0053dce5ae476cbd23aeaa9c444f16d3133",
      "parents": [
        "edab9782b5a16abb8d139d261e81e13ef0be35a9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 07 15:44:12 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:19 2011 -0500"
      },
      "message": "nfsd4: remove unused deleg dprintk\u0027s.\n\nThese aren\u0027t all that useful, and get in the way of the next steps.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "edab9782b5a16abb8d139d261e81e13ef0be35a9",
      "tree": "44d843dbac80823b0d9f66d43151956ada711f1f",
      "parents": [
        "dd239cc05f0ad9f582dd83d88a4fb5edcc57a026"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 17:58:10 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "nfsd4: split lease setting into separate function\n\nSplitting some code into a separate function which we\u0027ll be adding some\nmore to.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "dd239cc05f0ad9f582dd83d88a4fb5edcc57a026",
      "tree": "ea1a50af9405d104d5c98620eed4ca10bf131df6",
      "parents": [
        "22d38c4c10e8344aa406897d99a35d585d2cb77d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 17:14:55 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "nfsd4: fix leak on allocation error\n\nAlso share some common exit code.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "22d38c4c10e8344aa406897d99a35d585d2cb77d",
      "tree": "9b591b2c218a3e1a80efab0b0cb69d2a73f3796e",
      "parents": [
        "6b57d9c86d0ab11c091b6db2edff8b5553fd445b"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Jan 31 11:55:12 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Feb 14 10:35:18 2011 -0500"
      },
      "message": "nfsd4: add helper function for lease setup\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    }
  ],
  "next": "6b57d9c86d0ab11c091b6db2edff8b5553fd445b"
}
