)]}'
{
  "log": [
    {
      "commit": "b89b12b46211d971d75e5ca8249817bc9e11c453",
      "tree": "3b846ec3daa6ce9e301668121b8c335b0d879470",
      "parents": [
        "26e6c910670171410577c7df2aebe94cef76e150"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 21:42:32 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:29 2011 -0500"
      },
      "message": "autofs4: clean -\u003ed_release() and autofs4_free_ino() up\n\nThe latter is called only when both ino and dentry are about to\nbe freed, so cleaning -\u003ed_fsdata and -\u003edentry is pointless.\n\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "26e6c910670171410577c7df2aebe94cef76e150",
      "tree": "407ecb012b91efce80be76f0191b2efc43689b7f",
      "parents": [
        "5a37db302e698a83209eff22ca8f3fd05eb1d84b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 18:43:40 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:28 2011 -0500"
      },
      "message": "autofs4: split autofs4_init_ino()\n\nsplit init_ino into new_ino and clean_ino; the former is\nwhat used to be init_ino(NULL, sbi), the latter is for cases\nwhere we passed non-NULL ino.  Lose unused arguments.\n\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a37db302e698a83209eff22ca8f3fd05eb1d84b",
      "tree": "0ffef4412676c8b1814a2965b150168fcb9cfb03",
      "parents": [
        "726a5e0688fd344110d8f2979d87f243a4ba1a48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 18:29:35 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:28 2011 -0500"
      },
      "message": "autofs4: mkdir and symlink always get a dentry that had passed lookup\n\n... so -\u003ed_fsdata will have been set up before we get there\n\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "726a5e0688fd344110d8f2979d87f243a4ba1a48",
      "tree": "c554b40ff5619dfd491b4890e89c8ee9c3131efd",
      "parents": [
        "0bf71d4d005176f6b6587ba64a377f9798213f21"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 17:43:52 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:28 2011 -0500"
      },
      "message": "autofs4: autofs4_get_inode() doesn\u0027t need autofs_info * argument anymore\n\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0bf71d4d005176f6b6587ba64a377f9798213f21",
      "tree": "4814d73e0201e92e7aca19b0a45f64b9a9644698",
      "parents": [
        "09f12c03fa699ce7d030c47add60577138927d4f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 17:39:15 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:28 2011 -0500"
      },
      "message": "autofs4: kill -\u003esize in autofs_info\n\nIt\u0027s used only to pass the length of symlink body to\nautofs4_get_inode() in autofs4_dir_symlink().  We can\nbloody well set inode-\u003ei_size in autofs4_dir_symlink()\ndirectly and be done with that.\n\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "09f12c03fa699ce7d030c47add60577138927d4f",
      "tree": "b9ef52e197a38579799ba9b62f78bf0c35efa4cc",
      "parents": [
        "14a2f00bde7668fe18d1c8355d26c7c96961e1f7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 17:20:23 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:27 2011 -0500"
      },
      "message": "autofs4: pass mode to autofs4_get_inode() explicitly\n\nIn all cases we\u0027d set inf-\u003emode to know value just before\npassing it to autofs4_get_inode().  That kills the need\nto store it in autofs_info and pass it to autofs_init_ino()\n\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "14a2f00bde7668fe18d1c8355d26c7c96961e1f7",
      "tree": "c14da20ae3c32474c52d49bec43e046b583b8d9d",
      "parents": [
        "292c5ee802e9b969b84ee671a5e3001d94230f5b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 17:13:33 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:27 2011 -0500"
      },
      "message": "autofs4: autofs4_mkroot() is not different from autofs4_init_ino()\n\nKill it.  Mind you, it\u0027s been an obfuscated call of autofs4_init_ino()\never since 2.3.99pre6-4...\n\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "292c5ee802e9b969b84ee671a5e3001d94230f5b",
      "tree": "616b0a583d17c50aedbb87082943248333d63c2b",
      "parents": [
        "c0bcc9d55252012805300ca01b9b7a143b4daf85"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 00:47:38 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:27 2011 -0500"
      },
      "message": "autofs4: keep symlink body in inode-\u003ei_private\n\ngets rid of all -\u003efree()/-\u003eu.symlink machinery in autofs; we simply\nkeep symlink bodies in inode-\u003ei_private and free them in -\u003eevict_inode().\n\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c0bcc9d55252012805300ca01b9b7a143b4daf85",
      "tree": "af83d0afe51156377032608242ae24ee0c24e860",
      "parents": [
        "8931221411f9ff950de8fd686dc5ab881394cb9a"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Jan 18 12:06:15 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:27 2011 -0500"
      },
      "message": "autofs4 - fix debug print in autofs4_lookup()\n\noz_mode isn\u0027t defined any more, use autofs4_oz_mode(sbi) instead.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8931221411f9ff950de8fd686dc5ab881394cb9a",
      "tree": "63d97668bae62d1034002cc7778adde2aa18b346",
      "parents": [
        "c14cc63a63e94d490ac6517a555113c30d420db4"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Jan 18 12:06:10 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:26 2011 -0500"
      },
      "message": "vfs - fix dentry ref count in do_lookup()\n\nThere is a ref count problem in fs/namei.c:do_lookup().\n\nWhen walking in ref-walk mode, if follow_managed() returns a fail we\nneed to drop dentry and possibly vfsmount.  Clean up properly,\nas we do in the other caller of follow_managed().\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c14cc63a63e94d490ac6517a555113c30d420db4",
      "tree": "4769517c39eedbbeaedc7a73636d7c65c0de5a38",
      "parents": [
        "6845a44a314c0c626549de373131bf108f9cc1f1"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Tue Jan 18 12:06:04 2011 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 18 01:21:26 2011 -0500"
      },
      "message": "autofs4 - fix get_next_positive_dentry()\n\nThe initialization condition in fs/autofs4/expire.c:get_next_positive_dentry()\nappears to be incorrect. If prev \u003d\u003d NULL I believe that root should be\nreturned.\n\nFurther down, at the current dentry check for it being simple_positive()\nit looks like the d_lock for dentry p should be dropped instead of dentry\nret, otherwise when p is assinged to ret we end up with no lock on p and\na lost lock on ret, which leads to a deadlock.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eee2a817df7c5a6e569f353f8be78cc1b3604bb6",
      "tree": "f721beb4712c732702d3383d3c6a52da8b5bbb20",
      "parents": [
        "83896fb5e51594281720d145164f866ba769abd5",
        "acce952b0263825da32cf10489413dec78053347"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 14:43:43 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 14:43:43 2011 -0800"
      },
      "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: (25 commits)\n  Btrfs: forced readonly mounts on errors\n  btrfs: Require CAP_SYS_ADMIN for filesystem rebalance\n  Btrfs: don\u0027t warn if we get ENOSPC in btrfs_block_rsv_check\n  btrfs: Fix memory leak in btrfs_read_fs_root_no_radix()\n  btrfs: check NULL or not\n  btrfs: Don\u0027t pass NULL ptr to func that may deref it.\n  btrfs: mount failure return value fix\n  btrfs: Mem leak in btrfs_get_acl()\n  btrfs: fix wrong free space information of btrfs\n  btrfs: make the chunk allocator utilize the devices better\n  btrfs: restructure find_free_dev_extent()\n  btrfs: fix wrong calculation of stripe size\n  btrfs: try to reclaim some space when chunk allocation fails\n  btrfs: fix wrong data space statistics\n  fs/btrfs: Fix build of ctree\n  Btrfs: fix off by one while setting block groups readonly\n  Btrfs: Add BTRFS_IOC_SUBVOL_GETFLAGS/SETFLAGS ioctls\n  Btrfs: Add readonly snapshots support\n  Btrfs: Refactor btrfs_ioctl_snap_create()\n  btrfs: Extract duplicate decompress code\n  ...\n"
    },
    {
      "commit": "9e8a462a0141b12e22c4a2f0c12e0542770401f0",
      "tree": "c0e32e5877f099b43e75afc5faecc944207dd51c",
      "parents": [
        "cf78859f520f8275318f47d7864f4459d940cb6b",
        "24562486be76cf223b8d911f45e1d26eb3364b13"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 12:39:57 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 12:39:57 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:\n  ecryptfs: remove unnecessary decrypt when extending a file\n  ecryptfs: Fix ecryptfs_printk() size_t warnings\n  fs/ecryptfs: Add printf format/argument verification and fix fallout\n  ecryptfs: fixed testing of file descriptor flags\n  ecryptfs: test lower_file pointer when lower_file_mutex is locked\n  ecryptfs: missing initialization of the superblock \u0027magic\u0027 field\n  ecryptfs: moved ECRYPTFS_SUPER_MAGIC definition to linux/magic.h\n  ecryptfs: fix truncation error in ecryptfs_read_update_atime\n"
    },
    {
      "commit": "cf78859f520f8275318f47d7864f4459d940cb6b",
      "tree": "43568b265a89800274b782c9c0506c486525e4cb",
      "parents": [
        "8c34482c17d8fd07966328c7b1cfc35ee290bd1c"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Mon Jan 17 21:21:14 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 12:39:07 2011 -0800"
      },
      "message": "xfs: Do not name variables \"panic\"\n\nOn platforms that call panic() inside their BUG() macro (m68k/sun3, and\nall platforms that don\u0027t set HAVE_ARCH_BUG), compilation fails with:\n\n| fs/xfs/support/debug.c: In function ‘xfs_cmn_err’:\n| fs/xfs/support/debug.c:92: error: called object ‘panic’ is not a function\n\nas the local variable \"panic\" conflicts with the \"panic()\" function.\nRename the local variable to resolve this.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acce952b0263825da32cf10489413dec78053347",
      "tree": "d934881f247484d7b6917bebc40828600bb6b76c",
      "parents": [
        "6f88a4403def422bd8e276ddf6863d6ac71435d2"
      ],
      "author": {
        "name": "liubo",
        "email": "liubo2009@cn.fujitsu.com",
        "time": "Thu Jan 06 19:30:25 2011 +0800"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 17 15:13:08 2011 -0500"
      },
      "message": "Btrfs: forced readonly mounts on errors\n\nThis patch comes from \"Forced readonly mounts on errors\" ideas.\n\nAs we know, this is the first step in being more fault tolerant of disk\ncorruptions instead of just using BUG() statements.\n\nThe major content:\n- add a framework for generating errors that should result in filesystems\n  going readonly.\n- keep FS state in disk super block.\n- make sure that all of resource will be freed and released at umount time.\n- make sure that fter FS is forced readonly on error, there will be no more\n  disk change before FS is corrected. For this, we should stop write operation.\n\nAfter this patch is applied, the conversion from BUG() to such a framework can\nhappen incrementally.\n\nSigned-off-by: Liu Bo \u003cliubo2009@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1a47f7a84ef386c1f7f55f669598bd9894ceb73a",
      "tree": "8105fcee8bdbacb06b00cc27e90b631be2290dbb",
      "parents": [
        "ab2020f2f11fc7fb81e6c71298b0830d85412011",
        "bd7633195581c7665ce9dd80c665ec93466d1b64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 11:17:51 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 11:17:51 2011 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: add cruid\u003d mount option\n  cifs: cFYI the entire error code in map_smb_to_linux_error\n"
    },
    {
      "commit": "ab2020f2f11fc7fb81e6c71298b0830d85412011",
      "tree": "c9a6342063461dcf31278d65585bca73bdda4a84",
      "parents": [
        "235646a486d10891bd86af28d8eac75d9f22bd2d",
        "154bf89f5e3e3dc59666926f27ca4a0866f39157"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 11:15:30 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 17 11:15:30 2011 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6: (59 commits)\n  mtd: mtdpart: disallow reading OOB past the end of the partition\n  mtd: pxa3xx_nand: NULL dereference in pxa3xx_nand_probe\n  UBI: use mtd-\u003ewritebufsize to set minimal I/O unit size\n  mtd: initialize writebufsize in the MTD object of a partition\n  mtd: onenand: add mtd-\u003ewritebufsize initialization\n  mtd: nand: add mtd-\u003ewritebufsize initialization\n  mtd: cfi: add writebufsize initialization\n  mtd: add writebufsize field to mtd_info struct\n  mtd: OneNAND: OMAP2/3: prevent regulator sleeping while OneNAND is in use\n  mtd: OneNAND: add enable / disable methods to onenand_chip\n  mtd: m25p80: Fix JEDEC ID for AT26DF321\n  mtd: txx9ndfmc: limit transfer bytes to 512 (ECC provides 6 bytes max)\n  mtd: cfi_cmdset_0002: add support for Samsung K8D3x16UxC NOR chips\n  mtd: cfi_cmdset_0002: add support for Samsung K8D6x16UxM NOR chips\n  mtd: nand: ams-delta: drop omap_read/write, use ioremap\n  mtd: m25p80: add debugging trace in sst_write\n  mtd: nand: ams-delta: select for built-in by default\n  mtd: OneNAND: lighten scary initial bad block messages\n  mtd: OneNAND: OMAP2/3: add support for command line partitioning\n  mtd: nand: rearrange ONFI revision checking, add ONFI 2.3\n  ...\n\nFix up trivial conflict in drivers/mtd/Kconfig as per DavidW.\n"
    },
    {
      "commit": "24562486be76cf223b8d911f45e1d26eb3364b13",
      "tree": "7ce33c533c12b4dc66d8afd836c7996d5769e325",
      "parents": [
        "f24b38874e1e37bb70291bbc4c5c3c13f5f9dac8"
      ],
      "author": {
        "name": "Frank Swiderski",
        "email": "fes@chromium.org",
        "time": "Mon Nov 15 10:43:22 2010 -0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 13:01:25 2011 -0600"
      },
      "message": "ecryptfs: remove unnecessary decrypt when extending a file\n\nRemoves an unecessary page decrypt from ecryptfs_begin_write when the\npage is beyond the current file size. Previously, the call to\necryptfs_decrypt_page would result in a read of 0 bytes, but still\nattempt to decrypt an entire page. This patch detects that case and\nmerely zeros the page before marking it up-to-date.\n\nSigned-off-by: Frank Swiderski \u003cfes@chromium.org\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f24b38874e1e37bb70291bbc4c5c3c13f5f9dac8",
      "tree": "f1e41cafb5205403961e98728ade5adfaf5b33a7",
      "parents": [
        "888d57bbc91ebd031451d4ab1c669baee826a06c"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Nov 15 17:36:38 2010 -0600"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 13:01:24 2011 -0600"
      },
      "message": "ecryptfs: Fix ecryptfs_printk() size_t warnings\n\nCommit cb55d21f6fa19d8c6c2680d90317ce88c1f57269 revealed a number of\nmissing \u0027z\u0027 length modifiers in calls to ecryptfs_printk() when\nprinting variables of type size_t. This patch fixes those compiler\nwarnings.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "888d57bbc91ebd031451d4ab1c669baee826a06c",
      "tree": "a446e3d6f7134a50d5118702fadba04ab5ee3c14",
      "parents": [
        "0abe1169470571c473ee720c35fe5b3481c46c46"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Wed Nov 10 15:46:16 2010 -0800"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 13:01:23 2011 -0600"
      },
      "message": "fs/ecryptfs: Add printf format/argument verification and fix fallout\n\nAdd __attribute__((format... to __ecryptfs_printk\nMake formats and arguments match.\nAdd casts to (unsigned long long) for %llu.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\n[tyhicks: 80 columns cleanup and fixed typo]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "0abe1169470571c473ee720c35fe5b3481c46c46",
      "tree": "3261e72681db07a04a56f31af0edb536b9b7a5e2",
      "parents": [
        "27992890b02d340198a3a22fc210d13684a41564"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Nov 03 11:11:34 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 11:24:43 2011 -0600"
      },
      "message": "ecryptfs: fixed testing of file descriptor flags\n\nThis patch replaces the check (lower_file-\u003ef_flags \u0026 O_RDONLY) with\n((lower_file \u0026 O_ACCMODE) \u003d\u003d O_RDONLY).\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "27992890b02d340198a3a22fc210d13684a41564",
      "tree": "7ece682994e705791c2c96a02cb139c1f42b0239",
      "parents": [
        "070baa51286e5cf59dde6be52fa23647ffb5d32d"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Nov 03 11:11:28 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 11:24:42 2011 -0600"
      },
      "message": "ecryptfs: test lower_file pointer when lower_file_mutex is locked\n\nThis patch prevents the lower_file pointer in the \u0027ecryptfs_inode_info\u0027\nstructure to be checked when the mutex \u0027lower_file_mutex\u0027 is not locked.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "070baa51286e5cf59dde6be52fa23647ffb5d32d",
      "tree": "ea0b6bc104a0717f1ae37ddff7620f9cd31a50a6",
      "parents": [
        "2a8652f4e0d11ee27b1d2870c600fd1300661a6e"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Nov 03 11:11:22 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 11:23:01 2011 -0600"
      },
      "message": "ecryptfs: missing initialization of the superblock \u0027magic\u0027 field\n\nThis patch initializes the \u0027magic\u0027 field of ecryptfs filesystems to\nECRYPTFS_SUPER_MAGIC.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\n[tyhicks: merge with 66cb76666d69]\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2a8652f4e0d11ee27b1d2870c600fd1300661a6e",
      "tree": "f7ee0d8614b60a8733bcf0cfba8ac94776925ed5",
      "parents": [
        "38a708d7759476318d0eec64af174513032ec67a"
      ],
      "author": {
        "name": "Roberto Sassu",
        "email": "roberto.sassu@polito.it",
        "time": "Wed Nov 03 11:11:15 2010 +0100"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 10:44:31 2011 -0600"
      },
      "message": "ecryptfs: moved ECRYPTFS_SUPER_MAGIC definition to linux/magic.h\n\nThe definition of ECRYPTFS_SUPER_MAGIC has been moved to the include\nfile \u0027linux/magic.h\u0027 to become available to other kernel subsystems.\n\nSigned-off-by: Roberto Sassu \u003croberto.sassu@polito.it\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "38a708d7759476318d0eec64af174513032ec67a",
      "tree": "e3cd94359191e72c26ea6a0ecc37c1933b9dcc71",
      "parents": [
        "e78bf5e6cbe837daa6ab628a5f679548742994d3"
      ],
      "author": {
        "name": "Edward Shishkin",
        "email": "edward.shishkin@gmail.com",
        "time": "Sat Oct 30 00:11:50 2010 +0200"
      },
      "committer": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Mon Jan 17 10:44:30 2011 -0600"
      },
      "message": "ecryptfs: fix truncation error in ecryptfs_read_update_atime\n\nThis is similar to the bug found in direct-io not so long ago.\n\nFix up truncation (ssize_t-\u003eint).  This only matters with \u003e2G\nreads/writes, which the kernel doesn\u0027t permit.\n\nSigned-off-by: Edward Shishkin \u003cedward.shishkin@gmail.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Eric Sandeen \u003cesandeen@redhat.com\u003e\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "ecf5632dd189ab4c366cef853d6e5fe7adfe52e5",
      "tree": "947ae7edf45415753e960d53957ae3a4121fb3b8",
      "parents": [
        "27eaa1c90c608aa907336c2743d5ecf35c469440"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Sun Jan 16 23:28:17 2011 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 08:21:42 2011 -0500"
      },
      "message": "fs: fix address space warnings in ioctl_fiemap()\n\nThe fi_extents_start field of struct fiemap_extent_info is a\nuser pointer but was not marked as __user. This makes sparse\nemit following warnings:\n\n  CHECK   fs/ioctl.c\nfs/ioctl.c:114:26: warning: incorrect type in argument 1 (different address spaces)\nfs/ioctl.c:114:26:    expected void [noderef] \u003casn:1\u003e*dst\nfs/ioctl.c:114:26:    got struct fiemap_extent *[assigned] dest\nfs/ioctl.c:202:14: warning: incorrect type in argument 1 (different address spaces)\nfs/ioctl.c:202:14:    expected void const volatile [noderef] \u003casn:1\u003e*\u003cnoident\u003e\nfs/ioctl.c:202:14:    got struct fiemap_extent *[assigned] fi_extents_start\nfs/ioctl.c:212:27: warning: incorrect type in argument 1 (different address spaces)\nfs/ioctl.c:212:27:    expected void [noderef] \u003casn:1\u003e*dst\nfs/ioctl.c:212:27:    got char *\u003cnoident\u003e\n\nAlso add \u0027ufiemap\u0027 variable to eliminate unnecessary casts.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "27eaa1c90c608aa907336c2743d5ecf35c469440",
      "tree": "33c8e07c5935792fc755ce6ddea660fcd84d65f1",
      "parents": [
        "274052ef0bac011249925f6616d147b1491fc601"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Dec 14 00:06:25 2010 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 05:12:44 2011 -0500"
      },
      "message": "aio: check return value of create_workqueue()\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "274052ef0bac011249925f6616d147b1491fc601",
      "tree": "c94e7269bf7d3b7f16ad33789c5730a8e0445e44",
      "parents": [
        "e0bb6bda43e20aa1db5774c73a519cd52c463a55"
      ],
      "author": {
        "name": "Dr. David Alan Gilbert",
        "email": "linux@treblig.org",
        "time": "Mon Dec 13 17:09:52 2010 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 05:11:37 2011 -0500"
      },
      "message": "hpfs_setattr error case avoids unlock_kernel\n\nThis fixed a case that \u0027sparse\u0027 spotted where hpfs_setattr has an error return\nthat didn\u0027t go through it\u0027s path that unlocks.\n\nThis is against git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\nversion 6313e3c21743cc88bb5bd8aa72948ee1e83937b6.\n\nBuild tested only, I don\u0027t have an hpfs file system to test.\n\nDave\n\nSigned-off-by: Dr. David Alan Gilbert \u003clinux@treblig.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e0bb6bda43e20aa1db5774c73a519cd52c463a55",
      "tree": "84af59ed571cda0a3b023caf50b2b538ac5c2554",
      "parents": [
        "974d879e8070bbb132bd4e79ef314703853d0b82"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Dec 27 01:41:54 2010 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 04:54:38 2011 -0500"
      },
      "message": "compat: copy missing fields in compat_statfs64 to user\n\nf_flags and f_spare fields were not copied to userspace when\ncompat_sys_[f]statfs64 called.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "974d879e8070bbb132bd4e79ef314703853d0b82",
      "tree": "34dc5c46b4eccf4b6fe1fb96fb5fb6b457e0c50e",
      "parents": [
        "6a5640f10255a8941a3a57396dda20af7a5c9a9e"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Dec 27 01:41:53 2010 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 04:54:38 2011 -0500"
      },
      "message": "compat: update comment of compat statfs syscalls\n\nThe commit 7ed1ee6118ae (\"Take statfs variants to fs/statfs.c\")\nseparates out statfs syscalls from fs/open.c. Thus the comment\nshould be changed also.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6a5640f10255a8941a3a57396dda20af7a5c9a9e",
      "tree": "eba96cfb1f64df42f7748a025536fa9d5db754e9",
      "parents": [
        "16ebe911eba8afa88879213dc4388f2dd701561e"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Mon Dec 27 01:41:52 2010 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 04:54:38 2011 -0500"
      },
      "message": "compat: remove unnecessary assignment in compat_rw_copy_check_uvector()\n\n*@ret_pointer is initialized to @fast_pointer thus the assignment is\nredundant.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "16ebe911eba8afa88879213dc4388f2dd701561e",
      "tree": "e33f5ac63c4e3f87647f06760c1fca66db64413d",
      "parents": [
        "3bc0ba4305fa99b32caac8c60df84a2f14fce228"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Jan 02 14:44:00 2011 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 03:30:37 2011 -0500"
      },
      "message": "fs: FS_POSIX_ACL does not depend on BLOCK\n\n- Fix a kconfig unmet dependency warning.\n- Remove the comment that identifies which filesystems use POSIX ACL\n  utility routines.\n- Move the FS_POSIX_ACL symbol outside of the BLOCK symbol if/endif block\n  because its functions do not depend on BLOCK and some of the filesystems\n  that use it do not depend on BLOCK.\n\nwarning: (GENERIC_ACL \u0026\u0026 JFFS2_FS_POSIX_ACL \u0026\u0026 NFSD_V4 \u0026\u0026 NFS_ACL_SUPPORT \u0026\u0026 9P_FS_POSIX_ACL) selects FS_POSIX_ACL which has unmet direct dependencies (BLOCK)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3bc0ba4305fa99b32caac8c60df84a2f14fce228",
      "tree": "052d07f14002de3b643048668ed68241335fc786",
      "parents": [
        "c2b3e74b78b24cb367289a75a2bd30e569e56e0e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 13 19:38:09 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 03:26:27 2011 -0500"
      },
      "message": "fs: Remove unlikely() from fget_light()\n\nThere\u0027s an unlikely() in fget_light() that assumes the file ref count\nwill be 1. Running the annotate branch profiler on a desktop that is\nperforming daily tasks (running firefox, evolution, xchat and is also part\nof a distcc farm), it shows that the ref count is not 1 that often.\n\n correct incorrect      %    Function                  File              Line\n ------- ---------      -    --------                  ----              ----\n1035099358 6209599193  85    fget_light              file_table.c         315\n\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2fe17c1075836b66678ed2a305fd09b6773883aa",
      "tree": "eb5287be8138686682eef9622872cfc7657e0664",
      "parents": [
        "64c23e86873ee410554d6d1c76b60da47025e96f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jan 14 13:07:43 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 02:25:31 2011 -0500"
      },
      "message": "fallocate should be a file operation\n\nCurrently all filesystems except XFS implement fallocate asynchronously,\nwhile XFS forced a commit.  Both of these are suboptimal - in case of O_SYNC\nI/O we really want our allocation on disk, especially for the !KEEP_SIZE\ncase where we actually grow the file with user-visible zeroes.  On the\nother hand always commiting the transaction is a bad idea for fast-path\nuses of fallocate like for example in recent Samba versions.   Given\nthat block allocation is a data plane operation anyway change it from\nan inode operation to a file operation so that we have the file structure\navailable that lets us check for O_SYNC.\n\nThis also includes moving the code around for a few of the filesystems,\nand remove the already unnedded S_ISDIR checks given that we only wire\nup fallocate for regular files.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "64c23e86873ee410554d6d1c76b60da47025e96f",
      "tree": "b30c5ff8782ebfdec6956d7834f796731fd3a1d4",
      "parents": [
        "eb745dbccce56f1bbe3f80b95ad2a325145171c2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jan 14 13:07:30 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 02:25:30 2011 -0500"
      },
      "message": "make the feature checks in -\u003efallocate future proof\n\nInstead of various home grown checks that might need updates for new\nflags just check for any bit outside the mask of the features supported\nby the filesystem.  This makes the check future proof for any newly\nadded flag.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b1e75df45a3d8a490b8648e44632debc5eea04b1",
      "tree": "4ee3aaa516675ca9715d673c4399f1b517d4a690",
      "parents": [
        "15f9a3f3e199647fe0cac19302c5033cf031372d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 01:47:59 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 01:47:59 2011 -0500"
      },
      "message": "tidy up around finish_automount()\n\ndo_add_mount() and mnt_clear_expiry() are not needed outside of\nnamespace.c anymore, now that namei has finish_automount() to\nuse.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "15f9a3f3e199647fe0cac19302c5033cf031372d",
      "tree": "38a39510439f2913dbdfcfd2de4ffacc8214875d",
      "parents": [
        "19a167af7c97248ec646552ebc9140bc6aa3552a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 01:41:58 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 01:41:58 2011 -0500"
      },
      "message": "don\u0027t drop newmnt on error in do_add_mount()\n\nThat gets rid of the kludge in finish_automount() - we need\nto keep refcount on the vfsmount as-is until we evict it from\nexpiry list.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "19a167af7c97248ec646552ebc9140bc6aa3552a",
      "tree": "a521153c80fa6e40b2b4983c5bba21c2e96d1864",
      "parents": [
        "e78bf5e6cbe837daa6ab628a5f679548742994d3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 01:35:23 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 17 01:35:23 2011 -0500"
      },
      "message": "Take the completion of automount into new helper\n\n... and shift it from namei.c to namespace.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8a335bc631ac9c43675821580c26ebf95a3044ba",
      "tree": "e02cf3c2394fe4e07d8e786ff9ba049005b1e928",
      "parents": [
        "115374211961a503675730603e3d48d95d41736c",
        "7b1fff7e4fdf2805fce7afd6247912588d72d604"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 15:06:43 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 15:06:43 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/scsi-post-merge-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/nab/scsi-post-merge-2.6:\n  ocfs2: Make OCFS2_FS depend on CONFIGFS_FS\n  dlm: Make DLM depend on CONFIGFS_FS\n  net: Make NETCONSOLE_DYNAMIC depend on CONFIGFS_FS\n  configfs: change depends -\u003e select SYSFS\n  [SCSI] sd,sr: kill compat SDEV_MEDIA_CHANGE event\n  [SCSI] sd: implement sd_check_events()\n"
    },
    {
      "commit": "7e3d0eb0b028ed9e9384e6afcae2f22993bbdf25",
      "tree": "37bbffdfc6d380d04c294fa43d75697694f44d4d",
      "parents": [
        "f8b18087fd3277e424a24e13ce0edf30abe97ce0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 16:32:11 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 14:59:45 2011 -0800"
      },
      "message": "VFS: Fix UP compile error in fs/namespace.c\n\nmnt_longterm is there only on SMP\n\nReported-and-tested-by: Joachim Eastwood \u003cmanabian@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b1fff7e4fdf2805fce7afd6247912588d72d604",
      "tree": "3dd87024ca113e7bae839c5f0b77ae78ab41b627",
      "parents": [
        "86c747d2a4f028fe2fdf091c3a81d0e187827682"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jan 16 21:16:07 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jan 16 21:22:40 2011 +0000"
      },
      "message": "ocfs2: Make OCFS2_FS depend on CONFIGFS_FS\n\nThis patch fixes the following kconfig error after changing\nCONFIGFS_FS -\u003e select SYSFS:\n\nfs/sysfs/Kconfig:1:error: recursive dependency detected!\nfs/sysfs/Kconfig:1:\tsymbol SYSFS is selected by CONFIGFS_FS\nfs/configfs/Kconfig:1:\tsymbol CONFIGFS_FS is selected by OCFS2_FS\nfs/ocfs2/Kconfig:1:\tsymbol OCFS2_FS depends on SYSFS\n\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "86c747d2a4f028fe2fdf091c3a81d0e187827682",
      "tree": "1c2017be7a3e3877868b17914688991625bccbe9",
      "parents": [
        "d9f9ab51e55e36379773752ffeaac677b080d469"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jan 16 21:14:52 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jan 16 21:22:37 2011 +0000"
      },
      "message": "dlm: Make DLM depend on CONFIGFS_FS\n\nThis patch fixes the following kconfig error after changing\nCONFIGFS_FS -\u003e select SYSFS:\n\nfs/sysfs/Kconfig:1:error: recursive dependency detected!\nfs/sysfs/Kconfig:1:\tsymbol SYSFS is selected by CONFIGFS_FS\nfs/configfs/Kconfig:1:\tsymbol CONFIGFS_FS is selected by DLM\nfs/dlm/Kconfig:1:\tsymbol DLM depends on SYSFS\n\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: James Bottomley \u003cJames.Bottomley@suse.de\u003e\n"
    },
    {
      "commit": "e205117285d6035af135c9d6c34a30ee6b8d1f2e",
      "tree": "ec2bb982058fe36ec2c8eb19e3fc11af3e8b17aa",
      "parents": [
        "f652f6c5b7cfdf139f4155d78f397e99ae1c4acc"
      ],
      "author": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jan 16 21:11:25 2011 +0000"
      },
      "committer": {
        "name": "Nicholas Bellinger",
        "email": "nab@linux-iscsi.org",
        "time": "Sun Jan 16 21:22:29 2011 +0000"
      },
      "message": "configfs: change depends -\u003e select SYSFS\n\nThis patch changes configfs to select SYSFS to fix the following:\n\nwarning: (TARGET_CORE \u0026\u0026 GFS2_FS) selects CONFIGFS_FS which has unmet direct dependencies (SYSFS)\n\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Nicholas A. Bellinger \u003cnab@linux-iscsi.org\u003e\nAcked-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "f8b18087fd3277e424a24e13ce0edf30abe97ce0",
      "tree": "1e37e728fa3eff37e2f75ebf9d3446bac13f9f84",
      "parents": [
        "5520ebd308927a3beba599a2b68fa8c52f41f43b"
      ],
      "author": {
        "name": "Stefan Schmidt",
        "email": "stefan@datenfreihafen.org",
        "time": "Wed Jan 12 10:30:42 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 12:59:42 2011 -0800"
      },
      "message": "fs/btrfs: Fix build of ctree\n\nFix the build failure in some configurations:\n\n     CC [M]  fs/btrfs/ctree.o\n  In file included from fs/btrfs/ctree.c:21:0:\n  fs/btrfs/ctree.h:1003:17: error: field \u0027super_kobj\u0027 has incomplete type\n  fs/btrfs/ctree.h:1074:17: error: field \u0027root_kobj\u0027 has incomplete type\n  make[2]: *** [fs/btrfs/ctree.o] Error 1\n  make[1]: *** [fs/btrfs] Error 2\n  make: *** [fs] Error 2\n\ncaused by commit 57cc7215b708 (\"headers: kobject.h redux\")\n\nWe need to include kobject.h here.\n\nReported-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nFix-suggested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Stefan Schmidt \u003cstefan@datenfreihafen.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5520ebd308927a3beba599a2b68fa8c52f41f43b",
      "tree": "b0395c15af7d096e6e6172a9d47bb7a8dec6add0",
      "parents": [
        "d3072e6a7e9bf7aca200370317f8e297be360b17",
        "01a678c5a2f41663b8faf03d17e2bbdbf44158a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 12:11:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 12:11:13 2011 -0800"
      },
      "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: simplify CONFIG_SQUASHFS_LZO handling\n  Squashfs: move squashfs_i() definition from squashfs.h\n  Squashfs: get rid of default n in Kconfig\n  Squashfs: add missing check in zlib_wrapper\n  Squashfs: remove unnecessary variable in zlib_wrapper\n  Squashfs: Add XZ compression configuration option\n  Squashfs: add XZ compression support\n"
    },
    {
      "commit": "f8206b925fb0eba3a11839419be118b09105d7b1",
      "tree": "5d41b356a043da09c816ed80bd79d1ea8b2b47e5",
      "parents": [
        "1b59be2a6cdcb5a12e18d8315c07c94a624de48f",
        "f03c65993b98eeb909a4012ce7833c5857d74755"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:31:50 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 16 11:31:50 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (23 commits)\n  sanitize vfsmount refcounting changes\n  fix old umount_tree() breakage\n  autofs4: Merge the remaining dentry ops tables\n  Unexport do_add_mount() and add in follow_automount(), not -\u003ed_automount()\n  Allow d_manage() to be used in RCU-walk mode\n  Remove a further kludge from __do_follow_link()\n  autofs4: Bump version\n  autofs4: Add v4 pseudo direct mount support\n  autofs4: Fix wait validation\n  autofs4: Clean up autofs4_free_ino()\n  autofs4: Clean up dentry operations\n  autofs4: Clean up inode operations\n  autofs4: Remove unused code\n  autofs4: Add d_manage() dentry operation\n  autofs4: Add d_automount() dentry operation\n  Remove the automount through follow_link() kludge code from pathwalk\n  CIFS: Use d_automount() rather than abusing follow_link()\n  NFS: Use d_automount() rather than abusing follow_link()\n  AFS: Use d_automount() rather than abusing follow_link()\n  Add an AT_NO_AUTOMOUNT flag to suppress terminal automount\n  ...\n"
    },
    {
      "commit": "f03c65993b98eeb909a4012ce7833c5857d74755",
      "tree": "a6dd5e353889b7fe4ab87c54170d09443d788fec",
      "parents": [
        "7b8a53fd815deb39542085897743fa0063f9fe06"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 14 22:30:21 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 13:47:07 2011 -0500"
      },
      "message": "sanitize vfsmount refcounting changes\n\nInstead of splitting refcount between (per-cpu) mnt_count\nand (SMP-only) mnt_longrefs, make all references contribute\nto mnt_count again and keep track of how many are longterm\nones.\n\nAccounting rules for longterm count:\n\t* 1 for each fs_struct.root.mnt\n\t* 1 for each fs_struct.pwd.mnt\n\t* 1 for having non-NULL -\u003emnt_ns\n\t* decrement to 0 happens only under vfsmount lock exclusive\n\nThat allows nice common case for mntput() - since we can\u0027t drop the\nfinal reference until after mnt_longterm has reached 0 due to the rules\nabove, mntput() can grab vfsmount lock shared and check mnt_longterm.\nIf it turns out to be non-zero (which is the common case), we know\nthat this is not the final mntput() and can just blindly decrement\npercpu mnt_count.  Otherwise we grab vfsmount lock exclusive and\ndo usual decrement-and-check of percpu mnt_count.\n\nFor fs_struct.c we have mnt_make_longterm() and mnt_make_shortterm();\nnamespace.c uses the latter in places where we don\u0027t already hold\nvfsmount lock exclusive and opencodes a few remaining spots where\nwe need to manipulate mnt_longterm.\n\nNote that we mostly revert the code outside of fs/namespace.c back\nto what we used to have; in particular, normal code doesn\u0027t need\nto care about two kinds of references, etc.  And we get to keep\nthe optimization Nick\u0027s variant had bought us...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7b8a53fd815deb39542085897743fa0063f9fe06",
      "tree": "1fe7d7f6192b3300a12d2e6af80b9601f23f94f8",
      "parents": [
        "b650c858c26bd9ba29ebc82d30f09355845a294a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:08:44 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 16 13:47:01 2011 -0500"
      },
      "message": "fix old umount_tree() breakage\n\nExpiry-related code calls umount_tree() several times with\nthe same list to collect vfsmounts to.  Which is fine, except\nthat umount_tree() implicitly assumed that the list would\nbe empty on each call - it moves the victims over there and\nthen iterates through the list kicking them out.  It\u0027s *almost*\nidempotent, so everything nearly worked.  However, mnt-\u003eghosts\nhandling (and thus expirability checks) had been broken - that\npart was not idempotent...\n\nThe fix is trivial - use local temporary list, splice it to\nthe the collector list when we are through.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6f88a4403def422bd8e276ddf6863d6ac71435d2",
      "tree": "8fe01d61977e0113cc0a4fa77b7df7f8dfeecad9",
      "parents": [
        "f690efb1aa2a961dd6655529c1797fcac60ad6d9"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Wed Dec 29 14:55:03 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:20 2011 -0500"
      },
      "message": "btrfs: Require CAP_SYS_ADMIN for filesystem rebalance\n\nFilesystem rebalancing (BTRFS_IOC_BALANCE) affects the entire\nfilesystem and may run uninterruptibly for a long time.  This does not\nseem to be something that an unprivileged user should be able to do.\n\nReported-by: Aron Xu \u003chappyaron.xu@gmail.com\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f690efb1aa2a961dd6655529c1797fcac60ad6d9",
      "tree": "29b2faa25ff19a3c374b6bb60eb4507657c6dfa9",
      "parents": [
        "5e540f7715b8cd83b8e60beaaa525b125cc122de"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Wed Jan 12 21:04:22 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:20 2011 -0500"
      },
      "message": "Btrfs: don\u0027t warn if we get ENOSPC in btrfs_block_rsv_check\n\nIf we run low on space we could get a bunch of warnings out of\nbtrfs_block_rsv_check, but this is mostly just called via the transaction code\nto see if we need to end the transaction, it expects to see failures, so let\u0027s\nnot WARN and freak everybody out for no reason.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5e540f7715b8cd83b8e60beaaa525b125cc122de",
      "tree": "93ce1b3e22354c8d8e477ee56b925a44e7b9713e",
      "parents": [
        "91ca338d776e0cefb255bf2979b6448febd880f5"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Mon Dec 27 06:53:10 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:20 2011 -0500"
      },
      "message": "btrfs: Fix memory leak in btrfs_read_fs_root_no_radix()\n\nIn btrfs_read_fs_root_no_radix(), \u0027root\u0027 is not freed if\nbtrfs_search_slot() returns error.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "91ca338d776e0cefb255bf2979b6448febd880f5",
      "tree": "5d1d344d6ed565faf5612b5c695f00c04e6f01d8",
      "parents": [
        "ff175d57f057f77d2d3031d674c2af9167a4af02"
      ],
      "author": {
        "name": "Tsutomu Itoh",
        "email": "t-itoh@jp.fujitsu.com",
        "time": "Wed Jan 05 02:32:22 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:20 2011 -0500"
      },
      "message": "btrfs: check NULL or not\n\nShould check if functions returns NULL or not.\n\nSigned-off-by: Tsutomu Itoh \u003ct-itoh@jp.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ff175d57f057f77d2d3031d674c2af9167a4af02",
      "tree": "ff04961d44566d7abc3ea4aab888900d40561c3e",
      "parents": [
        "20b450773d17e325190c158e10bfdb25dc21d2d6"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sat Dec 25 21:22:30 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:20 2011 -0500"
      },
      "message": "btrfs: Don\u0027t pass NULL ptr to func that may deref it.\n\nHi,\n\nIn fs/btrfs/inode.c::fixup_tree_root_location() we have this code:\n\n...\n \t\tif (!path) {\n \t\t\terr \u003d -ENOMEM;\n \t\t\tgoto out;\n \t\t}\n...\n \tout:\n \t\tbtrfs_free_path(path);\n \t\treturn err;\n\nbtrfs_free_path() passes its argument on to other functions and some of\nthem end up dereferencing the pointer.\nIn the code above that pointer is clearly NULL, so btrfs_free_path() will\neventually cause a NULL dereference.\n\nThere are many ways to cut this cake (fix the bug). The one I chose was to\nmake btrfs_free_path() deal gracefully with NULL pointers. If you\ndisagree, feel free to come up with an alternative patch.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "20b450773d17e325190c158e10bfdb25dc21d2d6",
      "tree": "c99c3d8cedbf8fb5f01ed42d7d3c5b5bd5fd9d69",
      "parents": [
        "42838bb265b9cff3de9587fcacc398b5112dc2d9"
      ],
      "author": {
        "name": "Dave Young",
        "email": "hidave.darkstar@gmail.com",
        "time": "Sat Jan 08 10:09:13 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "btrfs: mount failure return value fix\n\nI happened to pass swap partition as root partition in cmdline,\nthen kernel panic and tell me about \"Cannot open root device\".\nIt is not correct, in fact it is a fs type mismatch instead of \u0027no device\u0027.\n\nEventually I found btrfs mounting failed with -EIO, it should be -EINVAL.\nThe logic in init/do_mounts.c:\n        for (p \u003d fs_names; *p; p +\u003d strlen(p)+1) {\n                int err \u003d do_mount_root(name, p, flags, root_mount_data);\n                switch (err) {\n                        case 0:\n                                goto out;\n                        case -EACCES:\n                                flags |\u003d MS_RDONLY;\n                                goto retry;\n                        case -EINVAL:\n                                continue;\n                }\n\t\tprint \"Cannot open root device\"\n\t\tpanic\n\t}\nSO fs type after btrfs will have no chance to mount\n\nHere fix the return value as -EINVAL\n\nSigned-off-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "42838bb265b9cff3de9587fcacc398b5112dc2d9",
      "tree": "4c0cfbe4f41004b096917ddf75ed7d74743a4af3",
      "parents": [
        "6d07bcec969af335d4e35b3921131b7929bd634e"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Jan 06 21:45:21 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "btrfs: Mem leak in btrfs_get_acl()\n\nIt seems to me that we leak the memory allocated to \u0027value\u0027 in\nbtrfs_get_acl() if the call to posix_acl_from_xattr() fails.\nHere\u0027s a patch that attempts to correct that problem.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "6d07bcec969af335d4e35b3921131b7929bd634e",
      "tree": "2d1e0bb5f69bdf9dafa2862b6cad965184d67c84",
      "parents": [
        "b2117a39fa96cf4814e7cab8c11494149ba6f29d"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Jan 05 10:07:31 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "btrfs: fix wrong free space information of btrfs\n\nWhen we store data by raid profile in btrfs with two or more different size\ndisks, df command shows there is some free space in the filesystem, but the\nuser can not write any data in fact, df command shows the wrong free space\ninformation of btrfs.\n\n # mkfs.btrfs -d raid1 /dev/sda9 /dev/sda10\n # btrfs-show\n Label: none  uuid: a95cd49e-6e33-45b8-8741-a36153ce4b64\n \tTotal devices 2 FS bytes used 28.00KB\n \tdevid    1 size 5.01GB used 2.03GB path /dev/sda9\n \tdevid    2 size 10.00GB used 2.01GB path /dev/sda10\n # btrfs device scan /dev/sda9 /dev/sda10\n # mount /dev/sda9 /mnt\n # dd if\u003d/dev/zero of\u003dtmpfile0 bs\u003d4K count\u003d9999999999\n   (fill the filesystem)\n # sync\n # df -TH\n Filesystem\tType\tSize\tUsed\tAvail\tUse%\tMounted on\n /dev/sda9\tbtrfs\t17G\t8.6G\t5.4G\t62%\t/mnt\n # btrfs-show\n Label: none  uuid: a95cd49e-6e33-45b8-8741-a36153ce4b64\n \tTotal devices 2 FS bytes used 3.99GB\n \tdevid    1 size 5.01GB used 5.01GB path /dev/sda9\n \tdevid    2 size 10.00GB used 4.99GB path /dev/sda10\n\nIt is because btrfs cannot allocate chunks when one of the pairing disks has\nno space, the free space on the other disks can not be used for ever, and should\nbe subtracted from the total space, but btrfs doesn\u0027t subtract this space from\nthe total. It is strange to the user.\n\nThis patch fixes it by calcing the free space that can be used to allocate\nchunks.\n\nImplementation:\n1. get all the devices free space, and align them by stripe length.\n2. sort the devices by the free space.\n3. check the free space of the devices,\n   3.1. if it is not zero, and then check the number of the devices that has\n        more free space than this device,\n        if the number of the devices is beyond the min stripe number, the free\n        space can be used, and add into total free space.\n        if the number of the devices is below the min stripe number, we can not\n        use the free space, the check ends.\n   3.2. if the free space is zero, check the next devices, goto 3.1\n\nThis implementation is just likely fake chunk allocation.\n\nAfter appling this patch, df can show correct space information:\n # df -TH\n Filesystem\tType\tSize\tUsed\tAvail\tUse%\tMounted on\n /dev/sda9\tbtrfs\t17G\t8.6G\t0\t100%\t/mnt\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "b2117a39fa96cf4814e7cab8c11494149ba6f29d",
      "tree": "9327d1332d68f91931767ee7bc6233251ab41565",
      "parents": [
        "7bfc837df935d850fe996dfe92ef48975cd4170a"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Jan 05 10:07:28 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "btrfs: make the chunk allocator utilize the devices better\n\nWith this patch, we change the handling method when we can not get enough free\nextents with default size.\n\nImplementation:\n1. Look up the suitable free extent on each device and keep the search result.\n   If not find a suitable free extent, keep the max free extent\n2. If we get enough suitable free extents with default size, chunk allocation\n   succeeds.\n3. If we can not get enough free extents, but the number of the extent with\n   default size is \u003e\u003d min_stripes, we just change the mapping information\n   (reduce the number of stripes in the extent map), and chunk allocation\n   succeeds.\n4. If the number of the extent with default size is \u003c min_stripes, sort the\n   devices by its max free extent\u0027s size descending\n5. Use the size of the max free extent on the (num_stripes - 1)th device as the\n   stripe size to allocate the device space\n\nBy this way, the chunk allocator can allocate chunks as large as possible when\nthe devices\u0027 space is not enough and make full use of the devices.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7bfc837df935d850fe996dfe92ef48975cd4170a",
      "tree": "8ca5f83c0c43e505b872368877504fa95c6276ab",
      "parents": [
        "1974a3b42d8cf7a9c74f1e0310c593023617037a"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Jan 05 10:07:26 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "btrfs: restructure find_free_dev_extent()\n\n- make it return the start position and length of the max free space when it can\n  not find a suitable free space.\n- make it more readability\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1974a3b42d8cf7a9c74f1e0310c593023617037a",
      "tree": "73d7eb8dc071a095fbe424776ab7610dbc897c16",
      "parents": [
        "d52a5b5f1fa40804f681cf9868d4a8f90661bdf3"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Jan 05 10:07:24 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "btrfs: fix wrong calculation of stripe size\n\nThere are two tiny problem:\n- One is When we check the chunk size is greater than the max chunk size or not,\n  we should take mirrors into account, but the original code didn\u0027t.\n- The other is btrfs shouldn\u0027t use the size of the residual free space as the\n  length of of a dup chunk when doing chunk allocation. It is because the device\n  space that a dup chunk needs is twice as large as the chunk size, if we use\n  the size of the residual free space as the length of a dup chunk, we can not\n  get enough free space. Fix it.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nReviewed-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "d52a5b5f1fa40804f681cf9868d4a8f90661bdf3",
      "tree": "93ae0faf84163748353d1edb6c5247483762f2df",
      "parents": [
        "299a08b1c34f9397797946a0fa215c5fd145c5cf"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Jan 05 10:07:18 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "btrfs: try to reclaim some space when chunk allocation fails\n\nWe cannot write data into files when when there is tiny space in the filesystem.\n\nReproduce steps:\n # mkfs.btrfs /dev/sda1\n # mount /dev/sda1 /mnt\n # dd if\u003d/dev/zero of\u003d/mnt/tmpfile0 bs\u003d4K count\u003d1\n # dd if\u003d/dev/zero of\u003d/mnt/tmpfile1 bs\u003d4K count\u003d99999999999999\n   (fill the filesystem)\n # umount /mnt\n # mount /dev/sda1 /mnt\n # rm -f /mnt/tmpfile0\n # dd if\u003d/dev/zero of\u003d/mnt/tmpfile0 bs\u003d4K count\u003d1\n   (failed with nospec)\n\nBut if we do the last step again, we can write data successfully. The reason of\nthe problem is that btrfs didn\u0027t try to commit the current transaction and\nreclaim some space when chunk allocation failed.\n\nThis patch fixes it by committing the current transaction to reclaim some\nspace when chunk allocation fails.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nReviewed-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "299a08b1c34f9397797946a0fa215c5fd145c5cf",
      "tree": "beace30f71e49e4ac6428b33916288695c06539f",
      "parents": [
        "f580eb0931fbcb6dc3916f094f471671facd1daa"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Jan 05 10:07:15 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "btrfs: fix wrong data space statistics\n\nJosef has implemented mixed data/metadata chunks, we must add those chunks\u0027\nspace just like data chunks.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nReviewed-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f580eb0931fbcb6dc3916f094f471671facd1daa",
      "tree": "456f97b04cfcfb5b1c19b6b5fca225e8d92ab06b",
      "parents": [
        "f892436eb2c3223fecda614a64d51f36f6ec2245"
      ],
      "author": {
        "name": "Stefan Schmidt",
        "email": "stefan@datenfreihafen.org",
        "time": "Wed Jan 12 09:30:42 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:30:19 2011 -0500"
      },
      "message": "fs/btrfs: Fix build of ctree\n\nCC [M]  fs/btrfs/ctree.o\nIn file included from fs/btrfs/ctree.c:21:0:\nfs/btrfs/ctree.h:1003:17: error: field \u003c91\u003esuper_kobj\u003c92\u003e has incomplete type\nfs/btrfs/ctree.h:1074:17: error: field \u003c91\u003eroot_kobj\u003c92\u003e has incomplete type\nmake[2]: *** [fs/btrfs/ctree.o] Error 1\nmake[1]: *** [fs/btrfs] Error 2\nmake: *** [fs] Error 2\n\nWe need to include kobject.h here.\n\nReported-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nFix-suggested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Stefan Schmidt \u003cstefan@datenfreihafen.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f892436eb2c3223fecda614a64d51f36f6ec2245",
      "tree": "75001db8c8b7fad547cbd4e99494727287598c1c",
      "parents": [
        "26c79f6ba0ccdc4bbc8ef8721406d37e9178e30b",
        "3a39c18d63fec35f49df577d4b2a4e29c2212f22"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:25:54 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:25:54 2011 -0500"
      },
      "message": "Merge branch \u0027lzo-support\u0027 of git://repo.or.cz/linux-btrfs-devel into btrfs-38\n"
    },
    {
      "commit": "26c79f6ba0ccdc4bbc8ef8721406d37e9178e30b",
      "tree": "c5bcbf8f605afdae1a89ea2617f29052ac8c6f18",
      "parents": [
        "65e5341b9a0c39767ae1fecc727d70eda0dd6d83",
        "0caa102da82799efaba88e234484786a9591c797"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:24:45 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 16 11:24:45 2011 -0500"
      },
      "message": "Merge branch \u0027readonly-snapshots\u0027 of git://repo.or.cz/linux-btrfs-devel into btrfs-38\n"
    },
    {
      "commit": "b650c858c26bd9ba29ebc82d30f09355845a294a",
      "tree": "cd3749a722a81425263e3a2b1d82898586665acf",
      "parents": [
        "ea5b778a8b98c85a87d66bf844904f9c3802b869"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sat Jan 15 10:51:57 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:49 2011 -0500"
      },
      "message": "autofs4: Merge the remaining dentry ops tables\n\nMerge the remaining autofs4 dentry ops tables.  It doesn\u0027t matter if\nd_automount and d_manage are present on something that\u0027s not mountable or\nholdable as these ops are only used if the appropriate flags are set in\ndentry-\u003ed_flags.\n\n[AV] switch to -\u003es_d_op, since now _everything_ on autofs4 is using the\nsame dentry_operations.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ea5b778a8b98c85a87d66bf844904f9c3802b869",
      "tree": "baa56cbe1a907d76341f2cad53e16569cc1d3288",
      "parents": [
        "ab90911ff90cdab59b31c045c3f0ae480d14f29d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 19:10:03 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:48 2011 -0500"
      },
      "message": "Unexport do_add_mount() and add in follow_automount(), not -\u003ed_automount()\n\nUnexport do_add_mount() and make -\u003ed_automount() return the vfsmount to be\nadded rather than calling do_add_mount() itself.  follow_automount() will then\ndo the addition.\n\nThis slightly complicates things as -\u003ed_automount() normally wants to add the\nnew vfsmount to an expiration list and start an expiration timer.  The problem\nwith that is that the vfsmount will be deleted if it has a refcount of 1 and\nthe timer will not repeat if the expiration list is empty.\n\nTo this end, we require the vfsmount to be returned from d_automount() with a\nrefcount of (at least) 2.  One of these refs will be dropped unconditionally.\nIn addition, follow_automount() must get a 3rd ref around the call to\ndo_add_mount() lest it eat a ref and return an error, leaving the mount we\nhave open to being expired as we would otherwise have only 1 ref on it.\n\nd_automount() should also add the the vfsmount to the expiration list (by\ncalling mnt_set_expiry()) and start the expiration timer before returning, if\nthis mechanism is to be used.  The vfsmount will be unlinked from the\nexpiration list by follow_automount() if do_add_mount() fails.\n\nThis patch also fixes the call to do_add_mount() for AFS to propagate the mount\nflags from the parent vfsmount.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ab90911ff90cdab59b31c045c3f0ae480d14f29d",
      "tree": "683450a66eb9dc6bf053e38d63f4740bb53a7b6e",
      "parents": [
        "87556ef19926e97464e0163a7840140527ae6615"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:46:51 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:47 2011 -0500"
      },
      "message": "Allow d_manage() to be used in RCU-walk mode\n\nAllow d_manage() to be called from pathwalk when it is in RCU-walk mode as well\nas when it is in Ref-walk mode.  This permits __follow_mount_rcu() to call\nd_manage() directly.  d_manage() needs a parameter to indicate that it is in\nRCU-walk mode as it isn\u0027t allowed to sleep if in that mode (but should return\n-ECHILD instead).\n\nautofs4_d_manage() can then be set to retain RCU-walk mode if the daemon\naccesses it and otherwise request dropping back to ref-walk mode.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "87556ef19926e97464e0163a7840140527ae6615",
      "tree": "04f75b49a88523e4700a2cbf73c04c75697c419a",
      "parents": [
        "1972580bb4edea3ed6fe273b2ca72f44f10f8c86"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:46:46 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:46 2011 -0500"
      },
      "message": "Remove a further kludge from __do_follow_link()\n\nRemove a further kludge from __do_follow_link() as it\u0027s no longer required with\nthe automount code.\n\nThis reverts the non-helper-function parts of\n051d381259eb57d6074d02a6ba6e90e744f1a29f, which breaks union mounts.\n\nReported-by: vaurora@redhat.com\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dd89f90d2deb9aa5bc8e1b15d726ff5c0bb2b623",
      "tree": "0f3d8c9c66be46215cc5b10d51ccb25cc8e68da1",
      "parents": [
        "9e3fea16ba386fa549a0b2de8a203e5d412997a0"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 14 18:46:35 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:44 2011 -0500"
      },
      "message": "autofs4: Add v4 pseudo direct mount support\n\nVersion 4 of autofs provides a pseudo direct mount implementation\nthat relies on directories at the leaves of a directory tree under\nan indirect mount to trigger mounts.\n\nThis patch adds support for that functionality.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9e3fea16ba386fa549a0b2de8a203e5d412997a0",
      "tree": "88ee7f612240f8e33cc57d07a011a07db6280804",
      "parents": [
        "6651149371b842715906311b4631b8489cebf7e8"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 14 18:46:30 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:43 2011 -0500"
      },
      "message": "autofs4: Fix wait validation\n\nIt is possible for the check in wait.c:validate_request() to return\nan incorrect result if the dentry that was mounted upon has changed\nduring the callback.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6651149371b842715906311b4631b8489cebf7e8",
      "tree": "4ad6941a353515edaada23426ec3b44724f40ca3",
      "parents": [
        "71e469db242c2eeb00faf9caf7d9e00150c00a6e"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 14 18:46:24 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:42 2011 -0500"
      },
      "message": "autofs4: Clean up autofs4_free_ino()\n\nWhen this function is called the local reference count does\u0027t need to\nbe updated since the dentry is going away and dput definitely must\nnot be called here.\n\nAlso the autofs info struct field inode isn\u0027t used so remove it.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "71e469db242c2eeb00faf9caf7d9e00150c00a6e",
      "tree": "8fdb7f6900edca6f2973f9ae64331895112f017e",
      "parents": [
        "e61da20a50d21725ff27571a6dff9468e4fb7146"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 14 18:46:19 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:41 2011 -0500"
      },
      "message": "autofs4: Clean up dentry operations\n\nThere are now two distinct dentry operations uses. One for dentrys\nthat trigger mounts and one for dentrys that do not.\n\nRationalize the use of these dentry operations and rename them to\nreflect their function.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e61da20a50d21725ff27571a6dff9468e4fb7146",
      "tree": "c82ea451647e95754bb27aa46c60fd264ddd7c2c",
      "parents": [
        "8c13a676d5a56495c350f3141824a5ef6c6b4606"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 14 18:46:14 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:40 2011 -0500"
      },
      "message": "autofs4: Clean up inode operations\n\nSince the use of -\u003efollow_link() has been eliminated there is no\nneed to separate the indirect and direct inode operations.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8c13a676d5a56495c350f3141824a5ef6c6b4606",
      "tree": "514ec4ba97eef8d40bbec73b5d3b0c46bb9ee51a",
      "parents": [
        "b5b801779d59165c4ecf1009009109545bd1f642"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 14 18:46:08 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:39 2011 -0500"
      },
      "message": "autofs4: Remove unused code\n\nRemove code that is not used due to the use of -\u003ed_automount()\nand -\u003ed_manage().\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b5b801779d59165c4ecf1009009109545bd1f642",
      "tree": "3a1c8b2e65e72977993ba96c1398edba4c63cbf5",
      "parents": [
        "10584211e48036182212b598cc53331776406d60"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 14 18:46:03 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:38 2011 -0500"
      },
      "message": "autofs4: Add d_manage() dentry operation\n\nThis patch required a previous patch to add the -\u003ed_automount()\ndentry operation.\n\nAdd a function to use the newly defined -\u003ed_manage() dentry operation\nfor blocking during mount and expire.\n\nWhether the VFS calls the dentry operations d_automount() and d_manage()\nis controled by the DMANAGED_AUTOMOUNT and DMANAGED_TRANSIT flags. autofs\nuses the d_automount() operation to callback to user space to request\nmount operations and the d_manage() operation to block walks into mounts\nthat are under construction or destruction.\n\nIn order to prevent these functions from being called unnecessarily the\nDMANAGED_* flags are cleared for cases which would cause this. In the\ncommon case the DMANAGED_AUTOMOUNT and DMANAGED_TRANSIT flags are both\nset for dentrys waiting to be mounted. The DMANAGED_TRANSIT flag is\ncleared upon successful mount request completion and set during expire\nruns, both during the dentry expire check, and if selected for expire,\nis left set until a subsequent successful mount request completes.\n\nThe exception to this is the so-called rootless multi-mount which has\nno actual mount at its base. In this case the DMANAGED_AUTOMOUNT flag\nis cleared upon successful mount request completion as well and set\nagain after a successful expire.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10584211e48036182212b598cc53331776406d60",
      "tree": "b66067b47a1104c3ae3ccd4248c9b41d5b869c5e",
      "parents": [
        "db3729153e82ba3ada89681f26c4f1b6d6807a80"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 14 18:45:58 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:37 2011 -0500"
      },
      "message": "autofs4: Add d_automount() dentry operation\n\nAdd a function to use the newly defined -\u003ed_automount() dentry operation\nfor triggering mounts instead of doing the user space callback in -\u003elookup()\nand -\u003ed_revalidate().\n\nNote, to be useful the subsequent patch to add the -\u003ed_manage() dentry\noperation is also needed so the discussion of functionality is deferred to\nthat patch.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "db3729153e82ba3ada89681f26c4f1b6d6807a80",
      "tree": "55714bb93d9377e5f8762b9030e87fec3e469645",
      "parents": [
        "01c64feac45cea1317263eabc4f7ee1b240f297f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:53 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:36 2011 -0500"
      },
      "message": "Remove the automount through follow_link() kludge code from pathwalk\n\nRemove the automount through follow_link() kludge code from pathwalk in favour\nof using d_automount().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "01c64feac45cea1317263eabc4f7ee1b240f297f",
      "tree": "b1df5409132ef04e380104a6617d2781f8e196f0",
      "parents": [
        "36d43a43761b004ad1879ac21471d8fc5f3157ec"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:47 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:35 2011 -0500"
      },
      "message": "CIFS: Use d_automount() rather than abusing follow_link()\n\nMake CIFS use the new d_automount() dentry operation rather than abusing\nfollow_link() on directories.\n\n[NOTE: THIS IS UNTESTED!]\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "36d43a43761b004ad1879ac21471d8fc5f3157ec",
      "tree": "6cb6c6d978f4e58de7f9bf901707d6929f098345",
      "parents": [
        "d18610b0ce9eb48c60649d8fcbf68374c84349d3"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:42 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:34 2011 -0500"
      },
      "message": "NFS: Use d_automount() rather than abusing follow_link()\n\nMake NFS use the new d_automount() dentry operation rather than abusing\nfollow_link() on directories.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d18610b0ce9eb48c60649d8fcbf68374c84349d3",
      "tree": "58a4088b75a14a35e343b7ee6a4ba57d63792270",
      "parents": [
        "6f45b65672c8017d5e210e338bb5858a938ef445"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 19:04:05 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:33 2011 -0500"
      },
      "message": "AFS: Use d_automount() rather than abusing follow_link()\n\nMake AFS use the new d_automount() dentry operation rather than abusing\nfollow_link() on directories.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6f45b65672c8017d5e210e338bb5858a938ef445",
      "tree": "b62877c489fb682033c37d30d91c53e4d0c3833a",
      "parents": [
        "cc53ce53c86924bfe98a12ea20b7465038a08792"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:31 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:33 2011 -0500"
      },
      "message": "Add an AT_NO_AUTOMOUNT flag to suppress terminal automount\n\nAdd an AT_NO_AUTOMOUNT flag to suppress terminal automounting of automount\npoint directories.  This can be used by fstatat() users to permit the\ngathering of attributes on an automount point and also prevent\nmass-automounting of a directory of automount points by ls.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cc53ce53c86924bfe98a12ea20b7465038a08792",
      "tree": "3c9a4923dd9f413c46bfa83a20cb579446df6deb",
      "parents": [
        "9875cf806403fae66b2410a3c2cc820d97731e04"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:26 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:07:31 2011 -0500"
      },
      "message": "Add a dentry op to allow processes to be held during pathwalk transit\n\nAdd a dentry op (d_manage) to permit a filesystem to hold a process and make it\nsleep when it tries to transit away from one of that filesystem\u0027s directories\nduring a pathwalk.  The operation is keyed off a new dentry flag\n(DCACHE_MANAGE_TRANSIT).\n\nThe filesystem is allowed to be selective about which processes it holds and\nwhich it permits to continue on or prohibits from transiting from each flagged\ndirectory.  This will allow autofs to hold up client processes whilst letting\nits userspace daemon through to maintain the directory or the stuff behind it\nor mounted upon it.\n\nThe -\u003ed_manage() dentry operation:\n\n\tint (*d_manage)(struct path *path, bool mounting_here);\n\ntakes a pointer to the directory about to be transited away from and a flag\nindicating whether the transit is undertaken by do_add_mount() or\ndo_move_mount() skipping through a pile of filesystems mounted on a mountpoint.\n\nIt should return 0 if successful and to let the process continue on its way;\n-EISDIR to prohibit the caller from skipping to overmounted filesystems or\nautomounting, and to use this directory; or some other error code to return to\nthe user.\n\n-\u003ed_manage() is called with namespace_sem writelocked if mounting_here is true\nand no other locks held, so it may sleep.  However, if mounting_here is true,\nit may not initiate or wait for a mount or unmount upon the parameter\ndirectory, even if the act is actually performed by userspace.\n\nWithin fs/namei.c, follow_managed() is extended to check with d_manage() first\non each managed directory, before transiting away from it or attempting to\nautomount upon it.\n\nfollow_down() is renamed follow_down_one() and should only be used where the\nfilesystem deliberately intends to avoid management steps (e.g. autofs).\n\nA new follow_down() is added that incorporates the loop done by all other\ncallers of follow_down() (do_add/move_mount(), autofs and NFSD; whilst AFS, NFS\nand CIFS do use it, their use is removed by converting them to use\nd_automount()).  The new follow_down() calls d_manage() as appropriate.  It\nalso takes an extra parameter to indicate if it is being called from mount code\n(with namespace_sem writelocked) which it passes to d_manage().  follow_down()\nignores automount points so that it can be used to mount on them.\n\n__follow_mount_rcu() is made to abort rcu-walk mode if it hits a directory with\nDCACHE_MANAGE_TRANSIT set on the basis that we\u0027re probably going to have to\nsleep.  It would be possible to enter d_manage() in rcu-walk mode too, and have\nthat determine whether to abort or not itself.  That would allow the autofs\ndaemon to continue on in rcu-walk mode.\n\nNote that DCACHE_MANAGE_TRANSIT on a directory should be cleared when it isn\u0027t\nrequired as every tranist from that directory will cause d_manage() to be\ninvoked.  It can always be set again when necessary.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWHAT THIS MEANS FOR AUTOFS\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAutofs currently uses the lookup() inode op and the d_revalidate() dentry op to\ntrigger the automounting of indirect mounts, and both of these can be called\nwith i_mutex held.\n\nautofs knows that the i_mutex will be held by the caller in lookup(), and so\ncan drop it before invoking the daemon - but this isn\u0027t so for d_revalidate(),\nsince the lock is only held on _some_ of the code paths that call it.  This\nmeans that autofs can\u0027t risk dropping i_mutex from its d_revalidate() function\nbefore it calls the daemon.\n\nThe bug could manifest itself as, for example, a process that\u0027s trying to\nvalidate an automount dentry that gets made to wait because that dentry is\nexpired and needs cleaning up:\n\n\tmkdir         S ffffffff8014e05a     0 32580  24956\n\tCall Trace:\n\t [\u003cffffffff885371fd\u003e] :autofs4:autofs4_wait+0x674/0x897\n\t [\u003cffffffff80127f7d\u003e] avc_has_perm+0x46/0x58\n\t [\u003cffffffff8009fdcf\u003e] autoremove_wake_function+0x0/0x2e\n\t [\u003cffffffff88537be6\u003e] :autofs4:autofs4_expire_wait+0x41/0x6b\n\t [\u003cffffffff88535cfc\u003e] :autofs4:autofs4_revalidate+0x91/0x149\n\t [\u003cffffffff80036d96\u003e] __lookup_hash+0xa0/0x12f\n\t [\u003cffffffff80057a2f\u003e] lookup_create+0x46/0x80\n\t [\u003cffffffff800e6e31\u003e] sys_mkdirat+0x56/0xe4\n\nversus the automount daemon which wants to remove that dentry, but can\u0027t\nbecause the normal process is holding the i_mutex lock:\n\n\tautomount     D ffffffff8014e05a     0 32581      1              32561\n\tCall Trace:\n\t [\u003cffffffff80063c3f\u003e] __mutex_lock_slowpath+0x60/0x9b\n\t [\u003cffffffff8000ccf1\u003e] do_path_lookup+0x2ca/0x2f1\n\t [\u003cffffffff80063c89\u003e] .text.lock.mutex+0xf/0x14\n\t [\u003cffffffff800e6d55\u003e] do_rmdir+0x77/0xde\n\t [\u003cffffffff8005d229\u003e] tracesys+0x71/0xe0\n\t [\u003cffffffff8005d28d\u003e] tracesys+0xd5/0xe0\n\nwhich means that the system is deadlocked.\n\nThis patch allows autofs to hold up normal processes whilst the daemon goes\nahead and does things to the dentry tree behind the automouter point without\nrisking a deadlock as almost no locks are held in d_manage() and none in\nd_automount().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nWas-Acked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9875cf806403fae66b2410a3c2cc820d97731e04",
      "tree": "6f9546b400716766af95e0f78e3d600e765b2b51",
      "parents": [
        "1a8edf40e7c3eee955e0dd0316a7c9d85e36f597"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 14 18:45:21 2011 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:05:03 2011 -0500"
      },
      "message": "Add a dentry op to handle automounting rather than abusing follow_link()\n\nAdd a dentry op (d_automount) to handle automounting directories rather than\nabusing the follow_link() inode operation.  The operation is keyed off a new\ndentry flag (DCACHE_NEED_AUTOMOUNT).\n\nThis also makes it easier to add an AT_ flag to suppress terminal segment\nautomount during pathwalk and removes the need for the kludge code in the\npathwalk algorithm to handle directories with follow_link() semantics.\n\nThe -\u003ed_automount() dentry operation:\n\n\tstruct vfsmount *(*d_automount)(struct path *mountpoint);\n\ntakes a pointer to the directory to be mounted upon, which is expected to\nprovide sufficient data to determine what should be mounted.  If successful, it\nshould return the vfsmount struct it creates (which it should also have added\nto the namespace using do_add_mount() or similar).  If there\u0027s a collision with\nanother automount attempt, NULL should be returned.  If the directory specified\nby the parameter should be used directly rather than being mounted upon,\n-EISDIR should be returned.  In any other case, an error code should be\nreturned.\n\nThe -\u003ed_automount() operation is called with no locks held and may sleep.  At\nthis point the pathwalk algorithm will be in ref-walk mode.\n\nWithin fs/namei.c itself, a new pathwalk subroutine (follow_automount()) is\nadded to handle mountpoints.  It will return -EREMOTE if the automount flag was\nset, but no d_automount() op was supplied, -ELOOP if we\u0027ve encountered too many\nsymlinks or mountpoints, -EISDIR if the walk point should be used without\nmounting and 0 if successful.  The path will be updated to point to the mounted\nfilesystem if a successful automount took place.\n\n__follow_mount() is replaced by follow_managed() which is more generic\n(especially with the patch that adds -\u003ed_manage()).  This handles transits from\ndirectories during pathwalk, including automounting and skipping over\nmountpoints (and holding processes with the next patch).\n\n__follow_mount_rcu() will jump out of RCU-walk mode if it encounters an\nautomount point with nothing mounted on it.\n\nfollow_dotdot*() does not handle automounts as you don\u0027t want to trigger them\nwhilst following \"..\".\n\nI\u0027ve also extracted the mount/don\u0027t-mount logic from autofs4 and included it\nhere.  It makes the mount go ahead anyway if someone calls open() or creat(),\ntries to traverse the directory, tries to chdir/chroot/etc. into the directory,\nor sticks a \u0027/\u0027 on the end of the pathname.  If they do a stat(), however,\nthey\u0027ll only trigger the automount if they didn\u0027t also say O_NOFOLLOW.\n\nI\u0027ve also added an inode flag (S_AUTOMOUNT) so that filesystems can mark their\ninodes as automount points.  This flag is automatically propagated to the\ndentry as DCACHE_NEED_AUTOMOUNT by __d_instantiate().  This saves NFS and could\nsave AFS a private flag bit apiece, but is not strictly necessary.  It would be\npreferable to do the propagation in d_set_d_op(), but that doesn\u0027t normally\nhave access to the inode.\n\n[AV: fixed breakage in case if __follow_mount_rcu() fails and nameidata_drop_rcu()\nsucceeds in RCU case of do_lookup(); we need to fall through to non-RCU case after\nthat, rather than just returning with ungrabbed *path]\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nWas-Acked-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a8edf40e7c3eee955e0dd0316a7c9d85e36f597",
      "tree": "e9776058ac678d6f8b29429e77d2de58dcc83608",
      "parents": [
        "d73b388459b1ee2e80f8ff9c1916d75640d7d920"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 13:12:53 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 15 20:03:39 2011 -0500"
      },
      "message": "do_lookup() fix\n\ndo_lookup() has a path leading from LOOKUP_RCU case to non-RCU\ncrossing of mountpoints, which breaks things badly.  If we\nhit need_revalidate: and do nothing in there, we need to come\nback into LOOKUP_RCU half of things, not to done: in non-RCU\none.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7cb3920a6529df7f54487abe973b903b8239e901",
      "tree": "d36da0fe62adfa3e2e46a485e0bdb06019b2e560",
      "parents": [
        "ad56cbf0fa6c09350c738ec59a3361f2e4ab4bc7",
        "73efe4a4ddf8eb2b1cc7039e8a66a23a424961af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 15:24:17 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 15:24:17 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: prevent NMI timeouts in cmn_err\n  xfs: Add log level to assertion printk\n  xfs: fix an assignment within an ASSERT()\n  xfs: fix error handling for synchronous writes\n  xfs: add FITRIM support\n  xfs: ensure log covering transactions are synchronous\n  xfs: serialise unaligned direct IOs\n  xfs: factor common write setup code\n  xfs: split buffered IO write path from xfs_file_aio_write\n  xfs: split direct IO write path from xfs_file_aio_write\n  xfs: introduce xfs_rw_lock() helpers for locking the inode\n  xfs: factor post-write newsize updates\n  xfs: factor common post-write isize handling code\n  xfs: ensure sync write errors are returned\n"
    },
    {
      "commit": "6ab82196492a0b6968a654a06aae923b28afef0d",
      "tree": "8affe1097bba194fe677d5399f47693dc0363dd8",
      "parents": [
        "6f7f7caab259026234277b659485d22c1dcb1ab4",
        "49731baa41df404c2c3f44555869ab387363af43"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:32:07 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:32:07 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: restore multiple bd_link_disk_holder() support\n  block cfq: compensate preempted queue even if it has no slice assigned\n  block cfq: make queue preempt work for queues from different workload\n"
    },
    {
      "commit": "6f7f7caab259026234277b659485d22c1dcb1ab4",
      "tree": "db5515958f3cc27462b3c8324b1fb05677193d52",
      "parents": [
        "d018b6f4f1539f3679fbdc2d02d58d09e76be84a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:26:18 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:26:18 2011 -0800"
      },
      "message": "Turn d_set_d_op() BUG_ON() into WARN_ON_ONCE()\n\nIt\u0027s indicative of a real problem, and it actually triggers with\nautofs4, but the BUG_ON() is excessive.  The autofs4 case is being fixed\n(to only set d_op in the -\u003elookup method) but not merged yet.  In the\nmeantime this gets the code limping along.\n\nReported-by: Alex Elder \u003caelder@sgi.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18bce371ae09af6c20ee62c1092a4d1d0e84dd49",
      "tree": "f3467fafd8e49392e3f6efef7b88a7b4dd3b7b06",
      "parents": [
        "ec08bdb148767f1193f5f3028749ed865ac27181",
        "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 13:17:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.38\u0027 of git://linux-nfs.org/~bfields/linux: (62 commits)\n  nfsd4: fix callback restarting\n  nfsd: break lease on unlink, link, and rename\n  nfsd4: break lease on nfsd setattr\n  nfsd: don\u0027t support msnfs export option\n  nfsd4: initialize cb_per_client\n  nfsd4: allow restarting callbacks\n  nfsd4: simplify nfsd4_cb_prepare\n  nfsd4: give out delegations more quickly in 4.1 case\n  nfsd4: add helper function to run callbacks\n  nfsd4: make sure sequence flags are set after destroy_session\n  nfsd4: re-probe callback on connection loss\n  nfsd4: set sequence flag when backchannel is down\n  nfsd4: keep finer-grained callback status\n  rpc: allow xprt_class-\u003esetup to return a preexisting xprt\n  rpc: keep backchannel xprt as long as server connection\n  rpc: move sk_bc_xprt to svc_xprt\n  nfsd4: allow backchannel recovery\n  nfsd4: support BIND_CONN_TO_SESSION\n  nfsd4: modify session list under cl_lock\n  Documentation: fl_mylease no longer exists\n  ...\n\nFix up conflicts in fs/nfsd/vfs.c with the vfs-scale work.  The\nvfs-scale work touched some msnfs cases, and this merge removes support\nfor that entirely, so the conflict was trivial to resolve.\n"
    },
    {
      "commit": "a8f2800b4f7b76cecb7209cb6a7d2b14904fc711",
      "tree": "29a582ee8af49577cce3e868800dfd8d8485b1e3",
      "parents": [
        "4795bb37effb7b8fe77e2d2034545d062d3788a8"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 14 14:25:48 2011 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Jan 14 14:51:31 2011 -0500"
      },
      "message": "nfsd4: fix callback restarting\n\nEnsure a new callback is added to the client\u0027s list of callbacks at most\nonce.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "bd7633195581c7665ce9dd80c665ec93466d1b64",
      "tree": "a3a82eff9b960c59a07d3bc9b8145d6bac24c02c",
      "parents": [
        "56c24305d1494a7e345c75669dc60e8b231b735b"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 11 10:33:24 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jan 14 18:51:11 2011 +0000"
      },
      "message": "cifs: add cruid\u003d mount option\n\nIn commit 3e4b3e1f we separated the \"uid\" mount option such that it\nno longer determined the owner of the credential cache by default. When\nwe did this, we added a new option to cifs.upcall (--legacy-uid) to\ntry to make it so that it would behave the same was as it did before.\n\nThis ignored a rather important point -- the kernel has no way to know\nwhat options are being passed to cifs.upcall, so it doesn\u0027t know what\nuid it should use to determine whether to match an existing krb5 session.\n\nThe simplest solution is to simply add a new \"cruid\u003d\" mount option that\nonly governs the uid owner of the credential cache for the mount.\n\nUnfortunately, this means that the --legacy-uid option in cifs.upcall was\nill-considered and is now useless, but I don\u0027t see a better way to deal\nwith this.\n\nA patch for the mount.cifs manpage will follow once this patch has been\naccepted.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "56c24305d1494a7e345c75669dc60e8b231b735b",
      "tree": "d7a39b2743b9ec2dc1434c5b2ee04ef9f04248d5",
      "parents": [
        "891cc2283216bf76f387546f0e220caf8ce9fbf9"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 11 07:24:25 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jan 14 18:51:11 2011 +0000"
      },
      "message": "cifs: cFYI the entire error code in map_smb_to_linux_error\n\nWe currently only print the DOS error part.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "49731baa41df404c2c3f44555869ab387363af43",
      "tree": "5d3476368fa546aebb1c223e9cf1bab5ad80f698",
      "parents": [
        "c553f8e335c00a7cff3ab3f13e793b13d3f2207f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 14 18:43:57 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Jan 14 18:44:22 2011 +0100"
      },
      "message": "block: restore multiple bd_link_disk_holder() support\n\nCommit e09b457b (block: simplify holder symlink handling) incorrectly\nassumed that there is only one link at maximum.  dm may use multiple\nlinks and expects block layer to track reference count for each link,\nwhich is different from and unrelated to the exclusive device holder\nidentified by @holder when the device is opened.\n\nRemove the single holder assumption and automatic removal of the link\nand revive the per-link reference count tracking.  The code\nessentially behaves the same as before commit e09b457b sans the\nunnecessary kobject reference count dancing.\n\nWhile at it, note that this facility should not be used by anyone else\nthan the current ones.  Sysfs symlinks shouldn\u0027t be abused like this\nand the whole thing doesn\u0027t belong in the block layer at all.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: linux-raid@vger.kernel.org\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0ad53eeefcbb2620b6a71ffdaad4add20b450b8b",
      "tree": "6f24c2d7b0a7554842544e51bd8e52159086669e",
      "parents": [
        "e1fcc7e2a719d139322fab3f47cfbd4340cf3d82"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 14 15:56:37 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 09:25:11 2011 -0800"
      },
      "message": "afs: add afs_wq and use it instead of the system workqueue\n\nflush_scheduled_work() is going away.  afs needs to make sure all the\nworks it has queued have finished before being unloaded and there can\nbe arbitrary number of pending works.  Add afs_wq and use it as the\nflush domain instead of the system workqueue.\n\nAlso, convert cancel_delayed_work() + flush_scheduled_work() to\ncancel_delayed_work_sync() in afs_mntpt_kill_timer().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: linux-afs@lists.infradead.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba28b93a5227cc69ec811507f7d85ac25fa20fe2",
      "tree": "1ae3a8d6b19528277f5a622705b633a43f5218b8",
      "parents": [
        "acda4721ae876dedab3fef04bbd8020bfa67ff0a"
      ],
      "author": {
        "name": "Akshat Aranya",
        "email": "aranya@nec-labs.com",
        "time": "Fri Jan 14 16:00:47 2011 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 09:23:36 2011 -0800"
      },
      "message": "FS-Cache: Fix operation handling\n\nfscache_submit_exclusive_op() adds an operation to the pending list if\nother operations are pending.  Fix the check for pending ops as n_ops\nmust be greater than 0 at the point it is checked as it is incremented\nimmediately before under lock.\n\nSigned-off-by: Akshat Aranya \u003caranya@nec-labs.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "acda4721ae876dedab3fef04bbd8020bfa67ff0a",
      "tree": "ec48d554fe48b3915912e2ae62bc962ade0553bd",
      "parents": [
        "822e5215f9eef86c1dd56d5696bf55a212b0e3f0",
        "32385c7cf60a78375b63afc4f02001df84dfd1a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 09:08:29 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 14 09:08:29 2011 -0800"
      },
      "message": "Merge branch \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin\n\n* \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin:\n  kernel: fix hlist_bl again\n  cgroups: Fix a lockdep warning at cgroup removal\n  fs: namei fix -\u003eput_link on wrong inode in do_filp_open\n"
    },
    {
      "commit": "7b9337aaf98f9941d0927a75217d3ff31afec609",
      "tree": "d61753169b24d521147116717f310dfb65d3d20d",
      "parents": [
        "f20877d94a74557b7c28b4ed8920d834c31e0ea5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 14 08:42:43 2011 +0000"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 14 08:42:43 2011 +0000"
      },
      "message": "fs: namei fix -\u003eput_link on wrong inode in do_filp_open\n\nJ. R. Okajima noticed that -\u003eput_link is being attempted on the\nwrong inode, and suggested the way to fix it. I changed it a bit\naccording to Al\u0027s suggestion to keep an explicit link path around.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "db9effe99adc67c53e6aedadadd2aa9a02342e48",
      "tree": "efe7ebfe951972568189ef2548130f0abd515210",
      "parents": [
        "9c4bc1c2befbbdce4b9fd526e67a7a2ea143ffa2",
        "f20877d94a74557b7c28b4ed8920d834c31e0ea5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 20:14:13 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 20:14:13 2011 -0800"
      },
      "message": "Merge branch \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin\n\n* \u0027vfs-scale-working\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin:\n  fs: fix do_last error case when need_reval_dot\n  nfs: add missing rcu-walk check\n  fs: hlist UP debug fixup\n  fs: fix dropping of rcu-walk from force_reval_path\n  fs: force_reval_path drop rcu-walk before d_invalidate\n  fs: small rcu-walk documentation fixes\n\nFixed up trivial conflicts in Documentation/filesystems/porting\n"
    },
    {
      "commit": "f20877d94a74557b7c28b4ed8920d834c31e0ea5",
      "tree": "88ea4019a1a8a0a3b8c2f24479ec44b353928f3f",
      "parents": [
        "657e94b673a805b427903c5628e95348235fad06"
      ],
      "author": {
        "name": "J. R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Fri Jan 14 03:56:04 2011 +0000"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 14 03:56:04 2011 +0000"
      },
      "message": "fs: fix do_last error case when need_reval_dot\n\nWhen open(2) without O_DIRECTORY opens an existing dir, it should return\nEISDIR. In do_last(), the variable \u0027error\u0027 is initialized EISDIR, but it\nis changed by d_revalidate() which returns any positive to represent\n\u0027the target dir is valid.\u0027\n\nShould we keep and return the initialized \u0027error\u0027 in this case.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "657e94b673a805b427903c5628e95348235fad06",
      "tree": "0c174e387cb5d3fd3a2b55e154219cc67b644637",
      "parents": [
        "2c6755988afc003a0332406a134fb6a1626f9b28"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 14 02:48:39 2011 +0000"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 14 02:48:39 2011 +0000"
      },
      "message": "nfs: add missing rcu-walk check\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "90dbb77ba48dddb87445d238e84cd137cf97dd98",
      "tree": "446772602e5944075a6c614db05dd06681f3f3d8",
      "parents": [
        "bb20c18db6fbb5e6ba499c76473a487d35073467"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 14 02:36:19 2011 +0000"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@hera.kernel.org",
        "time": "Fri Jan 14 02:36:19 2011 +0000"
      },
      "message": "fs: fix dropping of rcu-walk from force_reval_path\n\nAs J. R. Okajima noted, force_reval_path passes in the same dentry to\nd_revalidate as the one in the nameidata structure (other callers pass in a\nchild), so the locking breaks. This can oops with a chrooted nfs mount, for\nexample. Similarly there can be other problems with revalidating a dentry\nwhich is already in nameidata of the path walk.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    }
  ],
  "next": "bb20c18db6fbb5e6ba499c76473a487d35073467"
}
