)]}'
{
  "log": [
    {
      "commit": "82279e6bd7643da1b3fbda42555c3238c7b00d38",
      "tree": "e3f846e0a7daf6966375809ff4317f9eb57a9af9",
      "parents": [
        "bb8430a2c8fe2b726033017daadf73c69b0348ea",
        "4600d7c493f354a3e338a35bcf8a3bfbe815776a",
        "4882720b267b7b1d1b0ce08334b205f0329d4615"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 20:40:24 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 20:40:24 2010 -0400"
      },
      "message": "Merge branches \u0027irq-core-for-linus\u0027 and \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Fix up irq_node() for irq_data changes.\n  genirq: Add single IRQ reservation helper\n  genirq: Warn if enable_irq is called before irq is set up\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  semaphore: Remove mutex emulation\n  staging: Final semaphore cleanup\n  jbd2: Convert jbd2_slab_create_sem to mutex\n  hpfs: Convert sbi-\u003ehpfs_creation_de to mutex\n\nFix up trivial change/delete conflicts with deleted \u0027dream\u0027 drivers\n(drivers/staging/dream/camera/{mt9d112.c,mt9p012_fox.c,mt9t013.c,s5k3e2fx.c})\n"
    },
    {
      "commit": "bb8430a2c8fe2b726033017daadf73c69b0348ea",
      "tree": "feb6063cab812816bc67bca4e509995b5ad9217d",
      "parents": [
        "51ee4b84f5c86935b438d6636f34b523edb415a8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 31 08:35:31 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 06:35:15 2010 -0700"
      },
      "message": "locks: remove fl_copy_lock lock_manager operation\n\nThis one was only used for a nasty hack in nfsd, which has recently\nbeen removed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51ee4b84f5c86935b438d6636f34b523edb415a8",
      "tree": "c60e0da8f8b6393477d79ef6d6ce321ee3b8ecaa",
      "parents": [
        "96f935934591b72f5b05fd6923bc8cdcae92f2e5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 31 08:35:10 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 31 06:35:15 2010 -0700"
      },
      "message": "locks: let the caller free file_lock on -\u003esetlease failure\n\nThe caller allocated it, the caller should free it.\n\nThe only issue so far is that we could change the flp pointer even on an\nerror return if the fl_change callback failed.  But we can simply move\nthe flp assignment after the fl_change invocation, as the callers don\u0027t\ncare about the flp return value if the setlease call failed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fcf744a96c66ca6ad7301a372034b771e57f30c4",
      "tree": "4d4094cb2e04b391bd11eedf1466245dc8403704",
      "parents": [
        "05fa3135fdc7b9b510b502a35b6b97d2b38c6f48"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:16 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:15 2010 -0700"
      },
      "message": "nfsd4: initialize delegation pointer to lease\n\nThe NFSv4 server was initializing the dp-\u003edl_flock pointer by the\nsomewhat ridiculous method of a locks_copy_lock callback.\n\nNow that setlease uses the passed-in lock instead of doing a copy,\ndl_flock no longer gets set, resulting in the lock leaking on delegation\nrelease, and later possible hangs (among other problems).\n\nSo, initialize dl_flock and get rid of the callback.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "05fa3135fdc7b9b510b502a35b6b97d2b38c6f48",
      "tree": "d533e8112111202ae890b2061c0386669002d080",
      "parents": [
        "096657b65e1ac197e20be5ce7cff6b6ca2532787"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:15 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:15 2010 -0700"
      },
      "message": "locks: fix setlease methods to free passed-in lock\n\nWe modified setlease to require the caller to allocate the new lease in\nthe case of creating a new lease, but forgot to fix up the filesystem\nmethods.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "096657b65e1ac197e20be5ce7cff6b6ca2532787",
      "tree": "61265f8d8075aee437597ffe050f339b207356e7",
      "parents": [
        "0ceaf6c700f8245946a163e387add8675a0c302f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:14 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:15 2010 -0700"
      },
      "message": "locks: fix leaks on setlease errors\n\nWe\u0027re depending on setlease to free the passed-in lease on failure.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ceaf6c700f8245946a163e387add8675a0c302f",
      "tree": "8f1657caff93050e416503b418c11c6e6b62b781",
      "parents": [
        "0d07025effd3da8b9c74f18448823175f4c63a73"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Sat Oct 30 17:31:13 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 18:08:14 2010 -0700"
      },
      "message": "locks: prevent ENOMEM on lease unlock\n\nRemoving a lock shouldn\u0027t require any allocations; a failure due to\nENOMEM leaves the caller with a choice between retrying or giving up and\nleaking an unused lease.\n\nNext we should split the other lease calls into add and delete cases.\nI wanted to start with just the bugfix.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1792f17b7210280a3d7ff29da9614ba779cfcedb",
      "tree": "e45797137b7fc4877dd60b289d6fb75c6bdcdcf0",
      "parents": [
        "f02a38d86a14b6e544e218d806ffb0442785f62b",
        "6bff7eccb0d9bdef4123aad5399e73cbc26683a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 11:50:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 11:50:37 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify\n\n* \u0027for-linus\u0027 of git://git.infradead.org/users/eparis/notify: (22 commits)\n  Ensure FMODE_NONOTIFY is not set by userspace\n  make fanotify_read() restartable across signals\n  fsnotify: remove alignment padding from fsnotify_mark on 64 bit builds\n  fs/notify/fanotify/fanotify_user.c: fix warnings\n  fanotify: Fix FAN_CLOSE comments\n  fanotify: do not recalculate the mask if the ignored mask changed\n  fanotify: ignore events on directories unless specifically requested\n  fsnotify: rename FS_IN_ISDIR to FS_ISDIR\n  fanotify: do not send events for irregular files\n  fanotify: limit number of listeners per user\n  fanotify: allow userspace to override max marks\n  fanotify: limit the number of marks in a single fanotify group\n  fanotify: allow userspace to override max queue depth\n  fsnotify: implement a default maximum queue depth\n  fanotify: ignore fanotify ignore marks if open writers\n  fanotify: allow userspace to flush all marks\n  fsnotify: call fsnotify_parent in perm events\n  fsnotify: correctly handle return codes from listeners\n  fanotify: use __aligned_u64 in fanotify userspace metadata\n  fanotify: implement fanotify listener ordering\n  ...\n"
    },
    {
      "commit": "1a5cea7215f7c6bd3c960d7b44e864f3a73d1ad4",
      "tree": "d8bdd846e5ef83c1707eaf9e9040705d80869260",
      "parents": [
        "d8c0fca68da25ca3df534dfb12ce628675c828e4"
      ],
      "author": {
        "name": "Lino Sanfilippo",
        "email": "LinoSanfilippo@gmx.de",
        "time": "Fri Oct 29 12:06:42 2010 +0200"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Sat Oct 30 14:07:35 2010 -0400"
      },
      "message": "make fanotify_read() restartable across signals\n\n    In fanotify_read() return -ERESTARTSYS instead of -EINTR to\n    make read() restartable across signals (BSD semantic).\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "925d169f5b86fe57e2f5264ea574cce9a89b719d",
      "tree": "241d3156b427c6398bd3fc5efa9108635d0e189b",
      "parents": [
        "cdf01dd5443d0befc8c6a32cb2e3d2f568fd2558",
        "6418c96107a2b399848bb8cfc6e29f11ca74fb94"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 09:05:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 09:05:48 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: (39 commits)\n  Btrfs: deal with errors from updating the tree log\n  Btrfs: allow subvol deletion by unprivileged user with -o user_subvol_rm_allowed\n  Btrfs: make SNAP_DESTROY async\n  Btrfs: add SNAP_CREATE_ASYNC ioctl\n  Btrfs: add START_SYNC, WAIT_SYNC ioctls\n  Btrfs: async transaction commit\n  Btrfs: fix deadlock in btrfs_commit_transaction\n  Btrfs: fix lockdep warning on clone ioctl\n  Btrfs: fix clone ioctl where range is adjacent to extent\n  Btrfs: fix delalloc checks in clone ioctl\n  Btrfs: drop unused variable in block_alloc_rsv\n  Btrfs: cleanup warnings from gcc 4.6 (nonbugs)\n  Btrfs: Fix variables set but not read (bugs found by gcc 4.6)\n  Btrfs: Use ERR_CAST helpers\n  Btrfs: use memdup_user helpers\n  Btrfs: fix raid code for removing missing drives\n  Btrfs: Switch the extent buffer rbtree into a radix tree\n  Btrfs: restructure try_release_extent_buffer()\n  Btrfs: use the flusher threads for delalloc throttling\n  Btrfs: tune the chunk allocation to 5% of the FS as metadata\n  ...\n\nFix up trivial conflicts in fs/btrfs/super.c and fs/fs-writeback.c, and\nremove use of INIT_RCU_HEAD in fs/btrfs/extent_io.c (that init macro was\nuseless and removed in commit 5e8067adfdba: \"rcu head remove init\")\n"
    },
    {
      "commit": "cdf01dd5443d0befc8c6a32cb2e3d2f568fd2558",
      "tree": "97ff92f14a00146ad20b168559bb13f11db7fafb",
      "parents": [
        "847f877600313e65c5659476b30d74a6f66e388e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 08:55:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 08:55:52 2010 -0700"
      },
      "message": "fs-writeback.c: unify some common code\n\nThe btrfs merge looks like hell, because it changes fs-writeback.c, and\nthe crazy code has this repeated \"estimate number of dirty pages\"\ncounting that involves three different helper functions.  And it\u0027s done\nin two different places.\n\nJust unify that whole calculation as a \"get_nr_dirty_pages()\" helper\nfunction, and the merge result will look half-way decent.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79346507ad48895f41b438fa562b1965721f36b9",
      "tree": "5c115ce87f1fbc0b530f30db56cecf824e9f6e05",
      "parents": [
        "706d4b12f8d7edd28d7e879a77235472da393edb",
        "40847437f15221b5822ba70550e8b9fcccfb9bb3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 08:31:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 08:31:35 2010 -0700"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (82 commits)\n  mtd: fix build error in m25p80.c\n  mtd: Remove redundant mutex from mtd_blkdevs.c\n  MTD: Fix wrong check register_blkdev return value\n  Revert \"mtd: cleanup Kconfig dependencies\"\n  mtd: cfi_cmdset_0002: make sector erase command variable\n  mtd: cfi_cmdset_0002: add CFI detection for SST 38VF640x chips\n  mtd: cfi_util: add support for switching SST 39VF640xB chips into QRY mode\n  mtd: cfi_cmdset_0001: use defined value of P_ID_INTEL_PERFORMANCE instead of hardcoded one\n  block2mtd: dubious assignment\n  P4080/mtd: Fix the freescale lbc issue with 36bit mode\n  P4080/eLBC: Make Freescale elbc interrupt common to elbc devices\n  mtd: phram: use KBUILD_MODNAME\n  mtd: OneNAND: S5PC110: Fix double call suspend \u0026 resume function\n  mtd: nand: fix MTD_MODE_RAW writes\n  jffs2: use kmemdup\n  mtd: sm_ftl: cosmetic, use bool when possible\n  mtd: r852: remove useless pci powerup/down from suspend/resume routines\n  mtd: blktrans: fix a race vs kthread_stop\n  mtd: blktrans: kill BKL\n  mtd: allow to unload the mtdtrans module if its block devices aren\u0027t open\n  ...\n\nFix up trivial whitespace-introduced conflict in drivers/mtd/mtdchar.c\n"
    },
    {
      "commit": "504b701bb1655747575095543c083267418e02ac",
      "tree": "2533953d8b2546ddb24cee560512d776c29e8815",
      "parents": [
        "2d10d8737ccdba752d60106abbc6ed4f37404923"
      ],
      "author": {
        "name": "wu zhangjin",
        "email": "wuzhangjin@gmail.com",
        "time": "Sat Oct 30 08:19:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 30 08:19:35 2010 -0700"
      },
      "message": "fs/compat.c: fix build on MIPS/s390\n\nThe definition of PAGE_CACHE_MASK in \u003clinux/pagemap.h\u003e is needed to use\nMAX_RW_COUNT, and on x86-64 that gets done indirectly through the\narchitecture header includes.  But on MIPS and s390 that doesn\u0027t happen,\nand we need to make sure that fs/compat.c includes pagemap.h explicitly.\n\nIntroduced in commit 435f49a518c7 (\"readv/writev: do the same\nMAX_RW_COUNT truncation that read/write does\").\n\nReported-by: Sachin Sant \u003csachinp@in.ibm.com\u003e (S390)\nReported-by: wu zhangjin \u003cwuzhangjin@gmail.com\u003e (MIPS)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67577927e8d7a1f4b09b4992df640eadc6aacb36",
      "tree": "2e9efe6b5745965faf0dcc084d4613d9356263f9",
      "parents": [
        "6fe4c590313133ebd5dadb769031489ff178ece1",
        "51f00a471ce8f359627dd99aeac322947a0e491b"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Oct 30 12:35:11 2010 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Oct 30 12:35:11 2010 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\n\nConflicts:\n\tdrivers/mtd/mtd_blkdevs.c\n\nMerge Grant\u0027s device-tree bits so that we can apply the subsequent fixes.\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "6418c96107a2b399848bb8cfc6e29f11ca74fb94",
      "tree": "38064798bde148760a7a3b555c0eb097bfd29fb2",
      "parents": [
        "4260f7c7516f4c209cf0ca34fda99cc9a0847772"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Oct 30 07:34:24 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Oct 30 07:34:24 2010 -0400"
      },
      "message": "Btrfs: deal with errors from updating the tree log\n\nDuring unlink we remove any references to the inode from\nthe tree log.  It can return -ENOENT and other errors,\nand this changes the unlink code to deal with it.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "51dfacdef38b1dd6fc58b03dd1725d517516b115",
      "tree": "71db75044a42f316c5956bb807f9846c14d12b16",
      "parents": [
        "117bf5fbdbdc7a5394e5718b3354238961c83067"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 16 22:34:39 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 30 12:12:50 2010 +0200"
      },
      "message": "jbd2: Convert jbd2_slab_create_sem to mutex\n\njbd2_slab_create_sem is used as a mutex, so make it one.\n\n[ akpm muttered: We may as well make it local to\njbd2_journal_create_slab() also. ]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003calpine.LFD.2.00.1010162231480.2496@localhost6.localdomain6\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "117bf5fbdbdc7a5394e5718b3354238961c83067",
      "tree": "06a063f3a3b92bd1896a87ff14bdb0f8900dbf6f",
      "parents": [
        "18cb657ca1bafe635f368346a1676fb04c512edf"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 07 14:32:56 2010 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 30 10:12:03 2010 +0200"
      },
      "message": "hpfs: Convert sbi-\u003ehpfs_creation_de to mutex\n\nsbi-\u003ehpfs_creation_de is used as mutex so make it a mutex.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-fsdevel@vger.kernel.org\nLKML-Reference: \u003c20100907125056.228874895@linutronix.de\u003e\n\n"
    },
    {
      "commit": "4260f7c7516f4c209cf0ca34fda99cc9a0847772",
      "tree": "7feb5ab81d074b17a7c5b12bcc019c2e1bb010e2",
      "parents": [
        "531cb13f1e417c060b54f979e1659ecd69bea650"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:46:43 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 21:42:10 2010 -0400"
      },
      "message": "Btrfs: allow subvol deletion by unprivileged user with -o user_subvol_rm_allowed\n\nAdd a mount option user_subvol_rm_allowed that allows users to delete a\n(potentially non-empty!) subvol when they would otherwise we allowed to do\nan rmdir(2).  We duplicate the may_delete() checks from the core VFS code\nto implement identical security checks (minus the directory size check).\nWe additionally require that the user has write+exec permission on the\nsubvol root inode.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "531cb13f1e417c060b54f979e1659ecd69bea650",
      "tree": "6b421ac1ddf7cad271cd0c767f0c19e6c4f826df",
      "parents": [
        "72fd032e94240d001b1d22f2c1dfd2592b02e44e"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:41:32 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 21:42:10 2010 -0400"
      },
      "message": "Btrfs: make SNAP_DESTROY async\n\nThere is no reason to force an immediate commit when deleting a snapshot.\nUsers have some expectation that space from a deleted snapshot be freed\nimmediately, but even if we do commit the reclaim is a background process.\n\nIf users _do_ want the deletion to be durable, they can call \u0027sync\u0027.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "72fd032e94240d001b1d22f2c1dfd2592b02e44e",
      "tree": "7671ea5585f79a8cecc9708e869aa37e24eb74de",
      "parents": [
        "462045928bda777c86919a396a42991fcf235378"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:41:32 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 21:41:57 2010 -0400"
      },
      "message": "Btrfs: add SNAP_CREATE_ASYNC ioctl\n\nCreate a snap without waiting for it to commit to disk.  The ioctl is\nordered such that subsequent operations will not be contained by the\ncreated snapshot, and the commit is initiated, but the ioctl does not\nwait for the snapshot to commit to disk.\n\nWe return the specific transid to userspace so that an application can wait\nfor this specific snapshot creation to commit via the WAIT_SYNC ioctl.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "12462f2df4d10ea4f6d55b9d438ff788badec3f0",
      "tree": "7ef2335c9df9b9cb45aa64c9dfcf8819bdcdf06f",
      "parents": [
        "d2df40857fd57f02906e6ac1484d10cb7accbc86",
        "8747f954817212b4623f9067d4909cbde04b4d89"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 14:15:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 14:15:12 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  eCryptfs: Print mount_auth_tok_only param in ecryptfs_show_options\n  ecryptfs: added ecryptfs_mount_auth_tok_only mount parameter\n  ecryptfs: checking return code of ecryptfs_find_auth_tok_for_sig()\n  ecryptfs: release keys loaded in ecryptfs_keyring_auth_tok_for_sig()\n  eCryptfs: Clear LOOKUP_OPEN flag when creating lower file\n  ecryptfs: call vfs_setxattr() in ecryptfs_setxattr()\n"
    },
    {
      "commit": "462045928bda777c86919a396a42991fcf235378",
      "tree": "c2b12ff8e9ef1951b5960b853034bd4165578f99",
      "parents": [
        "bb9c12c945cbd1b0eaa1589546dde772ccabeeba"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:41:32 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:41:32 2010 -0400"
      },
      "message": "Btrfs: add START_SYNC, WAIT_SYNC ioctls\n\nSTART_SYNC will start a sync/commit, but not wait for it to\ncomplete.  Any modification started after the ioctl returns is\nguaranteed not to be included in the commit.  If a non-NULL\npointer is passed, the transaction id will be returned to\nuserspace.\n\nWAIT_SYNC will wait for any in-progress commit to complete.  If a\ntransaction id is specified, the ioctl will block and then\nreturn (success) when the specified transaction has committed.\nIf it has already committed when we call the ioctl, it returns\nimmediately.  If the specified transaction doesn\u0027t exist, it\nreturns EINVAL.\n\nIf no transaction id is specified, WAIT_SYNC will wait for the\ncurrently committing transaction to finish it\u0027s commit to disk.\nIf there is no currently committing transaction, it returns\nsuccess.\n\nThese ioctls are useful for applications which want to impose an\nordering on when fs modifications reach disk, but do not want to\nwait for the full (slow) commit process to do so.\n\nPicky callers can take the transid returned by START_SYNC and\nfeed it to WAIT_SYNC, and be certain to wait only as long as\nnecessary for the transaction _they_ started to reach disk.\n\nSloppy callers can START_SYNC and WAIT_SYNC without a transid,\nand provided they didn\u0027t wait too long between the calls, they\nwill get the same result.  However, if a second commit starts\nbefore they call WAIT_SYNC, they may end up waiting longer for\nit to commit as well.  Even so, a START_SYNC+WAIT_SYNC still\nguarantees that any operation completed before the START_SYNC\nreaches disk.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bb9c12c945cbd1b0eaa1589546dde772ccabeeba",
      "tree": "92f0bb01dce5125547c590d7c06b3e02d5c9d4fa",
      "parents": [
        "99d16cbcaf694c803a1b6bf7e851694ffe1d255d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:34 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:34 2010 -0400"
      },
      "message": "Btrfs: async transaction commit\n\nAdd support for an async transaction commit that is ordered such that any\nsubsequent operations will join the following transaction, but does not\nwait until the current commit is fully on disk.  This avoids much of the\nlatency associated with the btrfs_commit_transaction for callers concerned\nwith serialization and not safety.\n\nThe wait_for_unblock flag controls whether we wait for the \u0027middle\u0027 portion\nof commit_transaction to complete, which is necessary if the caller expects\nsome of the modifications contained in the commit to be available (this is\nthe case for subvol/snapshot creation).\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "99d16cbcaf694c803a1b6bf7e851694ffe1d255d",
      "tree": "dacf7f8eca75dc0d92566b5d3876f3efe8196e35",
      "parents": [
        "fccdae435c1b295cca546f23f6f43126a28ffac3"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:34 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:34 2010 -0400"
      },
      "message": "Btrfs: fix deadlock in btrfs_commit_transaction\n\nWe calculate timeout (either 1 or MAX_SCHEDULE_TIMEOUT) based on whether\nnum_writers \u003e 1 or should_grow at the top of the loop.  Then, much much\nlater, we wait for that timeout if either num_writers or should_grow is\ntrue.  However, it\u0027s possible for a racing process (calling\nbtrfs_end_transaction()) to decrement num_writers such that we wait\nforever instead of for 1.\n\nFix this by deciding how long to wait when we wait.  Include a smp_mb()\nbefore checking if the waitqueue is active to ensure the num_writers\nis visible.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fccdae435c1b295cca546f23f6f43126a28ffac3",
      "tree": "e5c84325114cd554c62e7e275e85596200b45d19",
      "parents": [
        "050006a753bab8ba05f2113cc57ba49398cd5521"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "message": "Btrfs: fix lockdep warning on clone ioctl\n\nI\u0027m no lockdep expert, but this appears to make the lockdep warning go\naway for the i_mutex locking in the clone ioctl.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "050006a753bab8ba05f2113cc57ba49398cd5521",
      "tree": "43b8bdc0ce9f76d2726096dbfbc72a04c141afa6",
      "parents": [
        "9a019196ecaa57780141ef5d1f0bb31050d6ed5b"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "message": "Btrfs: fix clone ioctl where range is adjacent to extent\n\nWe had an edge case issue where the requested range was just\nfollowing an existing extent. Instead of skipping to the next\nextent, we used the previous one which lead to having zero\nsized extents.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9a019196ecaa57780141ef5d1f0bb31050d6ed5b",
      "tree": "abd838acff1d6407d2d91efeb38e76e53271aadb",
      "parents": [
        "d8e39c457bc1ca2a7304bc086c7b0f0c10854921"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:37:33 2010 -0400"
      },
      "message": "Btrfs: fix delalloc checks in clone ioctl\n\nThe lookup_first_ordered_extent() was done on the wrong inode, and the\n-\u003edelalloc_bytes test was wrong, as the following\nbtrfs_wait_ordered_range() would only invoke a range write and wouldn\u0027t\nwrite the entire file data range. Also, a bad parameter was passed to\nbtrfs_wait_ordered_range().\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d8e39c457bc1ca2a7304bc086c7b0f0c10854921",
      "tree": "da2f37292b8021dfe90aa9803ee85f9f95acedf5",
      "parents": [
        "559af8211433b8c0b20e6c43c61409cb9c9c2996"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:17:41 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:17:41 2010 -0400"
      },
      "message": "Btrfs: drop unused variable in block_alloc_rsv\n\nThe alloc_target variable is not really used.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "559af8211433b8c0b20e6c43c61409cb9c9c2996",
      "tree": "702ebd4c4f5b610daa36f65d814a518356a9a46b",
      "parents": [
        "411fc6bcef54f828a5458f4730c68abdf13c6bf0"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Oct 29 15:14:37 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:37 2010 -0400"
      },
      "message": "Btrfs: cleanup warnings from gcc 4.6 (nonbugs)\n\nThese are all the cases where a variable is set, but not read which are\nnot bugs as far as I can see, but simply leftovers.\n\nStill needs more review.\n\nFound by gcc 4.6\u0027s new warnings\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "411fc6bcef54f828a5458f4730c68abdf13c6bf0",
      "tree": "89b91cd7e0d7633e9d6e386e388bd0493165f66c",
      "parents": [
        "d0b678cb0a26783ab7238784f1e7e608e5caafa3"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Fri Oct 29 15:14:31 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:31 2010 -0400"
      },
      "message": "Btrfs: Fix variables set but not read (bugs found by gcc 4.6)\n\nThese are all the cases where a variable is set, but not\nread which are really bugs.\n\n- Couple of incorrect error handling fixed.\n- One incorrect use of a allocation policy\n- Some other things\n\nStill needs more review.\n\nFound by gcc 4.6\u0027s new warnings.\n\n[akpm@linux-foundation.org: fix build.  Might have been bitrot]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d0b678cb0a26783ab7238784f1e7e608e5caafa3",
      "tree": "a912b938a6558550960f6b07139bd119d86f89eb",
      "parents": [
        "2354d08fe9aeec3e451b85cb5387a6b28dbca0b1"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Oct 29 15:14:23 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:23 2010 -0400"
      },
      "message": "Btrfs: Use ERR_CAST helpers\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2354d08fe9aeec3e451b85cb5387a6b28dbca0b1",
      "tree": "7a3f43dfac81fc54faf231400a4b871ca24bb031",
      "parents": [
        "18e503d695ff8ff9a43768555aa74575bf6b77f3"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Oct 29 15:14:18 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 15:14:18 2010 -0400"
      },
      "message": "Btrfs: use memdup_user helpers\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b4020c1b198c0f0c0b0ff0cfdd824a26b93edd6f",
      "tree": "f2d0dcca7bae865606e90ffc2599c993da1a888f",
      "parents": [
        "435f49a518c78eec8e2edbbadd912737246cbe20",
        "d3686d54c7902a303bd65d751226aa1647319863"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 10:37:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 10:37:27 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  cifs: Cleanup and thus reduce smb session structure and fields used during authentication\n  NTLM auth and sign - Use appropriate server challenge\n  cifs: add kfree() on error path\n  NTLM auth and sign - minor error corrections and cleanup\n  NTLM auth and sign - Use kernel crypto apis to calculate hashes and smb signatures\n  NTLM auth and sign - Define crypto hash functions and create and send keys needed for key exchange\n  cifs: cifs_convert_address() returns zero on error\n  NTLM auth and sign - Allocate session key/client response dynamically\n  cifs: update comments - [s/GlobalSMBSesLock/cifs_file_list_lock/g]\n  cifs: eliminate cifsInodeInfo-\u003ewrite_behind_rc (try #6)\n  [CIFS] Fix checkpatch warnings and bump cifs version number\n  cifs: wait for writeback to complete in cifs_flush\n  cifs: convert cifsFileInfo-\u003ecount to non-atomic counter\n"
    },
    {
      "commit": "435f49a518c78eec8e2edbbadd912737246cbe20",
      "tree": "106df2617d42ace231e2fa9fcf1e0fd1075874ea",
      "parents": [
        "f56f44001cb5b40089deac094dbb74e5c9f64d81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 10:36:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 10:36:49 2010 -0700"
      },
      "message": "readv/writev: do the same MAX_RW_COUNT truncation that read/write does\n\nWe used to protect against overflow, but rather than return an error, do\nwhat read/write does, namely to limit the total size to MAX_RW_COUNT.\nThis is not only more consistent, but it also means that any broken\nlow-level read/write routine that still keeps counts in \u0027int\u0027 can\u0027t\nbreak.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "162164f7e92da970666e7492fd58644f3c1f8574",
      "tree": "c69448e73d24bf83cd412c04d525eb541a84cdc0",
      "parents": [
        "d8d048f69a618c531575cb1f398a7186f0532ef2",
        "5f3b321da1aa5936c85ed6dec67358239a9d3cfd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 08:48:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 29 08:48:58 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus:\n  Squashfs: fix function prototype\n  Squashfs: fix use of __le64 annotated variable\n"
    },
    {
      "commit": "8747f954817212b4623f9067d4909cbde04b4d89",
      "tree": "d303bd72ad84fa11764813c018c1f38532aea0ae",
      "parents": [
        "f16feb5119a87f5e683be7e8916c060abfb0e8d6"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 15 16:43:41 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:36 2010 -0500"
      },
      "message": "eCryptfs: Print mount_auth_tok_only param in ecryptfs_show_options\n\nWhen printing mount options, print the new ecryptfs_mount_auth_tok_only\nmount option.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f16feb5119a87f5e683be7e8916c060abfb0e8d6",
      "tree": "ed80e0f8d2d8c5b63c8b48e11da4eca0163bb9f4",
      "parents": [
        "39fac853a758306285404368fbe392408057b136"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Oct 06 18:31:32 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:36 2010 -0500"
      },
      "message": "ecryptfs: added ecryptfs_mount_auth_tok_only mount parameter\n\nThis patch adds a new mount parameter \u0027ecryptfs_mount_auth_tok_only\u0027 to\nforce ecryptfs to use only authentication tokens which signature has\nbeen specified at mount time with parameters \u0027ecryptfs_sig\u0027 and\n\u0027ecryptfs_fnek_sig\u0027. In this way, after disabling the passthrough and\nthe encrypted view modes, it\u0027s possible to make available to users only\nfiles encrypted with the specified authentication token.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\n[Tyler: Clean up coding style errors found by checkpatch]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "39fac853a758306285404368fbe392408057b136",
      "tree": "920cc8e2ed51b568c6c63d15dfa98931f5926d04",
      "parents": [
        "aee683b9e77e17237b0e146025c3d363c9203634"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Oct 06 18:31:15 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:36 2010 -0500"
      },
      "message": "ecryptfs: checking return code of ecryptfs_find_auth_tok_for_sig()\n\nThis patch replaces the check of the \u0027matching_auth_tok\u0027 pointer with\nthe exit status of ecryptfs_find_auth_tok_for_sig().\nThis avoids to use authentication tokens obtained through the function\necryptfs_keyring_auth_tok_for_sig which are not valid.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "aee683b9e77e17237b0e146025c3d363c9203634",
      "tree": "79ec9b8a2ff2d2e433bbe7a6959a34aeb75c25b6",
      "parents": [
        "2e21b3f124eceb6ab5a07c8a061adce14ac94e14"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Oct 06 18:31:06 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:35 2010 -0500"
      },
      "message": "ecryptfs: release keys loaded in ecryptfs_keyring_auth_tok_for_sig()\n\nThis patch allows keys requested in the function\necryptfs_keyring_auth_tok_for_sig()to be released when they are no\nlonger required. In particular keys are directly released in the same\nfunction if the obtained authentication token is not valid.\n\nFurther, a new function parameter \u0027auth_tok_key\u0027 has been added to\necryptfs_find_auth_tok_for_sig() in order to provide callers the key\npointer to be passed to key_put().\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\n[Tyler: Initialize auth_tok_key to NULL in ecryptfs_parse_packet_set]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2e21b3f124eceb6ab5a07c8a061adce14ac94e14",
      "tree": "0997d7430d83a976b5e7ff0e2201032a45ccb759",
      "parents": [
        "48b512e6857139393cdfce26348c362b87537018"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Thu Sep 23 02:35:04 2010 -0500"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:35 2010 -0500"
      },
      "message": "eCryptfs: Clear LOOKUP_OPEN flag when creating lower file\n\neCryptfs was passing the LOOKUP_OPEN flag through to the lower file\nsystem, even though ecryptfs_create() doesn\u0027t support the flag. A valid\nfilp for the lower filesystem could be returned in the nameidata if the\nlower file system\u0027s create() function supported LOOKUP_OPEN, possibly\nresulting in unencrypted writes to the lower file.\n\nHowever, this is only a potential problem in filesystems (FUSE, NFS,\nCIFS, CEPH, 9p) that eCryptfs isn\u0027t known to support today.\n\nhttps://bugs.launchpad.net/ecryptfs/+bug/641703\n\nReported-by: Kevin Buhr\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "48b512e6857139393cdfce26348c362b87537018",
      "tree": "9ea39b5232052cbcd8d675058d3d7ab735b3a4f7",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Tue Oct 05 18:53:45 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Oct 29 10:31:35 2010 -0500"
      },
      "message": "ecryptfs: call vfs_setxattr() in ecryptfs_setxattr()\n\nEcryptfs is a stackable filesystem which relies on lower filesystems the\nability of setting/getting extended attributes.\n\nIf there is a security module enabled on the system it updates the\n\u0027security\u0027 field of inodes according to the owned extended attribute set\nwith the function vfs_setxattr().  When this function is performed on a\necryptfs filesystem the \u0027security\u0027 field is not updated for the lower\nfilesystem since the call security_inode_post_setxattr() is missing for\nthe lower inode.\nFurther, the call security_inode_setxattr() is missing for the lower inode,\nleading to policy violations in the security module because specific\nchecks for this hook are not performed (i. e. filesystem\n\u0027associate\u0027 permission on SELinux is not checked for the lower filesystem).\n\nThis patch replaces the call of the setxattr() method of the lower inode\nin the function ecryptfs_setxattr() with vfs_setxattr().\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nCc: stable \u003cstable@kernel.org\u003e\nCc: Dustin Kirkland \u003ckirkland@canonical.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "18e503d695ff8ff9a43768555aa74575bf6b77f3",
      "tree": "c17c34762dcf9988e9739ae0cdf5628885bf8828",
      "parents": [
        "19fe0a8b787d7c7f9318975b5a8c6e7e5e54e925"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Oct 28 15:30:42 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:46 2010 -0400"
      },
      "message": "Btrfs: fix raid code for removing missing drives\n\nWhen btrfs is mounted in degraded mode, it has some internal structures\nto track the missing devices.  This missing device is setup as readonly,\nbut the mapping code can get upset when we try to write to it.\n\nThis changes the mapping code to return -EIO instead of oops when we try\nto write to the readonly device.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "19fe0a8b787d7c7f9318975b5a8c6e7e5e54e925",
      "tree": "78aea56ede5735ae3183f2c4b846773b8fd8155b",
      "parents": [
        "897ca6e9b4fef86d5dfb6b31fd9f592ce6a47a42"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Oct 26 20:57:29 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:45 2010 -0400"
      },
      "message": "Btrfs: Switch the extent buffer rbtree into a radix tree\n\nThis patch reduces the CPU time spent in the extent buffer search by using the\nradix tree instead of the rbtree and using the rcu lock instead of the spin\nlock.\n\nI did a quick test by the benchmark tool[1] and found the patch improve the\nfile creation/deletion performance problem that I have reported[2].\n\nBefore applying this patch:\nCreate files:\n\tTotal files: 50000\n\tTotal time: 0.971531\n\tAverage time: 0.000019\nDelete files:\n\tTotal files: 50000\n\tTotal time: 1.366761\n\tAverage time: 0.000027\n\nAfter applying this patch:\nCreate files:\n\tTotal files: 50000\n\tTotal time: 0.927455\n\tAverage time: 0.000019\nDelete files:\n\tTotal files: 50000\n\tTotal time: 1.292280\n\tAverage time: 0.000026\n\n[1] http://marc.info/?l\u003dlinux-btrfs\u0026m\u003d128212635122920\u0026q\u003dp3\n[2] http://marc.info/?l\u003dlinux-btrfs\u0026m\u003d128212635122920\u0026w\u003d2\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "897ca6e9b4fef86d5dfb6b31fd9f592ce6a47a42",
      "tree": "8cb79f54090e84290122652aa9fbd1c51c642526",
      "parents": [
        "bf9022e06af553553bc8f4e21ce36147ca6eae68"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Tue Oct 26 20:57:29 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:45 2010 -0400"
      },
      "message": "Btrfs: restructure try_release_extent_buffer()\n\nrestructure try_release_extent_buffer() and write a function to release the\nextent buffer. It will be used later.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "bf9022e06af553553bc8f4e21ce36147ca6eae68",
      "tree": "e33d9a25fc5ec8e03c1f0d5a4775c865e0520811",
      "parents": [
        "e5bc2458293b2af6c0b94435965c68cc70974b56"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 26 13:40:45 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:36 2010 -0400"
      },
      "message": "Btrfs: use the flusher threads for delalloc throttling\n\nWe have a fairly complex set of loops around walking our list of\ndelalloc inodes when we find metadata delalloc space running low.\nIt doesn\u0027t work very well, can use large amounts of CPU and doesn\u0027t\ndo very efficient writeback.\n\nThis switches us to kick the bdi flusher threads instead.  All dirty\ndata in btrfs is accounted as delalloc data, so this is very similar\nin terms of what it writes, but we\u0027re able to just kick off the IO\nand wait for progress.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e5bc2458293b2af6c0b94435965c68cc70974b56",
      "tree": "d4b79f61f2ff236b080583345b4dfd617b0fca07",
      "parents": [
        "3259f8bed2f0f57c2fdcdac1b510c3fa319ef97e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 26 13:37:56 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:35 2010 -0400"
      },
      "message": "Btrfs: tune the chunk allocation to 5% of the FS as metadata\n\nAn earlier commit tried to keep us from allocating too many\nempty metadata chunks.  It was somewhat too restrictive and could\nlead to ENOSPC errors on empty filesystems.\n\nThis increases the limits to about 5% of the FS size, allowing more\nmetadata chunks to be preallocated.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3259f8bed2f0f57c2fdcdac1b510c3fa319ef97e",
      "tree": "5f06f6c83413ca2fc7aec85ba0811a8c91904097",
      "parents": [
        "cb44921a09221f0a90217b44044448f63190f3e5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:16:17 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 11:25:29 2010 -0400"
      },
      "message": "Add new functions for triggering inode writeback\n\nWhen btrfs is running low on metadata space, it needs to force delayed\nallocation pages to disk.  It currently does this with a suboptimal walk\nof a private list of inodes with delayed allocation, and it would be\nmuch better if we used the generic flusher threads.\n\nwriteback_inodes_sb_if_idle would be ideal, but it waits for the flusher\nthread to start IO on all the dirty pages in the FS before it returns.\nThis adds variants of writeback_inodes_sb* that allow the caller to\ncontrol how many pages get sent down.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "cb44921a09221f0a90217b44044448f63190f3e5",
      "tree": "5580522b6db6868c02d3072320e338442272cb2b",
      "parents": [
        "6b5b817f103450444f3f658a498f435d92a197e5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Oct 24 11:01:27 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:31:30 2010 -0400"
      },
      "message": "Btrfs: don\u0027t loop forever on bad btree blocks\n\nWhen btrfs discovers the generation number in a btree block is\nincorrect, it can loop forever without forcing the RAID\ncode to try a valid mirror, and without returning EIO.\n\nThis changes things to properly kick out the EIO.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6b5b817f103450444f3f658a498f435d92a197e5",
      "tree": "2896588127c4dd6c2867ef09e7e3cdd83391f8ae",
      "parents": [
        "8216ef866df1119fd5a72372b8b29bce49c18590",
        "e9bb7f10d3617304ef94ff7aa8fefbce3078f08b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:27:49 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:27:49 2010 -0400"
      },
      "message": "Merge branch \u0027bug-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work\n\nConflicts:\n\tfs/btrfs/extent-tree.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "8216ef866df1119fd5a72372b8b29bce49c18590",
      "tree": "8536ec3e5a308639eeef15ac7d6cb55b655fa0fb",
      "parents": [
        "88c2ba3b069f1e0f4694124d02985fa7620a19f1"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Oct 28 16:55:47 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:37 2010 -0400"
      },
      "message": "Btrfs: let the user know space caching is enabled\n\nIf you mount -o space_cache, the option will be persistent across mounts, but to\nmake sure the user knows that they did this, emit a message telling them if they\ndidn\u0027t mount with -o space_cache but the feature is still used.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "88c2ba3b069f1e0f4694124d02985fa7620a19f1",
      "tree": "e41859aca299e14e2658d75e2bf1ef2aea9ab077",
      "parents": [
        "67377734fd24c32cbdfeb697c2e2bd7fed519e75"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Sep 21 14:21:34 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:36 2010 -0400"
      },
      "message": "Btrfs: Add a clear_cache mount option\n\nIf something goes wrong with the free space cache we need a way to make sure\nit\u0027s not loaded on mount and that it\u0027s cleared for everybody.  When you pass the\nclear_cache option it will make it so all block groups are setup to be cleared,\nwhich keeps them from being loaded and then they will be truncated when the\ntransaction is committed.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "67377734fd24c32cbdfeb697c2e2bd7fed519e75",
      "tree": "5b295333ab943d24b190bd3fef2486dfffa7de47",
      "parents": [
        "dde5abee12327d59f968bbfc8151e1b04082a2c4"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Sep 16 16:19:09 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:36 2010 -0400"
      },
      "message": "Btrfs: add support for mixed data+metadata block groups\n\nThere are just a few things that need to be fixed in the kernel to support mixed\ndata+metadata block groups.  Mostly we just need to make sure that if we are\nusing mixed block groups that we continue to allocate mixed block groups as we\nneed them.  Also we need to make sure __find_space_info will find our space info\nif we search for DATA or METADATA only.  Tested this with xfstests and it works\nnicely.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "dde5abee12327d59f968bbfc8151e1b04082a2c4",
      "tree": "eba52b161a83f77c902ecb365ad661d317499717",
      "parents": [
        "9d66e233c7042da27ec699453770f41e567a0442"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Sep 16 16:17:03 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:35 2010 -0400"
      },
      "message": "Btrfs: check cache-\u003ecaching_ctl before returning if caching has started\n\nWith the free space disk caching we can mark the block group as started with the\ncaching, but we don\u0027t have a caching ctl.  This can race with anybody else who\ntries to get the caching ctl before we cache (this is very hard to do btw).  So\ninstead check to see if cache-\u003ecaching_ctl is set, and if not return NULL.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "9d66e233c7042da27ec699453770f41e567a0442",
      "tree": "27fd70c6c07cb96a48123bdec07e9c2feed90f13",
      "parents": [
        "0cb59c9953171e9adf6da8142a5c85ceb77bb60d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Aug 25 16:54:15 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:35 2010 -0400"
      },
      "message": "Btrfs: load free space cache if it exists\n\nThis patch actually loads the free space cache if it exists.  The only thing\nthat really changes here is that we need to cache the block group if we\u0027re going\nto remove an extent from it.  Previously we did not do this since the caching\nkthread would pick it up.  With the on disk cache we don\u0027t have this luxury so\nwe need to make sure we read the on disk cache in first, and then remove the\nextent, that way when the extent is unpinned the free space is added to the\nblock group.  This has been tested with all sorts of things.\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "0cb59c9953171e9adf6da8142a5c85ceb77bb60d",
      "tree": "f72af47fa18815491814290a1b4907082bd9316d",
      "parents": [
        "0af3d00bad38d3bb9912a60928ad0669f17bdb76"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jul 02 12:14:14 2010 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Oct 29 09:26:29 2010 -0400"
      },
      "message": "Btrfs: write out free space cache\n\nThis is a simple bit, just dump the free space cache out to our preallocated\ninode when we\u0027re writing out dirty block groups.  There are a bunch of changes\nin inode.c in order to account for special cases.  Mostly when we\u0027re doing the\nwriteout we\u0027re holding trans_mutex, so we need to use the nolock transacation\nfunctions.  Also we can\u0027t do asynchronous completions since the async thread\ncould be blocked on already completed IO waiting for the transaction lock.  This\nhas been tested with xfstests and btrfs filesystem balance, as well as my ENOSPC\ntests.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "a4cdbd8bfb87ceff455aae85727077889b75001b",
      "tree": "12b908f434633b86a90f6de821f2b6b7988ff1d5",
      "parents": [
        "31f43471e97eff7801251e2c3c8fc03219f85d87"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 05:49:13 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 05:49:13 2010 -0400"
      },
      "message": "braino in internal.h\n\nwrong return type...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "31f43471e97eff7801251e2c3c8fc03219f85d87",
      "tree": "036a7c76926c6f4aaed7f872f64717f4de27b147",
      "parents": [
        "061dbc6b9010bc1a30ef9a1da5469aefa83abd7f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 03:38:12 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:23 2010 -0400"
      },
      "message": "convert simple cases of nfs-related -\u003eget_sb() to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "061dbc6b9010bc1a30ef9a1da5469aefa83abd7f",
      "tree": "34d4daddc92d881d1836880e03f0ec82a742f90e",
      "parents": [
        "a7f9fb205a88ab9af675a68fc554cf51dafc8b60"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 16:21:33 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:21 2010 -0400"
      },
      "message": "convert btrfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a7f9fb205a88ab9af675a68fc554cf51dafc8b60",
      "tree": "0aaa2ad1b345f46fc96d3e00592f9d106a269836",
      "parents": [
        "8bcbbf0009dd467afd6bed1fedfcb1d2463f55a7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 16:17:55 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:18 2010 -0400"
      },
      "message": "convert ceph\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8bcbbf0009dd467afd6bed1fedfcb1d2463f55a7",
      "tree": "0913df26841e57371f44133aa95272981a78ed52",
      "parents": [
        "f7442b3be65bfcabbb5d6e896e65d69e8b261583"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 16:03:58 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:16 2010 -0400"
      },
      "message": "convert gfs2\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7442b3be65bfcabbb5d6e896e65d69e8b261583",
      "tree": "d14dade6966c68592a9fc30b0cfeea0b2526cf8e",
      "parents": [
        "4d143beb0429e8c9c5f1dc66c7ff8ee70dde45a4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 14:16:21 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:13 2010 -0400"
      },
      "message": "convert afs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4d143beb0429e8c9c5f1dc66c7ff8ee70dde45a4",
      "tree": "59e9ac220d7753696f3292bd8af2ad004b81c13e",
      "parents": [
        "d0e46f88b2f73828faf00d559c7e5b3ce9e39a4b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:33:36 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:11 2010 -0400"
      },
      "message": "convert ecryptfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d0e46f88b2f73828faf00d559c7e5b3ce9e39a4b",
      "tree": "f8d4728b19cc8dd6a02cf04711c9f05be3247cd0",
      "parents": [
        "f7e835710ab5f6e43933c983f38f2d2e262b718c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:30:36 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:08 2010 -0400"
      },
      "message": "convert sysfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ceefda6931806972ecf550bd8231dce4a4178953",
      "tree": "46ed42a053f1ed43c3c110a21637a7b071657c8a",
      "parents": [
        "aed1d84f98738bcc1c605e1ff442de9890441315"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:16:50 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:03 2010 -0400"
      },
      "message": "switch get_sb_ns() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aed1d84f98738bcc1c605e1ff442de9890441315",
      "tree": "30fd177f50289b5daa621c0e2922b9942bdff0f5",
      "parents": [
        "579441a39bbbbc408acd5b228d63e76cff708fe6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:12:54 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:17:01 2010 -0400"
      },
      "message": "switch procfs to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "579441a39bbbbc408acd5b228d63e76cff708fe6",
      "tree": "01798eac955db70fd7f08d98e7563c261fec32a3",
      "parents": [
        "d753ed975953a4e97a356bcd59ff146919f29235"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 13:09:36 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:58 2010 -0400"
      },
      "message": "setting -\u003eproc_mnt doesn\u0027t belong in proc_get_sb()\n\ntake that to kern_mount_data()-using callers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d753ed975953a4e97a356bcd59ff146919f29235",
      "tree": "4fe98f79583f74794e64174db7da3f72d92f3246",
      "parents": [
        "e4c59d61e80529aebca4a3690b4378f2c6fc4e82"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 12:52:33 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:56 2010 -0400"
      },
      "message": "convert cifs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e4c59d61e80529aebca4a3690b4378f2c6fc4e82",
      "tree": "b222689f42121011920f15a378e24a68bd65f582",
      "parents": [
        "a1da9e8ab687e6496482b7b2aa17d0da31e55b20"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 12:19:34 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:53 2010 -0400"
      },
      "message": "convert nilfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1da9e8ab687e6496482b7b2aa17d0da31e55b20",
      "tree": "8796d10b903e8f7600b223f25775cdaba5f71894",
      "parents": [
        "e5a0726a953daf224ae42bcf5edaa64f71b4e8a7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 12:14:03 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:51 2010 -0400"
      },
      "message": "switch logfs to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e5a0726a953daf224ae42bcf5edaa64f71b4e8a7",
      "tree": "0f0be6f8e0b2324b5e29ac959837ab470afa0053",
      "parents": [
        "7d945a3aa7608f68dba04083d3421e0b43052660"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 12:06:00 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:48 2010 -0400"
      },
      "message": "logfs: fix a leak in get_sb\n\na) switch -\u003eput_device() to logfs_super *\nb) actually call it on early failures in logfs_get_sb_device()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7d945a3aa7608f68dba04083d3421e0b43052660",
      "tree": "6d236bc977372f3c93cfde81e68ef46e55159eff",
      "parents": [
        "0d85c799623cb6022adb1317ed2987ab9c097c2e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 11:53:30 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:46 2010 -0400"
      },
      "message": "logfs get_sb, part 3\n\ntake logfs_get_sb_device() calls to logfs_get_sb() itself\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0d85c799623cb6022adb1317ed2987ab9c097c2e",
      "tree": "a33fe3c19c33ff9b5944002c193e3a5da4d942a3",
      "parents": [
        "71a1c0125f132b2a4656689ca585c5d8931e539c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 11:33:39 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:43 2010 -0400"
      },
      "message": "logfs get_sb, part 2\n\ntake setting s_bdev/s_mtd/s_devops to callers of logfs_get_sb_device(),\ndon\u0027t bother passing them separately\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "71a1c0125f132b2a4656689ca585c5d8931e539c",
      "tree": "5c33185d3b7b00d1e23e1725b70b5ef14795f5fc",
      "parents": [
        "d2d1ea93069bd7706206b9c124e438ab2795612c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 26 11:25:05 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:41 2010 -0400"
      },
      "message": "logfs get_sb massage, part 1\n\nmove allocation of logfs_super to logfs_get_sb, pass it to\nlogfs_get_sb_...().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d2d1ea93069bd7706206b9c124e438ab2795612c",
      "tree": "902dd47eb144059cf0ad98a8e996ead680c65ca8",
      "parents": [
        "157d81e7ffe04f2c97c3580e185787c2d29463bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 23:56:43 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:38 2010 -0400"
      },
      "message": "convert v9fs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "157d81e7ffe04f2c97c3580e185787c2d29463bb",
      "tree": "a6e5bb27ddc0cd3d4692d6e325b62894f240a45a",
      "parents": [
        "51139adac92f7160ad3ca1cab2de1b4b8d19dc96"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 23:52:42 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:36 2010 -0400"
      },
      "message": "convert ubifs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51139adac92f7160ad3ca1cab2de1b4b8d19dc96",
      "tree": "ea12df0927809e8d5333e82d51cbdb96288c9e6b",
      "parents": [
        "3c26ff6e499ee7e6f9f2bc7da5f2f30d80862ecf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 23:47:46 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:33 2010 -0400"
      },
      "message": "convert get_sb_pseudo() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3c26ff6e499ee7e6f9f2bc7da5f2f30d80862ecf",
      "tree": "bd758d7f15f24aed225a64de77cc535785c50f96",
      "parents": [
        "fc14f2fef682df677d64a145256dbd263df2aa7b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 11:46:36 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:31 2010 -0400"
      },
      "message": "convert get_sb_nodev() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fc14f2fef682df677d64a145256dbd263df2aa7b",
      "tree": "74f6b939fbad959a43c04ec646cd0adc8af5f53a",
      "parents": [
        "848b83a59b772b8f102bc5e3f1187c2fa5676959"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 01:48:30 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:28 2010 -0400"
      },
      "message": "convert get_sb_single() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "848b83a59b772b8f102bc5e3f1187c2fa5676959",
      "tree": "d09a3755252e73f4bef000ffafbc0e9fd72d1a38",
      "parents": [
        "152a08366671080f27b32e0c411ad620c5f88b57"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 00:56:46 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:26 2010 -0400"
      },
      "message": "convert get_sb_mtd() users to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "152a08366671080f27b32e0c411ad620c5f88b57",
      "tree": "d13d16028f74839c678bce355ba8aac75d939fa8",
      "parents": [
        "c96e41e92b4aaf11e1f9775ecf0d1c8cbff829ed"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 00:46:55 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:13 2010 -0400"
      },
      "message": "new helper: mount_bdev()\n\n... and switch of the obvious get_sb_bdev() users to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c96e41e92b4aaf11e1f9775ecf0d1c8cbff829ed",
      "tree": "5c24ad8aa541018a51e1704dccfc370116bb932f",
      "parents": [
        "d893f1bc2a9f0f7dcb4b433452c59f9bedac0d7d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 00:17:56 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:15:06 2010 -0400"
      },
      "message": "beginning of transtion: -\u003emount()\n\neventual replacement for -\u003eget_sb() - does *not* get vfsmount,\nreturn ERR_PTR(error) or root of subtree to be mounted.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d893f1bc2a9f0f7dcb4b433452c59f9bedac0d7d",
      "tree": "b3cf84a271ccb19529d83a544b6024bbb23a7801",
      "parents": [
        "a4118ee1d80b527c385cadd14db79559efb8a493"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 03:30:42 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:14:56 2010 -0400"
      },
      "message": "fix open/umount race\n\nnameidata_to_filp() drops nd-\u003epath or transfers it to opened\nfile.  In the former case it\u0027s a Bad Idea(tm) to do mnt_drop_write()\non nd-\u003epath.mnt, since we might race with umount and vfsmount in\nquestion might be gone already.\n\nFix: don\u0027t drop it, then...  IOW, have nameidata_to_filp() grab nd-\u003epath\nin case it transfers it to file and do path_drop() in callers.  After\nthey are through with accessing nd-\u003epath...\n\nReported-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a4118ee1d80b527c385cadd14db79559efb8a493",
      "tree": "0402b0585fd9e50f54f87f06e467cad44f992efc",
      "parents": [
        "18cb657ca1bafe635f368346a1676fb04c512edf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 27 11:00:08 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:14:48 2010 -0400"
      },
      "message": "a couple of open-coded ihold() introduced by nfs merge\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3686d54c7902a303bd65d751226aa1647319863",
      "tree": "b4acd7dfc6c5ec2f254608a2f0ef11ef274861b8",
      "parents": [
        "d3ba50b17aa7a391bb5b3dcd8d6ba7a02c4f031c"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Thu Oct 28 09:53:07 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Oct 29 01:47:33 2010 +0000"
      },
      "message": "cifs: Cleanup and thus reduce smb session structure and fields used during authentication\n\nRemoved following fields from smb session structure\n cryptkey, ntlmv2_hash, tilen, tiblob\nand ntlmssp_auth structure is allocated dynamically only if the auth mech\nin NTLMSSP.\n\nresponse field within a session_key structure is used to initially store the\ntarget info (either plucked from type 2 challenge packet in case of NTLMSSP\nor fabricated in case of NTLMv2 without extended security) and then to store\nMessage Authentication Key (mak) (session key + client response).\n\nServer challenge or cryptkey needed during a NTLMSSP authentication\nis now part of ntlmssp_auth structure which gets allocated and freed\nonce authenticaiton process is done.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "d3ba50b17aa7a391bb5b3dcd8d6ba7a02c4f031c",
      "tree": "452ddaeb1d52387a852d0c3cf46c4253347d0a27",
      "parents": [
        "6b03590412c977ae8fa1635c9b80854ab19a5b78"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Wed Oct 27 15:20:36 2010 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Oct 29 01:47:30 2010 +0000"
      },
      "message": "NTLM auth and sign - Use appropriate server challenge\n\nNeed to have cryptkey or server challenge in smb connection\n(struct TCP_Server_Info) for ntlm and ntlmv2 auth types for which\ncryptkey (Encryption Key) is supplied just once in Negotiate Protocol\nresponse during an smb connection setup for all the smb sessions over\nthat smb connection.\n\nFor ntlmssp, cryptkey or server challenge is provided for every\nsmb session in type 2 packet of ntlmssp negotiation, the cryptkey\nprovided during Negotiation Protocol response before smb connection\ndoes not count.\n\nRename cryptKey to cryptkey and related changes.\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "671f837a04cbcaaa10e8404989cf08ca3fdf1c80",
      "tree": "d98a55d2e347ad15a73cbd860d1fd71a61be20bd",
      "parents": [
        "c9e2a72ff1acfdffdecb338b3d997f90c507e665",
        "b1142e8fec6a594723e5054055a7b53379b90490"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 15:46:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 15:46:57 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: BUG_ON fix: check if page has buffers before calling page_buffers()\n"
    },
    {
      "commit": "a0e3390787ef523699ae1f3f3ea0ca953e630be2",
      "tree": "0769becdd64b31489be18fdda583e0f38eca146f",
      "parents": [
        "2d3b07c07b39c4b7d9b6641052a02d996cd5d87c",
        "12364a4f05295cb1e4a161d36b486c248c11c485"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 15:13:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 15:13:05 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  nfs4: The difference of 2 pointers is ptrdiff_t\n  nfs: testing the wrong variable\n  nfs: handle lock context allocation failures in nfs_create_request\n  Fixed Regression in NFS Direct I/O path\n"
    },
    {
      "commit": "b1142e8fec6a594723e5054055a7b53379b90490",
      "tree": "57d6234fa2eb33f861eaea4cee4a40a3ae44c09e",
      "parents": [
        "81280572ca6f54009edfa4deee563e8678784218"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 28 17:33:57 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 28 17:33:57 2010 -0400"
      },
      "message": "ext4: BUG_ON fix: check if page has buffers before calling page_buffers() \n\nWe need to make check if a page does not have buffes by checking\npage_has_buffers(page) before calling page_buffers(page) in\next4_writepage().  Otherwise page_buffers() could throw a BUG_ON.\n\nThanks also to Markus Trippelsdorf and Avinash Kurup who also reported\nthe problem.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReported-by: Sedat Dilek \u003csedat.dilek@googlemail.com\u003e\nTested-by: Sedat Dilek \u003csedat.dilek@googlemail.com\u003e\n"
    },
    {
      "commit": "19ba54f4645f8c5edae4b08919a37a409b8793aa",
      "tree": "83328233533ef33861fcc0617dd9ca68a981c92f",
      "parents": [
        "50e4a98914de13c6f38f50fd1afa06e2c18b3cf7"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Oct 28 17:21:59 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:16 2010 -0400"
      },
      "message": "fs/notify/fanotify/fanotify_user.c: fix warnings\n\nfs/notify/fanotify/fanotify_user.c: In function \u0027fanotify_release\u0027:\nfs/notify/fanotify/fanotify_user.c:375: warning: unused variable \u0027lre\u0027\nfs/notify/fanotify/fanotify_user.c:375: warning: unused variable \u0027re\u0027\n\nthis is really ugly.\n\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "192ca4d1941228e69c1fbeebab317725407e6e65",
      "tree": "cff474f312a41b5ab4fbbf72a558675f377e1808",
      "parents": [
        "8fcd65280abc4699510f1853ede31f43e8a3783a"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:59 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:16 2010 -0400"
      },
      "message": "fanotify: do not recalculate the mask if the ignored mask changed\n\nIf fanotify sets a new bit in the ignored mask it will cause the generic\nfsnotify layer to recalculate the real mask.  This is stupid since we\ndidn\u0027t change that part.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "8fcd65280abc4699510f1853ede31f43e8a3783a",
      "tree": "9ef20b7c3ee0a4130d88922d7d4115beaa0c9dc0",
      "parents": [
        "b29866aab8489487f11cc4506590ac31bdbae22a"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:59 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:16 2010 -0400"
      },
      "message": "fanotify: ignore events on directories unless specifically requested\n\nfanotify has a very limited number of events it sends on directories.  The\nusefulness of these events is yet to be seen and still we send them.  This\nis particularly painful for mount marks where one might receive many of\nthese useless events.  As such this patch will drop events on IS_DIR()\ninodes unless they were explictly requested with FAN_ON_DIR.\n\nThis means that a mark on a directory without FAN_EVENT_ON_CHILD or\nFAN_ON_DIR is meaningless and will result in no events ever (although it\nwill still be allowed since detecting it is hard)\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "b29866aab8489487f11cc4506590ac31bdbae22a",
      "tree": "814ff82fd2067dfa75a69284a38f3ae26ee692fe",
      "parents": [
        "e1c048ba786789afdc66f32d8394bb5a0014bbba"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:58 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:15 2010 -0400"
      },
      "message": "fsnotify: rename FS_IN_ISDIR to FS_ISDIR\n\nThe _IN_ in the naming is reserved for flags only used by inotify.  Since I\nam about to use this flag for fanotify rename it to be generic like the\nrest.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e1c048ba786789afdc66f32d8394bb5a0014bbba",
      "tree": "03a8ca0e2ca11d40f175442338ab6c75d772940c",
      "parents": [
        "4afeff8505cb8a38e36c1ef2bd3447c4b8f87367"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:58 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:15 2010 -0400"
      },
      "message": "fanotify: do not send events for irregular files\n\nfanotify_should_send_event has a test to see if an object is a file or\ndirectory and does not send an event otherwise.  The problem is that the\ntest is actually checking if the object with a mark is a file or directory,\nnot if the object the event happened on is a file or directory.  We should\ncheck the latter.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "4afeff8505cb8a38e36c1ef2bd3447c4b8f87367",
      "tree": "50a80d8773698813e4e9d9f9112079c09d493c48",
      "parents": [
        "ac7e22dcfafd04c842a02057afd6541c1d613ef9"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:58 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:15 2010 -0400"
      },
      "message": "fanotify: limit number of listeners per user\n\nfanotify currently has no limit on the number of listeners a given user can\nhave open.  This patch limits the total number of listeners per user to\n128.  This is the same as the inotify default limit.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ac7e22dcfafd04c842a02057afd6541c1d613ef9",
      "tree": "54e84b0596d9915f29e56e6b6a8d8370771202c5",
      "parents": [
        "e7099d8a5a34d2876908a9fab4952dabdcfc5909"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:58 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:15 2010 -0400"
      },
      "message": "fanotify: allow userspace to override max marks\n\nSome fanotify groups, especially those like AV scanners, will need to place\nlots of marks, particularly ignore marks.  Since ignore marks do not pin\ninodes in cache and are cleared if the inode is removed from core (usually\nunder memory pressure) we expose an interface for listeners, with\nCAP_SYS_ADMIN, to override the maximum number of marks and be allowed to\nset and \u0027unlimited\u0027 number of marks.  Programs which make use of this\nfeature will be able to OOM a machine.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "e7099d8a5a34d2876908a9fab4952dabdcfc5909",
      "tree": "34f62d8ae23c4c115a0b615cd13e9ae7ddd28b42",
      "parents": [
        "5dd03f55fd2f21916ce248bb2e68bbfb39d94fe5"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:57 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:14 2010 -0400"
      },
      "message": "fanotify: limit the number of marks in a single fanotify group\n\nThere is currently no limit on the number of marks a given fanotify group\ncan have.  Since fanotify is gated on CAP_SYS_ADMIN this was not seen as\na serious DoS threat.  This patch implements a default of 8192, the same as\ninotify to work towards removing the CAP_SYS_ADMIN gating and eliminating\nthe default DoS\u0027able status.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "5dd03f55fd2f21916ce248bb2e68bbfb39d94fe5",
      "tree": "3d4446ce07126b9983849a41670542c69bb400bd",
      "parents": [
        "2529a0df0f64dab1f60ae08e038b89c53a6b4c02"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:57 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:14 2010 -0400"
      },
      "message": "fanotify: allow userspace to override max queue depth\n\nfanotify has a defualt max queue depth.  This patch allows processes which\nexplicitly request it to have an \u0027unlimited\u0027 queue depth.  These processes\nneed to be very careful to make sure they cannot fall far enough behind\nthat they OOM the box.  Thus this flag is gated on CAP_SYS_ADMIN.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "2529a0df0f64dab1f60ae08e038b89c53a6b4c02",
      "tree": "59f73938d84b78b535c91282677054d1f3dd1697",
      "parents": [
        "5322a59f14e4cae5f878b9c0c5612d403c230d7f"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:57 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:14 2010 -0400"
      },
      "message": "fsnotify: implement a default maximum queue depth\n\nCurrently fanotify has no maximum queue depth.  Since fanotify is\nCAP_SYS_ADMIN only this does not pose a normal user DoS issue, but it\ncertianly is possible that an fanotify listener which can\u0027t keep up could\nOOM the box.  This patch implements a default 16k depth.  This is the same\ndefault depth used by inotify, but given fanotify\u0027s better queue merging in\nmany situations this queue will contain many additional useful events by\ncomparison.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "5322a59f14e4cae5f878b9c0c5612d403c230d7f",
      "tree": "5090861d8e7df0b69f342c527390007e8c3f68e9",
      "parents": [
        "bbf2aba50f6ed7c8dd53623fa1437b539928ac39"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:57 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:14 2010 -0400"
      },
      "message": "fanotify: ignore fanotify ignore marks if open writers\n\nfanotify will clear ignore marks if a task changes the contents of an\ninode.  The problem is with the races around when userspace finishes\nchecking a file and when that result is actually attached to the inode.\nThis race was described as such:\n\nConsider the following scenario with hostile processes A and B, and\nvictim process C:\n1. Process A opens new file for writing. File check request is generated.\n2. File check is performed in userspace. Check result is \"file has no malware\".\n3. The \"permit\" response is delivered to kernel space.\n4. File ignored mark set.\n5. Process A writes dummy bytes to the file. File ignored flags are cleared.\n6. Process B opens the same file for reading. File check request is generated.\n7. File check is performed in userspace. Check result is \"file has no malware\".\n8. Process A writes malware bytes to the file. There is no cached response yet.\n9. The \"permit\" response is delivered to kernel space and is cached in fanotify.\n10. File ignored mark set.\n11. Now any process C will be permitted to open the malware file.\nThere is a race between steps 8 and 10\n\nWhile fanotify makes no strong guarantees about systems with hostile\nprocesses there is no reason we cannot harden against this race.  We do\nthat by simply ignoring any ignore marks if the inode has open writers (aka\ni_writecount \u003e 0).  (We actually do not ignore ignore marks if the\nFAN_MARK_SURV_MODIFY flag is set)\n\nReported-by: Vasily Novikov \u003cvasily.novikov@kaspersky.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "52420392c81c8712f555e6bcd116d8bd214ce43a",
      "tree": "372d23bba71ee687ff5adf5b83d3fd0706e19927",
      "parents": [
        "ff8bcbd03da881bf1171910c6c07d44bd3c0a234"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:21:56 2010 -0400"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Thu Oct 28 17:22:13 2010 -0400"
      },
      "message": "fsnotify: call fsnotify_parent in perm events\n\nfsnotify perm events do not call fsnotify parent.  That means you cannot\nregister a perm event on a directory and enforce permissions on all inodes in\nthat directory.  This patch fixes that situation.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    }
  ],
  "next": "ff8bcbd03da881bf1171910c6c07d44bd3c0a234"
}
