)]}'
{
  "log": [
    {
      "commit": "5f40d4209461f23a15d88c6b55993bb8b0fa2670",
      "tree": "2261f8576d1317c5810edc326be0dfff964c254f",
      "parents": [
        "215fd2fa8879247ac6e3af1dc44af7cae8c06f1e",
        "53d4737580535e073963b91ce87d4216e434fab5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 14 11:19:50 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 14 11:19:50 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: NFSROOT should default to \"proto\u003dudp\"\n  nfs4: remove duplicated #include\n  NFSv4: nfs4_state_mark_reclaim_nograce() should be static\n  NFSv4: Fix the setlk error handler\n  NFSv4.1: Fix the handling of the SEQUENCE status bits\n  NFSv4/4.1: Fix nfs4_schedule_state_recovery abuses\n  NFSv4.1 reclaim complete must wait for completion\n  NFSv4: remove duplicate clientid in struct nfs_client\n  NFSv4.1: Retry CREATE_SESSION on NFS4ERR_DELAY\n  sunrpc: Propagate errors from xs_bind() through xs_create_sock()\n  (try3-resend) Fix nfs_compat_user_ino64 so it doesn\u0027t cause problems if bit 31 or 63 are set in fileid\n  nfs: fix compilation warning\n  nfs: add kmalloc return value check in decode_and_add_ds\n  SUNRPC: Remove resource leak in svc_rdma_send_error()\n  nfs: close NFSv4 COMMIT vs. CLOSE race\n  SUNRPC: Close a race in __rpc_wait_for_completion_task()\n"
    },
    {
      "commit": "1eafbfeb7bdf59cfe173304c76188f3fd5f1fd05",
      "tree": "eae0a7cdf358b1b0396e9c3ec935d0e6be72bdb2",
      "parents": [
        "2fbfac4e053861925fa3fffcdc327649b09af54c"
      ],
      "author": {
        "name": "Timo Warns",
        "email": "Warns@pre-sense.de",
        "time": "Mon Mar 14 14:59:33 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 14 10:14:28 2011 -0700"
      },
      "message": "Fix corrupted OSF partition table parsing\n\nThe kernel automatically evaluates partition tables of storage devices.\nThe code for evaluating OSF partitions contains a bug that leaks data\nfrom kernel heap memory to userspace for certain corrupted OSF\npartitions.\n\nIn more detail:\n\n  for (i \u003d 0 ; i \u003c le16_to_cpu(label-\u003ed_npartitions); i++, partition++) {\n\niterates from 0 to d_npartitions - 1, where d_npartitions is read from\nthe partition table without validation and partition is a pointer to an\narray of at most 8 d_partitions.\n\nAdd the proper and obvious validation.\n\nSigned-off-by: Timo Warns \u003cwarns@pre-sense.de\u003e\nCc: stable@kernel.org\n[ Changed the patch trivially to not repeat the whole le16_to_cpu()\n  thing, and to use an explicit constant for the magic value \u00278\u0027 ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c44ed965be7a84afaa07543c04eb97a5dfe93422",
      "tree": "df96d439962f923eee668e46dbff574b3603ca3f",
      "parents": [
        "c9a816c0ecb8cef8e6573a8eab47fc48c765e0a1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sun Mar 13 23:24:46 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 13 16:29:07 2011 -0700"
      },
      "message": "compat breakage in preadv() and pwritev()\n\nFix for a dumb preadv()/pwritev() compat bug - unlike the native\nvariants, the compat_...  ones forget to check FMODE_P{READ,WRITE}, so\ne.g.  on pipe the native preadv() will fail with -ESPIPE and compat one\nwill act as readv() and succeed.\n\nNot critical, but it\u0027s a clear bug with trivial fix, so IMO it\u0027s OK for\n-final.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e5b88cd9975dca6c191cc9bd11f233fac4ca882",
      "tree": "6302317acfb24d6b5ad7924aceaa0dd1c4a7a371",
      "parents": [
        "eebea5d13d391981061d6ef069a841002eba4a7a",
        "36e39c40b3facc9b489a13f1d301fc53ff6960a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 13 16:00:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 13 16:00:49 2011 -0700"
      },
      "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: break out of shrink_delalloc earlier\n  btrfs: fix not enough reserved space\n  btrfs: fix dip leak\n  Btrfs: make sure not to return overlapping extents to fiemap\n  Btrfs: deal with short returns from copy_from_user\n  Btrfs: fix regressions in copy_from_user handling\n"
    },
    {
      "commit": "36e39c40b3facc9b489a13f1d301fc53ff6960a3",
      "tree": "e009d85998f89ef06d1d96515e3856fa074c4f4f",
      "parents": [
        "7e6b6465e6efbca3985258996be9c189da96c8bf"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Mar 12 07:08:42 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Mar 12 07:08:42 2011 -0500"
      },
      "message": "Btrfs: break out of shrink_delalloc earlier\n\nJosef had changed shrink_delalloc to exit after three shrink\nattempts, which wasn\u0027t quite enough because new writers could\nrace in and steal free space.\n\nBut it also fixed deadlocks and stalls as we tried to recover\ndelalloc reservations.  The code was tweaked to loop 1024\ntimes, and would reset the counter any time a small amount\nof progress was made.  This was too drastic, and with a\nlot of writers we can end up stuck in shrink_delalloc forever.\n\nThe shrink_delalloc loop is fairly complex because the caller is looping\ntoo, and the caller will go ahead and force a transaction commit to make\nsure we reclaim space.\n\nThis reworks things to exit shrink_delalloc when we\u0027ve forced some\nwriteback and the delalloc reservations have gone down.  This means\nthe writeback has not just started but has also finished at\nleast some of the metadata changes required to reclaim delalloc\nspace.\n\nIf we\u0027ve got this wrong, we\u0027re returning ENOSPC too early, which\nis a big improvement over the current behavior of hanging the machine.\n\nTest 224 in xfstests hammers on this nicely, and with 1000 writers\ntrying to fill a 1GB drive we get our first ENOSPC at 93% full.  The\nother writers are able to continue until we get 100%.\n\nThis is a worst case test for btrfs because the 1000 writers are doing\nsmall IO, and the small FS size means we don\u0027t have a lot of room\nfor metadata chunks.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "53d4737580535e073963b91ce87d4216e434fab5",
      "tree": "5dcecfe07d5f9ea1ec3a4b5678d8710c155ca340",
      "parents": [
        "57df216bd8c8813a79a6a618e3d2ec937d532b86"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 11 15:31:06 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:38:07 2011 -0500"
      },
      "message": "NFS: NFSROOT should default to \"proto\u003dudp\"\n\nThere have been a number of recent reports that NFSROOT is no longer\nworking with default mount options, but fails only with certain NICs.\n\nBrian Downing \u003cbdowning@lavos.net\u003e bisected to commit 56463e50 \"NFS:\nUse super.c for NFSROOT mount option parsing\".  Among other things,\nthis commit changes the default mount options for NFSROOT to use TCP\ninstead of UDP as the underlying transport.\n\nTCP seems less able to deal with NICs that are slow to initialize.\nThe system logs that have accompanied reports of problems all show\nthat NFSROOT attempts to establish a TCP connection before the NIC is\nfully initialized, and thus the TCP connection attempt fails.\n\nWhen a TCP connection attempt fails during a mount operation, the\nNFS stack needs to fail the operation.  Usually user space knows how\nand when to retry it.  The network layer does not report a distinct\nerror code for this particular failure mode.  Thus, there isn\u0027t a\nclean way for the RPC client to see that it needs to retry in this\ncase, but not in others.\n\nBecause NFSROOT is used in some environments where it is not possible\nto update the kernel command line to specify \"udp\", the proper thing\nto do is change NFSROOT to use UDP by default, as it did before commit\n56463e50.\n\nTo make it easier to see how to change default mount options for\nNFSROOT and to distinguish default settings from mandatory settings,\nI\u0027ve adjusted a couple of areas to document the specifics.\n\nroot_nfs_cat() is also modified to deal with commas properly when\nconcatenating strings containing mount option lists.  This keeps\nroot_nfs_cat() call sites simpler, now that we may be concatenating\nmultiple mount option strings.\n\nTested-by: Brian Downing \u003cbdowning@lavos.net\u003e\nTested-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: \u003cstable@kernel.org\u003e # 2.6.37\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "57df216bd8c8813a79a6a618e3d2ec937d532b86",
      "tree": "ee3eddc164a7a1942a3239883336f90eeab6ee62",
      "parents": [
        "f9feab1e180d1392f2f59d692826c6da2e57adf4"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Tue Mar 08 23:11:30 2011 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:18:37 2011 -0500"
      },
      "message": "nfs4: remove duplicated #include\n\nRemove duplicated #include(\u0027s) in\n  fs/nfs/nfs4proc.c\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f9feab1e180d1392f2f59d692826c6da2e57adf4",
      "tree": "1af4e0012ddb1d74b0cd44fc4461bd5b78f5adf5",
      "parents": [
        "ecac799a5ecc364006f0db6f2db15e77ed4d63e2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 09 16:12:46 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:18:36 2011 -0500"
      },
      "message": "NFSv4: nfs4_state_mark_reclaim_nograce() should be static\n\nThere are no more external users of nfs4_state_mark_reclaim_nograce() or\nnfs4_state_mark_reclaim_reboot(), so mark them as static.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ecac799a5ecc364006f0db6f2db15e77ed4d63e2",
      "tree": "200a71e8c3d564bb26e31cda2c4283142c380ee7",
      "parents": [
        "b4410c2f7f775b03da31566c05bb8d2383c7dc27"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 09 16:00:56 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:18:36 2011 -0500"
      },
      "message": "NFSv4: Fix the setlk error handler\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b4410c2f7f775b03da31566c05bb8d2383c7dc27",
      "tree": "7d16c41557c7aa17489a222a660ad71bd7fb370b",
      "parents": [
        "0400a6b0cb756f976bae32ae8db47bfa9853897c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 09 16:00:55 2011 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 11 15:18:35 2011 -0500"
      },
      "message": "NFSv4.1: Fix the handling of the SEQUENCE status bits\n\nWe want SEQUENCE status bits to be handled by the state manager in order\nto avoid threading issues.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "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": "7e6b6465e6efbca3985258996be9c189da96c8bf",
      "tree": "d4cde91d45865effa20fca9a789813321808c129",
      "parents": [
        "b4966b7770349deb05e3dd2bd2c65d2d044abbbb"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Fri Feb 18 09:21:17 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 10 11:21:49 2011 -0500"
      },
      "message": "btrfs: fix not enough reserved space\n\nbtrfs_link() will insert 3 items(inode ref, dir name item and dir index item)\ninto the b+ tree and update 2 items(its inode, and parent\u0027s inode) in the b+\ntree. So we should reserve space for these 5 items, not 3 items.\n\nReported-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b4966b7770349deb05e3dd2bd2c65d2d044abbbb",
      "tree": "79e281fde97b792eb732b5bde167c56939a6c67f",
      "parents": [
        "ea8efc74bd0402b4d5f663d007b4e25fa29ea778"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Wed Mar 09 16:46:42 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Mar 10 11:21:49 2011 -0500"
      },
      "message": "btrfs: fix dip leak\n\nThe btrfs DIO code leaks dip structs when dip-\u003ecsums allocation\nfails; bio-\u003ebi_end_io isn\u0027t set at the point where the free_ordered\nbranch is consequently taken, thus bio_endio doesn\u0027t call the function\nwhich would free it in the normal case. Fix.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nAcked-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d891eedbc3b1b0fade8a9ce60cc0eba1cccb59e5",
      "tree": "55dd6aa9e17cd763efda6291d740bafd7f05d802",
      "parents": [
        "1ca551c6caae7b52178555cdedea6ca26444be46"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 18 15:45:09 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 05:18:54 2011 -0500"
      },
      "message": "fs/dcache: allow d_obtain_alias() to return unhashed dentries\n\nWithout this patch, inodes are not promptly freed on last close of an\nunlinked file by an nfs client:\n\n\tclient$ mount -tnfs4 server:/export/ /mnt/\n\tclient$ tail -f /mnt/FOO\n\t...\n\tserver$ df -i /export\n\tserver$ rm /export/FOO\n\t(^C the tail -f)\n\tserver$ df -i /export\n\tserver$ echo 2 \u003e/proc/sys/vm/drop_caches\n\tserver$ df -i /export\n\nthe df\u0027s will show that the inode is not freed on the filesystem until\nthe last step, when it could have been freed after killing the client\u0027s\ntail -f. On-disk data won\u0027t be deallocated either, leading to possible\nspurious ENOSPC.\n\nThis occurs because when the client does the close, it arrives in a\ncompound with a putfh and a close, processed like:\n\n\t- putfh: look up the filehandle.  The only alias found for the\n\t  inode will be DCACHE_UNHASHED alias referenced by the filp\n\t  this, so it creates a new DCACHE_DISCONECTED dentry and\n\t  returns that instead.\n\t- close: closes the existing filp, which is destroyed\n\t  immediately by dput() since it\u0027s DCACHE_UNHASHED.\n\t- end of the compound: release the reference\n\t  to the current filehandle, and dput() the new\n\t  DCACHE_DISCONECTED dentry, which gets put on the\n\t  unused list instead of being destroyed immediately.\n\nNick Piggin suggested fixing this by allowing d_obtain_alias to return\nthe unhashed dentry that is referenced by the filp, instead of making it\ncreate a new dentry.\n\nLeave __d_find_alias() alone to avoid changing behavior of other\ncallers.\n\nAlso nfsd doesn\u0027t need all the checks of __d_find_alias(); any dentry,\nhashed or unhashed, disconnected or not, should work.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1ca551c6caae7b52178555cdedea6ca26444be46",
      "tree": "cbe1a838712a092f7abe49920a09188ec2403578",
      "parents": [
        "991ac30d8b30ab6051dff5a7b07d84e6f5efa3a6"
      ],
      "author": {
        "name": "Marco Stornelli",
        "email": "marco.stornelli@gmail.com",
        "time": "Sat Mar 05 11:10:19 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 04:22:15 2011 -0500"
      },
      "message": "Check for immutable/append flag in fallocate path\n\nIn the fallocate path the kernel doesn\u0027t check for the immutable/append\nflag. It\u0027s possible to have a race condition in this scenario: an\napplication open a file in read/write and it does something, meanwhile\nroot set the immutable flag on the file, the application at that point\ncan call fallocate with success. In addition, we don\u0027t allow to do any\nunreserve operation on an append only file but only the reserve one.\n\nSigned-off-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9177ada99d5e69fe91950b3ef5c23f2bcd109987",
      "tree": "4de42636f1c2dd2f6a230d48c6c5ef507026ec7c",
      "parents": [
        "8ce84eeb5b40da21f20174dd25891a8409534237"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:45:49 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:45:49 2011 -0500"
      },
      "message": "fat: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8ce84eeb5b40da21f20174dd25891a8409534237",
      "tree": "a375dc92bc563655976d90ccfa6d794ab551f47a",
      "parents": [
        "4714e63731a8a641b5e0ed5e2e2191c13bf2d71a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:45:28 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:45:28 2011 -0500"
      },
      "message": "jfs: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4714e63731a8a641b5e0ed5e2e2191c13bf2d71a",
      "tree": "b857a67b96e602835db64abd1e883c16691e5921",
      "parents": [
        "53fe924161ff18d24c5c1c256549e9c1b9874827"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:45:07 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:45:07 2011 -0500"
      },
      "message": "ocfs2: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "53fe924161ff18d24c5c1c256549e9c1b9874827",
      "tree": "4447ddc370f8138952146e54c515675cc026a2ee",
      "parents": [
        "529c5f958f9e60abaa7407986034b17d17536bf2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:48 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:48 2011 -0500"
      },
      "message": "gfs2: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "529c5f958f9e60abaa7407986034b17d17536bf2",
      "tree": "3e946687f07c6738b9695224fd6492ceb8236e1e",
      "parents": [
        "0eb980e31770cfeff6e27760b4692d595b8dbf28"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:31 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:31 2011 -0500"
      },
      "message": "fuse: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0eb980e31770cfeff6e27760b4692d595b8dbf28",
      "tree": "62ce6d994beb41f1276169de643ebc9e343daeaa",
      "parents": [
        "c78f4cc5e7d642c7009089817c12d8984e7ba872"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:05 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:05 2011 -0500"
      },
      "message": "ceph: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c78f4cc5e7d642c7009089817c12d8984e7ba872",
      "tree": "15fec47edc3e047865e98b5f8c233b1d8d2e063a",
      "parents": [
        "ae50adcb0ac4cde67a7aec8ae67249d1b2be2948"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 16 10:14:56 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:42:01 2011 -0500"
      },
      "message": "reiserfs xattr -\u003ed_revalidate() shouldn\u0027t care about RCU\n\n... it returns an error unconditionally\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ae50adcb0ac4cde67a7aec8ae67249d1b2be2948",
      "tree": "757ea609da68ae08471bc2d0f689aa287ee89cbf",
      "parents": [
        "3979491701cfb2aa7477f5baf40553355391418b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 16 10:04:50 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:41:53 2011 -0500"
      },
      "message": "/proc/self is never going to be invalidated...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3979491701cfb2aa7477f5baf40553355391418b",
      "tree": "4eafd59af4fd75e646598e581abb4d41e030fef2",
      "parents": [
        "6b684cd5799cd1e691024ca3a688d1cdec9d4824",
        "3ec07aa9522e3d5e9d5ede7bef946756e623a0a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 09 14:52:09 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 09 14:52:09 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: wrong index used in inner loop\n  nfsd4: fix bad pointer on failure to find delegation\n  NFSD: fix decode_cb_sequence4resok\n"
    },
    {
      "commit": "78833dd70602be6b71ef34225f708b1e500947dc",
      "tree": "807050f760ccc7305b194d7568ebf98737076a40",
      "parents": [
        "a5abba989deceb731047425812d268daf7536575",
        "b306419ae08d9def53f2142a37cc0a58622307a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 09 13:55:51 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 09 13:55:51 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  nd-\u003einode is not set on the second attempt in path_walk()\n  unfuck proc_sysctl -\u003ed_compare()\n  minimal fix for do_filp_open() race\n"
    },
    {
      "commit": "b306419ae08d9def53f2142a37cc0a58622307a8",
      "tree": "8d3e6a51b05f39230a968e0655162f560f6c3c42",
      "parents": [
        "dfef6dcd35cb4a251f6322ca9b2c06f0bb1aa1f4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 08 21:16:28 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 08 21:16:28 2011 -0500"
      },
      "message": "nd-\u003einode is not set on the second attempt in path_walk()\n\nWe leave it at whatever it had been pointing to after the\nfirst link_path_walk() had failed with -ESTALE.  Things\ndo not work well after that...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3ec07aa9522e3d5e9d5ede7bef946756e623a0a0",
      "tree": "40978798d31499caa6764ea408add9f50db9bf13",
      "parents": [
        "32b007b4e19b50ff4d27ea8b69cd6d744cfec86b"
      ],
      "author": {
        "name": "roel",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Mar 08 22:32:26 2011 +0100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Mar 08 19:46:10 2011 -0500"
      },
      "message": "nfsd: wrong index used in inner loop\n\nIndex i was already used in the outer loop\n\nCc: stable@kernel.org\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "ea8efc74bd0402b4d5f663d007b4e25fa29ea778",
      "tree": "ad3f19c4281877767f6dce99f0e003284a159e71",
      "parents": [
        "31339acd07b4ba687906702085127895a56eb920"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 08 11:54:40 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Mar 08 11:58:09 2011 -0500"
      },
      "message": "Btrfs: make sure not to return overlapping extents to fiemap\n\nThe btrfs fiemap code was incorrectly returning duplicate or overlapping\nextents in some cases.  cp was blindly trusting this result and we would\nend up with a destination file that was bigger than the original because\nsome bytes were copied twice.\n\nThe fix here adjusts our offsets to make sure we\u0027re always moving\nforward in the fiemap results.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "dfef6dcd35cb4a251f6322ca9b2c06f0bb1aa1f4",
      "tree": "65e8a25d4ed913658db35c4b97ab0a021c2124eb",
      "parents": [
        "1858efd471624ecb37e6b5462cab8076f47d1cee"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 08 01:25:28 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 08 02:22:27 2011 -0500"
      },
      "message": "unfuck proc_sysctl -\u003ed_compare()\n\na) struct inode is not going to be freed under -\u003ed_compare();\nhowever, the thing PROC_I(inode)-\u003esysctl points to just might.\nFortunately, it\u0027s enough to make freeing that sucker delayed,\nprovided that we don\u0027t step on its -\u003eunregistering, clear\nthe pointer to it in PROC_I(inode) before dropping the reference\nand check if it\u0027s NULL in -\u003ed_compare().\n\nb) I\u0027m not sure that we *can* walk into NULL inode here (we recheck\ndentry-\u003eseq between verifying that it\u0027s still hashed / fetching\ndentry-\u003ed_inode and passing it to -\u003ed_compare() and there\u0027s no\nnegative hashed dentries in /proc/sys/*), but if we can walk into\nthat, we really should not have -\u003ed_compare() return 0 on it!\nSaid that, I really suspect that this check can be simply killed.\nNick?\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "32b007b4e19b50ff4d27ea8b69cd6d744cfec86b",
      "tree": "ada73d6c52a6e9b37cbdc95d086485fdf338561a",
      "parents": [
        "2c9c8f36c34e1defcaa7e4c298651998b47f5282"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sun Mar 06 19:11:03 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Mar 07 11:44:53 2011 -0500"
      },
      "message": "nfsd4: fix bad pointer on failure to find delegation\n\nIn case of a nonempty list, the return on error here is obviously bogus;\nit ends up being a pointer to the list head instead of to any valid\ndelegation on the list.\n\nIn particular, if nfsd4_delegreturn() hits this case, and you\u0027re quite unlucky,\nthen renew_client may oops, and it may take an embarassingly long time to\nfigure out why.  Facepalm.\n\nBUG: unable to handle kernel NULL pointer dereference at 0000000000000090\nIP: [\u003cffffffff81292965\u003e] nfsd4_delegreturn+0x125/0x200\n...\n\nCc: stable@kernel.org\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "31339acd07b4ba687906702085127895a56eb920",
      "tree": "c1f2d464acfc97e8c5faecf57e644578cccce94d",
      "parents": [
        "b1bf862e9dad431175a1174379476299dbfdc017"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 07 11:10:24 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 07 11:10:24 2011 -0500"
      },
      "message": "Btrfs: deal with short returns from copy_from_user\n\nWhen copy_from_user is only able to copy some of the bytes we requested,\nwe may end up creating a partially up to date page.  To avoid garbage in\nthe page, we need to treat a partial copy as a zero length copy.\n\nThis makes the rest of the file_write code drop the page and\nretry the whole copy instead of marking the partially up to\ndate page as dirty.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\ncc: stable@kernel.org\n"
    },
    {
      "commit": "b1bf862e9dad431175a1174379476299dbfdc017",
      "tree": "a53811b2112fbe2a0106e3ac051fffc63872d317",
      "parents": [
        "ec29ed5b407d618a8128f5942aade9e1758aa14b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 28 09:52:08 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Mar 07 10:42:27 2011 -0500"
      },
      "message": "Btrfs: fix regressions in copy_from_user handling\n\nCommit 914ee295af418e936ec20a08c1663eaabe4cd07a fixed deadlocks in\nbtrfs_file_write where we would catch page faults on pages we had\nlocked.\n\nBut, there were a few problems:\n\n1) The x86-32 iov_iter_copy_from_user_atomic code always fails to copy\ndata when the amount to copy is more than 4K and the offset to start\ncopying from is not page aligned.  The result was btrfs_file_write\nlooping forever retrying the iov_iter_copy_from_user_atomic\n\nWe deal with this by changing btrfs_file_write to drop down to single\npage copies when iov_iter_copy_from_user_atomic starts returning failure.\n\n2) The btrfs_file_write code was leaking delalloc reservations when\niov_iter_copy_from_user_atomic returned zero.  The looping above would\nresult in the entire filesystem running out of delalloc reservations and\nconstantly trying to flush things to disk.\n\n3) btrfs_file_write will lock down page cache pages, make sure\nany writeback is finished, do the copy_from_user and then release them.\nBefore the loop runs we check the first and last pages in the write to\nsee if they are only being partially modified.  If the start or end of\nthe write isn\u0027t aligned, we make sure the corresponding pages are\nup to date so that we don\u0027t introduce garbage into the file.\n\nWith the copy_from_user changes, we\u0027re allowing the VM to reclaim the\npages after a partial update from copy_from_user, but we\u0027re not\nmaking sure the page cache page is up to date when we loop around to\nresume the write.\n\nWe deal with this by pushing the up to date checks down into the page\nprep code.  This fits better with how the rest of file_write works.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\nReported-by: Mitch Harder \u003cmitch.harder@sabayonlinux.org\u003e\ncc: stable@kernel.org\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": "1858efd471624ecb37e6b5462cab8076f47d1cee",
      "tree": "29d1e5d2aad63b798e880011fc527bb4bab63e40",
      "parents": [
        "b65a0e0c84cf489bfa00d6aa6c48abc5a237100f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 04 13:14:21 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 04 13:14:21 2011 -0500"
      },
      "message": "minimal fix for do_filp_open() race\n\nfailure exits on the no-O_CREAT side of do_filp_open() merge with\nthose of O_CREAT one; unfortunately, if do_path_lookup() returns\n-ESTALE, we\u0027ll get out_filp:, notice that we are about to return\n-ESTALE without having trying to create the sucker with LOOKUP_REVAL\nand jump right into the O_CREAT side of code.  And proceed to try\nand create a file.  Usually that\u0027ll fail with -ESTALE again, but\nwe can race and get that attempt of pathname resolution to succeed.\n\nopen() without O_CREAT really shouldn\u0027t end up creating files, races\nor not.  The real fix is to rearchitect the whole do_filp_open(),\nbut for now splitting the failure exits will do.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "2c9c8f36c34e1defcaa7e4c298651998b47f5282",
      "tree": "47c48d0db92ea600163b3dfee52f3a0c48e47234",
      "parents": [
        "47c85291d3dd1a51501555000b90f8e281a0458e"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Feb 22 14:43:22 2011 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Tue Feb 22 15:55:09 2011 -0800"
      },
      "message": "NFSD: fix decode_cb_sequence4resok\n\nFix bug introduced in patch\n85a56480 NFSD: Update XDR decoders in NFSv4 callback client\n\nAlthough decode_cb_sequence4resok ignores highest slotid and target highest slotid\nit must account for their space in their xdr stream when calling xdr_inline_decode\n\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.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"
    }
  ],
  "next": "9616125611ee47693186533d76e403856a36b3c8"
}
