)]}'
{
  "log": [
    {
      "commit": "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
      "tree": "1f967f283dade6e03897169bb29513354f49f910",
      "parents": [
        "50223e486cabdcf7e540e519da1f26bab3084e5d",
        "24ed7a97464db44592495f98cff8bcee02f92bc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)\n  trivial: fix typo in aic7xxx comment\n  trivial: fix comment typo in drivers/ata/pata_hpt37x.c\n  trivial: typo in kernel-parameters.txt\n  trivial: fix typo in tracing documentation\n  trivial: add __init/__exit macros in drivers/gpio/bt8xxgpio.c\n  trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c\n  trivial: remove unnecessary semicolons\n  trivial: Fix duplicated word \"options\" in comment\n  trivial: kbuild: remove extraneous blank line after declaration of usage()\n  trivial: improve help text for mm debug config options\n  trivial: doc: hpfall: accept disk device to unload as argument\n  trivial: doc: hpfall: reduce risk that hpfall can do harm\n  trivial: SubmittingPatches: Fix reference to renumbered step\n  trivial: fix typos \"man[ae]g?ment\" -\u003e \"management\"\n  trivial: media/video/cx88: add __init/__exit macros to cx88 drivers\n  trivial: fix typo in CONFIG_DEBUG_FS in gcov doc\n  trivial: fix missing printk space in amd_k7_smp_check\n  trivial: fix typo s/ketymap/keymap/ in comment\n  trivial: fix typo \"to to\" in multiple files\n  trivial: fix typos in comments s/DGBU/DBGU/\n  ...\n"
    },
    {
      "commit": "b87221de6a4934eda856475a0065688d12973a04",
      "tree": "6bcf0628e106c4833538f4c23d710fbbe3d7609a",
      "parents": [
        "0d54b217a247f39605361f867fefbb9e099a5432"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining super_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d54b217a247f39605361f867fefbb9e099a5432",
      "tree": "5af6a2cc4cbc6c327e735ac5edb642d47a1f0013",
      "parents": [
        "61e225dc341107be304fd1088146c2a5e88ff9e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: make struct super_block::s_qcop const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "411c94038594b2a3fd123d09bdec3fe2500e383d",
      "tree": "44b991786c7f4806b1b88f40439945b3835b6292",
      "parents": [
        "786d8ca341a30296264bc6cebac52d37b0851647"
      ],
      "author": {
        "name": "Anand Gadiyar",
        "email": "gadiyar@ti.com",
        "time": "Tue Jul 07 15:24:23 2009 +0530"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Sep 21 15:14:54 2009 +0200"
      },
      "message": "trivial: fix typo \"for for\" in multiple files\n\ntrivial: fix typo \"for for\" in multiple files\n\nSigned-off-by: Anand Gadiyar \u003cgadiyar@ti.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "fdec29c5fcd2705d61c1d14a1d4c74be03e9627c",
      "tree": "bcf5d4dd46b4945f3b4bec6b763ff9a9484e4e59",
      "parents": [
        "0cb583fd2862f19ea88b02eb307d11c09e51e2f8",
        "9ef96da6ec5e1b4cf7eb8e30852cd88ec7d5fdc0"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Sep 15 21:37:47 2009 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Sep 15 21:37:47 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://oss.sgi.com/xfs/xfs into for-linus\n\nConflicts:\n\tfs/xfs/linux-2.6/xfs_lrw.c\n"
    },
    {
      "commit": "9ef96da6ec5e1b4cf7eb8e30852cd88ec7d5fdc0",
      "tree": "c6f289939c371628a6bd0a4da945a0993e37c882",
      "parents": [
        "361735fd8ff8f7d8b9f0e134d0d99d99ee193d92"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Sun Aug 09 20:23:12 2009 +0530"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Sep 15 12:30:30 2009 -0500"
      },
      "message": "xfs: includecheck fix for fs/xfs/xfs_iops.c\n\nfix the following \u0027make includecheck\u0027 warning:\n\n  fs/xfs/linux-2.6/xfs_iops.c: xfs_acl.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "361735fd8ff8f7d8b9f0e134d0d99d99ee193d92",
      "tree": "16cc89f80380bc6d7fec6dee0c3553039fc671da",
      "parents": [
        "f08a59f1467b92cd9b8c78961506f69c74bb01a5"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Aug 28 23:55:00 2009 +0400"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Sep 15 12:29:24 2009 -0500"
      },
      "message": "xfs: switch to seq_file\n\ncreate_proc_read_entry() is getting deprecated.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "af0f4414f343429971d33b0dd8dccc85c1f3dcd2",
      "tree": "1b053812591d19f618240672eb74fd74912c29c1",
      "parents": [
        "d23c937b0f740888765676f6f82f509dbbb2bbad"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 18:32:55 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:17 2009 +0200"
      },
      "message": "xfs: Convert sync_page_range() to simple filemap_write_and_wait_range()\n\nChristoph Hellwig says that it is enough for XFS to call\nfilemap_write_and_wait_range() instead of sync_page_range() because we do\nall the metadata syncing when forcing the log.\n\nCC: Felix Blyakher \u003cfelixb@sgi.com\u003e\nCC: xfs@oss.sgi.com\nCC: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4734d401d43c6469d568caf223d37aa0fc1bf4dc",
      "tree": "d73cbfd3537a5681ab5523e320a55b240b2fdd72",
      "parents": [
        "988abe4075e5748d9f7c79d9dfffa0cf5291611b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 09 18:19:02 2009 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Sep 09 18:19:02 2009 -0500"
      },
      "message": "xfs: use correct log reservation when handling ENOSPC in xfs_create\n\nWe added the ENOSPC handling patch in xfs_create just after it got mered\nwith xfs_mkdir.  Change the log reservation to the variable for either\nthe create or mkdir value so it does the right thing if get here for creating\na directory.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "18f4c644773bc8de1fd9c5182b30c231aafb94ef",
      "tree": "b423bdb22304c6af3ad0f26b873e6081fafc8f01",
      "parents": [
        "1d5ccd1c422d7d292a9e45248aa36771900c6331"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 12:29:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:09:04 2009 -0700"
      },
      "message": "jffs2/jfs/xfs: switch over to \u0027check_acl\u0027 rather than \u0027permission()\u0027\n\nThis avoids an indirect call in the VFS for each path component lookup.\n\nWell, at least as long as you own the directory in question, and the ACL\ncheck is unnecessary.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "988abe4075e5748d9f7c79d9dfffa0cf5291611b",
      "tree": "929f60ead5fd0c230d2d51dc44d805bdc10e6dc3",
      "parents": [
        "81e251766e8f8c9d7abb5db784e58c5c45f82797"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Sep 02 17:02:24 2009 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Sep 02 17:02:24 2009 -0500"
      },
      "message": "xfs: xfs_showargs() reports group *and* project quotas enabled\n\nIf you enable group or project quotas on an XFS file system, then the\nmount table presented through /proc/self/mounts erroneously shows\nthat both options are in effect for the file system.  The root of\nthe problem is some bad logic in the xfs_showargs() function, which\nis used to format the file system type-specific options in effect\nfor a file system.\n\nThe problem originated in this GIT commit:\n    Move platform specific mount option parse out of core XFS code\n    Date: 11/22/07\n    Author: Dave Chinner\n    SHA1 ID: a67d7c5f5d25d0b13a4dfb182697135b014fa478\n\nFor XFS quotas, project and group quota management are mutually\nexclusive--only one can be in effect at a time.  There are two\nparts to managing quotas:  aggregating usage information; and\nenforcing limits.  It is possible to have a quota in effect\n(aggregating usage) but not enforced.\n\nThese features are recorded on an XFS mount point using these flags:\n    XFS_PQUOTA_ACCT - Project quotas are aggregated\n    XFS_GQUOTA_ACCT - Group quotas are aggregated\n    XFS_OQUOTA_ENFD - Project/group quotas are enforced\n\nThe code in error is in fs/xfs/linux-2.6/xfs_super.c:\n\n        if (mp-\u003em_qflags \u0026 (XFS_PQUOTA_ACCT|XFS_OQUOTA_ENFD))\n                seq_puts(m, \",\" MNTOPT_PRJQUOTA);\n        else if (mp-\u003em_qflags \u0026 XFS_PQUOTA_ACCT)\n                seq_puts(m, \",\" MNTOPT_PQUOTANOENF);\n\n        if (mp-\u003em_qflags \u0026 (XFS_GQUOTA_ACCT|XFS_OQUOTA_ENFD))\n                seq_puts(m, \",\" MNTOPT_GRPQUOTA);\n        else if (mp-\u003em_qflags \u0026 XFS_GQUOTA_ACCT)\n                seq_puts(m, \",\" MNTOPT_GQUOTANOENF);\n\nThe problem is that XFS_OQUOTA_ENFD will be set in mp-\u003em_qflags\nif either group or project quotas are enforced, and as a result\nboth MNTOPT_PRJQUOTA and MNTOPT_GRPQUOTA will be shown as mount\noptions.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "81e251766e8f8c9d7abb5db784e58c5c45f82797",
      "tree": "10346e889fd15183c4253f392cf5d2ffa6cdf85f",
      "parents": [
        "f4378b6eaf63492c0f9a397d52813e0ae6b49e7b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 01 19:56:55 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 20:43:01 2009 -0500"
      },
      "message": "xfs: un-static xfs_inobt_lookup\n\nxfs_inobt_lookup is also used in xfs_itable.c, remove the STATIC modifier\nfrom it\u0027s declaration to fix non-debug builds.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "3725867dccfb83e4b0cff64e916a04258f300591",
      "tree": "5c7f888895bf63994a85a02658f1a3433b2dccae",
      "parents": [
        "bc990f5cb424cdca9dda866785d088e2c2110ecc"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 01 14:03:08 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 17:00:46 2009 -0500"
      },
      "message": "xfs: actually enable the swapext compat handler\n\nFix a small typo in the compat ioctl handler that cause the swapext\ncompat handler to never be called.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nTested-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "f4378b6eaf63492c0f9a397d52813e0ae6b49e7b",
      "tree": "2aaaae7bf689f5af74036e3649dec2a713f8df3f",
      "parents": [
        "aa72a5cf00001d0b952c7c755be404b9118ceb2e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 01 14:03:08 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 16:55:53 2009 -0500"
      },
      "message": "xfs: actually enable the swapext compat handler\n\nFix a small typo in the compat ioctl handler that cause the swapext\ncompat handler to never be called.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nTested-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "aa72a5cf00001d0b952c7c755be404b9118ceb2e",
      "tree": "2100d71c9d697f48f4c868b6631242c7292e5fd4",
      "parents": [
        "13e6d5cdde0e785aa943810f08b801cadd0935df"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 21:51:52 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:46:16 2009 -0500"
      },
      "message": "xfs: simplify xfs_trans_iget\n\nxfs_trans_iget is a wrapper for xfs_iget that adds the inode to the\ntransaction after it is read.  Except when the inode already is in the\ninode cache, in which case it returns the existing locked inode with\nincrement lock recursion counts.\n\nNow, no one in the tree every decrements these lock recursion counts,\nso any user of this gets a potential double unlock when both the original\nowner of the inode and the xfs_trans_iget caller unlock it.  When looking\nback in a git bisect in the historic XFS tree there was only one place\nthat decremented these counts, xfs_trans_iput.  Introduced in commit\nca25df7a840f426eb566d52667b6950b92bb84b5 by Adam Sweeney in 1993,\nand removed in commit 19f899a3ab155ff6a49c0c79b06f2f61059afaf3 by\nSteve Lord in 2003.  And as long as it didn\u0027t slip through git bisects\ncracks never actually used in that time frame.\n\nA quick audit of the callers of xfs_trans_iget shows that no caller\nreally relies on this behaviour fortunately - xfs_ialloc allows this\ninode from disk so it must not be there before, and all the RT allocator\nroutines only every add each RT bitmap inode once.\n\nIn addition to removing lots of code and reducing the size of the inode\nitem this patch also avoids the double inode cache lookup in each\ncreate/mkdir/mknod transaction.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "13e6d5cdde0e785aa943810f08b801cadd0935df",
      "tree": "72b62d1e3e4b35f1613458b6e1dbbadd74534a92",
      "parents": [
        "bd169565993b39b9b4b102cdac8b13e0a259ce2f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 21:00:31 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:57 2009 -0500"
      },
      "message": "xfs: merge fsync and O_SYNC handling\n\nThe guarantees for O_SYNC are exactly the same as the ones we need to\nmake for an fsync call (and given that Linux O_SYNC is O_DSYNC the\nequivalent is fdadatasync, but we treat both the same in XFS), except\nwith a range data writeout.  Jan Kara has started unifying these two\npath for filesystems using the generic helpers, and I\u0027ve started to\nlook at XFS.\n\nThe actual transaction commited by xfs_fsync and xfs_write_sync_logforce\nhas a different transaction number, but actually is exactly the same.\nWe\u0027ll only use the fsync transaction going forward.  One major difference\nis that xfs_write_sync_logforce never issues a cache flush unless we\ncommit a transaction causing that as a side-effect, which is an obvious\nbug in the O_SYNC handling.  Second all the locking and i_update_size\nvs i_update_core changes from 978b7237123d007b9fa983af6e0e2fa8f97f9934\nnever made it to xfs_write_sync_logforce, so we add them back.\n\nTo make xfs_fsync easily usable from the O_SYNC path, the filemap_fdatawait\ncall is moved up to xfs_file_fsync, so that we don\u0027t wait on the whole\nfile after we already waited for our portion in xfs_write.\n\nWe\u0027ll also use a plain call to filemap_write_and_wait_range instead\nof the previous sync_page_rang which did it in two steps including\nan half-hearted inode write out that doesn\u0027t help us.\n\nOnce we\u0027re done with this also remove the now useless i_update_size\ntracking.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "bd169565993b39b9b4b102cdac8b13e0a259ce2f",
      "tree": "4cc6dc56cf7a2b9af71156299e091062dbe30594",
      "parents": [
        "2187550525d7bcb8c87689e4eca41b1955bf9ac3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dgc@sgi.com",
        "time": "Mon Aug 31 20:58:28 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:48 2009 -0500"
      },
      "message": "xfs: speed up free inode search\n\nDon\u0027t search too far - abort if it is outside a certain radius and simply do\na linear search for the first free inode.  In AGs with a million inodes this\ncan speed up allocation speed by 3-4x.\n\n[hch: ported to the new xfs_ialloc.c world order]\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "2187550525d7bcb8c87689e4eca41b1955bf9ac3",
      "tree": "1538be459d9d37a9daf537885e93a3cf20ee49c8",
      "parents": [
        "4254b0bbb1c0826b7443ffa593576696bc591aa2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 20:58:21 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:39 2009 -0500"
      },
      "message": "xfs: rationalize xfs_inobt_lookup*\n\nCurrenly we have a xfs_inobt_lookup* variant for each comparism direction,\nand all these get all three fields of the inobt records passed, while the\ncommon case is just looking for the inode number and we have only marginally\nmore callers than xfs_inobt_lookup* variants.\n\nSo opencode a direct call to xfs_btree_lookup for the single case where we\nneed all fields, and replace xfs_inobt_lookup* with a xfs_inobt_looku that\njust takes the inode number and the direction for all other callers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "4254b0bbb1c0826b7443ffa593576696bc591aa2",
      "tree": "bf938f43d83c31a6aa87825e5fe0c2c2388d52d2",
      "parents": [
        "0b48db80ba689edfd96ed06c3124d6cf1146de3f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 20:57:14 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:29 2009 -0500"
      },
      "message": "xfs: untangle xfs_dialloc\n\nClarify the control flow in xfs_dialloc.  Factor out a helper to go to the\nnext node from the current one and improve the control flow by expanding\ncomposite if statements and using gotos.\n\nThe xfs_ialloc_next_rec helper is borrowed from Dave Chinners dynamic\nallocation policy patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "0b48db80ba689edfd96ed06c3124d6cf1146de3f",
      "tree": "d145e86f4bb459fc5462e7b97aeec4b01c55a7d6",
      "parents": [
        "afabc24a73bfee2656724b0a70395f1693eaa62b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dgc@sgi.com",
        "time": "Mon Aug 31 20:57:09 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:18 2009 -0500"
      },
      "message": "xfs: factor out debug checks from xfs_dialloc and xfs_difree\n\nFactor out a common helper from repeated debug checks in xfs_dialloc and\nxfs_difree.\n\n[hch: split out from Dave\u0027s dynamic allocation policy patches]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "afabc24a73bfee2656724b0a70395f1693eaa62b",
      "tree": "0cd8058f3a014a64941934d05db47c88e5a823c3",
      "parents": [
        "2e287a731e0607e0371dc6165b7dd3ebc67fa8e1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 20:57:03 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:08 2009 -0500"
      },
      "message": "xfs: improve xfs_inobt_update prototype\n\nBoth callers of xfs_inobt_update have the record in form of a\nxfs_inobt_rec_incore_t, so just pass a pointer to it instead of the\nindividual variables.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "2e287a731e0607e0371dc6165b7dd3ebc67fa8e1",
      "tree": "d51ee5e646aff15965cb483a0e4236cc140105cc",
      "parents": [
        "85c0b2ab5e69ca6133380ead1c50e0840d136b39"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 20:56:58 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:44:56 2009 -0500"
      },
      "message": "xfs: improve xfs_inobt_get_rec prototype\n\nMost callers of xfs_inobt_get_rec need to fill a xfs_inobt_rec_incore_t, and\nthose who don\u0027t yet are fine with a xfs_inobt_rec_incore_t, instead of the\nthree individual variables, too.  So just change xfs_inobt_get_rec to write\nthe output into a xfs_inobt_rec_incore_t directly.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "85c0b2ab5e69ca6133380ead1c50e0840d136b39",
      "tree": "915fe86af550398d131071456c772053917e298c",
      "parents": [
        "1da1daed813c534263a87ffc36d5b775e65231ad"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Aug 31 20:56:51 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:44:27 2009 -0500"
      },
      "message": "xfs: factor out inode initialisation\n\nFactor out code to initialize new inode clusters into a function of it\u0027s own.\nThis keeps xfs_ialloc_ag_alloc smaller and better structured and enables a\nfuture inode cluster initialization transaction.  Also initialize the agno\nvariable earlier in xfs_ialloc_ag_alloc to avoid repeated byte swaps.\n\n[hch:  The original patch is from Dave from his unpublished inode create\n transaction patch series, with some modifcations by me to apply stand-alone]\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "a0f7bfd3429fc48f4d1aa5364b9428d75798ba04",
      "tree": "ebe8965e3c4337c5287daac4cb51c21e83239fc2",
      "parents": [
        "eb00457d624c70a2492c319e7e05ed7e067b2794"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Jul 27 18:15:25 2009 +0200"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Aug 31 14:46:22 2009 -0500"
      },
      "message": "fs/xfs: Correct redundant test\n\nbp was tested for NULL a few lines before, followed by a return, and there\nis no intervening modification of its value.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nexpression E;\nposition p1,p2;\n@@\n\nif (x \u003d\u003d NULL || ...) { ... when forall\n   return ...; }\n... when !\u003d \\(x\u003dE\\|x--\\|x++\\|--x\\|++x\\|x-\u003dE\\|x+\u003dE\\|x|\u003dE\\|x\u0026\u003dE\\|\u0026x\\)\n(\n*x \u003d\u003d NULL\n|\n*x !\u003d NULL\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nAcked-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "eb00457d624c70a2492c319e7e05ed7e067b2794",
      "tree": "fd307d2427f4a50b911b83827d61eac6a6a6a3eb",
      "parents": [
        "fef1111ecdd2b5198afe91537a5cd4c6be80a255"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sun Jul 05 12:23:35 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Aug 31 14:46:22 2009 -0500"
      },
      "message": "xfs: remove XFS_INO64_OFFSET\n\nCommit a19d9f887d81106d52cacbc9930207b487e07e0e removed the\nino64 option but left the XFS_INO64_OFFSET define it used\nin place - just remove it.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "fef1111ecdd2b5198afe91537a5cd4c6be80a255",
      "tree": "f281731b0f731478d4f62384ab6f3121b8b7a5d7",
      "parents": [
        "d96f8f891f69ac1dc8c7bd82e27525de220c04e1"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Thu Jul 02 21:35:43 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Aug 31 14:46:21 2009 -0500"
      },
      "message": "un-static xfs_read_agf\n\nCONFIG_XFS_DEBUG builds still need xfs_read_agf to be\nnon-static, oops.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "d96f8f891f69ac1dc8c7bd82e27525de220c04e1",
      "tree": "2f9af0f625a164bee6f369feba8aa2a99e73a753",
      "parents": [
        "bc990f5cb424cdca9dda866785d088e2c2110ecc"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Thu Jul 02 00:09:33 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Aug 31 14:46:20 2009 -0500"
      },
      "message": "xfs: add more statics \u0026 drop some unused functions\n\nA lot more functions could be made static, but they need\nforward declarations; this does some easy ones, and also\nfound a few unused functions in the process.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "bc990f5cb424cdca9dda866785d088e2c2110ecc",
      "tree": "4264beb9538533d136e41f0e93933160fe925008",
      "parents": [
        "894ef820b10d77e2d6d717342fc408bdd9825139"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Aug 16 20:36:34 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Aug 17 01:23:48 2009 -0500"
      },
      "message": "xfs: fix locking in xfs_iget_cache_hit\n\nThe locking in xfs_iget_cache_hit currently has numerous problems:\n\n - we clear the reclaim tag without i_flags_lock which protects\n   modifications to it\n - we call inode_init_always which can sleep with pag_ici_lock\n   held (this is oss.sgi.com BZ #819)\n - we acquire and drop i_flags_lock a lot and thus provide no\n   consistency between the various flags we set/clear under it\n\nThis patch fixes all that with a major revamp of the locking in\nthe function.  The new version acquires i_flags_lock early and\nonly drops it once we need to call into inode_init_always or before\ncalling xfs_ilock.\n\nThis patch fixes a bug seen in the wild where we race modifying the\nreclaim tag.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "78efd1ddd95d2fac1ed8d5fadd9dab885ea70e55",
      "tree": "c1f6fc2afe93250f7dd5e37f3ee1f57281b19bf0",
      "parents": [
        "b637dc0dba6a243da2c74f5d02b42ba5eeb9425e",
        "a8914f3a6d72c97328597a556a99daaf5cc288ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 12 08:49:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 12 08:49:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix spin_is_locked assert on uni-processor builds\n  xfs: check for dinode realtime flag corruption\n  use XFS_CORRUPTION_ERROR in xfs_btree_check_sblock\n  xfs: switch to NOFS allocation under i_lock in xfs_attr_rmtval_get\n  xfs: switch to NOFS allocation under i_lock in xfs_readlink_bmap\n  xfs: switch to NOFS allocation under i_lock in xfs_attr_rmtval_set\n  xfs: switch to NOFS allocation under i_lock in xfs_buf_associate_memory\n  xfs: switch to NOFS allocation under i_lock in xfs_dir_cilookup_result\n  xfs: switch to NOFS allocation under i_lock in xfs_da_buf_make\n  xfs: switch to NOFS allocation under i_lock in xfs_da_state_alloc\n  xfs: switch to NOFS allocation under i_lock in xfs_getbmap\n  xfs: avoid memory allocation under m_peraglock in growfs code\n"
    },
    {
      "commit": "a8914f3a6d72c97328597a556a99daaf5cc288ae",
      "tree": "95f569b102f56dfa70cfb8019ef63be8ee828fc1",
      "parents": [
        "b89d4208de3de442c9025919c4261be0b38e79a4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 10 11:32:44 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:08:27 2009 -0500"
      },
      "message": "xfs: fix spin_is_locked assert on uni-processor builds\n\nWithout SMP or preemption spin_is_locked always returns false,\nso we can\u0027t do an assert with it.  Instead use assert_spin_locked,\nwhich does the right thing on all builds.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReported-by: Johannes Engel \u003cjcnengel@googlemail.com\u003e\nTested-by: Johannes Engel \u003cjcnengel@googlemail.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "b89d4208de3de442c9025919c4261be0b38e79a4",
      "tree": "3c47c8d10c3ef50e2423528d0d8db7a738928621",
      "parents": [
        "e0c222c411e22f086e929cd69fdcc89336164ec1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 10 11:32:18 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:08:21 2009 -0500"
      },
      "message": "xfs: check for dinode realtime flag corruption\n\nRamon tested XFS with a modified version of fsfuzzer and hit a NULL\npointer dereference in __xfs_get_blocks due to the RT device target\npointer being NULL.\n\nTo fix this reject inode with the realtime bit set on a a filesystem\nwithout an RT subvolume during inode read.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nReported-by: Ramon de Carvalho Valle \u003cramon@risesecurity.org\u003e\nTested-by: Ramon de Carvalho Valle \u003cramon@risesecurity.org\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "e0c222c411e22f086e929cd69fdcc89336164ec1",
      "tree": "9ebfde895dfa96d1ee01d1979ccbfae1b35c971b",
      "parents": [
        "ddd3a14e0f030f0f7b900621f67532285b8657ef"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Mon Jul 20 10:52:15 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:08:10 2009 -0500"
      },
      "message": "use XFS_CORRUPTION_ERROR in xfs_btree_check_sblock\n\nIn Red Hat Bug 512552\n - Can\u0027t write to XFS mount during raid5 resync\n\na user ran into corruption while resyncing a raid, and we failed\na consistency test, but didn\u0027t get much more info; it\u0027d be nice\nto call XFS_CORRUPTION_ERROR here so we can see the buffer\ncontents.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "ddd3a14e0f030f0f7b900621f67532285b8657ef",
      "tree": "d8c0d11c5adc45b1a6657ddd51b6435e3d28f1f9",
      "parents": [
        "7b02ecb3031b192823bc732ae717febc0a59aa92"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:15:01 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:08:01 2009 -0500"
      },
      "message": "xfs: switch to NOFS allocation under i_lock in xfs_attr_rmtval_get\n\nxfs_attr_rmtval_get is always called with i_lock held, but i_lock is taken\nin reclaim context so all allocations under it must avoid recursions into\nthe filesystem.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "7b02ecb3031b192823bc732ae717febc0a59aa92",
      "tree": "aeb5e3c56f4634ad3b391dd8a7eab1fce81f0eea",
      "parents": [
        "10746e47e722b5688fcd6eba9fbf9b2e64a248a7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:15:00 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:07:53 2009 -0500"
      },
      "message": "xfs: switch to NOFS allocation under i_lock in xfs_readlink_bmap\n\nxfs_readlink_bmap is called with i_lock held, but i_lock is taken in\nreclaim context so all allocations under it must avoid recursions into\nthe filesystem.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "10746e47e722b5688fcd6eba9fbf9b2e64a248a7",
      "tree": "5109c89eed3c087cf5889297881a5dc5d9efd3ce",
      "parents": [
        "36fae17a648e0aee5d9560514d08477ef48dc87f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:14:59 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:07:44 2009 -0500"
      },
      "message": "xfs: switch to NOFS allocation under i_lock in xfs_attr_rmtval_set\n\nxfs_attr_rmtval_set is always called with i_lock held, and i_lock is taken\nin reclaim context so all allocations under it must avoid recursions into\nthe filesystem.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "36fae17a648e0aee5d9560514d08477ef48dc87f",
      "tree": "ac01d872ec2f654e2c305485e79e95d05ccb0c27",
      "parents": [
        "3f52c2f0a07c23771909cc53f2e9451a7f1bf253"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:14:58 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:07:38 2009 -0500"
      },
      "message": "xfs: switch to NOFS allocation under i_lock in xfs_buf_associate_memory\n\nxfs_buf_associate_memory is used for setting up the spare buffer for the\nlog wrap case in xlog_sync which can happen under i_lock when called from\nxfs_fsync. The i_lock mutex is taken in reclaim context so all allocations\nunder it must avoid recursions into the filesystem.  There are a couple\nmore uses of xfs_buf_associate_memory in the log recovery code that are\nalso affected by this, but I\u0027d rather keep the code simple than passing on\na gfp_mask argument.  Longer term we should just stop requiring the memoery\nallocation in xlog_sync by some smaller rework of the buffer layer.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "3f52c2f0a07c23771909cc53f2e9451a7f1bf253",
      "tree": "7341f0217f771cdc62cf799f79b4137ac3daf292",
      "parents": [
        "73195ed7864ae4a1fb0bea2ed9df59d19b4fde90"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:14:57 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:07:23 2009 -0500"
      },
      "message": "xfs: switch to NOFS allocation under i_lock in xfs_dir_cilookup_result\n\nxfs_dir_cilookup_result is always called with i_lock held, but i_lock is taken\nin reclaim context so all allocations under it must avoid recursions into the\nfilesystem.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "73195ed7864ae4a1fb0bea2ed9df59d19b4fde90",
      "tree": "fa82fba833a12dec9f6f8113852266e2861b276c",
      "parents": [
        "f41d7fb9da05b604f8a69fb6cac2a0563c8ede4e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:14:56 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:07:14 2009 -0500"
      },
      "message": "xfs: switch to NOFS allocation under i_lock in xfs_da_buf_make\n\ni_lock is taken in the reclaim context so all allocations under it\nmust avoid recursions into the filesystem.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "f41d7fb9da05b604f8a69fb6cac2a0563c8ede4e",
      "tree": "7602eb7f81322551fd4fd8e37f11e05550bf49b2",
      "parents": [
        "ca35dcd6cae7d4a780c484c53f45548c4719f82c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:14:55 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:07:07 2009 -0500"
      },
      "message": "xfs: switch to NOFS allocation under i_lock in xfs_da_state_alloc\n\nxfs_da_state_alloc is always called with i_lock held, but i_lock is taken in\nreclaim context so all allocations under it must avoid recursions into the\nfilesystem.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "ca35dcd6cae7d4a780c484c53f45548c4719f82c",
      "tree": "ef2c93d8c55e075a8153e39eda7aa94464b64677",
      "parents": [
        "0cc6eee130b0c062feec8446d9cecdb17d2cfad3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:14:54 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:06:59 2009 -0500"
      },
      "message": "xfs: switch to NOFS allocation under i_lock in xfs_getbmap\n\nxfs_getbmap allocates memory with i_lock held, but i_lock is taken in\nreclaim context so all allocations under it must avoid recursions into\nthe filesystem.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "0cc6eee130b0c062feec8446d9cecdb17d2cfad3",
      "tree": "488cbdb1fb8623285c4fb7c3a913516d7b7905d2",
      "parents": [
        "c8a4051c3731b6db224482218cfd535ab9393ff8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Jul 18 18:14:53 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Aug 12 01:06:51 2009 -0500"
      },
      "message": "xfs: avoid memory allocation under m_peraglock in growfs code\n\nAllocate the memory for the larger m_perag array before taking the\nper-AG lock as the per-AG lock can be taken under the i_lock which\ncan be taken from reclaim context.\n\nReported by the new reclaim context tracing in lockdep.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "b36ec0428a06fcbdb67d61e9e664154e5dd9a8c7",
      "tree": "556cb840214cdff185dfd419bed6dc876a58ae01",
      "parents": [
        "2e00c97e2c1d2ffc9e26252ca26b237678b0b772"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Aug 07 14:38:34 2009 -0300"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Fri Aug 07 14:38:34 2009 -0300"
      },
      "message": "xfs: fix freeing of inodes not yet added to the inode cache\n\nWhen freeing an inode that lost race getting added to the inode cache we\nmust not call into -\u003edestroy_inode, because that would delete the inode\nthat won the race from the inode cache radix tree.\n\nThis patch uses splits a new xfs_inode_free helper out of xfs_ireclaim\nand uses that plus __destroy_inode to make sure we really only free\nthe memory allocted for the inode that lost the race, and not mess with\nthe inode cache state.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReported-by: Alex Samad \u003calex@samad.com.au\u003e\nReported-by: Andrew Randrianasulu \u003crandrik@mail.ru\u003e\nReported-by: Stephane \u003csharnois@max-t.com\u003e\nReported-by: Tommy \u003ctommy@news-service.com\u003e\nReported-by: Miah Gregory \u003cmace@darksilence.net\u003e\nReported-by: Gabriel Barazer \u003cgabriel@oxeva.fr\u003e\nReported-by: Leandro Lucarella \u003cllucax@gmail.com\u003e\nReported-by: Daniel Burr \u003cdburr@fami.com.au\u003e\nReported-by: Nickolay \u003cnewmail@spaces.ru\u003e\nReported-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nReported-by: Dan Carley \u003cdan.carley+linuxkern-bugs@gmail.com\u003e\nReported-by: Michael Ole Olsen \u003cgnu@gmx.net\u003e\nReported-by: Michael Weissenbacher \u003cmw@dermichi.com\u003e\nReported-by: Martin Spott \u003cMartin.Spott@mgras.net\u003e\nReported-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nTested-by: Michael Guntsche \u003cmike@it-loops.com\u003e\nTested-by: Dan Carley \u003cdan.carley+linuxkern-bugs@gmail.com\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\n"
    },
    {
      "commit": "54e346215e4fe2ca8c94c54e546cc61902060510",
      "tree": "9b4ed9b0ab78117ba1a41db7073708031622cf10",
      "parents": [
        "90bc1a658a53f8832ee799685703977a450e5af9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Aug 07 14:38:25 2009 -0300"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Fri Aug 07 14:38:25 2009 -0300"
      },
      "message": "vfs: fix inode_init_always calling convention\n\nCurrently inode_init_always calls into -\u003edestroy_inode if the additional\ninitialization fails.  That\u0027s not only counter-intuitive because\ninode_init_always did not allocate the inode structure, but in case of\nXFS it\u0027s actively harmful as -\u003edestroy_inode might delete the inode from\na radix-tree that has never been added.  This in turn might end up\ndeleting the inode for the same inum that has been instanciated by\nanother process and cause lots of cause subtile problems.\n\nAlso in the case of re-initializing a reclaimable inode in XFS it would\nfree an inode we still want to keep alive.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "f5266cbd2fca04dbd0387a67f550b6667ffa4ed2",
      "tree": "ee3c3a8d92fc1745d63baa6e069959694a11dbe4",
      "parents": [
        "a5bc92cdf2ab27a15732976004b3755c40740f57",
        "c8a4051c3731b6db224482218cfd535ab9393ff8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 31 12:17:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 31 12:17:37 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: bump up nr_to_write in xfs_vm_writepage\n  xfs: reduce bmv_count in xfs_vn_fiemap\n"
    },
    {
      "commit": "c8a4051c3731b6db224482218cfd535ab9393ff8",
      "tree": "78b326f229fd670e37e1eb08f89bede4260aec95",
      "parents": [
        "97db39a1f6f69e906e98118392400de5217aa33a"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Fri Jul 31 00:02:17 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jul 31 00:57:11 2009 -0500"
      },
      "message": "xfs: bump up nr_to_write in xfs_vm_writepage\n\nVM calculation for nr_to_write seems off.  Bump it way\nup, this gets simple streaming writes zippy again.\nTo be reviewed again after Jens\u0027 writeback changes.\n\nSigned-off-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "97db39a1f6f69e906e98118392400de5217aa33a",
      "tree": "f5735b99542d8d31dcad907294c5cf7a0657b563",
      "parents": [
        "fd40261354802b0f05f6f67121235aa002e87069"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sun Jul 26 21:52:01 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jul 31 00:56:58 2009 -0500"
      },
      "message": "xfs: reduce bmv_count in xfs_vn_fiemap\n\ncommit 6321e3ed2acf3ee9643cdd403e1c88605d7944ba caused\nthe full bmv_count\u0027s worth of getbmapx structures to get\nallocated; telling it to do MAXEXTNUM was a bit insane,\nresulting in ENOMEM every time.\n\nChop it down to something reasonable, the number of slots\nin the caller\u0027s input buffer.  If this is too large the\ncaller may get ENOMEM but the reason should not be a\nmystery, and they can try again with something smaller.\n\nWe add 1 to the value because in the normal getbmap\nworld, bmv_count includes the header and xfs_getbmap does:\n\n        nex \u003d bmv-\u003ebmv_count - 1;\n        if (nex \u003c\u003d 0)\n                return XFS_ERROR(EINVAL);\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Olaf Weber \u003colaf@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8aa7e847d834ed937a9ad37a0f2ad5b8584c1ab0",
      "tree": "76c8b4f1362a928d426f2201790ab5d128f57724",
      "parents": [
        "c2cc49a2f8a479dde96a599646d30b6cc9dbed78"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 09 14:52:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:53 2009 +0200"
      },
      "message": "Fix congestion_wait() sync/async vs read/write confusion\n\nCommit 1faa16d22877f4839bd433547d770c676d1d964c accidentally broke\nthe bdi congestion wait queue logic, causing us to wait on congestion\nfor WRITE (\u003d\u003d 1) when we really wanted BLK_RW_ASYNC (\u003d\u003d 0) instead.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1cbd20d820c36f52543e3e4cd0067ebf52aa388f",
      "tree": "51d53ee4b6f79031eb493d7d2f2a57a7be3a3955",
      "parents": [
        "073aaa1b142461d91f83da66db1184d7c1b1edea"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 09 13:29:39 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:17:07 2009 -0400"
      },
      "message": "switch xfs to generic acl caching helpers\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90c699a9ee4be165966d40f1837909ccb8890a68",
      "tree": "ff136ce7b73c7d7bbf5eb4241d01cb3b930d3566",
      "parents": [
        "3a02c8e8142f7f133d4c6e72bc3e1d830e6b8b9e"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "message": "block: rename CONFIG_LBD to CONFIG_LBDAF\n\nFollow-up to \"block: enable by default support for large devices\nand files on 32-bit archs\".\n\nRename CONFIG_LBD to CONFIG_LBDAF to:\n- allow update of existing [def]configs for \"default y\" change\n- reflect that it is used also for large files support nowadays\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fd40261354802b0f05f6f67121235aa002e87069",
      "tree": "935f23fa1528f6fe5a078383c9343907ea27fbb3",
      "parents": [
        "f3ad116588151b3371ae4e092290e4f48e62b8bb",
        "e83f1eb6bfc4004c19a99ee5f5aa65bd3fbecec3"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:28:59 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:28:59 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://oss.sgi.com/xfs/xfs into for-linus\n"
    },
    {
      "commit": "e83f1eb6bfc4004c19a99ee5f5aa65bd3fbecec3",
      "tree": "24e6783973cb580a1074c4689b4978bff29c2167",
      "parents": [
        "493b87e5ed352cf548e6456ddfc36576e28278ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 12 11:19:11 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:15:31 2009 -0500"
      },
      "message": "xfs: fix small mismerge in xfs_vn_mknod\n\nIdentation got messed up when merging the current_umask changes with\nthe generic ACL support.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "493b87e5ed352cf548e6456ddfc36576e28278ea",
      "tree": "50d7419e1de1f5818906f0e2bb801b616cfa3dc6",
      "parents": [
        "7747a0b0af5976ba3828796b4f7a7adc3bb76dbd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 12 11:34:55 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:15:12 2009 -0500"
      },
      "message": "xfs: fix warnings with CONFIG_XFS_QUOTA disabled\n\nFix warnings about unitialized dquot variables by making sure\nxfs_qm_vop_dqalloc touches it even when quotas are disabled.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "7747a0b0af5976ba3828796b4f7a7adc3bb76dbd",
      "tree": "cf56450f057c3045341fe50c4e865466ee8a4522",
      "parents": [
        "35fd035968de4f674b9d62ee7b1d80ab7a50c384"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Jun 11 17:07:28 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 10:26:52 2009 -0500"
      },
      "message": "xfs: fix freeing memory in xfs_getbmap()\n\nRegression from commit 28e211700a81b0a934b6c7a4b8e7dda843634d2f.\nNeed to free temporary buffer allocated in xfs_getbmap().\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Hedi Berriche \u003chedi@sgi.com\u003e\nReported-by: Justin Piszcz \u003cjpiszcz@lucidpixels.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "f95022161d23ee661a48af8f280472209f513a67",
      "tree": "9e7c8455e4126b1dd5586ae973ad16c17653f5b3",
      "parents": [
        "13205fb9260c2377438599ef0773c6a3eaeb0b07"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 05 12:26:23 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:10 2009 -0400"
      },
      "message": "xfs: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nthe write_super method is used for\n\n (1) writing back the superblock periodically from pdflush\n (2) called just before -\u003esync_fs for data integerity syncs\n\nWe don\u0027t need (1) because we have our own peridoc writeout through xfssyncd,\nand we don\u0027t need (2) because xfs_fs_sync_fs performs a proper synchronous\nsuperblock writeout after all other data and metadata has been written out.\n\nAlso remove -\u003es_dirt tracking as it\u0027s only used to decide when too call\n-\u003ewrite_super.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "35fd035968de4f674b9d62ee7b1d80ab7a50c384",
      "tree": "53a936ecdf8e9c59735fa4e7794ccb503b06d5d5",
      "parents": [
        "4e73e0eb633f8a1b5cbf20e7f42c6dbfec1d1ca7",
        "ef14f0c1578dce4b688726eb2603e50b62d6665a"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Jun 11 16:56:49 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Jun 11 16:56:49 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/fs/xfs/xfs\n"
    },
    {
      "commit": "c9059598ea8981d02356eead3188bf7fa4d717b8",
      "tree": "03e73b20a30e988da7c6a3e0ad93b2dc5843274d",
      "parents": [
        "0a33f80a8373eca7f4bea3961d1346c3815fa5ed",
        "b0fd271d5fba0b2d00888363f3869e3f9b26caa9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:52:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 11:10:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.dk/linux-2.6-block: (153 commits)\n  block: add request clone interface (v2)\n  floppy: fix hibernation\n  ramdisk: remove long-deprecated \"ramdisk\u003d\" boot-time parameter\n  fs/bio.c: add missing __user annotation\n  block: prevent possible io_context-\u003erefcount overflow\n  Add serial number support for virtio_blk, V4a\n  block: Add missing bounce_pfn stacking and fix comments\n  Revert \"block: Fix bounce limit setting in DM\"\n  cciss: decode unit attention in SCSI error handling code\n  cciss: Remove no longer needed sendcmd reject processing code\n  cciss: change SCSI error handling routines to work with interrupts enabled.\n  cciss: separate error processing and command retrying code in sendcmd_withirq_core()\n  cciss: factor out fix target status processing code from sendcmd functions\n  cciss: simplify interface of sendcmd() and sendcmd_withirq()\n  cciss: factor out core of sendcmd_withirq() for use by SCSI error handling code\n  cciss: Use schedule_timeout_uninterruptible in SCSI error handling code\n  block: needs to set the residual length of a bidi request\n  Revert \"block: implement blkdev_readpages\"\n  block: Fix bounce limit setting in DM\n  Removed reference to non-existing file Documentation/PCI/PCI-DMA-mapping.txt\n  ...\n\nManually fix conflicts with tracing updates in:\n\tblock/blk-sysfs.c\n\tdrivers/ide/ide-atapi.c\n\tdrivers/ide/ide-cd.c\n\tdrivers/ide/ide-floppy.c\n\tdrivers/ide/ide-tape.c\n\tinclude/trace/events/block.h\n\tkernel/trace/blktrace.c\n"
    },
    {
      "commit": "ef14f0c1578dce4b688726eb2603e50b62d6665a",
      "tree": "5a221081850fab8f96455745e90f4a0e2127bce0",
      "parents": [
        "8b5403a6d772d340541cfb30a668fde119c40ac1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 10 17:07:47 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Wed Jun 10 17:07:47 2009 +0200"
      },
      "message": "xfs: use generic Posix ACL code\n\nThis patch rips out the XFS ACL handling code and uses the generic\nfs/posix_acl.c code instead.  The ondisk format is of course left\nunchanged.\n\nThis also introduces the same ACL caching all other Linux filesystems do\nby adding pointers to the acl and default acl in struct xfs_inode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "8b5403a6d772d340541cfb30a668fde119c40ac1",
      "tree": "0a81b174351ca56555d7ccc53ecd76c0b27edcee",
      "parents": [
        "b0710ccc6d9fa8fb908b5f6d1b0782a09d80e24f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:37:16 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:37:16 2009 +0200"
      },
      "message": "xfs: remove SYNC_BDFLUSH\n\nSYNC_BDFLUSH is a leftover from IRIX and rather misnamed for todays\ncode.  Make xfs_sync_fsdata and xfs_dq_sync use the SYNC_TRYLOCK flag\nfor not blocking on logs just as the inode sync code already does.\n\nFor xfs_sync_fsdata it\u0027s a trivial 1:1 replacement, but for xfs_qm_sync\nI use the opportunity to decouple the non-blocking lock case from the\ndifferent flushing modes, similar to the inode sync code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "b0710ccc6d9fa8fb908b5f6d1b0782a09d80e24f",
      "tree": "1cbb8a6e5d1257e4154d2117a61fcc37f54fee0d",
      "parents": [
        "075fe1028699f6a280545dfc2cfc5ac82d555c8c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:37:11 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:37:11 2009 +0200"
      },
      "message": "xfs: remove SYNC_IOWAIT\n\nWe want to wait for all I/O to finish when we do data integrity syncs.  So\nthere is no reason to keep SYNC_WAIT separate from SYNC_IOWAIT.  This\ncauses a little change in behaviour for the ENOSPC flushing code which now\ndoes a second submission and wait of buffered I/O, but that should finish\nASAP as we already did an asynchronous writeout earlier.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "075fe1028699f6a280545dfc2cfc5ac82d555c8c",
      "tree": "af17172ddc4d97d73b6a9a39f6dcf0ca2659fcdc",
      "parents": [
        "fe588ed32867b42e0d906db558ca92fd9f8b128e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:35:48 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:48 2009 +0200"
      },
      "message": "xfs: split xfs_sync_inodes\n\nxfs_sync_inodes is used to write back either file data or inode metadata.\nIn general we always do these separately, except for one fishy case in\nxfs_fs_put_super that does both.  So separate xfs_sync_inodes into\nseparate xfs_sync_data and xfs_sync_attr functions.  In xfs_fs_put_super\nwe first call the data sync and then the attr sync as that was the previous\norder.  The moved log force in that path doesn\u0027t make a difference because\nwe will force the log again as part of the real unmount process.\n\nThe filesystem readonly checks are not performed by the new function but\ninstead moved into the callers, given that most callers alredy have it\nfurther up in the stack.  Also add debug checks that we do not pass in\nincorrect flags in the new xfs_sync_data and xfs_sync_attr function and\nfix the one place that did pass in a wrong flag.\n\nAlso remove a comment mentioning xfs_sync_inodes that has been incorrect\nfor a while because we always take either the iolock or ilock in the\nsync path these days.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "fe588ed32867b42e0d906db558ca92fd9f8b128e",
      "tree": "4d5c6a5e34ebf1a0c2a82d3d1c08c272d5823264",
      "parents": [
        "75f3cb1393133682958db6f157e1b6473e5a366b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:35:27 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:27 2009 +0200"
      },
      "message": "xfs: use generic inode iterator in xfs_qm_dqrele_all_inodes\n\nUse xfs_inode_ag_iterator instead of opencoding the inode walk in the\nquota code.  Mark xfs_inode_ag_iterator and xfs_sync_inode_valid non-static\nto allow using them from the quota code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "75f3cb1393133682958db6f157e1b6473e5a366b",
      "tree": "e2e22c20c20e7d37e64b8f7fa4148253be01364a",
      "parents": [
        "abc1064742604e60a47a65fa3214dc1a84db093d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jun 08 15:35:14 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:14 2009 +0200"
      },
      "message": "xfs: introduce a per-ag inode iterator\n\nGiven that we walk across the per-ag inode lists so often, it makes sense to\nintroduce an iterator for this.\n\nConvert the sync and reclaim code to use this new iterator, quota code will\nfollow in the next patch.\n\nAlso change xfs_reclaim_inode to return -EGAIN instead of 1 for an inode\nalready under reclaim.  This simplifies the AG iterator and doesn\u0027t\nmatter for the only other caller.\n\n[hch: merged the lookup and execute callbacks back into one to get the\n pag_ici_lock locking correct and simplify the code flow]\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "abc1064742604e60a47a65fa3214dc1a84db093d",
      "tree": "eeefefeaae0783b8943e99b68b27547c575d5194",
      "parents": [
        "1da8eecab5f866b4f5be43adbaadf18e259a8cc5"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jun 08 15:35:12 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:12 2009 +0200"
      },
      "message": "xfs: remove unused parameter from xfs_reclaim_inodes\n\nThe noblock parameter of xfs_reclaim_inodes is only ever set to zero. Remove\nit and all the conditional code that is never executed.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "1da8eecab5f866b4f5be43adbaadf18e259a8cc5",
      "tree": "0edb76f83331e1844e01e451afe5eb67774bf6d4",
      "parents": [
        "845b6d0cbbc2304e8a54ed4038272c55f85b2269"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jun 08 15:35:07 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:07 2009 +0200"
      },
      "message": "xfs: factor out inode validation for sync\n\nSeparate the validation of inodes found by the radix\ntree walk from the radix tree lookup.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "845b6d0cbbc2304e8a54ed4038272c55f85b2269",
      "tree": "1c8e9270f7e78a0525f1873cef4d017618e06632",
      "parents": [
        "5a34d5cd096310133f9208db294021208a96660d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:35:05 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:05 2009 +0200"
      },
      "message": "xfs: split inode flushing from xfs_sync_inodes_ag\n\nIn many cases we only want to sync inode metadata. Split out the inode\nflushing into a separate helper to prepare factoring the inode sync code.\n\nBased on a patch from Dave Chinner, but redone to keep the current behaviour\nexactly and leave changes to the flushing logic to another patch.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "5a34d5cd096310133f9208db294021208a96660d",
      "tree": "66485ce654aada42bc41bd7b20fcf1a083d9aa0b",
      "parents": [
        "7d095257e321214e4cf359abd131ba1f09c60cba"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jun 08 15:35:03 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:03 2009 +0200"
      },
      "message": "xfs: split inode data writeback from xfs_sync_inodes_ag\n\nIn many cases we only want to sync inode data. Start spliting the inode sync\ninto data sync and inode sync by factoring out the inode data flush.\n\n[hch: minor cleanups]\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "7d095257e321214e4cf359abd131ba1f09c60cba",
      "tree": "3f71e2650651616f8ba168b64a82ab48aedef14c",
      "parents": [
        "0c5e1ce89f1eacc366ec421c0f5f681159479c28"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:33:32 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:33:32 2009 +0200"
      },
      "message": "xfs: kill xfs_qmops\n\nKill the quota ops function vector and replace it with direct calls or\nstubs in the CONFIG_XFS_QUOTA\u003dn case.\n\nMake sure we check XFS_IS_QUOTA_RUNNING in the right spots.  We can remove\nthe number of those checks because the XFS_TRANS_DQ_DIRTY flag can\u0027t be set\notherwise.\n\nThis brings us back closer to the way this code worked in IRIX and earlier\nLinux versions, but we keep a lot of the more useful factoring of common\ncode.\n\nEventually we should also kill xfs_qm_bhv.c, but that\u0027s left for a later\npatch.\n\nReduces the size of the source code by about 250 lines and the size of\nXFS module by about 1.5 kilobytes with quotas enabled:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 615957\t   2960\t   3848\t 622765\t  980ad\tfs/xfs/xfs.o\n 617231\t   3152\t   3848\t 624231\t  98667\tfs/xfs/xfs.o.old\n\nFallout:\n\n - xfs_qm_dqattach is split into xfs_qm_dqattach_locked which expects\n   the inode locked and xfs_qm_dqattach which does the locking around it,\n   thus removing XFS_QMOPT_ILOCKED.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "0c5e1ce89f1eacc366ec421c0f5f681159479c28",
      "tree": "c73fb303fa25d58773ecb989c428041994933b92",
      "parents": [
        "e1696834e8a15d7ef9ae8ffdffe00bac1399a2e3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:33:21 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:33:21 2009 +0200"
      },
      "message": "xfs: validate quota log items during log recovery\n\nArkadiusz has seen really strange crashes in xfs_qm_dqcheck that\nI can only explain by a log item being too smal to actually fit the\nxfs_dqblk_t we\u0027re dereferencing all over xfs_qm_dqcheck.  So add\ngraceful checks for NULL or too small quota items to the log recovery\ncode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "e1696834e8a15d7ef9ae8ffdffe00bac1399a2e3",
      "tree": "456df7fe129e1cd08a2bee149dc2ac5e96767ee5",
      "parents": [
        "4156e735d3abde8e9243b5d22f7999dd3fffab2e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:32:59 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:32:59 2009 +0200"
      },
      "message": "xfs: update max log size\n\nCommit a6634fba3dec4a92f0a2c4e30c80b634c0576ad5 in xfsprogs increased the\nmaximum log size supported by mkfs.  Merged back the changes to xfs_fs.h\nso the growfs enforced the same limit and the headers are in sync.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "4157fd85fc794bb7896b65c0cf686aa89d711d57",
      "tree": "4ba3ebbea7bcaaa6d7a4ad1c5501c3c4a8d08745",
      "parents": [
        "e7c4f03b839ba4b64ce0a7c71d71a8e1b086c840",
        "1b17d766463d51904cb242f194a780737e5f73ef"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 02 09:47:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 02 09:47:21 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: prevent deadlock in xfs_qm_shake()\n  xfs: fix overflow in xfs_growfs_data_private\n  xfs: fix double unlock in xfs_swap_extents()\n"
    },
    {
      "commit": "1b17d766463d51904cb242f194a780737e5f73ef",
      "tree": "25d43875b8c539d080141479a0695ab1ff24965c",
      "parents": [
        "e6da7c9fed111ba1243297ee6eda8e24ae11c384"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Jun 01 13:13:24 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Jun 01 22:59:45 2009 -0500"
      },
      "message": "xfs: prevent deadlock in xfs_qm_shake()\n\nIt\u0027s possible to recurse into filesystem from the memory\nallocation, which deadlocks in xfs_qm_shake(). Add check\nfor __GFP_FS, and bail out if it is not set.\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Hedi Berriche \u003chedi@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "e6da7c9fed111ba1243297ee6eda8e24ae11c384",
      "tree": "7e683f4591bdb349eef6ea6f80517b71965143b8",
      "parents": [
        "1f23920dbf1377fa9e4aef4f3d20c34a06a71a35"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sat May 23 14:30:12 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Jun 01 22:59:38 2009 -0500"
      },
      "message": "xfs: fix overflow in xfs_growfs_data_private\n\nIn the case where growing a filesystem would leave the last AG\ntoo small, the fixup code has an overflow in the calculation\nof the new size with one fewer ag, because \"nagcount\" is a 32\nbit number.  If the new filesystem has \u003e 2^32 blocks in it\nthis causes a problem resulting in an EINVAL return from growfs:\n\n # xfs_io -f -c \"truncate 19998630180864\" fsfile\n # mkfs.xfs -f -bsize\u003d4096 -dagsize\u003d76288719b,size\u003d3905982455b fsfile\n # mount -o loop fsfile /mnt\n # xfs_growfs /mnt\n\nmeta-data\u003d/dev/loop0             isize\u003d256    agcount\u003d52,\nagsize\u003d76288719 blks\n         \u003d                       sectsz\u003d512   attr\u003d2\ndata     \u003d                       bsize\u003d4096   blocks\u003d3905982455, imaxpct\u003d5\n         \u003d                       sunit\u003d0      swidth\u003d0 blks\nnaming   \u003dversion 2              bsize\u003d4096   ascii-ci\u003d0\nlog      \u003dinternal               bsize\u003d4096   blocks\u003d32768, version\u003d2\n         \u003d                       sectsz\u003d512   sunit\u003d0 blks, lazy-count\u003d0\nrealtime \u003dnone                   extsz\u003d4096   blocks\u003d0, rtextents\u003d0\nxfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Invalid argument\n\nReported-by: richard.ems@cape-horn-eng.com\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "1f23920dbf1377fa9e4aef4f3d20c34a06a71a35",
      "tree": "0fa80478499f1c42b2dc649659e1d1f22c6862f2",
      "parents": [
        "28e211700a81b0a934b6c7a4b8e7dda843634d2f"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu May 07 19:49:45 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Jun 01 22:59:29 2009 -0500"
      },
      "message": "xfs: fix double unlock in xfs_swap_extents()\n\nRegreesion from commit ef8f7fc, which rearranged the code in\nxfs_swap_extents() leading to double unlock of xfs inode ilock.\nThat resulted in xfs_fsr deadlocking itself on platforms, which\ndon\u0027t handle double unlock of rw_semaphore nicely. It caused the\ncount go negative, which represents the write holder, without\nreally having one. ia64 is one of the platforms where deadlock\nwas easily reproduced and the fix was tested.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "4156e735d3abde8e9243b5d22f7999dd3fffab2e",
      "tree": "d69552f9eafbe62715366d7c9617259e7eeff672",
      "parents": [
        "096324873f9c7172a17aff9db1356f4f01b77afe"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Jun 01 13:13:24 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Jun 01 13:13:24 2009 -0500"
      },
      "message": "xfs: prevent deadlock in xfs_qm_shake()\n\nIt\u0027s possible to recurse into filesystem from the memory\nallocation, which deadlocks in xfs_qm_shake(). Add check\nfor __GFP_FS, and bail out if it is not set.\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Hedi Berriche \u003chedi@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "096324873f9c7172a17aff9db1356f4f01b77afe",
      "tree": "676a1a98cd00c9c7ad1736930c5dc28acce8a192",
      "parents": [
        "ec91d1335f478c5cd089d82ffbf936075c5f24c8"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sat May 23 14:30:12 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue May 26 17:46:37 2009 -0500"
      },
      "message": "xfs: fix overflow in xfs_growfs_data_private\n\nIn the case where growing a filesystem would leave the last AG\ntoo small, the fixup code has an overflow in the calculation\nof the new size with one fewer ag, because \"nagcount\" is a 32\nbit number.  If the new filesystem has \u003e 2^32 blocks in it\nthis causes a problem resulting in an EINVAL return from growfs:\n\n # xfs_io -f -c \"truncate 19998630180864\" fsfile\n # mkfs.xfs -f -bsize\u003d4096 -dagsize\u003d76288719b,size\u003d3905982455b fsfile\n # mount -o loop fsfile /mnt\n # xfs_growfs /mnt\n\nmeta-data\u003d/dev/loop0             isize\u003d256    agcount\u003d52,\nagsize\u003d76288719 blks\n         \u003d                       sectsz\u003d512   attr\u003d2\ndata     \u003d                       bsize\u003d4096   blocks\u003d3905982455, imaxpct\u003d5\n         \u003d                       sunit\u003d0      swidth\u003d0 blks\nnaming   \u003dversion 2              bsize\u003d4096   ascii-ci\u003d0\nlog      \u003dinternal               bsize\u003d4096   blocks\u003d32768, version\u003d2\n         \u003d                       sectsz\u003d512   sunit\u003d0 blks, lazy-count\u003d0\nrealtime \u003dnone                   extsz\u003d4096   blocks\u003d0, rtextents\u003d0\nxfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Invalid argument\n\nReported-by: richard.ems@cape-horn-eng.com\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1",
      "tree": "d60d15a082171c58ac811d547d51a9c3119f23e3",
      "parents": [
        "9bd7de51ee8537094656149eaf45338cadb7d7d4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Do away with the notion of hardsect_size\n\nUntil now we have had a 1:1 mapping between storage device physical\nblock size and the logical block sized used when addressing the device.\nWith SATA 4KB drives coming out that will no longer be the case.  The\nsector size will be 4KB but the logical block size will remain\n512-bytes.  Hence we need to distinguish between the physical block size\nand the logical ditto.\n\nThis patch renames hardsect_size to logical_block_size.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ec91d1335f478c5cd089d82ffbf936075c5f24c8",
      "tree": "a17f277b51ece8ffa9c5dae796372d7140c77a4c",
      "parents": [
        "6321e3ed2acf3ee9643cdd403e1c88605d7944ba"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu May 07 19:49:45 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri May 08 00:29:44 2009 -0500"
      },
      "message": "xfs: fix double unlock in xfs_swap_extents()\n\nRegreesion from commit ef8f7fc, which rearranged the code in\nxfs_swap_extents() leading to double unlock of xfs inode ilock.\nThat resulted in xfs_fsr deadlocking itself on platforms, which\ndon\u0027t handle double unlock of rw_semaphore nicely. It caused the\ncount go negative, which represents the write holder, without\nreally having one. ia64 is one of the platforms where deadlock\nwas easily reproduced and the fix was tested.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "b4348f32dae3cb6eb4bc21c7ed8f76c0b11e9d6a",
      "tree": "d796a497a6dd2d51e67f4f8e0cc73a31992cf910",
      "parents": [
        "9fffb55f66127b52c937ede5196ebfa0c0d50bce",
        "28e211700a81b0a934b6c7a4b8e7dda843634d2f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 16:52:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 16:52:50 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix getbmap vs mmap deadlock\n  xfs: a couple getbmap cleanups\n  xfs: add more checks to superblock validation\n  xfs_file_last_byte() needs to acquire ilock\n"
    },
    {
      "commit": "28e211700a81b0a934b6c7a4b8e7dda843634d2f",
      "tree": "234d0754b9a5c9bc3b0ae890eeef57aa7d1ee29e",
      "parents": [
        "5f79ed685fc6122018c4b5826e2e5bdb7bc6f109"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 24 08:39:02 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Apr 30 00:29:02 2009 -0500"
      },
      "message": "xfs: fix getbmap vs mmap deadlock\n\nxfs_getbmap (or rather the formatters called by it) copy out the getbmap\nstructures under the ilock, which can deadlock against mmap.  This has\nbeen reported via bugzilla a while ago (#717) and has recently also\nshown up via lockdep.\n\nSo allocate a temporary buffer to format the kernel getbmap structures\ninto and then copy them out after dropping the locks.\n\nA little problem with this is that we limit the number of extents we\ncan copy out by the maximum allocation size, but I see no real way\naround that.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "5f79ed685fc6122018c4b5826e2e5bdb7bc6f109",
      "tree": "1d6ca51c760639bd1852c5af280ceca4cad91f08",
      "parents": [
        "b9ec9068d79e039507a247ebc5bc9c0ce53654ce"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Apr 29 10:50:48 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Apr 30 00:28:31 2009 -0500"
      },
      "message": "xfs: a couple getbmap cleanups\n\n - reshuffle various conditionals for data vs attr fork to make the code\n   more readable\n - do fine-grainded goto-based error handling\n - exit early from conditionals instead of keeping a long else branch around\n - allow kmem_alloc to fail\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "b9ec9068d79e039507a247ebc5bc9c0ce53654ce",
      "tree": "e90838da3d37d9a5ab05301b421ad85e5514acba",
      "parents": [
        "def6b3ba56b637d58126ef67fc19bab57945fcc4"
      ],
      "author": {
        "name": "Olaf Weber",
        "email": "olaf@sgi.com",
        "time": "Fri Apr 17 16:12:45 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Apr 30 00:26:14 2009 -0500"
      },
      "message": "xfs: add more checks to superblock validation\n\nThere had been reports where xfs filesystem was randomly\ncorrupted with fsfuzzer, and xfs failed to handle it\ngracefully. This patch fixes couple of reported problem\nby providing additional checks in the superblock\nvalidation routine.\n\nSigned-off-by: Olaf Weber \u003colaf@sgi.com\u003e\nReviewed-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "def6b3ba56b637d58126ef67fc19bab57945fcc4",
      "tree": "983618561a50a6f9a423577c7fcd46fc1c539a62",
      "parents": [
        "dc2a5536d633dd2318f82f3d5ad3c9e43cfc21d7"
      ],
      "author": {
        "name": "Lachlan McIlroy",
        "email": "lmcilroy@redhat.com",
        "time": "Thu Apr 23 22:18:00 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Apr 30 00:25:25 2009 -0500"
      },
      "message": "xfs_file_last_byte() needs to acquire ilock\n\nWe had some systems crash with this stack:\n\n[\u003ca00000010000cb20\u003e] ia64_leave_kernel+0x0/0x280\n[\u003ca00000021291ca00\u003e] xfs_bmbt_get_startoff+0x0/0x20 [xfs]\n[\u003ca0000002129080b0\u003e] xfs_bmap_last_offset+0x210/0x280 [xfs]\n[\u003ca00000021295b010\u003e] xfs_file_last_byte+0x70/0x1a0 [xfs]\n[\u003ca00000021295b200\u003e] xfs_itruncate_start+0xc0/0x1a0 [xfs]\n[\u003ca0000002129935f0\u003e] xfs_inactive_free_eofblocks+0x290/0x460 [xfs]\n[\u003ca000000212998fb0\u003e] xfs_release+0x1b0/0x240 [xfs]\n[\u003ca0000002129ad930\u003e] xfs_file_release+0x70/0xa0 [xfs]\n[\u003ca000000100162ea0\u003e] __fput+0x1a0/0x420\n[\u003ca000000100163160\u003e] fput+0x40/0x60\n\nThe problem here is that xfs_file_last_byte() does not acquire the\ninode lock and can therefore race with another thread that is modifying\nthe extext list.  While xfs_bmap_last_offset() is trying to lookup\nwhat was the last extent some extents were merged and the extent list\nshrunk so the index we lookup is now beyond the end of the extent list\nand potentially in a freed buffer.\n\nSigned-off-by: Lachlan McIlroy \u003clmcilroy@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "6321e3ed2acf3ee9643cdd403e1c88605d7944ba",
      "tree": "42ccd5dd1082d291089fec1aa6e8b6a84866bb0c",
      "parents": [
        "4be4a00fb55879ef44b5914c189aecffa828deb4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 24 08:39:02 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Apr 29 13:25:29 2009 -0500"
      },
      "message": "xfs: fix getbmap vs mmap deadlock\n\nxfs_getbmap (or rather the formatters called by it) copy out the getbmap\nstructures under the ilock, which can deadlock against mmap.  This has\nbeen reported via bugzilla a while ago (#717) and has recently also\nshown up via lockdep.\n\nSo allocate a temporary buffer to format the kernel getbmap structures\ninto and then copy them out after dropping the locks.\n\nA little problem with this is that we limit the number of extents we\ncan copy out by the maximum allocation size, but I see no real way\naround that.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "4be4a00fb55879ef44b5914c189aecffa828deb4",
      "tree": "ed9191f7aafa17205f6044cc4bab5ffd06f9a3cd",
      "parents": [
        "2ac00af7a6d2e65013e6f28bd1f37c0cd98ba134"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Apr 29 10:50:48 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Apr 29 10:00:01 2009 -0500"
      },
      "message": "xfs: a couple getbmap cleanups\n\n - reshuffle various conditionals for data vs attr fork to make the code\n   more readable\n - do fine-grainded goto-based error handling\n - exit early from conditionals instead of keeping a long else branch around\n - allow kmem_alloc to fail\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "2ac00af7a6d2e65013e6f28bd1f37c0cd98ba134",
      "tree": "a04390733906bc8bb9d26c0a8dce12279cbb83cf",
      "parents": [
        "f25181f598cf4a8ccc40a51d8b74f8b555ecddee"
      ],
      "author": {
        "name": "Olaf Weber",
        "email": "olaf@sgi.com",
        "time": "Fri Apr 17 16:12:45 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Apr 29 09:24:29 2009 -0500"
      },
      "message": "xfs: add more checks to superblock validation\n\nThere had been reports where xfs filesystem was randomly\ncorrupted with fsfuzzer, and xfs failed to handle it\ngracefully. This patch fixes couple of reported problem\nby providing additional checks in the superblock\nvalidation routine.\n\nSigned-off-by: Olaf Weber \u003colaf@sgi.com\u003e\nReviewed-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "f25181f598cf4a8ccc40a51d8b74f8b555ecddee",
      "tree": "c27dcad813a3e5aeb8c96017ff1a81f736dfef08",
      "parents": [
        "8de2bf937a6bea8f0f775fd5399ba20c1a0c3d77"
      ],
      "author": {
        "name": "Lachlan McIlroy",
        "email": "lmcilroy@redhat.com",
        "time": "Thu Apr 23 22:18:00 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Apr 29 09:14:10 2009 -0500"
      },
      "message": "xfs_file_last_byte() needs to acquire ilock\n\nWe had some systems crash with this stack:\n\n[\u003ca00000010000cb20\u003e] ia64_leave_kernel+0x0/0x280\n[\u003ca00000021291ca00\u003e] xfs_bmbt_get_startoff+0x0/0x20 [xfs]\n[\u003ca0000002129080b0\u003e] xfs_bmap_last_offset+0x210/0x280 [xfs]\n[\u003ca00000021295b010\u003e] xfs_file_last_byte+0x70/0x1a0 [xfs]\n[\u003ca00000021295b200\u003e] xfs_itruncate_start+0xc0/0x1a0 [xfs]\n[\u003ca0000002129935f0\u003e] xfs_inactive_free_eofblocks+0x290/0x460 [xfs]\n[\u003ca000000212998fb0\u003e] xfs_release+0x1b0/0x240 [xfs]\n[\u003ca0000002129ad930\u003e] xfs_file_release+0x70/0xa0 [xfs]\n[\u003ca000000100162ea0\u003e] __fput+0x1a0/0x420\n[\u003ca000000100163160\u003e] fput+0x40/0x60\n\nThe problem here is that xfs_file_last_byte() does not acquire the\ninode lock and can therefore race with another thread that is modifying\nthe extext list.  While xfs_bmap_last_offset() is trying to lookup\nwhat was the last extent some extents were merged and the extent list\nshrunk so the index we lookup is now beyond the end of the extent list\nand potentially in a freed buffer.\n\nSigned-off-by: Lachlan McIlroy \u003clmcilroy@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "0e639bdeef26faf287db77a15530f3f295a4ae04",
      "tree": "b5f15e44cd974561a426fc2e07c792255b1328cb",
      "parents": [
        "1c8542c7bb239ef02fe21477acd9cdac04c1b640"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Wed Apr 08 15:08:04 2009 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 20 23:02:51 2009 -0400"
      },
      "message": "xfs: use memdup_user()\n\nRemove open-coded memdup_user()\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3c1795cc4bd9d57281bebc314315b8afa217b9c7",
      "tree": "97972fe4970e5074ec3944c7cd5179fb2bfe5b36",
      "parents": [
        "80a04d3f2f94fb68b5df05e3ac6697130bc3467a",
        "dc2a5536d633dd2318f82f3d5ad3c9e43cfc21d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 14:35:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 13 14:35:13 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: remove xfs_flush_space\n  xfs: flush delayed allcoation blocks on ENOSPC in create\n  xfs: block callers of xfs_flush_inodes() correctly\n  xfs: make inode flush at ENOSPC synchronous\n  xfs: use xfs_sync_inodes() for device flushing\n  xfs: inform the xfsaild of the push target before sleeping\n  xfs: prevent unwritten extent conversion from blocking I/O completion\n  xfs: fix double free of inode\n  xfs: validate log feature fields correctly\n"
    },
    {
      "commit": "dc2a5536d633dd2318f82f3d5ad3c9e43cfc21d7",
      "tree": "20b68d90d175eb9f07cf19b2e8be4011a8e8e6e5",
      "parents": [
        "f36345ff9a4a77f2cc576a2777b6256d5c8798fa",
        "8de2bf937a6bea8f0f775fd5399ba20c1a0c3d77"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Apr 09 14:12:07 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Apr 09 14:12:07 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 into for-linus\n"
    },
    {
      "commit": "8de2bf937a6bea8f0f775fd5399ba20c1a0c3d77",
      "tree": "d48f944faf9c324cfcd197ab802ff7c4504e04ec",
      "parents": [
        "153fec43ce5264dfe9f3530b281a2e940b25a0a8"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:49:12 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:49:12 2009 +0200"
      },
      "message": "xfs: remove xfs_flush_space\n\nThe only thing we need to do now when we get an ENOSPC condition during delayed\nallocation reservation is flush all the other inodes with delalloc blocks on\nthem and retry without EOF preallocation. Remove the unneeded mess that is\nxfs_flush_space() and just call xfs_flush_inodes() directly from\nxfs_iomap_write_delay().\n\nAlso, change the location of the retry label to avoid trying to do EOF\npreallocation because we don\u0027t want to do that at ENOSPC. This enables us to\nremove the BMAPI_SYNC flag as it is no longer used.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "153fec43ce5264dfe9f3530b281a2e940b25a0a8",
      "tree": "803fa00839de5702a0349b434d24a788e9753d4e",
      "parents": [
        "e43afd72d2455defd63a3f94f22fa09b586e58ed"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:48:30 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:48:30 2009 +0200"
      },
      "message": "xfs: flush delayed allcoation blocks on ENOSPC in create\n\nIf we are creating lots of small files, we can fail to get\na reservation for inode create earlier than we should due to\nEOF preallocation done during delayed allocation reservation.\nHence on the first reservation ENOSPC failure flush all the\ndelayed allocation blocks out of the system and retry.\n\nThis fixes the last commonly triggered spurious ENOSPC issue\nthat has been reported.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e43afd72d2455defd63a3f94f22fa09b586e58ed",
      "tree": "a883a748374d5f63bf030dcf445723a901f88357",
      "parents": [
        "5825294edd3364cbba6514f70d88debec4f6cec7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:47:27 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:47:27 2009 +0200"
      },
      "message": "xfs: block callers of xfs_flush_inodes() correctly\n\nxfs_flush_inodes() currently uses a magic timeout to wait for\nsome inodes to be flushed before returning. This isn\u0027t\nreally reliable but used to be the best that could be done\ndue to deadlock potential of waiting for the entire flush.\n\nNow the inode flush is safe to execute while we hold page\nand inode locks, we can wait for all the inodes to flush\nsynchronously. Convert the wait mechanism to a completion\nto do this efficiently. This should remove all remaining\nspurious ENOSPC errors from the delayed allocation reservation\npath.\n\nThis is extracted almost line for line from a larger patch\nfrom Mikulas Patocka.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5825294edd3364cbba6514f70d88debec4f6cec7",
      "tree": "5462388cdb6b36b2f0f1cf75dc6ee60a7c643a23",
      "parents": [
        "a8d770d987ee20b59fba6c37d7f0f2a351913c4b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:45:44 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:45:44 2009 +0200"
      },
      "message": "xfs: make inode flush at ENOSPC synchronous\n\nWhen we are writing to a single file and hit ENOSPC, we trigger a background\nflush of the inode and try again.  Because we hold page locks and the iolock,\nthe flush won\u0027t proceed until after we release these locks. This occurs once\nwe\u0027ve given up and ENOSPC has been reported. Hence if this one is the only\ndirty inode in the system, we\u0027ll get an ENOSPC prematurely.\n\nTo fix this, remove the async flush from the allocation routines and move\nit to the top of the write path where we can do a synchronous flush\nand retry the write again. Only retry once as a second ENOSPC indicates\nthat we really are ENOSPC.\n\nThis avoids a page cache deadlock when trying to do this flush synchronously\nin the allocation layer that was identified by Mikulas Patocka.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a8d770d987ee20b59fba6c37d7f0f2a351913c4b",
      "tree": "3da37edba537ca5860eae97f47fb1204bc5a55b3",
      "parents": [
        "9d7fef74b23fe57803c5f71fab11630d9ec2cb4b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:44:54 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:44:54 2009 +0200"
      },
      "message": "xfs: use xfs_sync_inodes() for device flushing\n\nCurrently xfs_device_flush calls sync_blockdev() which is\na no-op for XFS as all it\u0027s metadata is held in a different\naddress to the one sync_blockdev() works on.\n\nCall xfs_sync_inodes() instead to flush all the delayed\nallocation blocks out. To do this as efficiently as possible,\ndo it via two passes - one to do an async flush of all the\ndirty blocks and a second to wait for all the IO to complete.\nThis requires some modification to the xfs-sync_inodes_ag()\nflush code to do efficiently.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9d7fef74b23fe57803c5f71fab11630d9ec2cb4b",
      "tree": "e196c150f77c9c45d9dc0b5e2c06ae867c9bc2a4",
      "parents": [
        "c626d174cfe38e7f0545d074c299527892cd8c45"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:42:59 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:42:59 2009 +0200"
      },
      "message": "xfs: inform the xfsaild of the push target before sleeping\n\nWhen trying to reserve log space, we find the amount of space\nwe need, then go to sleep waiting for space. When we are\nwoken, we try to push the tail of the log forward to make\nsure we have space available.\n\nUnfortunately, this means that if there is not space available, and\neveryone who needs space goes to sleep there is no-one left to push\nthe tail of the log to make space available. Once we have a thread\nwaiting for space to become available, the others queue up behind\nit in a FIFO, and none of them push the tail of the log.\n\nThis can result in everyone going to sleep in xlog_grant_log_space()\nif the first sleeper races with the last I/O that moves the tail\nof the log forward. With no further I/O tomove the tail of the log,\nthere is nothing to wake the sleepers and hence all transactions\njust stop.\n\nFix this by making sure the xfsaild will create enough space for the\ntransaction that is about to sleep by moving the push target far\nenough forwards to ensure that that the curent proceeees will have\nenough space available when it is woken. That is, we push the\nAIL before we go to sleep.\n\nBecause we\u0027ve inserted the log ticket into the queue before we\u0027ve\npushed and gone to sleep, subsequent transactions will wait behind\nthis one. Hence we are guaranteed to have space available when we\nare woken.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c626d174cfe38e7f0545d074c299527892cd8c45",
      "tree": "8f7dfa34a77bc415d9dc604d79fbae98ffe47a14",
      "parents": [
        "705db3fd4660174a27418bbcb874d209a76044eb"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:42:11 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:42:11 2009 +0200"
      },
      "message": "xfs: prevent unwritten extent conversion from blocking I/O completion\n\nUnwritten extent conversion can recurse back into the filesystem due\nto memory allocation. Memory reclaim requires I/O completions to be\nprocessed to allow the callers to make progress. If the I/O\ncompletion workqueue thread is doing the recursion, then we have a\ndeadlock situation.\n\nMove unwritten extent completion into it\u0027s own workqueue so it\ndoesn\u0027t block I/O completions for normal delayed allocation or\noverwrite data.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "705db3fd4660174a27418bbcb874d209a76044eb",
      "tree": "84ec380710246cb3b97cd46ee57b3555d3afd07b",
      "parents": [
        "a6cb767e24b1dbedfcfa8077eab0aa2eab224038"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:40:17 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:40:17 2009 +0200"
      },
      "message": "xfs: fix double free of inode\n\nIf we fail to initialise the VFS inode in inode_init_always(),\nit will call -\u003edelete_inode internally resulting in the inode being\nfreed. Hence we need to delay the call to inode_init_always()\nuntil after the XFS inode is sufficient set up to handle a\ncall to -\u003edelete_inode, and then if that fails do not touch\nthe inode again at all as it has been freed.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a6cb767e24b1dbedfcfa8077eab0aa2eab224038",
      "tree": "fb564a9323f40f70d22e6d41c2d4709922291944",
      "parents": [
        "1aacc064e029f0017384e463121b98f06d3a2cc3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:39:27 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:39:27 2009 +0200"
      },
      "message": "xfs: validate log feature fields correctly\n\nIf the large log sector size feature bit is set in the\nsuperblock by accident (say disk corruption), the then\nfields that are now considered valid are not checked on\nproduction kernels. The checks are present as ASSERT\nstatements so cause a panic on a debug kernel.\n\nChange this so that the fields are validity checked if\nthe feature bit is set and abort the log mount if the\nfields do not contain valid values.\n\nReported-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "ac7c1a776dfe1a9c83ea7885f858f5f1a144d8af",
      "tree": "4ad3158dd6dc5029a221421ae9a3c339f10c3f10",
      "parents": [
        "3ba113d14cedcd88105a3b9c90f8ecce829e1095",
        "f36345ff9a4a77f2cc576a2777b6256d5c8798fa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:52:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 09:52:29 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs: (61 commits)\n  Revert \"xfs: increase the maximum number of supported ACL entries\"\n  xfs: cleanup uuid handling\n  xfs: remove m_attroffset\n  xfs: fix various typos\n  xfs: pagecache usage optimization\n  xfs: remove m_litino\n  xfs: kill ino64 mount option\n  xfs: kill mutex_t typedef\n  xfs: increase the maximum number of supported ACL entries\n  xfs: factor out code to find the longest free extent in the AG\n  xfs: kill VN_BAD\n  xfs: kill vn_atime_* helpers.\n  xfs: cleanup xlog_bread\n  xfs: cleanup xlog_recover_do_trans\n  xfs: remove another leftover of the old inode log item format\n  xfs: cleanup log unmount handling\n  Fix xfs debug build breakage by pushing xfs_error.h after\n  xfs: include header files for prototypes\n  xfs: make symbols static\n  xfs: move declaration to header file\n  ...\n"
    }
  ],
  "next": "8fe74cf053de7ad2124a894996f84fa890a81093"
}
