)]}'
{
  "log": [
    {
      "commit": "e0959371b4aaddb9b986019d5cfef93f9801d0ff",
      "tree": "7df35d0e8dc8de31fa19aa0f8f3fad78b2afea11",
      "parents": [
        "83ba37105e262d374b9092a572b8ee6e30aa9f70",
        "e979cf50395e24c4bdd489f60e2d5dd5ae66d255"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 20 16:27:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 20 16:27:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: do not include cap/dentry releases in replayed messages\n  ceph: reuse request message when replaying against recovering mds\n  ceph: fix creation of ipv6 sockets\n  ceph: fix parsing of ipv6 addresses\n  ceph: fix printing of ipv6 addrs\n  ceph: add kfree() to error path\n  ceph: fix leak of mon authorizer\n  ceph: fix message revocation\n"
    },
    {
      "commit": "620d0be88188cd3dc79db3f5eab1420d6f97c70c",
      "tree": "99dc63926b972288b176be6ed3663e6390289ce5",
      "parents": [
        "ee1039307a8a64b038f9b8cdc6f9120ecd9dfe9b",
        "16fd5367370099b59d96e30bb7d9de8d419659f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 20:18:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 20:18:24 2010 -0700"
      },
      "message": "Merge branch \u0027shrinker\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev\n\n* \u0027shrinker\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev:\n  xfs: track AGs with reclaimable inodes in per-ag radix tree\n  xfs: convert inode shrinker to per-filesystem contexts\n  mm: add context argument to shrinker callback\n"
    },
    {
      "commit": "ee1039307a8a64b038f9b8cdc6f9120ecd9dfe9b",
      "tree": "05d4bb91752fdb1652a93bcd2ad4514cc697c2df",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4",
        "2ebc3464781ad24474abcbd2274e6254689853b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 19:33:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 19 19:33:02 2010 -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: fix checks in BTRFS_IOC_CLONE_RANGE\n  Btrfs: fix CLONE ioctl destination file size expansion to block boundary\n  Btrfs: fix split_leaf double split corner case\n"
    },
    {
      "commit": "16fd5367370099b59d96e30bb7d9de8d419659f2",
      "tree": "a9c12adb84f363ac48a0846de7a9464b1631e464",
      "parents": [
        "70e60ce71516c3a9e882edb70a09f696a05961db"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Jul 20 09:43:39 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Jul 20 09:43:39 2010 +1000"
      },
      "message": "xfs: track AGs with reclaimable inodes in per-ag radix tree\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d16348\n\nWhen the filesystem grows to a large number of allocation groups,\nthe summing of recalimable inodes gets expensive. In many cases,\nmost AGs won\u0027t have any reclaimable inodes and so we are wasting CPU\ntime aggregating over these AGs. This is particularly important for\nthe inode shrinker that gets called frequently under memory\npressure.\n\nTo avoid the overhead, track AGs with reclaimable inodes in the\nper-ag radix tree so that we can find all the AGs with reclaimable\ninodes via a simple gang tag lookup. This involves setting the tag\nwhen the first reclaimable inode is tracked in the AG, and removing\nthe tag when the last reclaimable inode is removed from the tree.\nThen the summation process becomes a loop walking the radix tree\nsumming AGs with the reclaim tag set.\n\nThis significantly reduces the overhead of scanning - a 6400 AG\nfilesystea now only uses about 25% of a cpu in kswapd while slab\nreclaim progresses instead of being permanently stuck at 100% CPU\nand making little progress. Clean filesystems filesystems will see\nno overhead and the overhead only increases linearly with the number\nof dirty AGs.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "70e60ce71516c3a9e882edb70a09f696a05961db",
      "tree": "324a400f2d21d071f6c462edbb6efa789125f6f1",
      "parents": [
        "7f8275d0d660c146de6ee3017e1e2e594c49e820"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Jul 20 08:07:02 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Jul 20 08:07:02 2010 +1000"
      },
      "message": "xfs: convert inode shrinker to per-filesystem contexts\n\nNow the shrinker passes us a context, wire up a shrinker context per\nfilesystem. This allows us to remove the global mount list and the\nlocking problems that introduced. It also means that a shrinker call\ndoes not need to traverse clean filesystems before finding a\nfilesystem with reclaimable inodes.  This significantly reduces\nscanning overhead when lots of filesystems are present.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "2ebc3464781ad24474abcbd2274e6254689853b5",
      "tree": "3d58dfcc14948672c0aac1636cdd57cbe46a135d",
      "parents": [
        "b5384d48f4e74edec3ca1887cb65e378a72af9a1"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "dan.j.rosenberg@gmail.com",
        "time": "Mon Jul 19 16:58:20 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 19 16:58:20 2010 -0400"
      },
      "message": "Btrfs: fix checks in BTRFS_IOC_CLONE_RANGE\n\n1.  The BTRFS_IOC_CLONE and BTRFS_IOC_CLONE_RANGE ioctls should check\nwhether the donor file is append-only before writing to it.\n\n2.  The BTRFS_IOC_CLONE_RANGE ioctl appears to have an integer\noverflow that allows a user to specify an out-of-bounds range to copy\nfrom the source file (if off + len wraps around).  I haven\u0027t been able\nto successfully exploit this, but I\u0027d imagine that a clever attacker\ncould use this to read things he shouldn\u0027t.  Even if it\u0027s not\nexploitable, it couldn\u0027t hurt to be safe.\n\nSigned-off-by: Dan Rosenberg \u003cdan.j.rosenberg@gmail.com\u003e\ncc: stable@kernel.org\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b5384d48f4e74edec3ca1887cb65e378a72af9a1",
      "tree": "cf41ab7d6a2c2606abe465c8229f002675696de0",
      "parents": [
        "99d8f83c98930100cd70437b0c81a935e7a14b0b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat Jun 12 22:31:14 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 19 16:15:06 2010 -0400"
      },
      "message": "Btrfs: fix CLONE ioctl destination file size expansion to block boundary\n\nThe CLONE and CLONE_RANGE ioctls round up the range of extents being\ncloned to the block size when the range to clone extends to the end of file\n(this is always the case with CLONE).  It was then using that offset when\nextending the destination file\u0027s i_size.  Fix this by not setting i_size\nbeyond the originally requested ending offset.\n\nThis bug was introduced by a22285a6 (2.6.35-rc1).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "99d8f83c98930100cd70437b0c81a935e7a14b0b",
      "tree": "db4ea3e51c5cc33b903c498368dc7b14e2a07125",
      "parents": [
        "6f902af400b2499c80865c62a06fbbd15cf804fd"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 07 10:51:48 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jul 19 16:14:50 2010 -0400"
      },
      "message": "Btrfs: fix split_leaf double split corner case\n\nsplit_leaf was not properly balancing leaves when it was forced to\nsplit a leaf twice.  This commit adds an extra push left and right\nbefore forcing the double split in hopes of getting the slot where\nwe want to insert at either the start or end of the leaf.\n\nIf the extra pushes do work, then we are able to avoid splitting twice\nand we keep the tree properly balanced.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cffab6bc5511cd6f67a60bf16b62de4267b68c4c",
      "tree": "edcc2a5ed2ef5865e98c8fa01bcb866a579edf89",
      "parents": [
        "a9f7f2e74ae0e6a801a2433dc8e9124d73da0cb4"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "peter.oberparleiter@de.ibm.com",
        "time": "Mon Jul 19 09:22:35 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Jul 19 09:22:50 2010 +0200"
      },
      "message": "[S390] dasd: use correct label location for diag fba disks\n\nPartition boundary calculation fails for DASD FBA disks under the\nfollowing conditions:\n- disk is formatted with CMS FORMAT with a blocksize of more than\n  512 bytes\n- all of the disk is reserved to a single CMS file using CMS RESERVE\n- the disk is accessed using the DIAG mode of the DASD driver\n\nUnder these circumstances, the partition detection code tries to\nread the CMS label block containing partition-relevant information\nfrom logical block offset 1, while it is in fact located at physical\nblock offset 1.\n\nFix this problem by using the correct CMS label block location\ndepending on the device type as determined by the DASD SENSE ID\ninformation.\n\nSigned-off-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "7f8275d0d660c146de6ee3017e1e2e594c49e820",
      "tree": "884db927118b44102750b5168ee36ef4b8b5cb4e",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "message": "mm: add context argument to shrinker callback\n\nThe current shrinker implementation requires the registered callback\nto have global state to work from. This makes it difficult to shrink\ncaches that are not global (e.g. per-filesystem caches). Pass the shrinker\nstructure to the callback so that users can embed the shrinker structure\nin the context the shrinker needs to operate on and get back to it in the\ncallback via container_of().\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "bea9a6d239cb2aa2ced4dcb0a05e1827ce61fa3d",
      "tree": "39f23bd918c4dcda4359ebd9b8f188b9cb5e25b1",
      "parents": [
        "cd9f040df6ce46573760a507cb88192d05d27d86",
        "5453258d532e72731b0829e4fefd36dd611a2fff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 18 10:09:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 18 10:09:25 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2: Silence gcc warning in ocfs2_write_zero_page().\n  jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions\n  ocfs2/dlm: Remove BUG_ON from migration in the rare case of a down node\n  ocfs2: Don\u0027t duplicate pages past i_size during CoW.\n  ocfs2: tighten up strlen() checking\n  ocfs2: Make xattr reflink work with new local alloc reservation.\n  ocfs2: make xattr extension work with new local alloc reservation.\n  ocfs2: Remove the redundant cpu_to_le64.\n  ocfs2/dlm: don\u0027t access beyond bitmap size\n  ocfs2: No need to zero pages past i_size.\n  ocfs2: Zero the tail cluster when extending past i_size.\n  ocfs2: When zero extending, do it by page.\n  ocfs2: Limit default local alloc size within bitmap range.\n  ocfs2: Move orphan scan work to ocfs2_wq.\n  fs/ocfs2/dlm: Add missing spin_unlock\n"
    },
    {
      "commit": "5453258d532e72731b0829e4fefd36dd611a2fff",
      "tree": "6caa67ad70df5cd266ff42f458d6994b689898a5",
      "parents": [
        "13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Jul 16 13:32:33 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Jul 16 13:33:39 2010 -0700"
      },
      "message": "ocfs2: Silence gcc warning in ocfs2_write_zero_page().\n\nocfs2_write_zero_page() has a loop that won\u0027t ever be skipped, but gcc\ndoesn\u0027t know that.  Set ret\u003d0 just to make gcc happy.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "e979cf50395e24c4bdd489f60e2d5dd5ae66d255",
      "tree": "5d26b26b4b7eb9bed0812800ea4d2d5704c5eaa3",
      "parents": [
        "01a92f174f8a3b99dbb5e02c86e7ee1e576737af"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 15 14:58:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 16 10:30:18 2010 -0700"
      },
      "message": "ceph: do not include cap/dentry releases in replayed messages\n\nStrip the cap and dentry releases from replayed messages.  They can\ncause the shared state to get out of sync because they were generated\n(with the request message) earlier, and no longer reflect the current\nclient state.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "01a92f174f8a3b99dbb5e02c86e7ee1e576737af",
      "tree": "ad478397d935b4b09340408cbacf8c6d35dee9d1",
      "parents": [
        "f91d3471ccf1ca9a795f46c94b1ded8dd219940c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 15 13:24:32 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 16 10:30:17 2010 -0700"
      },
      "message": "ceph: reuse request message when replaying against recovering mds\n\nReplayed rename operations (after an mds failure/recovery) were broken\nbecause the request paths were regenerated from the dentry names, which\nget mangled when d_move() is called.\n\nInstead, resend the previous request message when replaying completed\noperations.  Just make sure the REPLAY flag is set and the target ino is\nfilled in.\n\nThis fixes problems with workloads doing renames when the MDS restarts,\nwhere the rename operation appears to succeed, but on mds restart then\nfails (leading to client confusion, app breakage, etc.).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "13ceef099edd2b70c5a6f3a9ef5d6d97cda2e096",
      "tree": "5d65c397e9e85abe11a6fb0ebf3a69e8a4e91e0d",
      "parents": [
        "a39953dd95ff10e311083d94f4f95c348cb22464"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 14 07:56:33 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 15:17:47 2010 -0700"
      },
      "message": "jbd2/ocfs2: Fix block checksumming when a buffer is used in several transactions\n\nOCFS2 uses t_commit trigger to compute and store checksum of the just\ncommitted blocks. When a buffer has b_frozen_data, checksum is computed\nfor it instead of b_data but this can result in an old checksum being\nwritten to the filesystem in the following scenario:\n\n1) transaction1 is opened\n2) handle1 is opened\n3) journal_access(handle1, bh)\n    - This sets jh-\u003eb_transaction to transaction1\n4) modify(bh)\n5) journal_dirty(handle1, bh)\n6) handle1 is closed\n7) start committing transaction1, opening transaction2\n8) handle2 is opened\n9) journal_access(handle2, bh)\n    - This copies off b_frozen_data to make it safe for transaction1 to commit.\n      jh-\u003eb_next_transaction is set to transaction2.\n10) jbd2_journal_write_metadata() checksums b_frozen_data\n11) the journal correctly writes b_frozen_data to the disk journal\n12) handle2 is closed\n    - There was no dirty call for the bh on handle2, so it is never queued for\n      any more journal operation\n13) Checkpointing finally happens, and it just spools the bh via normal buffer\nwriteback.  This will write b_data, which was never triggered on and thus\ncontains a wrong (old) checksum.\n\nThis patch fixes the problem by calling the trigger at the moment data is\nfrozen for journal commit - i.e., either when b_frozen_data is created by\ndo_get_write_access or just before we write a buffer to the log if\nb_frozen_data does not exist. We also rename the trigger to t_frozen as\nthat better describes when it is called.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "a39953dd95ff10e311083d94f4f95c348cb22464",
      "tree": "c905adf070262a6782d7a1b664495c36fbe95fab",
      "parents": [
        "f5e27b6ddfbafdd9c9c2f06bbf28af12581409bc"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Wed Jul 14 22:38:21 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 10:56:30 2010 -0700"
      },
      "message": "ocfs2/dlm: Remove BUG_ON from migration in the rare case of a down node\n\nFor migration, we are waiting for DLM_LOCK_RES_MIGRATING flag to be set\nbefore sending DLM_MIG_LOCKRES_MSG message to the target. We are using\ndlm_migration_can_proceed() for that purpose.  However, if the node is\ndown, dlm_migration_can_proceed() will also return \"go ahead\".  In this\nrare case, the DLM_LOCK_RES_MIGRATING flag might not be set yet. Remove\nthe BUG_ON() that trips over this condition.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "f5e27b6ddfbafdd9c9c2f06bbf28af12581409bc",
      "tree": "b55eb9842a3ee2cfebb6a24ab2ee4ffbd597daee",
      "parents": [
        "e372357ba55ae89307af15cd680467d8f0db4f01"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Jul 14 11:19:32 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 15 10:54:28 2010 -0700"
      },
      "message": "ocfs2: Don\u0027t duplicate pages past i_size during CoW.\n\nDuring CoW, the pages after i_size don\u0027t contain valid data, so there\u0027s\nno need to read and duplicate them.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "728a756b8fcd22d80e2dbba8117a8a3aafd3f203",
      "tree": "82662dc27aaf1e277df977e57d778939be8ddb4a",
      "parents": [
        "8b4216018bdbfbb1b76150d202b15ee68c38e991"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jul 14 18:12:26 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:07:56 2010 +0100"
      },
      "message": "GFS2: rename causes kernel Oops\n\nThis patch fixes a kernel Oops in the GFS2 rename code.\n\nThe problem was in the way the gfs2 directory code was trying\nto re-use sentinel directory entries.\n\nIn the failing case, gfs2\u0027s rename function was renaming a\nfile to another name that had the same non-trivial length.\nThe file being renamed happened to be the first directory\nentry on the leaf block.\n\nFirst, the rename code (gfs2_rename in ops_inode.c) found the\noriginal directory entry and decided it could do its job by\nsimply replacing the directory entry with another.  Therefore\nit determined correctly that no block allocations were needed.\n\nNext, the rename code deleted the old directory entry prior to\nreplacing it with the new name.  Therefore, the soon-to-be\nreplaced directory entry was temporarily made into a directory\nentry \"sentinel\" or a place holder at the start of a leaf block.\n\nLastly, it went to re-add the replacement directory entry in\nthat leaf block.  However, when gfs2_dirent_find_space was\nlooking for space in the leaf block, it used the wrong value\nfor the sentinel.  That threw off its calculations so later\nit decides it can\u0027t really re-use the sentinel and therefore\nmust allocate a new leaf block.  But because it previously decided\nto re-use the directory entry, it didn\u0027t waste the time to\ngrab a new block allocation for the inode.  Therefore, the\ninode\u0027s i_alloc pointer was still NULL and it crashes trying to\nreference it.\n\nIn the case of sentinel directory entries, the entire dirent is\nreused, not just the \"free space\" portion of it, and therefore\nthe function gfs2_dirent_find_space should use the value 0\nrather than GFS2_DIRENT_SIZE(0) for the actual dirent size.\n\nFixing this calculation enables the reproducer programs to work\nproperly.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8b4216018bdbfbb1b76150d202b15ee68c38e991",
      "tree": "c13bd1db68ca135b6362ee8e67e558fe87bfb93c",
      "parents": [
        "b1becbdee776b447f203aa8da9a40488d5a75e1d"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Sun Jul 04 01:33:24 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:07:16 2010 +0100"
      },
      "message": "GFS2: BUG in gfs2_adjust_quota\n\nHighMem pages on i686 do not get mapped to the buffer_heads and this was\ncausing a NULL pointer dereference when we were trying to memset page buffers\nto zero.\nWe now use zero_user() that kmaps the page and directly manipulates page data.\nThis patch also fixes a boundary condition that was incorrect.\n\nSigned-off-by: Abhi Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b1becbdee776b447f203aa8da9a40488d5a75e1d",
      "tree": "1bf927adf4bf63cc39961cad2476774ab88b47ee",
      "parents": [
        "b7dc2df5725fe7355fd76000ead7e39728e1b8a9"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Jun 17 16:45:37 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:06:25 2010 +0100"
      },
      "message": "GFS2: Fix kernel NULL pointer dereference by dlm_astd\n\nThis patch fixes a problem in an error path when looking\nup dinodes.  There are two sister-functions, gfs2_inode_lookup\nand gfs2_process_unlinked_inode.  Both functions acquire and\nhold the i_iopen glock for the dinode being looked up. The last\nthing they try to do is hold the i_gl glock for the dinode.\nIf that glock fails for some reason, the error path was\nincorrectly calling gfs2_glock_put for the i_iopen glock twice.\nThis resulted in the glock being prematurely freed.  The\n\"minimum hold time\" usually kept the glock in memory, but the\nlock interface to dlm (aka lock_dlm) freed its memory for the\nglock.  In some circumstances, it would cause dlm\u0027s dlm_astd daemon\nto try to call the bast function for the freed lock_dlm memory,\nwhich resulted in a NULL pointer dereference.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b7dc2df5725fe7355fd76000ead7e39728e1b8a9",
      "tree": "4057c89535f6204d95f28950809fcb4b1c25dfa4",
      "parents": [
        "a8bf2bc212e129dd59a8b06cdbc15079cc3bd876"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jun 23 11:44:47 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:05:57 2010 +0100"
      },
      "message": "GFS2: recovery stuck on transaction lock\n\nThis patch fixes bugzilla bug #590878: GFS2: recovery stuck on\ntransaction lock.  We set the frozen flag on the glock when we receive\na completion that cannot be delivered due to blocked locks. At that\npoint we check to see whether the first waiting holder has the noexp\nflag set. If the noexp lock is queued later, then we need to unfreeze\nthe glock at that point in time, namely, in the glock work function.\n\nThis patch was originally written by Steve Whitehouse, but since\nhe\u0027s on holiday, I\u0027m submitting it.  It\u0027s been well tested with a\ncomplex recovery test called revolver.\n\nSigned-off-by: Steve Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "a8bf2bc212e129dd59a8b06cdbc15079cc3bd876",
      "tree": "b0a298e7f2534de52b9506fa1d6040e98e263a87",
      "parents": [
        "2f7989efd4398d92b8adffce2e07dd043a0895fe"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Jun 24 19:15:09 2010 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 15 09:05:17 2010 +0100"
      },
      "message": "GFS2: O_TRUNC not working on stuffed files across cluster\n\nThis patch replaces a statement that got dropped out by accident.\nWithout the patch, truncates on stuffed (very small) files cause\nthose files to have an unpredictable size.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e372357ba55ae89307af15cd680467d8f0db4f01",
      "tree": "ad5220668336431e815d0a933ffc9faed6a4a408",
      "parents": [
        "121a39bb00b421211f4f590c440a8f636d3ae807"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Jul 10 16:33:36 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:57:53 2010 -0700"
      },
      "message": "ocfs2: tighten up strlen() checking\n\nThis function is only called from one place and it\u0027s like this:\n\tdlm_register_domain(conn-\u003ecc_name, dlm_key, \u0026fs_version);\n\nThe \"conn-\u003ecc_name\" is 64 characters long.  If strlen(conn-\u003ecc_name)\nwere equal to O2NM_MAX_NAME_LEN (64) that would be a bug because\nstrlen() doesn\u0027t count the NULL character.\n\nIn fact, if you look how O2NM_MAX_NAME_LEN is used, it mostly describes\n64 character buffers.  The only exception is nd_name from struct\no2nm_node.\n\nAnyway I looked into it and in this case the domain string comes from\nosb-\u003euuid_str in ocfs2_setup_osb_uuid().  That\u0027s 32 characters and NULL\nwhich easily fits into O2NM_MAX_NAME_LEN.  This patch doesn\u0027t change how\nthe code works, but I think it makes the code a little cleaner.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "121a39bb00b421211f4f590c440a8f636d3ae807",
      "tree": "18219c168c7b35e9d17a283f1217eb802f0d3d11",
      "parents": [
        "a78f9f4668949a6588b8872f162e86685c63d023"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Jul 09 14:53:12 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:57:50 2010 -0700"
      },
      "message": "ocfs2: Make xattr reflink work with new local alloc reservation.\n\nThe new reservation code in local alloc has add the limitation\nthat the caller should handle the case that the local alloc\ndoesn\u0027t give use enough contiguous clusters. It make the old\nxattr reflink code broken.\n\nSo this patch udpate the xattr reflink code so that it can\nhandle the case that local alloc give us one cluster at a time.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "a78f9f4668949a6588b8872f162e86685c63d023",
      "tree": "e4757b666f2c51f3e2f596a921d4f9fe13c2dbc1",
      "parents": [
        "0a463b74e7e6856b24e613de2b85237c6e11890b"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Jul 09 14:53:11 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:57:24 2010 -0700"
      },
      "message": "ocfs2: make xattr extension work with new local alloc reservation.\n\nThe old ocfs2_xattr_extent_allocation is too optimistic about\nthe clusters we can get. So actually if the file system is\ntoo fragmented, ocfs2_add_clusters_in_btree will return us\nwith EGAIN and we need to allocate clusters once again.\n\nSo this patch change it to a while loop so that we can allocate\nclusters until we reach clusters_to_add.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "0a463b74e7e6856b24e613de2b85237c6e11890b",
      "tree": "ad64c3fca8ee02b71a1ae44886abcc3057b80452",
      "parents": [
        "f471c9df922a80ca9af1d9a490b4aab3f990ec19"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Jul 08 11:11:11 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:56:18 2010 -0700"
      },
      "message": "ocfs2: Remove the redundant cpu_to_le64.\n\nIn ocfs2_block_group_alloc, we set c_blkno by bg-\u003ebg_blkno.\nBut actually bg-\u003ebg_blkno is already changed to little endian\nin ocfs2_block_group_fill. So remove the extra cpu_to_le64.\n\nReported-by: Marcos Matsunaga \u003cMarcos.Matsunaga@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "f471c9df922a80ca9af1d9a490b4aab3f990ec19",
      "tree": "554116c78b9345c7bc0741bbc6be1fd7d5d390d4",
      "parents": [
        "693c241a5f6aa01417f5f4caf9f82e60e316398d"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Wed Jun 30 20:23:30 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:56:14 2010 -0700"
      },
      "message": "ocfs2/dlm: don\u0027t access beyond bitmap size\n\ndlm-\u003erecovery_map is defined as\n\tunsigned long recovery_map[BITS_TO_LONGS(O2NM_MAX_NODES)];\n\nWe should treat O2NM_MAX_NODES as the bit map size in bits.\nThis patches fixes a bit operation that takes O2NM_MAX_NODES + 1 as bitmap size.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "693c241a5f6aa01417f5f4caf9f82e60e316398d",
      "tree": "4d3509db621c7af934332c433e62b49bb548a60b",
      "parents": [
        "5693486bad2bc2ac585a2c24f7e2f3964b478df9"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Jul 02 17:20:27 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jul 12 13:55:27 2010 -0700"
      },
      "message": "ocfs2: No need to zero pages past i_size.\n\nWhen ocfs2 fills a hole, it does so by allocating clusters.  When a\ncluster is larger than the write, ocfs2 must zero the portions of the\ncluster outside of the write.  If the clustersize is smaller than a\npagecache page, this is handled by the normal pagecache mechanisms, but\nwhen the clustersize is larger than a page, ocfs2\u0027s write code will zero\nthe pages adjacent to the write.  This makes sure the entire cluster is\nzeroed correctly.\n\nCurrently ocfs2 behaves exactly the same when writing past i_size.\nHowever, this means ocfs2 is writing zeroed pages for portions of a new\ncluster that are beyond i_size.  The page writeback code isn\u0027t expecting\nthis.  It treats all pages past the one containing i_size as left behind\ndue to a previous truncate operation.\n\nThankfully, ocfs2 calculates the number of pages it will be working on\nup front.  The rest of the write code merely honors the original\ncalculation.  We can simply trim the number of pages to only cover the\nactual file data.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f91d3471ccf1ca9a795f46c94b1ded8dd219940c",
      "tree": "7a8d496d69ad9dd7a206183d11f5719b7161e6a7",
      "parents": [
        "39139f64e14684cf2370770deb79d929d27cfd9b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 01 15:18:31 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 15:00:20 2010 -0700"
      },
      "message": "ceph: fix creation of ipv6 sockets\n\nUse the address family from the peer address instead of assuming IPv4.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "39139f64e14684cf2370770deb79d929d27cfd9b",
      "tree": "7ea80cd49b3afd0816eacf7fbf191647c44d5661",
      "parents": [
        "d06dbaf6c2c7187938f3f6745d9e4938a2d0ec47"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 09:54:52 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Jul 09 15:00:18 2010 -0700"
      },
      "message": "ceph: fix parsing of ipv6 addresses\n\nCheck for brackets around the ipv6 address to avoid ambiguity with the port\nnumber.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d06dbaf6c2c7187938f3f6745d9e4938a2d0ec47",
      "tree": "472cfd72bcc15d7a7323a58a8698bab6ec7f33f1",
      "parents": [
        "b0bbb0be8f7fbf6d366b359e034c78a96c4e274d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 10:47:16 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 16:49:53 2010 -0700"
      },
      "message": "ceph: fix printing of ipv6 addrs\n\nThe buffer was too small.  Make it bigger, use snprintf(), put brackets\naround the ipv6 address to avoid mixing it up with the :port, and use the\never-so-handy %pI[46] formats.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "5693486bad2bc2ac585a2c24f7e2f3964b478df9",
      "tree": "03d61d72c1b73bbf0b049bf0328f8e0c69f35a43",
      "parents": [
        "a4bfb4cf11fd2211b788af59dc8a8b4394bca227"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 01 15:13:31 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 08 13:25:35 2010 -0700"
      },
      "message": "ocfs2: Zero the tail cluster when extending past i_size.\n\nocfs2\u0027s allocation unit is the cluster.  This can be larger than a block\nor even a memory page.  This means that a file may have many blocks in\nits last extent that are beyond the block containing i_size.  There also\nmay be more unwritten extents after that.\n\nWhen ocfs2 grows a file, it zeros the entire cluster in order to ensure\nfuture i_size growth will see cleared blocks.  Unfortunately,\nblock_write_full_page() drops the pages past i_size.  This means that\nocfs2 is actually leaking garbage data into the tail end of that last\ncluster.  This is a bug.\n\nWe adjust ocfs2_write_begin_nolock() and ocfs2_extend_file() to detect\nwhen a write or truncate is past i_size.  They will use\nocfs2_zero_extend() to ensure the data is properly zeroed.\n\nOlder versions of ocfs2_zero_extend() simply zeroed every block between\ni_size and the zeroing position.  This presumes three things:\n\n1) There is allocation for all of these blocks.\n2) The extents are not unwritten.\n3) The extents are not refcounted.\n\n(1) and (2) hold true for non-sparse filesystems, which used to be the\nonly users of ocfs2_zero_extend().  (3) is another bug.\n\nSince we\u0027re now using ocfs2_zero_extend() for sparse filesystems as\nwell, we teach ocfs2_zero_extend() to check every extent between\ni_size and the zeroing position.  If the extent is unwritten, it is\nignored.  If it is refcounted, it is CoWed.  Then it is zeroed.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "a4bfb4cf11fd2211b788af59dc8a8b4394bca227",
      "tree": "c06f45ac5a992575a0e47dbc80bdf187db030cca",
      "parents": [
        "1739da40543ed2129050ccfa8a076a851ab6ed00"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jul 06 14:36:06 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 08 13:24:49 2010 -0700"
      },
      "message": "ocfs2: When zero extending, do it by page.\n\nocfs2_zero_extend() does its zeroing block by block, but it calls a\nfunction named ocfs2_write_zero_page().  Let\u0027s have\nocfs2_write_zero_page() handle the page level.  From\nocfs2_zero_extend()\u0027s perspective, it is now page-at-a-time.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "c77e9e68269bf50573ce130b5d95ff6e539dbcf8",
      "tree": "99edc1b070717e18f5958f934bc3921cfed2ce1f",
      "parents": [
        "31016e9941be85e8c487b1f3c45d253eda356715",
        "83ba7b071f30f7c01f72518ad72d5cd203c27502"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 08 08:06:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 08 08:06:40 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  writeback: simplify the write back thread queue\n  writeback: split writeback_inodes_wb\n  writeback: remove writeback_inodes_wbc\n  fs-writeback: fix kernel-doc warnings\n  splice: check f_mode for seekable file\n  splice: direct_splice_actor() should not use pos in sd\n"
    },
    {
      "commit": "b0bbb0be8f7fbf6d366b359e034c78a96c4e274d",
      "tree": "cc3f2c6c33a49eae3880165def5a13e1af23b0ed",
      "parents": [
        "22b1de06c9fe128ca3de72560c3e8c2cabf2927a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Thu Jul 08 14:49:38 2010 +0200"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jul 08 08:03:24 2010 -0700"
      },
      "message": "ceph: add kfree() to error path\n\nWe leak a \"pi\" on this error path.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "1cc9629402b1eba0d4e21b2cc43eec9bd737f9bd",
      "tree": "6bd52203d0d071acd3311d5093b4aa61c313faad",
      "parents": [
        "8b8ce8810b092cef35e15af6577ad569f6145c0a",
        "153a10939ea6e42e9c0115b0645060d0d7bb4697"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 06 17:15:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 06 17:15:15 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: fix crush device \u0027out\u0027 threshold to 1.0, not 0.1\n  ceph: fix caps usage accounting for import (non-reserved) case\n  ceph: only release clean, unused caps with mds requests\n  ceph: fix crush CHOOSE_LEAF when type is already a leaf\n  ceph: fix crush recursion\n  ceph: fix caps debugfs entry\n  ceph: delay umount until all mds requests drop inode+dentry refs\n  ceph: handle splice_dentry/d_materialize_unique error in readdir_prepopulate\n  ceph: fix crush map update decoding\n  ceph: fix message memory leak, uninitialized variable\n  ceph: fix map handler error path\n  ceph: some endianity fixes\n"
    },
    {
      "commit": "83ba7b071f30f7c01f72518ad72d5cd203c27502",
      "tree": "4737320dcce72cfff4d87d835e4f78428eca7ef5",
      "parents": [
        "edadfb10ba35da7253541e4155aa92eff758ebe6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jul 06 08:59:53 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 06 08:59:53 2010 +0200"
      },
      "message": "writeback: simplify the write back thread queue\n\nFirst remove items from work_list as soon as we start working on them.  This\nmeans we don\u0027t have to track any pending or visited state and can get\nrid of all the RCU magic freeing the work items - we can simply free\nthem once the operation has finished.  Second use a real completion for\ntracking synchronous requests - if the caller sets the completion pointer\nwe complete it, otherwise use it as a boolean indicator that we can free\nthe work item directly.  Third unify struct wb_writeback_args and struct\nbdi_work into a single data structure, wb_writeback_work.  Previous we\nset all parameters into a struct wb_writeback_args, copied it into\nstruct bdi_work, copied it again on the stack to use it there.  Instead\nof just allocate one structure dynamically or on the stack and use it\nall the way through the stack.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "edadfb10ba35da7253541e4155aa92eff758ebe6",
      "tree": "a3c676f7b2c9b301d7e1948febeaba76ea1c5850",
      "parents": [
        "9c3a8ee8a1d72c5c0d7fbdf426d80e270ddfa54c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 10 12:07:54 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 06 08:54:08 2010 +0200"
      },
      "message": "writeback: split writeback_inodes_wb\n\nThe case where we have a superblock doesn\u0027t require a loop here as we scan\nover all inodes in writeback_sb_inodes. Split it out into a separate helper\nto make the code simpler.  This also allows to get rid of the sb member in\nstruct writeback_control, which was rather out of place there.\n\nAlso update the comments in writeback_sb_inodes that explain the handling\nof inodes from wrong superblocks.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "9c3a8ee8a1d72c5c0d7fbdf426d80e270ddfa54c",
      "tree": "fa131760a61f66afeede852622ede0d716965489",
      "parents": [
        "06d738fa9155ff16dba3d7e501ba4581d01a98cb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 10 12:07:27 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Jul 06 08:54:03 2010 +0200"
      },
      "message": "writeback: remove writeback_inodes_wbc\n\nThis was just an odd wrapper around writeback_inodes_wb.  Removing this\nalso allows to get rid of the bdi member of struct writeback_control\nwhich was rather out of place there.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "22b1de06c9fe128ca3de72560c3e8c2cabf2927a",
      "tree": "e8f711819f4430e8da584b3bbaba0bd6227d7edd",
      "parents": [
        "ed98adad3d87594c55347824e85137d1829c9e70"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 15:36:49 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 15:36:49 2010 -0700"
      },
      "message": "ceph: fix leak of mon authorizer\n\nFix leak of a struct ceph_buffer on umount.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ed98adad3d87594c55347824e85137d1829c9e70",
      "tree": "b22414183f7eff1ac1ba606a3ebf2357f0876b4c",
      "parents": [
        "153a10939ea6e42e9c0115b0645060d0d7bb4697"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 12:15:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 12:16:23 2010 -0700"
      },
      "message": "ceph: fix message revocation\n\nA message can be on a queue (pending or sent), or out_msg (sending), or\nboth.  We were assuming that if it\u0027s not on a queue it couldn\u0027t be out_msg,\nbut that was false in the case of lossy connections like the OSD.  Fix\nceph_con_revoke() to treat these cases independently.  Also, fix the\nout_kvec_is_message check to only trigger if we are currently sending\n_this_ message.\n\nThis fixes a GPF in tcp_sendpage, triggered by OSD restarts.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "153a10939ea6e42e9c0115b0645060d0d7bb4697",
      "tree": "6d6362aebbe5e0450c0bb1eed27cdb4cee420f2a",
      "parents": [
        "443b3760a06860187f135c1ecd56c2c7d4ad1022"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 09:44:17 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jul 05 09:44:17 2010 -0700"
      },
      "message": "ceph: fix crush device \u0027out\u0027 threshold to 1.0, not 0.1\n\nFix a typo that made any OSD weighted between 0.1 and 1.0 effectively\nweighted as 1.0 (fully in).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "e3668dd83ba5958429984286efbc3055be5344c4",
      "tree": "0614463a7bf4a6514db31556edd6848ed7a6fd7a",
      "parents": [
        "744c557892d3bfb575287ee95947f5c0b9a0458f",
        "7b6259e7a83647948fa33a736cc832310c8d85aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 04 20:13:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 04 20:13:31 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: remove block number from inode lookup code\n  xfs: rename XFS_IGET_BULKSTAT to XFS_IGET_UNTRUSTED\n  xfs: validate untrusted inode numbers during lookup\n  xfs: always use iget in bulkstat\n  xfs: prevent swapext from operating on write-only files\n"
    },
    {
      "commit": "06d738fa9155ff16dba3d7e501ba4581d01a98cb",
      "tree": "ea1e3a1632207c9b0ad7fedc47eaeb1c35e5d8bc",
      "parents": [
        "19c9a49b432f245c6293508d164a4350f1f2c601"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Thu Jul 01 08:26:34 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jul 01 08:26:34 2010 +0200"
      },
      "message": "fs-writeback: fix kernel-doc warnings\n\nFix kernel-doc to match the function\u0027s changed args.\n\nWarning(fs/fs-writeback.c:190): No description found for parameter \u0027args\u0027\nWarning(fs/fs-writeback.c:190): Excess function parameter \u0027sb\u0027 description in \u0027bdi_queue_work_onstack\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "19c9a49b432f245c6293508d164a4350f1f2c601",
      "tree": "a051c7c6c4c36d03e304c33a549da7ff4765d425",
      "parents": [
        "2cb4b05e7647891b46b91c07c9a60304803d1688"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Jun 29 13:10:36 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Jun 30 08:12:37 2010 +0200"
      },
      "message": "splice: check f_mode for seekable file\n\ncheck f_mode for seekable file\n\nAs a seekable file is allowed without a llseek function, so the old way isn\u0027t\nwork any more.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n----\n fs/splice.c |    6 ++----\n 1 file changed, 2 insertions(+), 4 deletions(-)\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "2cb4b05e7647891b46b91c07c9a60304803d1688",
      "tree": "7eae6d9fbee1d85feabb942c4a826700c4d6f9a3",
      "parents": [
        "984bc9601f64fd341b8573021d7c999f1f1499a9"
      ],
      "author": {
        "name": "Changli Gao",
        "email": "xiaosuo@gmail.com",
        "time": "Tue Jun 29 13:09:18 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Jun 30 08:12:37 2010 +0200"
      },
      "message": "splice: direct_splice_actor() should not use pos in sd\n\ndirect_splice_actor() shouldn\u0027t use sd-\u003epos, as sd-\u003epos is for file reading,\nfile-\u003ef_pos should be used instead.\n\nSigned-off-by: Changli Gao \u003cxiaosuo@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n----\n fs/splice.c |    3 ++-\n 1 file changed, 2 insertions(+), 1 deletion(-)\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f4985dc714d7ab1920c5aa502b7f4073fa1b4177",
      "tree": "4e8385c3d0c95f02623f5712a875742664701822",
      "parents": [
        "fb967ecc584c20c74a007de749ca597068b0fcac"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Jun 29 15:05:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:32 2010 -0700"
      },
      "message": "fs/fcntl.c:kill_fasync_rcu() fa_lock must be IRQ-safe\n\nFix a lockdep-splat-causing regression introduced by commit 989a2979205d\n(\"fasync: RCU and fine grained locking\").\n\nkill_fasync() can be called from both process and hard-irq context, so\nfa_lock must be taken with IRQs disabled.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d16230\n\nReported-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nReported-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nTested-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Maciej Rutecki \u003cmaciej.rutecki@gmail.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46c23d7f520e315dde86881b38ba92ebdf34ced5",
      "tree": "30a14e15710e9fe9ba38ac667ce7ed5734db3342",
      "parents": [
        "926b1e2ca35ccb3cbe0ea9b322c5330869b95046"
      ],
      "author": {
        "name": "Lubomir Rintel",
        "email": "lkundrak@v3.sk",
        "time": "Tue Jun 29 15:05:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:32 2010 -0700"
      },
      "message": "sysvfs: fix NULL deref. when allocating new inode\n\nA call to sysv_write_inode() in sysv_new_inode() to its new interface that\nreplaced wait flag with writeback structure.  This was broken by\na9185b41a4f84971b930c519f0c63bd450c4810d (\"pass writeback_control to\n-\u003ewrite_inode\").\n\nSigned-off-by: Lubomir Rintel \u003clkundrak@v3.sk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.34.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2952095c6b2eefd068dda0dee6317cf95155a304",
      "tree": "b0a963b7725f0e4a84a703ec78e8de80b953d060",
      "parents": [
        "12c46b336540b483df10d794bdee5d2f1aa8e33a"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 29 15:05:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:31 2010 -0700"
      },
      "message": "flat: tweak default stack alignment\n\nThe recent commit 1f0ce8b3dd667dca7 (\"mm: Move ARCH_SLAB_MINALIGN and\nARCH_KMALLOC_MINALIGN to \u003clinux/slab_def.h\u003e\") which moved the\nARCH_SLAB_MINALIGN default into the global header inadvertently broke FLAT\nfor a bunch of systems.  Blackfin systems now fail on any FLAT exec with:\nUnable to read code+data+bss, errno 14 When your /init is a FLAT binary,\nobviously this can be annoying ;).\n\nThis stems from the alignment usage in the FLAT loader.  The behavior\nbefore was that FLAT would default to ARCH_SLAB_MINALIGN only if it was\ndefined, and this was only defined by arches when they wanted a larger\nalignment value.  Otherwise it\u0027d default to pointer alignment.  Arguably,\nthis is kind of hokey that the FLAT is semi-abusing defines it shouldn\u0027t.\n\nSo let\u0027s merge the two alignment requirements so the floor is never 0.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: David McCullough \u003cdavidm@snapgear.com\u003e\nCc: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c26c9d9597f982973b9b3a32364230096ab0d78",
      "tree": "9ae3bb2586c6c8e6cd7af2e9695aa1b742fc8aad",
      "parents": [
        "e621ba9932aa0a90e47c12c958b3a3104915f3b9"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Tue Jun 29 15:05:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:30 2010 -0700"
      },
      "message": "nommu: add \u0027[stack]\u0027 label to /proc/pid/maps output\n\nAdd support to the NOMMU /proc/pid/maps file to show which mapping is the stack\nof the original thread after execve.  This is largely based on the MMU code.\nSubsidiary thread stacks are not indicated.\n\nFor FDPIC, we now get:\n\n\troot:/\u003e cat /proc/self/maps\n\t02064000-02067ccc rw-p 0004d000 00:01 22         /bin/busybox\n\t0206e000-0206f35c rw-p 00006000 00:01 295        /lib/ld-uClibc.so.0\n\t025f0000-025f6f0c r-xs 00000000 00:01 295        /lib/ld-uClibc.so.0\n\t02680000-026ba6b0 r-xs 00000000 00:01 297        /lib/libc.so.0\n\t02700000-0274d384 r-xs 00000000 00:01 22         /bin/busybox\n\t02816000-02817000 rw-p 00000000 00:00 0\n\t02848000-0284c0d8 rw-p 00000000 00:00 0\n\t02860000-02880000 rw-p 00000000 00:00 0          [stack]\n\nThe semi-downside here is that for FLAT, we get:\n\n\troot:/\u003e cat /proc/155/maps\n\t029f0000-029f9000 rwxp 00000000 00:00 0          [stack]\n\nThe reason being that FLAT combines a whole lot of stuff into one map\n(including the stack).  But this isn\u0027t any worse than the current output\n(which is nothing), so screw it.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "984bc9601f64fd341b8573021d7c999f1f1499a9",
      "tree": "06c616a6285b00d1e577902face3e8a986370b34",
      "parents": [
        "57439f878afafefad8836ebf5c49da2a0a746105",
        "1b99973f1c82707e46e8cb9416865a1e955e8f8c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 10:42:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 10:42:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: Don\u0027t count_vm_events for discard bio in submit_bio.\n  cfq: fix recursive call in cfq_blkiocg_update_completion_stats()\n  cfq-iosched: Fixed boot warning with BLK_CGROUP\u003dy and CFQ_GROUP_IOSCHED\u003dn\n  cfq: Don\u0027t allow queue merges for queues that have no process references\n  block: fix DISCARD_BARRIER requests\n  cciss: set SCSI max cmd len to 16, as default is wrong\n  cpqarray: fix two more wrong section type\n  cpqarray: fix wrong __init type on pci probe function\n  drbd: Fixed a race between disk-attach and unexpected state changes\n  writeback: fix pin_sb_for_writeback\n  writeback: add missing requeue_io in writeback_inodes_wb\n  writeback: simplify and split bdi_start_writeback\n  writeback: simplify wakeup_flusher_threads\n  writeback: fix writeback_inodes_wb from writeback_inodes_sb\n  writeback: enforce s_umount locking in writeback_inodes_sb\n  writeback: queue work on stack in writeback_inodes_sb\n  writeback: fix writeback completion notifications\n"
    },
    {
      "commit": "57439f878afafefad8836ebf5c49da2a0a746105",
      "tree": "ec11dd35704aa37d77a5fd8404fda57f297a3834",
      "parents": [
        "5904b3b81d25166e5e39b9727645bb47937618e3"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Thu Jun 24 13:02:14 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 10:38:22 2010 -0700"
      },
      "message": "fs: fix superblock iteration race\n\nlist_for_each_entry_safe is not suitable to protect against concurrent\nmodification of the list. 6754af6 introduced a race in sb walking.\n\nlist_for_each_entry can use the trick of pinning the current entry in\nthe list before we drop and retake the lock because it subsequently\nfollows cur-\u003enext. However list_for_each_entry_safe saves n\u003dcur-\u003enext\nfor following before entering the loop body, so when the lock is\ndropped, n may be deleted.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Frank Mayhar \u003cfmayhar@google.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "443b3760a06860187f135c1ecd56c2c7d4ad1022",
      "tree": "d6a3ec8b77f133066bd7795acca33f461eee821a",
      "parents": [
        "ec97f88ba6d4256927fde516033ee76d5d85b54a"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:28:39 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:31:56 2010 -0700"
      },
      "message": "ceph: fix caps usage accounting for import (non-reserved) case\n\nWe need to increase the total and used counters when allocating a new cap\nin the non-reserved (cap import) case.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "ec97f88ba6d4256927fde516033ee76d5d85b54a",
      "tree": "0df9cb10364afdb9092a089ba0da4a15f3c25a06",
      "parents": [
        "a1a31e734241aefcb2b30fb0cc0376977b6d2ba8"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 15:12:37 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue Jun 29 09:31:55 2010 -0700"
      },
      "message": "ceph: only release clean, unused caps with mds requests\n\nWe can drop caps with an mds request.  Ensure we only drop unused AND\nclean caps, since the MDS doesn\u0027t support cap writeback in that context,\nnor do we track it.  If caps are dirty, and the MDS needs them back, we\nit will revoke and we will flush in the normal fashion.\n\nThis fixes a possibly loss of metadata.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "327f935a9ef644c0ec3d050c94bce753756d60c0",
      "tree": "be1cadad98a4e91566a0ab1be7112fad38db97f4",
      "parents": [
        "f244f31a0d31402c2c1b1950108e0013353cc3f3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 02:52:32 2010 +0900"
      },
      "committer": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Jun 28 10:19:19 2010 +1000"
      },
      "message": "ocfs2: update gfp/slab.h includes\n\nImplicit slab.h inclusion via percpu.h is about to go away.  Make sure\ngfp.h or slab.h is included as necessary.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\n"
    },
    {
      "commit": "e7865c234fff2db474f21a62b2f906a70317c972",
      "tree": "da15a1c215b69dda6279c61106e2a5981e7e1d72",
      "parents": [
        "bf2937695fe2330bfd8933a2310e7bdd2581dc2e",
        "d3f6baaa34c54040b3ef30950e59b54ac0624b21"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 09:04:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 09:04:02 2010 -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  NFSv4: Fix an embarassing typo in encode_attrs()\n  NFSv4: Ensure that /proc/self/mountinfo displays the minor version number\n  NFSv4.1: Ensure that we initialise the session when following a referral\n  SUNRPC: Fix a re-entrancy bug in xs_tcp_read_calldir()\n  nfs4 use mandatory attribute file type in nfs4_get_root\n"
    },
    {
      "commit": "55982d94009c8fb1ea79855dba0c079c36224c38",
      "tree": "7390e8dd259c93d20896410930539b84ac4a3db8",
      "parents": [
        "a7b917256d8afacadc614414c4b0d411f76f3747",
        "30e2bab2d6e22188c6d36a09cdcffb4748d2dbe5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 07:50:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 07:50:47 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  ext3: update ctime when changing the file\u0027s permission by setfacl\n  ext2: update ctime when changing the file\u0027s permission by setfacl\n"
    },
    {
      "commit": "be1d29f59ca3ec7dfbbae24d4f68d357f5a31c4b",
      "tree": "751f2cc970be12046734c3e36ac48b23a7326ae0",
      "parents": [
        "24eb90abdd54446da5afe71f7c264fe26cfc5659",
        "51223df6c33d2d774429aef5fe8ae666401124b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 07:34:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 27 07:34:02 2010 -0700"
      },
      "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  MAINTAINERS: change mailing list address for CIFS\n  cifs: remove bogus first_time check in NTLMv2 session setup code\n  cifs: don\u0027t call cifs_new_fileinfo unless cifs_open succeeds\n  cifs: don\u0027t ignore cifs_posix_open_inode_helper return value\n  cifs: clean up arguments to cifs_open_inode_helper\n  cifs: pass instantiated filp back after open call\n  cifs: move cifs_new_fileinfo call out of cifs_posix_open\n  cifs: implement drop_inode superblock op\n  cifs: don\u0027t attempt busy-file rename unless it\u0027s in same directory\n"
    },
    {
      "commit": "30e2bab2d6e22188c6d36a09cdcffb4748d2dbe5",
      "tree": "6970213dc80934ed97244468f6c432b97271e62c",
      "parents": [
        "523825bc586d19e0fbcfc5db717f5bb90108bbc3"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu May 27 16:28:40 2010 +0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jun 25 01:20:37 2010 +0200"
      },
      "message": "ext3: update ctime when changing the file\u0027s permission by setfacl\n\next3 didn\u0027t update the ctime of the file when its permission was changed.\n\nSteps to reproduce:\n # touch aaa\n # stat -c %Z aaa\n 1275289822\n # setfacl -m  \u0027u::x,g::x,o::x\u0027 aaa\n # stat -c %Z aaa\n 1275289822\t\t\t\t\u003c- unchanged\n\nBut, according to the spec of the ctime, ext3 must update it.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "523825bc586d19e0fbcfc5db717f5bb90108bbc3",
      "tree": "54860c07d882f1c4417e8ce5c46510fb4f8c2726",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jun 02 16:26:51 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jun 25 01:20:37 2010 +0200"
      },
      "message": "ext2: update ctime when changing the file\u0027s permission by setfacl\n\next2 didn\u0027t update the ctime of the file when its permission was changed.\n\nSteps to reproduce:\n # touch aaa\n # stat -c %Z aaa\n 1275289822\n # setfacl -m  \u0027u::x,g::x,o::x\u0027 aaa\n # stat -c %Z aaa\n 1275289822                         \u003c- unchanged\n\nBut, according to the spec of the ctime, ext2 must update it.\n\nPort of ext3 patch by Miao Xie \u003cmiaox@cn.fujitsu.com\u003e.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a1a31e734241aefcb2b30fb0cc0376977b6d2ba8",
      "tree": "3247b61cf5f1cc3efb212e0362493f98f326e4ff",
      "parents": [
        "55bda7aacd13f5fdfeaafc16934953171405c692"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:58:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:58:14 2010 -0700"
      },
      "message": "ceph: fix crush CHOOSE_LEAF when type is already a leaf\n\nWe may not recurse for CHOOSE_LEAF if we start with a leaf node.  When\nthat happens, the out2 vector needs to be filled in with the result.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "55bda7aacd13f5fdfeaafc16934953171405c692",
      "tree": "0eac30a53266f636589e4b6220409289d068625a",
      "parents": [
        "bfaf148eb2e42c00f1c79b2163f0804068ea0c5e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:55:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 12:55:48 2010 -0700"
      },
      "message": "ceph: fix crush recursion\n\nThere was a longstanding problem with recursion through intervening\nbucket types on complex hierarchies.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bfaf148eb2e42c00f1c79b2163f0804068ea0c5e",
      "tree": "8d6b4dfcc42cd156bc80f0db472e9b3988edcd1b",
      "parents": [
        "17c688c3dfffc274c87be00033da0050bb6eefc0"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Wed Jun 23 15:52:27 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 24 09:47:36 2010 -0700"
      },
      "message": "ceph: fix caps debugfs entry\n\nThe ceph client structure was not set correctly.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "7b6259e7a83647948fa33a736cc832310c8d85aa",
      "tree": "99bb872b179a93f5e32b51f312029abb1237b055",
      "parents": [
        "1920779e67cbf5ea8afef317777c5bf2b8096188"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Jun 24 11:35:17 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 24 11:35:17 2010 +1000"
      },
      "message": "xfs: remove block number from inode lookup code\n\nThe block number comes from bulkstat based inode lookups to shortcut\nthe mapping calculations. We ar enot able to trust anything from\nbulkstat, so drop the block number as well so that the correct\nlookups and mappings are always done.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1920779e67cbf5ea8afef317777c5bf2b8096188",
      "tree": "f3450e4075162ef5ec360446c301513a5adf316e",
      "parents": [
        "7124fe0a5b619d65b739477b3b55a20bf805b06d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Jun 24 11:15:47 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 24 11:15:47 2010 +1000"
      },
      "message": "xfs: rename XFS_IGET_BULKSTAT to XFS_IGET_UNTRUSTED\n\nInode numbers may come from somewhere external to the filesystem\n(e.g. file handles, bulkstat information) and so are inherently\nuntrusted. Rename the flag we use for these lookups to make it\nobvious we are doing a lookup of an untrusted inode number and need\nto verify it completely before trying to read it from disk.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7124fe0a5b619d65b739477b3b55a20bf805b06d",
      "tree": "be333ebdcc7df735070dbc1441c1d59682d06132",
      "parents": [
        "7dce11dbac54fce777eea0f5fb25b2694ccd7900"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Jun 24 11:15:33 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 24 11:15:33 2010 +1000"
      },
      "message": "xfs: validate untrusted inode numbers during lookup\n\nWhen we decode a handle or do a bulkstat lookup, we are using an\ninode number we cannot trust to be valid. If we are deleting inode\nchunks from disk (default noikeep mode), then we cannot trust the on\ndisk inode buffer for any given inode number to correctly reflect\nwhether the inode has been unlinked as the di_mode nor the\ngeneration number may have been updated on disk.\n\nThis is due to the fact that when we delete an inode chunk, we do\nnot write the clusters back to disk when they are removed - instead\nwe mark them stale to avoid them being written back potentially over\nthe top of something that has been subsequently allocated at that\nlocation. The result is that we can have locations of disk that look\nlike they contain valid inodes but in reality do not. Hence we\ncannot simply convert the inode number to a block number and read\nthe location from disk to determine if the inode is valid or not.\n\nAs a result, and XFS_IGET_BULKSTAT lookup needs to actually look the\ninode up in the inode allocation btree to determine if the inode\nnumber is valid or not.\n\nIt should be noted even on ikeep filesystems, there is the\npossibility that blocks on disk may look like valid inode clusters.\ne.g. if there are filesystem images hosted on the filesystem. Hence\neven for ikeep filesystems we really need to validate that the inode\nnumber is valid before issuing the inode buffer read.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "7dce11dbac54fce777eea0f5fb25b2694ccd7900",
      "tree": "90d6d109ca110bcbf47a954a8283ec250be07003",
      "parents": [
        "1817176a86352f65210139d4c794ad2d19fc6b63"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 23 18:11:11 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Wed Jun 23 18:11:11 2010 +1000"
      },
      "message": "xfs: always use iget in bulkstat\n\nThe non-coherent bulkstat versionsthat look directly at the inode\nbuffers causes various problems with performance optimizations that\nmake increased use of just logging inodes.  This patch makes bulkstat\nalways use iget, which should be fast enough for normal use with the\nradix-tree based inode cache introduced a while ago.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "1817176a86352f65210139d4c794ad2d19fc6b63",
      "tree": "59ccbcb634d87882fc899b0d21438c4bb86f8632",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "dan.j.rosenberg@gmail.com",
        "time": "Thu Jun 24 12:07:47 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jun 24 12:07:47 2010 +1000"
      },
      "message": "xfs: prevent swapext from operating on write-only files\n\nThis patch prevents user \"foo\" from using the SWAPEXT ioctl to swap\na write-only file owned by user \"bar\" into a file owned by \"foo\" and\nsubsequently reading it.  It does so by checking that the file\ndescriptors passed to the ioctl are also opened for reading.\n\nSigned-off-by: Dan Rosenberg \u003cdan.j.rosenberg@gmail.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d3f6baaa34c54040b3ef30950e59b54ac0624b21",
      "tree": "2092cb0a8e794dea250468f86008a69ad24042a7",
      "parents": [
        "0be8189f2c87fcc747d6a4a657a0b6e2161b2318"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 08:52:39 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:22:54 2010 -0400"
      },
      "message": "NFSv4: Fix an embarassing typo in encode_attrs()\n\nApparently, we have never been able to set the atime correctly from the\nNFSv4 client.\n\nReported-by: 小倉一夫 \u003cka-ogura@bd6.so-net.ne.jp\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "0be8189f2c87fcc747d6a4a657a0b6e2161b2318",
      "tree": "f0f461bfa5cef075c7045e5ff216b261ed894098",
      "parents": [
        "44950b67a6239b377a9e6fd52c498b310bcdd713"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 18 12:23:58 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:22:53 2010 -0400"
      },
      "message": "NFSv4: Ensure that /proc/self/mountinfo displays the minor version number\n\nCurrently, we do not display the minor version mount parameter in the\n/proc mount info.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "44950b67a6239b377a9e6fd52c498b310bcdd713",
      "tree": "9984e218b109965d5ac4b55a047838a385301010",
      "parents": [
        "b76ce56192bcf618013fb9aecd83488cffd645cc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 17 11:45:12 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:22:53 2010 -0400"
      },
      "message": "NFSv4.1: Ensure that we initialise the session when following a referral\n\nPut the code that is common to both the referral and ordinary mount cases\ninto a common helper routine.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f799bdb355edaabd81b778087613409a8932fbe9",
      "tree": "e2d27df6984a11b3710fbc5ceb2dd874c375b3bb",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Wed Jun 16 09:51:02 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 22 13:17:43 2010 -0400"
      },
      "message": "nfs4 use mandatory attribute file type in nfs4_get_root\n\nS_ISDIR(fsinfo.fattr-\u003emode) checks the file type rather than the mode bits,\nso we should be checking for the NFS_ATTR_FATTR_TYPE fattr property.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "17c688c3dfffc274c87be00033da0050bb6eefc0",
      "tree": "1b1586253abf6850c9746235462d71e14e57f243",
      "parents": [
        "d69ed05a80f23b25f06e73af9b7e701ce4900edc"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 16:12:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 16:11:50 2010 -0700"
      },
      "message": "ceph: delay umount until all mds requests drop inode+dentry refs\n\nThis fixes a race between handle_reply finishing an mds request, signalling\ncompletion, and then dropping the request structing and its dentry+inode\nrefs, and pre_umount function waiting for requests to finish before\nletting the vfs tear down the dcache.  If umount was delayed waiting for\nmds requests, we could race and BUG in shrink_dcache_for_umount_subtree\nbecause of a slow dput.\n\nThis delays umount until the msgr queue flushes, which means handle_reply\nwill exit and will have dropped the ceph_mds_request struct.  I\u0027m assuming\nthe VFS has already ensured that its calls have all completed and those\nrequest refs have thus been dropped as well (I haven\u0027t seen that race, at\nleast).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "d69ed05a80f23b25f06e73af9b7e701ce4900edc",
      "tree": "dfe4d372b1c2bb66a71d13d6bf8a22758640ddd0",
      "parents": [
        "cebc5be6b6c82a99231e9c9af451e9e3d3399ec6"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 10:38:14 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon Jun 21 16:04:10 2010 -0700"
      },
      "message": "ceph: handle splice_dentry/d_materialize_unique error in readdir_prepopulate\n\nHandle a splice_dentry failure (due to a d_materialize_unique error)\nwithout crashing.  (Also, report the error code.)\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "cebc5be6b6c82a99231e9c9af451e9e3d3399ec6",
      "tree": "5899be89ac6396cb38ca938f922ef0a8ab57d3b3",
      "parents": [
        "ae32be31341a5fecfa16c5b3eb78095207182cce"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 17 10:22:48 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Thu Jun 17 10:22:48 2010 -0700"
      },
      "message": "ceph: fix crush map update decoding\n\nIf the incremental osdmap has a new crush map, advance the position after\ndecoding so that we can parse the rest of the osdmap properly.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "8a224d489454b7457105848610cfebebdec5638d",
      "tree": "6642e77046fc3ff2595d77b2b7747d608fa5cb22",
      "parents": [
        "47c78b7f40a9931a264e3c9bddccacdf8dfb9a30"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:18 2010 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:18 2010 -0400"
      },
      "message": "cifs: remove bogus first_time check in NTLMv2 session setup code\n\nThis bug appears to be the result of a cut-and-paste mistake from the\nNTLMv1 code. The function to generate the MAC key was commented out, but\nnot the conditional above it. The conditional then ended up causing the\nsession setup key not to be copied to the buffer unless this was the\nfirst session on the socket, and that made all but the first NTLMv2\nsession setup fail.\n\nFix this by removing the conditional and all of the commented clutter\nthat made it difficult to see.\n\nCc: Stable \u003cstable@kernel.org\u003e\nReported-by: Gunther Deschner \u003cgdeschne@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "47c78b7f40a9931a264e3c9bddccacdf8dfb9a30",
      "tree": "2b4cc492dee33f47836b252a4a1819006e5d0644",
      "parents": [
        "d9d5d8df953a98621be5b8889e05043d6e32052e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:17 2010 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:17 2010 -0400"
      },
      "message": "cifs: don\u0027t call cifs_new_fileinfo unless cifs_open succeeds\n\nIt\u0027s currently possible for cifs_open to fail after it has already\ncalled cifs_new_fileinfo. In that situation, the new fileinfo will be\nleaked as the caller doesn\u0027t call fput. That in turn leads to a busy\ninodes after umount problem since the fileinfo holds an extra inode\nreference now. Shuffle cifs_open around a bit so that it only calls\ncifs_new_fileinfo if it\u0027s going to succeed.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\n"
    },
    {
      "commit": "d9d5d8df953a98621be5b8889e05043d6e32052e",
      "tree": "bf96dc3b99f057a43965fcc3be05fd17d8a24b7d",
      "parents": [
        "db460242bf75624344efd670ec0f620f476529a3"
      ],
      "author": {
        "name": "Suresh Jayaraman",
        "email": "sjayaraman@suse.de",
        "time": "Wed Jun 16 13:40:17 2010 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:17 2010 -0400"
      },
      "message": "cifs: don\u0027t ignore cifs_posix_open_inode_helper return value\n\n...and ensure that we propagate the error back to avoid any surprises.\n\nSigned-off-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\nReviewed-and-Tested-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "db460242bf75624344efd670ec0f620f476529a3",
      "tree": "8f9f92918605b05ecd6f9f673620312eaf60173e",
      "parents": [
        "6ca9f3bae8b1854794dfa63cdd3b88b7dfe24c13"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:17 2010 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:17 2010 -0400"
      },
      "message": "cifs: clean up arguments to cifs_open_inode_helper\n\n...which takes a ton of unneeded arguments and does a lot more pointer\ndereferencing than is really needed.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\n"
    },
    {
      "commit": "6ca9f3bae8b1854794dfa63cdd3b88b7dfe24c13",
      "tree": "b2f880172b2e23ca4f57bef5e2141c062351d6ec",
      "parents": [
        "2422f676fb78942d054f7e7a2c3ceaeb7945d814"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:16 2010 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:16 2010 -0400"
      },
      "message": "cifs: pass instantiated filp back after open call\n\nThe current scheme of sticking open files on a list and assuming that\ncifs_open will scoop them off of it is broken and leads to \"Busy\ninodes after umount...\" errors at unmount time.\n\nThe problem is that there is no guarantee that cifs_open will always\nbe called after a -\u003elookup or -\u003ecreate operation. If there are\npermissions or other problems, then it\u0027s quite likely that it *won\u0027t*\nbe called.\n\nFix this by fully instantiating the filp whenever the file is created\nand pass that filp back to the VFS. If there is a problem, the VFS\ncan clean up the references.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\n"
    },
    {
      "commit": "2422f676fb78942d054f7e7a2c3ceaeb7945d814",
      "tree": "cacba53545327624023baf450868749ccec5a65b",
      "parents": [
        "0933a95dfdb1ae5c93e1ede5899f35acc2bb244d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:16 2010 -0400"
      },
      "committer": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 16 13:40:16 2010 -0400"
      },
      "message": "cifs: move cifs_new_fileinfo call out of cifs_posix_open\n\nHaving cifs_posix_open call cifs_new_fileinfo is problematic and\ninconsistent with how \"regular\" opens work. It\u0027s also buggy as\ncifs_reopen_file calls this function on a reconnect, which creates a new\nstruct cifsFileInfo that just gets leaked.\n\nPush it out into the callers. This also allows us to get rid of the\n\"mnt\" arg to cifs_posix_open.\n\nFinally, in the event that a cifsFileInfo isn\u0027t or can\u0027t be created, we\nalways want to close the filehandle out on the server as the client\nwon\u0027t have a record of the filehandle and can\u0027t actually use it. Make\nsure that CIFSSMBClose is called in those cases.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\n"
    },
    {
      "commit": "0933a95dfdb1ae5c93e1ede5899f35acc2bb244d",
      "tree": "55ac47b819a2a2084f82f9d823d9152ac2a7f2b3",
      "parents": [
        "12420ac341533f3715b3deb788637568f22b78ff",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jun 16 13:19:36 2010 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jun 16 13:19:36 2010 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of /pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "1739da40543ed2129050ccfa8a076a851ab6ed00",
      "tree": "43c58012649437dba6383411eb50c2031ad42050",
      "parents": [
        "40f165f416bde747d85cdf71bc9dde700912f71f"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Jun 09 16:43:05 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jun 15 16:50:43 2010 -0700"
      },
      "message": "ocfs2: Limit default local alloc size within bitmap range.\n\nIn commit 6b82021b9e91cd689fdffadbcdb9a42597bbe764, we increase\nour local alloc size and calculate how much megabytes we can\nget according to group size and volume size.\nBut we also need to check the maximum bits a local alloc block\nbitmap can have. With a bs\u003d512, cs\u003d32K, local volume with 160G,\nit calculate 96MB while the maximum local alloc size is only\n76M. So the bitmap will overflow and corrupt the system truncate\nlog file. See bug\nhttp://oss.oracle.com/bugzilla/show_bug.cgi?id\u003d1262\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "40f165f416bde747d85cdf71bc9dde700912f71f",
      "tree": "9bdf36cb4ce5674cf5a743c733b16e478c2696c3",
      "parents": [
        "6469272c350872980891dbe38e81c936c43f2d9b"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri May 28 14:22:59 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jun 15 15:43:48 2010 -0700"
      },
      "message": "ocfs2: Move orphan scan work to ocfs2_wq.\n\nWe used to let orphan scan work in the default work queue,\nbut there is a corner case which will make the system deadlock.\nThe scenario is like this:\n1. set heartbeat threadshold to 200. this will allow us to have a\n   great chance to have a orphan scan work before our quorum decision.\n2. mount node 1.\n3. after 1~2 minutes, mount node 2(in order to make the bug easier\n   to reproduce, better add maxcpus\u003d1 to kernel command line).\n4. node 1 do orphan scan work.\n5. node 2 do orphan scan work.\n6. node 1 do orphan scan work. After this, node 1 hold the orphan scan\n   lock while node 2 know node 1 is the master.\n7. ifdown eth2 in node 2(eth2 is what we do ocfs2 interconnection).\n\nNow when node 2 begins orphan scan, the system queue is blocked.\n\nThe root cause is that both orphan scan work and quorum decision work\nwill use the system event work queue. orphan scan has a chance of\nblocking the event work queue(in dlm_wait_for_node_death) so that there\nis no chance for quorum decision work to proceed.\n\nThis patch resolve it by moving orphan scan work to ocfs2_wq.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6469272c350872980891dbe38e81c936c43f2d9b",
      "tree": "5aee3dd3731e18ca9909338d039aacaf5ebdf7d1",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed May 26 17:58:53 2010 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jun 15 15:43:46 2010 -0700"
      },
      "message": "fs/ocfs2/dlm: Add missing spin_unlock\n\nAdd a spin_unlock missing on the error path.  Unlock as in the other code\nthat leads to the leave label.\n\nThe semantic match that finds this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression E1;\n@@\n\n* spin_lock(E1,...);\n  \u003c+... when !\u003d E1\n  if (...) {\n    ... when !\u003d E1\n*   return ...;\n  }\n  ...+\u003e\n* spin_unlock(E1,...);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "575f552012ec0cd6591fd85ee996d5a5ad1a669a",
      "tree": "86b9882f04e75e2fb1046f9c82f8c82c86810c80",
      "parents": [
        "29cb48594b873f6193d6327097e504bd3e2314de",
        "dc66c74de6f4238020db3e2041d4aca5c5b3e9bc"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Jun 14 12:54:57 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Jun 14 12:54:57 2010 +0200"
      },
      "message": "Merge branch \u0027for-jens\u0027 of git://git.drbd.org/linux-2.6-drbd into for-linus\n"
    },
    {
      "commit": "9f069af5b62919151d76b37a3b168cbb34c874c3",
      "tree": "a6ea761977c26adaada8e4b242832e1474cfbb58",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Wed May 19 02:32:29 2010 +0000"
      },
      "committer": {
        "name": "Grant Likely",
        "email": "grant.likely@secretlab.ca",
        "time": "Sun Jun 13 18:12:24 2010 -0600"
      },
      "message": "of: Drop properties with \"/\" in their name\n\nSome bogus firmwares include properties with \"/\" in their name. This\ncauses problems when creating the /proc/device-tree file system,\nbecause the slash is taken to indicate a directory.\n\nWe don\u0027t care about those properties, and we don\u0027t want to encourage\nthem, so just throw them away when creating /proc/device-tree.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nSigned-off-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\n"
    },
    {
      "commit": "ae32be31341a5fecfa16c5b3eb78095207182cce",
      "tree": "1fb056abaab9a6ca5f593dba6237f6ebc0f6135c",
      "parents": [
        "4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:30:19 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:34:36 2010 -0700"
      },
      "message": "ceph: fix message memory leak, uninitialized variable\n\nWe need to properly initialize skip, as not all alloc_msg op instances\nset it.\n\nAlso, BUG if someone says skip but also allocates a message.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "4a32f93d29b05cdab63c0e2979bc1524c8ea6bf5",
      "tree": "381f3bac8bb564a4666f48a0d6d459b0a2bbbba7",
      "parents": [
        "0cf5537b158caae42bcc03f0f6db10f68585b1ec"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:27:53 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:34:36 2010 -0700"
      },
      "message": "ceph: fix map handler error path\n\nDon\u0027t leak message if we receive an unexpected message type.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "0cf5537b158caae42bcc03f0f6db10f68585b1ec",
      "tree": "a64e764eff79981bbcac289e33f8022096be0cbe",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Fri Jun 11 15:57:06 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Jun 13 10:34:36 2010 -0700"
      },
      "message": "ceph: some endianity fixes\n\nFix some problems that came up with sparse.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "12420ac341533f3715b3deb788637568f22b78ff",
      "tree": "8462f0cf5276a97dd419c88760d08f5a17e5888a",
      "parents": [
        "ed0e3ace576d297a5c7015401db1060bbf677b94"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 01 14:47:40 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Jun 12 02:06:52 2010 +0000"
      },
      "message": "cifs: implement drop_inode superblock op\n\nThe standard behavior for drop_inode is to delete the inode when the\nlast reference to it is put and the nlink count goes to 0. This helps\nkeep inodes that are still considered \"not deleted\" in cache as long as\npossible even when there aren\u0027t dentries attached to them.\n\nWhen server inode numbers are disabled, it\u0027s not possible for cifs_iget\nto ever match an existing inode (since inode numbers are generated via\niunique). In this situation, cifs can keep a lot of inodes in cache that\nwill never be used again.\n\nImplement a drop_inode routine that deletes the inode if server inode\nnumbers are disabled on the mount. This helps keep the cifs inode\ncaches down to a more manageable size when server inode numbers are\ndisabled.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ed0e3ace576d297a5c7015401db1060bbf677b94",
      "tree": "0e5f0bee1be98a6c8c5c75fbf62c02c438e57df8",
      "parents": [
        "6c5de280b6683d194ee60cf22dee56eef0b09619"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 01 16:21:01 2010 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Jun 12 01:45:36 2010 +0000"
      },
      "message": "cifs: don\u0027t attempt busy-file rename unless it\u0027s in same directory\n\nBusy-file renames don\u0027t actually work across directories, so we need\nto limit this code to renames within the same dir.\n\nThis fixes the bug detailed here:\n\n    https://bugzilla.redhat.com/show_bug.cgi?id\u003d591938\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: Stable \u003cstable@kernel.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b25b550bb153626df6a48eb8583e923e3dfcf64a",
      "tree": "baca9843877b8b3a254cde92ac2a9072014b5621",
      "parents": [
        "eda054770e5cd0e9ee1568dfcbcf39f9ade4f545",
        "6f902af400b2499c80865c62a06fbbd15cf804fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 11 14:18:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 11 14:18:47 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: The file argument for fsync() is never null\n  Btrfs: handle ERR_PTR from posix_acl_from_xattr()\n  Btrfs: avoid BUG when dropping root and reference in same transaction\n  Btrfs: prohibit a operation of changing acl\u0027s mask when noacl mount option used\n  Btrfs: should add a permission check for setfacl\n  Btrfs: btrfs_lookup_dir_item() can return ERR_PTR\n  Btrfs: btrfs_read_fs_root_no_name() returns ERR_PTRs\n  Btrfs: unwind after btrfs_start_transaction() errors\n  Btrfs: btrfs_iget() returns ERR_PTR\n  Btrfs: handle kzalloc() failure in open_ctree()\n  Btrfs: handle error returns from btrfs_lookup_dir_item()\n  Btrfs: Fix BUG_ON for fs converted from extN\n  Btrfs: Fix null dereference in relocation.c\n  Btrfs: fix remap_file_pages error\n  Btrfs: uninitialized data is check_path_shared()\n  Btrfs: fix fallocate regression\n  Btrfs: fix loop device on top of btrfs\n"
    },
    {
      "commit": "6f902af400b2499c80865c62a06fbbd15cf804fd",
      "tree": "9bd7ee1dd243b5513ebad74b2870950a6d427d3c",
      "parents": [
        "834e74759a473f8101a273e843d1edec2778801d"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat May 29 09:49:07 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:40 2010 -0400"
      },
      "message": "Btrfs: The file argument for fsync() is never null\n\nThe \"file\" argument for fsync is never null so we can remove this check.\n\nWhat drew my attention here is that 7ea8085910e: \"drop unused dentry\nargument to -\u003efsync\" introduced an unconditional dereference at the\nstart of the function and that generated a smatch warning.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "834e74759a473f8101a273e843d1edec2778801d",
      "tree": "f7009149bb1ca362737b2e6b7dc855326d90f079",
      "parents": [
        "15e7000095e6fc9ad07e476a100c900c72c14225"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat May 29 09:48:35 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:39 2010 -0400"
      },
      "message": "Btrfs: handle ERR_PTR from posix_acl_from_xattr()\n\nposix_acl_from_xattr() returns both ERR_PTRs and null, but it\u0027s OK to\npass null values to set_cached_acl()\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "15e7000095e6fc9ad07e476a100c900c72c14225",
      "tree": "c97fa27a7727c82d78d43ac0b1df63a4f9954cfa",
      "parents": [
        "731e3d1b4348a96d53de6c084774424dedc64a3b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Mon May 17 17:15:27 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:39 2010 -0400"
      },
      "message": "Btrfs: avoid BUG when dropping root and reference in same transaction\n\nIf btrfs_ioctl_snap_destroy() deletes a snapshot but finishes\nwith end_transaction(), the cleaner kthread may come in and\ndrop the root in the same transaction.  If that\u0027s the case, the\nroot\u0027s refs still \u003d\u003d 1 in the tree when btrfs_del_root() deletes\nthe item, because commit_fs_roots() hasn\u0027t updated it yet (that\nhappens during the commit).\n\nThis wasn\u0027t a problem before only because\nbtrfs_ioctl_snap_destroy() would commit the transaction before dropping\nthe dentry reference, so the dead root wouldn\u0027t get queued up until\nafter the fs root item was updated in the btree.\n\nSince it is not an error to drop the root reference and the root in the\nsame transaction, just drop the BUG_ON() in btrfs_del_root().\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "731e3d1b4348a96d53de6c084774424dedc64a3b",
      "tree": "1f0a95894fa9a8e226ee2d74c64805c373b1b927",
      "parents": [
        "2f26afba46f0ebf155cf9be746496a0304a5b7cf"
      ],
      "author": {
        "name": "Shi Weihua",
        "email": "shiwh@cn.fujitsu.com",
        "time": "Tue May 18 00:51:54 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:38 2010 -0400"
      },
      "message": "Btrfs: prohibit a operation of changing acl\u0027s mask when noacl mount option used\n\nwhen used Posix File System Test Suite(pjd-fstest) to test btrfs,\nsome cases about setfacl failed when noacl mount option used.\nI simplified used commands in pjd-fstest, and the following steps\ncan reproduce it.\n------------------------\n# cd btrfs-part/\n# mkdir aaa\n# setfacl -m m::rw aaa    \u003c- successed, but not expected by pjd-fstest.\n------------------------\nI checked ext3, a warning message occured, like as:\n  setfacl: aaa/: Operation not supported\nCertainly, it\u0027s expected by pjd-fstest.\n\nSo, i compared acl.c of btrfs and ext3. Based on that, a patch created.\nFortunately, it works.\n\nSigned-off-by: Shi Weihua \u003cshiwh@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2f26afba46f0ebf155cf9be746496a0304a5b7cf",
      "tree": "8127a4a101734efce3c0d0190754f180de05a599",
      "parents": [
        "cf1e99a4e0daa4a5623cd71108509823b9ff2d30"
      ],
      "author": {
        "name": "Shi Weihua",
        "email": "shiwh@cn.fujitsu.com",
        "time": "Tue May 18 00:50:32 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:37 2010 -0400"
      },
      "message": "Btrfs: should add a permission check for setfacl\n\nOn btrfs, do the following\n------------------\n# su user1\n# cd btrfs-part/\n# touch aaa\n# getfacl aaa\n  # file: aaa\n  # owner: user1\n  # group: user1\n  user::rw-\n  group::rw-\n  other::r--\n# su user2\n# cd btrfs-part/\n# setfacl -m u::rwx aaa\n# getfacl aaa\n  # file: aaa\n  # owner: user1\n  # group: user1\n  user::rwx           \u003c- successed to setfacl\n  group::rw-\n  other::r--\n------------------\nbut we should prohibit it that user2 changing user1\u0027s acl.\nIn fact, on ext3 and other fs, a message occurs:\n  setfacl: aaa: Operation not permitted\n\nThis patch fixed it.\nSigned-off-by: Shi Weihua \u003cshiwh@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cf1e99a4e0daa4a5623cd71108509823b9ff2d30",
      "tree": "e2e613940e9d4449be976a5a09e1c2a72bb45a83",
      "parents": [
        "3140c9a34b44cd4013baae8704fdb34a93a44475"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat May 29 09:47:24 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:37 2010 -0400"
      },
      "message": "Btrfs: btrfs_lookup_dir_item() can return ERR_PTR\n\nbtrfs_lookup_dir_item() can return either ERR_PTRs or null.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3140c9a34b44cd4013baae8704fdb34a93a44475",
      "tree": "824a5ecb5d6d1c50769d96cd48b8394c009334d5",
      "parents": [
        "d327099a23e3d0c8ec09137e9b4b115449d4eb29"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat May 29 09:44:10 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:36 2010 -0400"
      },
      "message": "Btrfs: btrfs_read_fs_root_no_name() returns ERR_PTRs\n\nbtrfs_read_fs_root_no_name() returns ERR_PTRs on error so I added a\ncheck for that.  It\u0027s not clear to me if it can also return NULL\npointers or not so I left the original NULL pointer check as is.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    }
  ],
  "next": "d327099a23e3d0c8ec09137e9b4b115449d4eb29"
}
