)]}'
{
  "log": [
    {
      "commit": "9f9c19ec1a59422c7687b11847ed3408128aa0d6",
      "tree": "55a7dbf7422f4b18e32ba5e0f5378c959c4e12ba",
      "parents": [
        "c29f7d457ac63311feb11928a866efd2fe153d74"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 28 08:17:36 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 06 14:19:47 2011 -0600"
      },
      "message": "xfs: fix the logspace waiting algorithm\n\nApply the scheme used in log_regrant_write_log_space to wake up any other\nthreads waiting for log space before the newly added one to\nlog_regrant_write_log_space as well, and factor the code into readable\nhelpers.  For each of the queues we have add two helpers:\n\n - one to try to wake up all waiting threads.  This helper will also be\n   usable by xfs_log_move_tail once we remove the current opportunistic\n   wakeups in it.\n - one to sleep on t_wait until enough log space is available, loosely\n   modelled after Linux waitqueues.\n \nAnd use them to reimplement the guts of log_regrant_write_log_space and\nlog_regrant_write_log_space.  These two function now use one and the same\nalgorithm for waiting on log space instead of subtly different ones before,\nwith an option to completely unify them in the near future.\n\nAlso move the filesystem shutdown handling to the common caller given\nthat we had to touch it anyway.\n\nBased on hard debugging and an earlier patch from\nChandra Seetharaman \u003csekharan@us.ibm.com\u003e.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nTested-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "c29f7d457ac63311feb11928a866efd2fe153d74",
      "tree": "277ae257d415895a980c973ab2e41f59c70999d3",
      "parents": [
        "a99ebf43f49f4499ab0e2a8a9132ad6ed6ba2409"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 30 08:58:18 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 06 10:46:23 2011 -0600"
      },
      "message": "xfs: fix nfs export of 64-bit inodes numbers on 32-bit kernels\n\nThe i_ino field in the VFS inode is of type unsigned long and thus can\u0027t\nhold the full 64-bit inode number on 32-bit kernels.  We have the full\ninode number in the XFS inode, so use that one for nfs exports.  Note\nthat I\u0027ve also switched the 32-bit file handles types to it, just to make\nthe code more consistent and copy \u0026 paste errors less likely to happen.\n\nReported-by: Guoquan Yang \u003cygq51@hotmail.com\u003e\nReported-by: Hank Peng \u003cpengxihan@gmail.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "a99ebf43f49f4499ab0e2a8a9132ad6ed6ba2409",
      "tree": "6dba4c8cacee04e8b507f77fd547bab7a23063ac",
      "parents": [
        "4c393a6059f8442a70512a48ce4639b882b6f6ad"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 01 11:24:20 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Dec 02 16:24:02 2011 -0600"
      },
      "message": "xfs: fix allocation length overflow in xfs_bmapi_write()\n\nWhen testing the new xfstests --large-fs option that does very large\nfile preallocations, this assert was tripped deep in\nxfs_alloc_vextent():\n\nXFS: Assertion failed: args-\u003eminlen \u003c\u003d args-\u003emaxlen, file: fs/xfs/xfs_alloc.c, line: 2239\n\nThe allocation was trying to allocate a zero length extent because\nthe lower 32 bits of the allocation length was zero. The remaining\nlength of the allocation to be done was an exact multiple of 2^32 -\nthe first case I saw was at 496TB remaining to be allocated.\n\nThis turns out to be an overflow when converting the allocation\nlength (a 64 bit quantity) into the extent length to allocate (a 32\nbit quantity), and it requires the length to be allocated an exact\nmultiple of 2^32 blocks to trip the assert.\n\nFix it by limiting the extent lenth to allocate to MAXEXTLEN.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "4c393a6059f8442a70512a48ce4639b882b6f6ad",
      "tree": "dfff7ce8903ae87a092f3ee2ab213fd06e5a47ec",
      "parents": [
        "4dd2cb4a28b7ab1f37163a4eba280926a13a8749"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 19 17:44:30 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 29 13:03:12 2011 -0600"
      },
      "message": "xfs: fix attr2 vs large data fork assert\n\nWith Dmitry fsstress updates I\u0027ve seen very reproducible crashes in\nxfs_attr_shortform_remove because xfs_attr_shortform_bytesfit claims that\nthe attributes would not fit inline into the inode after removing an\nattribute.  It turns out that we were operating on an inode with lots\nof delalloc extents, and thus an if_bytes values for the data fork that\nis larger than biggest possible on-disk storage for it which utterly\nconfuses the code near the end of xfs_attr_shortform_bytesfit.\n\nFix this by always allowing the current attribute fork, like we already\ndo for the attr1 format, given that delalloc conversion will take care\nfor moving either the data or attribute area out of line if it doesn\u0027t\nfit at that point - or making the point moot by merging extents at this\npoint.\n\nAlso document the function better, and clean up some loose bits.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "4dd2cb4a28b7ab1f37163a4eba280926a13a8749",
      "tree": "f48cbb282ad4d52649b594657f00c1c8be753a47",
      "parents": [
        "fa8b18edd752a8b4e9d1ee2cd615b82c93cf8bba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 29 12:06:14 2011 -0600"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 29 12:06:14 2011 -0600"
      },
      "message": "xfs: force buffer writeback before blocking on the ilock in inode reclaim\n\nIf we are doing synchronous inode reclaim we block the VM from making\nprogress in memory reclaim.  So if we encouter a flush locked inode\npromote it in the delwri list and wake up xfsbufd to write it out now.\nWithout this we can get hangs of up to 30 seconds during workloads hitting\nsynchronous inode reclaim.\n\nThe scheme is copied from what we do for dquot reclaims.\n\nReported-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nTested-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "fa8b18edd752a8b4e9d1ee2cd615b82c93cf8bba",
      "tree": "9765979df5cd3da5f7e7c54b6fcf47ae26486ec9",
      "parents": [
        "c8891329131f791e0ddc422eaf6fc86e9a8cf8f5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Nov 20 15:35:32 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Nov 28 22:14:24 2011 -0600"
      },
      "message": "xfs: validate acl count\n\nThis prevents in-memory corruption and possible panics if the on-disk\nACL is badly corrupted.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "db3e74b582915d66e10b0c73a62763418f54c340",
      "tree": "e5cdfdedf24c275601e0b197db24dbd52c8e08b9",
      "parents": [
        "810627d9a6d0e8820c798001875bc4e1b7754ebf"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Thu Nov 10 01:33:10 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 15 14:45:09 2011 -0600"
      },
      "message": "xfs: use doalloc flag in xfs_qm_dqattach_one()\n\nThe doalloc arg in xfs_qm_dqattach_one() is a flag that indicates\nwhether a new area to handle quota information will be allocated\nif needed. Originally, it was passed to xfs_qm_dqget(), but has\nbeen removed by the following commit (probably by mistake):\n\n\tcommit 8e9b6e7fa4544ea8a0e030c8987b918509c8ff47\n\tAuthor: Christoph Hellwig \u003chch@lst.de\u003e\n\tDate:   Sun Feb 8 21:51:42 2009 +0100\n\n\txfs: remove the unused XFS_QMOPT_DQLOCK flag\n\nAs the result, xfs_qm_dqget() called from xfs_qm_dqattach_one()\nnever allocates the new area even if it is needed.\n\nThis patch gives the doalloc arg to xfs_qm_dqget() in\nxfs_qm_dqattach_one() to fix this problem.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "810627d9a6d0e8820c798001875bc4e1b7754ebf",
      "tree": "1ebd7b3919f78d117d7ec8b6ec78615e01210448",
      "parents": [
        "272e42b215c52d32e06bf035c1f6b70baa6716bd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Nov 08 08:56:15 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: fix force shutdown handling in xfs_end_io\n\nEnsure ioend-\u003eio_error gets propagated back to e.g. AIO completions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "272e42b215c52d32e06bf035c1f6b70baa6716bd",
      "tree": "b09ad40176f53006d57669255991a42ee38eb488",
      "parents": [
        "b52a360b2aa1c59ba9970fb0f52bbb093fcc7a24"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Oct 28 09:54:24 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: constify xfs_item_ops\n\nThe log item ops aren\u0027t nessecarily the biggest exploit vector, but marking\nthem const is easy enough.  Also remove the unused xfs_item_ops_t typedef\nwhile we\u0027re at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "b52a360b2aa1c59ba9970fb0f52bbb093fcc7a24",
      "tree": "b8710ad524592faac1427d2155aaf4ba29a80cf8",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cmaiolino@redhat.com",
        "time": "Mon Nov 07 16:10:24 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: Fix possible memory corruption in xfs_readlink\n\nFixes a possible memory corruption when the link is larger than\nMAXPATHLEN and XFS_DEBUG is not enabled. This also remove the\nS_ISLNK assert, since the inode mode is checked previously in\nxfs_readlink_by_handle() and via VFS.\n\nUpdated to address concerns raised by Ben Hutchings about the loose\nattention paid to 32- vs 64-bit values, and the lack of handling a\npotentially negative pathlen value:\n - Changed type of \"pathlen\" to be xfs_fsize_t, to match that of\n   ip-\u003ei_d.di_size\n - Added checking for a negative pathlen to the too-long pathlen\n   test, and generalized the message that gets reported in that case\n   to reflect the change\nAs a result, if a negative pathlen were encountered, this function\nwould return EFSCORRUPTED (and would fail an assertion for a debug\nbuild)--just as would a too-long pathlen.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94054fa3fca1fd78db02cb3d68d5627120f0a1d4",
      "tree": "6ba391fcbad8500610706da5fbc03ffe9cecfd55",
      "parents": [
        "a18bba061c789f5815c3efc3c80e6ac269911964"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "xfs: warn if direct reclaim tries to writeback pages\n\nDirect reclaim should never writeback pages.  For now, handle the\nsituation and warn about it.  Ultimately, this will be a BUG_ON.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5619a693965b291315685bdfe01a0246ebd7e41e",
      "tree": "80a9869814d601a3d5fb439d6c6e4d6c7d6865e4",
      "parents": [
        "37be944a0270402f9cda291a930b0286f6dc92f5",
        "9e4c109ac822395e0aae650e4e3c9e4903f6602f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:31:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:31:42 2011 -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: (69 commits)\n  xfs: add AIL pushing tracepoints\n  xfs: put in missed fix for merge problem\n  xfs: do not flush data workqueues in xfs_flush_buftarg\n  xfs: remove XFS_bflush\n  xfs: remove xfs_buf_target_name\n  xfs: use xfs_ioerror_alert in xfs_buf_iodone_callbacks\n  xfs: clean up xfs_ioerror_alert\n  xfs: clean up buffer allocation\n  xfs: remove buffers from the delwri list in xfs_buf_stale\n  xfs: remove XFS_BUF_STALE and XFS_BUF_SUPER_STALE\n  xfs: remove XFS_BUF_SET_VTYPE and XFS_BUF_SET_VTYPE_REF\n  xfs: remove XFS_BUF_FINISH_IOWAIT\n  xfs: remove xfs_get_buftarg_list\n  xfs: fix buffer flushing during unmount\n  xfs: optimize fsync on directories\n  xfs: reduce the number of log forces from tail pushing\n  xfs: Don\u0027t allocate new buffers on every call to _xfs_buf_find\n  xfs: simplify xfs_trans_ijoin* again\n  xfs: unlock the inode before log force in xfs_change_file_space\n  xfs: unlock the inode before log force in xfs_fs_nfs_commit_metadata\n  ...\n"
    },
    {
      "commit": "59e52534172d845ebffb0d7e85fc56fb7b857051",
      "tree": "49552e03f1bdb413cd8b5f7542e91770688d7047",
      "parents": [
        "73692d9bb58ecc2fa73f4b2bfcf6eadaa6d49a26",
        "0d89e54c8249645404283436d952afc261a04e1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:11:02 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:11:02 2011 +0200"
      },
      "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: (59 commits)\n  MAINTAINERS: linux-m32r is moderated for non-subscribers\n  linux@lists.openrisc.net is moderated for non-subscribers\n  Drop default from \"DM365 codec select\" choice\n  parisc: Kconfig: cleanup Kernel page size default\n  Kconfig: remove redundant CONFIG_ prefix on two symbols\n  cris: remove arch/cris/arch-v32/lib/nand_init.S\n  microblaze: add missing CONFIG_ prefixes\n  h8300: drop puzzling Kconfig dependencies\n  MAINTAINERS: microblaze-uclinux@itee.uq.edu.au is moderated for non-subscribers\n  tty: drop superfluous dependency in Kconfig\n  ARM: mxc: fix Kconfig typo \u0027i.MX51\u0027\n  Fix file references in Kconfig files\n  aic7xxx: fix Kconfig references to READMEs\n  Fix file references in drivers/ide/\n  thinkpad_acpi: Fix printk typo \u0027bluestooth\u0027\n  bcmring: drop commented out line in Kconfig\n  btmrvl_sdio: fix typo \u0027btmrvl_sdio_sd6888\u0027\n  doc: raw1394: Trivial typo fix\n  CIFS: Don\u0027t free volume_info-\u003eUNC until we are entirely done with it.\n  treewide: Correct spelling of successfully in comments\n  ...\n"
    },
    {
      "commit": "36b8d186e6cc8e32cb5227f5645a58e1bc0af190",
      "tree": "1000ad26e189e6ff2c53fb7eeff605f59c7ad94e",
      "parents": [
        "cd85b557414fe4cd44ea6608825e96612a5fe2b2",
        "c45ed235abf1b0b6666417e3c394f18717976acd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "message": "Merge branch \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security: (95 commits)\n  TOMOYO: Fix incomplete read after seek.\n  Smack: allow to access /smack/access as normal user\n  TOMOYO: Fix unused kernel config option.\n  Smack: fix: invalid length set for the result of /smack/access\n  Smack: compilation fix\n  Smack: fix for /smack/access output, use string instead of byte\n  Smack: domain transition protections (v3)\n  Smack: Provide information for UDS getsockopt(SO_PEERCRED)\n  Smack: Clean up comments\n  Smack: Repair processing of fcntl\n  Smack: Rule list lookup performance\n  Smack: check permissions from user space (v2)\n  TOMOYO: Fix quota and garbage collector.\n  TOMOYO: Remove redundant tasklist_lock.\n  TOMOYO: Fix domain transition failure warning.\n  TOMOYO: Remove tomoyo_policy_memory_lock spinlock.\n  TOMOYO: Simplify garbage collector.\n  TOMOYO: Fix make namespacecheck warnings.\n  target: check hex2bin result\n  encrypted-keys: check hex2bin result\n  ...\n"
    },
    {
      "commit": "9e4c109ac822395e0aae650e4e3c9e4903f6602f",
      "tree": "c59e7fabd8a43e6d3392045760653cbfeb5cd6e3",
      "parents": [
        "2900b33999e2fc8a8edf0dddaafffec4da25ee10"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 11 15:14:11 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 18 15:12:04 2011 -0500"
      },
      "message": "xfs: add AIL pushing tracepoints\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "2900b33999e2fc8a8edf0dddaafffec4da25ee10",
      "tree": "b6013dafbf461ee6a0ec4f0f554c02e26877b41a",
      "parents": [
        "9508534c5f170ada5a745cde0df49732718440e9"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 18 20:00:14 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 18 20:00:14 2011 +0000"
      },
      "message": "xfs: put in missed fix for merge problem\n\nI intended to do this as part of fixing part of the conflict with\nthe merge with Linus\u0027 tree, but evidently it didn\u0027t get included in\nthe commit.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "9508534c5f170ada5a745cde0df49732718440e9",
      "tree": "2b0f1e19aa529e77720522d13541adedbc46564e",
      "parents": [
        "5a93a064d27b42e4af1772b0599b53e3241191ac",
        "a84a79e4d369a73c0130b5858199e949432da4c6"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Oct 17 15:42:02 2011 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Oct 17 15:42:02 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux\n\nResolved conflicts:\n  fs/xfs/xfs_trans_priv.h:\n    - deleted struct xfs_ail field xa_flags\n    - kept field xa_log_flush in struct xfs_ail\n  fs/xfs/xfs_trans_ail.c:\n    - in xfsaild_push(), in XFS_ITEM_PUSHBUF case, replaced\n      \"flush_log \u003d 1\" with \"ailp-\u003exa_log_flush++\"\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "5a93a064d27b42e4af1772b0599b53e3241191ac",
      "tree": "67d51441dba4fd8645ec9f5eaacb5d60c62049c7",
      "parents": [
        "a9add83e5abd29bf2b7b3658311199eeabbdefc6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:53 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 22:34:31 2011 -0500"
      },
      "message": "xfs: do not flush data workqueues in xfs_flush_buftarg\n\nWhen we call xfs_flush_buftarg (generally from sync or umount) it already\nis too late to flush the data workqueues, as I/O completion is signalled\nfor them and we are thus already done with the data we would flush here.\n\nThere are places where flushing them might be useful, but the current\nsync interface doesn\u0027t give us that opportunity.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "a9add83e5abd29bf2b7b3658311199eeabbdefc6",
      "tree": "0219f5fad2baac905366ca559001f39c3ca90ed4",
      "parents": [
        "02b102df1502a7ea4167d115510e1e8fe6467f12"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:52 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:11 2011 -0500"
      },
      "message": "xfs: remove XFS_bflush\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "02b102df1502a7ea4167d115510e1e8fe6467f12",
      "tree": "b8895eb40f8690051a44858eeb497f61bfc2b74d",
      "parents": [
        "b38505b09b7854d446b2f60b4414e3231277aa1a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:11 2011 -0500"
      },
      "message": "xfs: remove xfs_buf_target_name\n\nThe calling convention that returns a pointer to a static buffer is\nfairly nasty, so just opencode it in the only caller that is left.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b38505b09b7854d446b2f60b4414e3231277aa1a",
      "tree": "f1f7984a14e6fdeee5b87df245c7f67dd9a0d602",
      "parents": [
        "901796afca0d31d97bf6d1bf2ab251a93a4b8c83"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:50 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: use xfs_ioerror_alert in xfs_buf_iodone_callbacks\n\nUse xfs_ioerror_alert instead of opencoding a very similar error\nmessage.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "901796afca0d31d97bf6d1bf2ab251a93a4b8c83",
      "tree": "85f204657d81700492487acbf39fb9702e6b0842",
      "parents": [
        "4347b9d7ad4223474d315c3ab6bc1ce7cce7fa2d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:49 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: clean up xfs_ioerror_alert\n\nInstead of passing the block number and mount structure explicitly\nget them off the bp and fix make the argument order more natural.\n\nAlso move it to xfs_buf.c and stop printing the device name given\nthat we already get the fs name as part of xfs_alert, and we know\nwhat device is operates on because of the caller that gets printed,\nfinally rename it to xfs_buf_ioerror_alert and pass __func__ as\nargument where it makes sense.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "4347b9d7ad4223474d315c3ab6bc1ce7cce7fa2d",
      "tree": "e82674b33a3a86528749d4960e0b0f97395c309e",
      "parents": [
        "af5c4bee499eb68bc36ca046030394d82d0e3669"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:48 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: clean up buffer allocation\n\nChange _xfs_buf_initialize to allocate the buffer directly and rename it to\nxfs_buf_alloc now that is the only buffer allocation routine.  Also remove\nthe xfs_buf_deallocate wrapper around the kmem_zone_free calls for buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "af5c4bee499eb68bc36ca046030394d82d0e3669",
      "tree": "4d015bdd36d9c424e04c8aaf8050dccb79cd7c31",
      "parents": [
        "c867cb61641751fd3d86350232d64ae2a10137d4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:47 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: remove buffers from the delwri list in xfs_buf_stale\n\nFor each call to xfs_buf_stale we call xfs_buf_delwri_dequeue either\ndirectly before or after it, or are guaranteed by the surrounding\nconditionals that we are never called on delwri buffers.  Simply\nthis situation by moving the call to xfs_buf_delwri_dequeue into\nxfs_buf_stale.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c867cb61641751fd3d86350232d64ae2a10137d4",
      "tree": "414d38d5edd941cee2eb07f9eeb7ebaa29d1cd5b",
      "parents": [
        "38f23232449c9d2c0bc8e9541cb8ab08b7c2b9ce"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:46 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: remove XFS_BUF_STALE and XFS_BUF_SUPER_STALE\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "38f23232449c9d2c0bc8e9541cb8ab08b7c2b9ce",
      "tree": "2713a5b8d1e42ef1a12047d839e4247381b95256",
      "parents": [
        "5fde0326ddb1472ef31034c8ed952a19d4679191"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:45 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: remove XFS_BUF_SET_VTYPE and XFS_BUF_SET_VTYPE_REF\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "5fde0326ddb1472ef31034c8ed952a19d4679191",
      "tree": "50733475339e3e8780893085a35c75b44a7b2849",
      "parents": [
        "b17b833443a3b65907f5ecb36f8af33996f6ec78"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:44 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: remove XFS_BUF_FINISH_IOWAIT\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b17b833443a3b65907f5ecb36f8af33996f6ec78",
      "tree": "ee378ac255df193914c70015b95b37944ce6aca1",
      "parents": [
        "87c7bec7fc3377b3873eb3a0f4b603981ea16ebb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:43 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: remove xfs_get_buftarg_list\n\nThe code is unused and under a config option that doesn\u0027t exist, remove it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "87c7bec7fc3377b3873eb3a0f4b603981ea16ebb",
      "tree": "abe143d8f76e4d95f2158134913b10fc9be6def1",
      "parents": [
        "1da2f2dbf2d2aaa1b0f6ca2f61fcf07e24eb659b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 14 14:08:26 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: fix buffer flushing during unmount\n\nThe code to flush buffers in the umount code is a bit iffy: we first\nflush all delwri buffers out, but then might be able to queue up a\nnew one when logging the sb counts.  On a normal shutdown that one\nwould get flushed out when doing the synchronous superblock write in\nxfs_unmountfs_writesb, but we skip that one if the filesystem has\nbeen shut down.\n\nFix this by moving the delwri list flushing until just before unmounting\nthe log, and while we\u0027re at it also remove the superflous delwri list\nand buffer lru flusing for the rt and log device that can never have\ncached or delwri buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Amit Sahrawat \u003camit.sahrawat83@gmail.com\u003e\nTested-by: Amit Sahrawat \u003camit.sahrawat83@gmail.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "1da2f2dbf2d2aaa1b0f6ca2f61fcf07e24eb659b",
      "tree": "41340d0cb08191d0bba677391e238d3771443033",
      "parents": [
        "670ce93fef93bba8c8a422a79747385bec8e846a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 02 14:25:16 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: optimize fsync on directories\n\nDirectories are only updated transactionally, which means fsync only\nneeds to flush the log the inode is currently dirty, but not bother\nwith checking for dirty data, non-transactional updates, and most\nimportanly doesn\u0027t have to flush disk caches except as part of a\ntransaction commit.\n\nWhile the first two optimizations can\u0027t easily be measured, the\nlatter actually makes a difference when doing lots of fsync that do\nnot actually have to commit the inode, e.g. because an earlier fsync\nalready pushed the log far enough.\n\nThe new xfs_dir_fsync is identical to xfs_nfs_commit_metadata except\nfor the prototype, but I\u0027m not sure creating a common helper for the\ntwo is worth it given how simple the functions are.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "670ce93fef93bba8c8a422a79747385bec8e846a",
      "tree": "2f358f3c38f847cd12caf5f5f1eb3c36d586c546",
      "parents": [
        "3815832a2aa4df9815d15dac05227e0c8551833f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Sep 30 04:45:03 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: reduce the number of log forces from tail pushing\n\nThe AIL push code will issue a log force on ever single push loop\nthat it exits and has encountered pinned items. It doesn\u0027t rescan\nthese pinned items until it revisits the AIL from the start. Hence\nwe only need to force the log once per walk from the start of the\nAIL to the target LSN.\n\nThis results in numbers like this:\n\n\txs_push_ail_flush.....         1456\n\txs_log_force.........          1485\n\nFor an 8-way 50M inode create workload - almost all the log forces\nare coming from the AIL pushing code.\n\nReduce the number of log forces by only forcing the log if the\nprevious walk found pinned buffers. This reduces the numbers to:\n\n\txs_push_ail_flush.....          665\n\txs_log_force.........           682\n\nFor the same test.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "3815832a2aa4df9815d15dac05227e0c8551833f",
      "tree": "f92c98e6e73d3d8e6da7909b1ebd8e7cf4888df9",
      "parents": [
        "ddc3415aba1cb2f86d1fcad720cea834ee178f54"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Sep 30 04:45:02 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: Don\u0027t allocate new buffers on every call to _xfs_buf_find\n\nStats show that for an 8-way unlink @ ~80,000 unlinks/s we are doing\n~1 million cache hit lookups to ~3000 buffer creates. That\u0027s almost\n3 orders of magnitude more cahce hits than misses, so optimising for\ncache hits is quite important. In the cache hit case, we do not need\nto allocate a new buffer in case of a cache miss, so we are\neffectively hitting the allocator for no good reason for vast the\nmajority of calls to _xfs_buf_find. 8-way create workloads are\nshowing similar cache hit/miss ratios.\n\nThe result is profiles that look like this:\n\n     samples  pcnt function                        DSO\n     _______ _____ _______________________________ _________________\n\n     1036.00 10.0% _xfs_buf_find                   [kernel.kallsyms]\n      582.00  5.6% kmem_cache_alloc                [kernel.kallsyms]\n      519.00  5.0% __memcpy                        [kernel.kallsyms]\n      468.00  4.5% __ticket_spin_lock              [kernel.kallsyms]\n      388.00  3.7% kmem_cache_free                 [kernel.kallsyms]\n      331.00  3.2% xfs_log_commit_cil              [kernel.kallsyms]\n\n\nFurther, there is a fair bit of work involved in initialising a new\nbuffer once a cache miss has occurred and we currently do that under\nthe rbtree spinlock. That increases spinlock hold time on what are\nheavily used trees.\n\nTo fix this, remove the initialisation of the buffer from\n_xfs_buf_find() and only allocate the new buffer once we\u0027ve had a\ncache miss. Initialise the buffer immediately after allocating it in\nxfs_buf_get, too, so that is it ready for insert if we get another\ncache miss after allocation. This minimises lock hold time and\navoids unnecessary allocator churn. The resulting profiles look\nlike:\n\n     samples  pcnt function                    DSO\n     _______ _____ ___________________________ _________________\n\n     8111.00  9.1% _xfs_buf_find               [kernel.kallsyms]\n     4380.00  4.9% __memcpy                    [kernel.kallsyms]\n     4341.00  4.8% __ticket_spin_lock          [kernel.kallsyms]\n     3401.00  3.8% kmem_cache_alloc            [kernel.kallsyms]\n     2856.00  3.2% xfs_log_commit_cil          [kernel.kallsyms]\n     2625.00  2.9% __kmalloc                   [kernel.kallsyms]\n     2380.00  2.7% kfree                       [kernel.kallsyms]\n     2016.00  2.3% kmem_cache_free             [kernel.kallsyms]\n\nShowing a significant reduction in time spent doing allocation and\nfreeing from slabs (kmem_cache_alloc and kmem_cache_free).\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "ddc3415aba1cb2f86d1fcad720cea834ee178f54",
      "tree": "7a31a932ce0b7080557be062ccc7c3c0e181b140",
      "parents": [
        "23bb0be1a237c8732ce1a43140e5cb103a676b92"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 19 15:00:54 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: simplify xfs_trans_ijoin* again\n\nThere is no reason to keep a reference to the inode even if we unlock\nit during transaction commit because we never drop a reference between\nthe ijoin and commit.  Also use this fact to merge xfs_trans_ijoin_ref\nback into xfs_trans_ijoin - the third argument decides if an unlock\nis needed now.\n\nI\u0027m actually starting to wonder if allowing inodes to be unlocked\nat transaction commit really is worth the effort.  The only real\nbenefit is that they can be unlocked earlier when commiting a\nsynchronous transactions, but that could be solved by doing the\nlog force manually after the unlock, too.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "23bb0be1a237c8732ce1a43140e5cb103a676b92",
      "tree": "deb4405e0612bf50472040587bbbef398a49888c",
      "parents": [
        "8292d88c5c833fc8b837c3a018fd6d72c35a3231"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:47:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: unlock the inode before log force in xfs_change_file_space\n\nLet the transaction commit unlock the inode before it potentially causes\na synchronous log force.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "8292d88c5c833fc8b837c3a018fd6d72c35a3231",
      "tree": "69d46f192c1aee634f4bab6cbf6b5891f4383a70",
      "parents": [
        "b10370585349d364ff3c550afa7922e6e21f029d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:47:50 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: unlock the inode before log force in xfs_fs_nfs_commit_metadata\n\nOnly read the LSN we need to push to with the ilock held, and then release\nit before we do the log force to improve concurrency.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b10370585349d364ff3c550afa7922e6e21f029d",
      "tree": "23996ee7961fc5595d72c5e149a4250c444356f4",
      "parents": [
        "815cb21662b914e1e14c256a3d662b1352c8509e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 19 14:55:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: unlock the inode before log force in xfs_fsync\n\nOnly read the LSN we need to push to with the ilock held, and then release\nit before we do the log force to improve concurrency.\n\nThis also removes the only direct caller of _xfs_trans_commit, thus\nallowing it to be merged into the plain xfs_trans_commit again.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "815cb21662b914e1e14c256a3d662b1352c8509e",
      "tree": "7e87f3d4c01a2869e2b5e438a688827c33d6f5cc",
      "parents": [
        "c029a50d51b8a9520105ec903639de03389915d0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 26 09:14:34 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: XFS_TRANS_SWAPEXT is not a valid flag for xfs_trans_commit\n\nXFS_TRANS_SWAPEXT is a transaction type, not a flag for xfs_trans_commit, so\ndon\u0027t pass it in xfs_swap_extents.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "c029a50d51b8a9520105ec903639de03389915d0",
      "tree": "f0d3993b6429eea9f4843a3113eb9258613f30ef",
      "parents": [
        "d952e2f81244d6502aff126df5011fab10f92187"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Sep 21 09:42:30 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: fix possible overflow in xfs_ioc_trim()\n\nIn xfs_ioc_trim it is possible that computing the last allocation group\nto discard might overflow for big start \u0026 len values, because the result\nmight be bigger then xfs_agnumber_t which is 32 bit long. Fix this by not\nallowing the start and end block of the range to be beyond the end of the\nfile system.\n\nNote that if the start is beyond the end of the file system we have to\nreturn -EINVAL, but in the \"end\" case we have to truncate it to the fs\nsize.\n\nAlso introduce \"end\" variable, rather than using start+len which which\nmight be more confusing to get right as this bug shows.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "d952e2f81244d6502aff126df5011fab10f92187",
      "tree": "15503180081395092f0c1395e6403d98c906c143",
      "parents": [
        "b0eab14e74d2d7b22d065e18a1cdebcf7716debf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:07 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: cleanup xfs_bmap.h\n\nConvert all function prototypes to the short form used elsewhere,\nand remove duplicates of comments already placed at the function\nbody.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b0eab14e74d2d7b22d065e18a1cdebcf7716debf",
      "tree": "c5cf9e53fe4b74202689fbe792c349077841d641",
      "parents": [
        "c6534249851d062113ab4d8d226be8dba8ecb92e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:06 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: dont ignore error code from xfs_bmbt_update\n\nFix a case in xfs_bmap_add_extent_unwritten_real where we aren\u0027t\npassing the returned error on.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c6534249851d062113ab4d8d226be8dba8ecb92e",
      "tree": "a838779512f25dfe93b4aaa506ca5c895db6f28a",
      "parents": [
        "572a4cf04ac7f46e9206aabfef03dae602812341"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:05 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: pass bmalloca to xfs_bmap_add_extent_hole_real\n\nAll the parameters passed to xfs_bmap_add_extent_hole_real() are in\nthe xfs_bmalloca structure now. Just pass the bmalloca parameter to\nthe function instead of 8 separate parameters.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "572a4cf04ac7f46e9206aabfef03dae602812341",
      "tree": "c548aecf511c86a4d8b47ef12c6a44a8d416aa5c",
      "parents": [
        "c315c90b7d530d1ec3c226052e153b0cffa512c8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:04 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: pass bmalloca to xfs_bmap_add_extent_delay_real\n\nAll the parameters passed to xfs_bmap_add_extent_delay_real() are in\nthe xfs_bmalloca structure now. Just pass the bmalloca parameter to\nthe function instead of 8 separate parameters.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c315c90b7d530d1ec3c226052e153b0cffa512c8",
      "tree": "d2b258ca4dba17f40cc2ea0d6a43a3ac79062299",
      "parents": [
        "e0c3da5d89dc1aeef2275a8b751231e147603f0f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:02 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: move logflags into bmalloca\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "e0c3da5d89dc1aeef2275a8b751231e147603f0f",
      "tree": "4409337fb70fba9979d8160d5055e402daa3a692",
      "parents": [
        "29c8d17a8938be88e36b93522753f3519aefd05d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:41:01 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: move lastx and nallocs into bmalloca\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "29c8d17a8938be88e36b93522753f3519aefd05d",
      "tree": "e54ac344f5228cd22d447a9759682f73ce3d4c6e",
      "parents": [
        "963c30cf45e8c832ae11438ff9d99c954b9d0114"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:41:00 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: move btree cursor into bmalloca\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "963c30cf45e8c832ae11438ff9d99c954b9d0114",
      "tree": "0d6c7ea97c4b4acaea918d6e158a3aa09dc37ca6",
      "parents": [
        "3a75667e902dbdb87718b1ee2b3b745b344a8163"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:59 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: do not keep local copies of allocation ranges in xfs_bmapi_allocate\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "3a75667e902dbdb87718b1ee2b3b745b344a8163",
      "tree": "bf90e6235b875f085636faa1f4ee7ad07551be1d",
      "parents": [
        "0937e0fd8be6f9c26844127d39d677bb752e8741"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:58 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: rename allocation range fields in struct xfs_bmalloca\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "0937e0fd8be6f9c26844127d39d677bb752e8741",
      "tree": "f05f9c8a7cb6459726a9f207025b495853b913e8",
      "parents": [
        "baf41a52b9c62f9a825371806129ed12e2c1e2d8"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:57 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:05 2011 -0500"
      },
      "message": "xfs: move firstblock and bmap freelist cursor into bmalloca structure\n\nRather than passing the firstblock and freelist structure around,\nembed it into the bmalloca structure and remove it from the function\nparameters.\n\nThis also enables the minleft parameter to be set only once in\nxfs_bmapi_write(), and the freelist cursor directly queried in\nxfs_bmapi_allocate to clear it when the lowspace algorithm is\nactivated.\n    \nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "baf41a52b9c62f9a825371806129ed12e2c1e2d8",
      "tree": "18779d98f2e82d24bdda9252d003960f474d4049",
      "parents": [
        "1b16447ba24ae39c7fe7133fcdcb4f174dec1901"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Sep 18 20:40:56 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:05 2011 -0500"
      },
      "message": "xfs: move extent records into bmalloca structure\n\nRather that putting extent records on the stack and then pointing to\nthem in the bmalloca structure which is in the same stack frame, put\nthe extent records directly in the bmalloca structure. This reduces\nthe number of args that need to be passed around.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "1b16447ba24ae39c7fe7133fcdcb4f174dec1901",
      "tree": "5c5f6c00bfe189882a7ba170466b1904c66e74ae",
      "parents": [
        "a5bd606ba65f24e5990edfc0e7b52702720ee6fa"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:55 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:05 2011 -0500"
      },
      "message": "xfs: pass bmalloca structure to xfs_bmap_isaeof\n\nAll the variables xfs_bmap_isaeof() is passed are contained within\nthe xfs_bmalloca structure. Pass that instead.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "a5bd606ba65f24e5990edfc0e7b52702720ee6fa",
      "tree": "a3492cb106bfaa0e5bc4c3b14c7b513ec01fcbbd",
      "parents": [
        "27a3f8f2de758205765f277b3428bbf3d15da973"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:40:54 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:05 2011 -0500"
      },
      "message": "xfs: remove xfs_bmap_add_extent\n\nThere is no real need to the xfs_bmap_add_extent, as the callers\nknow what kind of extents they need to it.  Removing it means\nduplicating the extents to btree conversion logic in three places,\nbut overall it\u0027s still much simpler code and quite a bit less code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "27a3f8f2de758205765f277b3428bbf3d15da973",
      "tree": "df658a3a539358117e53026cbd6e4d4f98af7989",
      "parents": [
        "c0dc7828af6952643219292be29e482ef74cb261"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:40:53 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:05 2011 -0500"
      },
      "message": "xfs: introduce xfs_bmap_last_extent\n\nAdd a common helper for finding the last extent in a file.\n\nLargely based on a patch from Dave Chinner.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c0dc7828af6952643219292be29e482ef74cb261",
      "tree": "02f12935ec56f61a9ed396d1b902b21aaf4ffb3e",
      "parents": [
        "b447fe5a05cbd01c4bf7fe2fa41cb9e99ce7e58e"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:52 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:04 2011 -0500"
      },
      "message": "xfs: rename xfs_bmapi to xfs_bmapi_write\n\nNow that all the read-only users of xfs_bmapi have been converted to\nuse xfs_bmapi_read(), we can remove all the read-only handling cases\nfrom xfs_bmapi().\n\nOnce this is done, rename xfs_bmapi to xfs_bmapi_write to reflect\nthe fact it is for allocation only. This enables us to kill the\nXFS_BMAPI_WRITE flag as well.\n\nAlso clean up xfs_bmapi_write to the style used in the newly added\nxfs_bmapi_read/delay functions.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "b447fe5a05cbd01c4bf7fe2fa41cb9e99ce7e58e",
      "tree": "2c9a08fe5802d7164398da9f186d7389b5fafb87",
      "parents": [
        "7e47a4efde33aa3f0cb901e086a75751c2269f04"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:04 2011 -0500"
      },
      "message": "xfs: factor unwritten extent map manipulations out of xfs_bmapi\n\nTo further improve the readability of xfs_bmapi(), factor the\nunwritten extent conversion out into a separate function. This\nremoves large block of logic from the xfs_bmapi() code loop and\nmakes it easier to see the operational logic flow for xfs_bmapi().\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "7e47a4efde33aa3f0cb901e086a75751c2269f04",
      "tree": "2ed47e82967b9b2655fc700bcc0fd5a375433fa2",
      "parents": [
        "1fd044d9c6735e669f0db025f18023e56a608130"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:50 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:04 2011 -0500"
      },
      "message": "xfs: factor extent allocation out of xfs_bmapi\n\nTo further improve the readability of xfs_bmapi(), factor the extent\nallocation out into a separate function. This removes a large block\nof logic from the xfs_bmapi() code loop and makes it easier to see\nthe operational logic flow for xfs_bmapi().\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "1fd044d9c6735e669f0db025f18023e56a608130",
      "tree": "605e5f4517144401c2be2fcb234dc8b8f301afc6",
      "parents": [
        "4403280aa5c00c6074f2dc23e1cfc11f2bfb0032"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:40:49 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:04 2011 -0500"
      },
      "message": "xfs: do not use xfs_bmap_add_extent for adding delalloc extents\n\nWe can just call xfs_bmap_add_extent_hole_delay directly to add a\ndelayed allocated regions to the extent tree, instead of going\nthrough all the complexities of xfs_bmap_add_extent that aren\u0027t\nneeded for this simple case.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "4403280aa5c00c6074f2dc23e1cfc11f2bfb0032",
      "tree": "322f188e78d6faf1cae53cb56ed7918d49702366",
      "parents": [
        "b64dfe4e180ab5047c59bcbe379538eb23be4d8e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:40:48 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:04 2011 -0500"
      },
      "message": "xfs: introduce xfs_bmapi_delay()\n\nDelalloc reservations are much simpler than allocations, so give\nthem a separate bmapi-level interface.  Using the previously added\nxfs_bmapi_reserve_delalloc we get a function that is only minimally\nmore complicated than xfs_bmapi_read, which is far from the complexity\nin xfs_bmapi.  Also remove the XFS_BMAPI_DELAY code after switching\nover the only user to xfs_bmapi_delay.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b64dfe4e180ab5047c59bcbe379538eb23be4d8e",
      "tree": "1c159801e7c7c0f947c0edd572e8ec26baf42ada",
      "parents": [
        "5b777ad517ee75d3bb8d67c142d808822e46601b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:40:47 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:04 2011 -0500"
      },
      "message": "xfs: factor delalloc reservations out of xfs_bmapi\n\nMove the reservation of delayed allocations, and addition of delalloc\nregions to the extent trees into a new helper function.  For now\nthis adds some twisted goto logic to xfs_bmapi, but that will be\ncleaned up in the following patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "5b777ad517ee75d3bb8d67c142d808822e46601b",
      "tree": "0f73fed092f3772d51890f3e90fe518460522e3b",
      "parents": [
        "5c8ed2021ff291f5e399a9b43c4f699b2fc58fbb"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:46 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:03 2011 -0500"
      },
      "message": "xfs: remove xfs_bmapi_single()\n\nNow we have xfs_bmapi_read, there is no need for xfs_bmapi_single().\nChange the remaining caller over and kill the function.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "5c8ed2021ff291f5e399a9b43c4f699b2fc58fbb",
      "tree": "36d8375935324279fb27e50daa7fc6873ff68cea",
      "parents": [
        "aef9a89586fc8475bf0333b8736d5aa8aa6f4897"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:45 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:03 2011 -0500"
      },
      "message": "xfs: introduce xfs_bmapi_read()\n\nxfs_bmapi() currently handles both extent map reading and\nallocation. As a result, the code is littered with \"if (wr)\"\nbranches to conditionally do allocation operations if required.\nThis makes the code much harder to follow and causes significant\nindent issues with the code.\n\nGiven that read mapping is much simpler than allocation, we can\nsplit out read mapping from xfs_bmapi() and reuse the logic that\nwe have already factored out do do all the hard work of handling the\nextent map manipulations. The results in a much simpler function for\nthe common extent read operations, and will allow the allocation\ncode to be simplified in another commit.\n\nOnce xfs_bmapi_read() is implemented, convert all the callers of\nxfs_bmapi() that are only reading extents to use the new function.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "aef9a89586fc8475bf0333b8736d5aa8aa6f4897",
      "tree": "c9f7a1d4744335f7bc36dd4b06b223af440cc170",
      "parents": [
        "ecee76ba9d91fdcbdff933ca1bd41465ca4c4fdb"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:44 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:03 2011 -0500"
      },
      "message": "xfs: factor extent map manipulations out of xfs_bmapi\n\nTo further improve the readability of xfs_bmapi(), factor the pure\nextent map manipulations out into separate functions. This removes\nlarge blocks of logic from the xfs_bmapi() code loop and makes it\neasier to see the operational logic flow for xfs_bmapi().\n    \nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "ecee76ba9d91fdcbdff933ca1bd41465ca4c4fdb",
      "tree": "70baed19a4cab18ce053e961a16ba313c3bd4220",
      "parents": [
        "b9b984d7846e37c57e5b3f8cd883ad45e8ebc2cf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:40:43 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:03 2011 -0500"
      },
      "message": "xfs: remove the nextents variable in xfs_bmapi\n\nInstead of using a local variable that needs to updated when we modify\nthe extent map just check ifp-\u003eif_bytes directly where we use it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b9b984d7846e37c57e5b3f8cd883ad45e8ebc2cf",
      "tree": "93e383481dcbb5b5c4ded5d25e10cec1c95ac997",
      "parents": [
        "e7455e02e5effcdd49bb28e7dfface2d3473de52"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:40:42 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:03 2011 -0500"
      },
      "message": "xfs: remove impossible to read code in xfs_bmap_add_extent_delay_real\n\nWe already have the worst case blocks reserved, so xfs_icsb_modify_counters\nwon\u0027t fail in xfs_bmap_add_extent_delay_real.  In fact we\u0027ve had an assert\nto catch this case since day and it never triggered.  So remove the code\nto try smaller reservations, and just return the error for that case in\naddition to keeping the assert.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "e7455e02e5effcdd49bb28e7dfface2d3473de52",
      "tree": "575d3f79215d575f2baf62b1279a7bfc567521e5",
      "parents": [
        "ed32201e65e15f3e6955cb84cbb544b08f81e5a5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:40:41 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:03 2011 -0500"
      },
      "message": "xfs: remove the first extent special case in xfs_bmap_add_extent\n\nBoth xfs_bmap_add_extent_hole_delay and xfs_bmap_add_extent_hole_real\nalready contain code to handle the case where there is no extent to\nmerge with, which is effectively the same as the code duplicated here.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "ed32201e65e15f3e6955cb84cbb544b08f81e5a5",
      "tree": "208caf358e04fd5ffd1af304f2c78a5f9be22df1",
      "parents": [
        "eabbaf118239d0d4188298b52751040f3b4cc28f"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Sat Sep 17 13:38:38 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:02 2011 -0500"
      },
      "message": "xfs: Return -EIO when xfs_vn_getattr() failed\n\nAn attribute of inode can be fetched via xfs_vn_getattr() in XFS.\nCurrently it returns EIO, not negative value, when it failed.  As a\nresult, the system call returns not negative value even though an\nerror occured. The stat(2), ls and mv commands cannot handle this\nerror and do not work correctly.\n\nThis patch fixes this bug, and returns -EIO, not EIO when an error\nis detected in xfs_vn_getattr().\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "eabbaf118239d0d4188298b52751040f3b4cc28f",
      "tree": "79ad38cf1dec13aa48e36edb5c498e294f7be565",
      "parents": [
        "2a30f36d9069b0646dcdd73def5fd7ab674bffd6"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu Sep 08 20:18:50 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:02 2011 -0500"
      },
      "message": "xfs: Fix the incorrect comment in the header of _xfs_buf_find\n\nFix the incorrect comment in the header of the function\n_xfs_buf_find().\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "2a30f36d9069b0646dcdd73def5fd7ab674bffd6",
      "tree": "d7be19830eaa3c85b9e06882ccec369630ce9ca2",
      "parents": [
        "b522950f0ab8551f2ef56c210ebd50e6c6396601"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Sep 20 13:56:55 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:01 2011 -0500"
      },
      "message": "xfs: Check the return value of xfs_trans_get_buf()\n\nCheck the return value of xfs_trans_get_buf() and fail\nappropriately.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "b522950f0ab8551f2ef56c210ebd50e6c6396601",
      "tree": "abdd6143268403b82de0e61296b2fe864ae98c10",
      "parents": [
        "04f658ee229f60dbb9a0dc2f3d6871b12b758051"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Wed Sep 07 19:37:54 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:01 2011 -0500"
      },
      "message": "xfs: Check the return value of xfs_buf_get()\n\nCheck the return value of xfs_buf_get() and fail appropriately.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "04f658ee229f60dbb9a0dc2f3d6871b12b758051",
      "tree": "eee3e17cf4af0f5c6cbb8393f247dfb6d823615a",
      "parents": [
        "c58cb165bd44de8aaee9755a144136ae743be116"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Aug 24 05:59:25 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:01 2011 -0500"
      },
      "message": "xfs: improve ioend error handling\n\nReturn unwritten extent conversion errors to aio_complete.\n\nSkip both unwritten extent conversion and size updates if we had an\nI/O error or the filesystem has been shut down.\n\nReturn -EIO to the aio/buffer completion handlers in case of a\nforced shutdown.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "c58cb165bd44de8aaee9755a144136ae743be116",
      "tree": "47cf60c7555cf49eb76bbc682bd355e726f51df3",
      "parents": [
        "859f57ca00805e6c482eef1a7ab073097d02c8ca"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Aug 27 14:42:53 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:01 2011 -0500"
      },
      "message": "xfs: avoid direct I/O write vs buffered I/O race\n\nCurrently a buffered reader or writer can add pages to the pagecache\nwhile we are waiting for the iolock in xfs_file_dio_aio_write.  Prevent\nthis by re-checking mapping-\u003enrpages after we got the iolock, and if\nnessecary upgrade the lock to exclusive mode.  To simplify this a bit\nonly take the ilock inside of xfs_file_aio_write_checks.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "859f57ca00805e6c482eef1a7ab073097d02c8ca",
      "tree": "c39d3e719c396667804a50afd37d7f8364f84388",
      "parents": [
        "4a06fd262dbeb70a2c315f7259e063efa493fe3d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Aug 27 14:45:11 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:01 2011 -0500"
      },
      "message": "xfs: avoid synchronous transactions when deleting attr blocks\n\nCurrently xfs_attr_inactive causes a synchronous transactions if we are\nremoving a file that has any extents allocated to the attribute fork, and\nthus makes XFS extremely slow at removing files with out of line extended\nattributes. The code looks a like a relict from the days before the busy\nextent list, but with the busy extent list we avoid reusing data and attr\nextents that have been freed but not commited yet, so this code is just\nas superflous as the synchronous transactions for data blocks.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Bernd Schubert \u003cbernd.schubert@itwm.fraunhofer.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "4a06fd262dbeb70a2c315f7259e063efa493fe3d",
      "tree": "cca4aee6c419a8b3dc267176bb43d93048593919",
      "parents": [
        "2b3ffd7eb7b4392e3657c5046b055ca9f1f7cf5e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:13 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:01 2011 -0500"
      },
      "message": "xfs: remove i_iocount\n\nWe now have an i_dio_count filed and surrounding infrastructure to wait\nfor direct I/O completion instead of i_icount, and we have never needed\nto iocount waits for buffered I/O given that we only set the page uptodate\nafter finishing all required work.  Thus remove i_iocount, and replace\nthe actually needed waits with calls to inode_dio_wait.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "2b3ffd7eb7b4392e3657c5046b055ca9f1f7cf5e",
      "tree": "fae89c3a78eca1ea273eb239d967b0eae23c7a50",
      "parents": [
        "fc0063c4474599b7a066ba76b90902abe21bc675"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:12 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:00 2011 -0500"
      },
      "message": "xfs: wait for I/O completion when writing out pages in xfs_setattr_size\n\nThe current code relies on the xfs_ioend_wait call later on to make sure\nall I/O actually has completed.  The xfs_ioend_wait call will go away soon,\nso prepare for that by using the waiting filemap function.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "fc0063c4474599b7a066ba76b90902abe21bc675",
      "tree": "9b402cb8337cbfb231627494e85fda32256fad19",
      "parents": [
        "c859cdd1da008b3825555be3242908088a3de366"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:11 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:00 2011 -0500"
      },
      "message": "xfs: reduce ioend latency\n\nThere is no reason to queue up ioends for processing in user context\nunless we actually need it.  Just complete ioends that do not convert\nunwritten extents or need a size update from the end_io context.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c859cdd1da008b3825555be3242908088a3de366",
      "tree": "0d5c5d22d1d10a346da81990a3c94bfabfd03904",
      "parents": [
        "398d25ef23b10ce75424e0336a8d059dda1dbc8d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:10 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:00 2011 -0500"
      },
      "message": "xfs: defer AIO/DIO completions\n\nWe really shouldn\u0027t complete AIO or DIO requests until we have finished\nthe unwritten extent conversion and size update.  This means fsync never\nhas to pick up any ioends as all work has been completed when signalling\nI/O completion.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "398d25ef23b10ce75424e0336a8d059dda1dbc8d",
      "tree": "41edea67ec38dba4c2da50e43bbdedb9203e8628",
      "parents": [
        "c4e1c098ee8a72ea563a697a2b175868be86fdc9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:09 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:00 2011 -0500"
      },
      "message": "xfs: remove dead ENODEV handling in xfs_destroy_ioend\n\nNo driver returns ENODEV from it bio completion handler, not has this\never been documented.  Remove the dead code dealing with it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c4e1c098ee8a72ea563a697a2b175868be86fdc9",
      "tree": "c584856c23fe1dee09021d93eb8f9ddf88c5dddd",
      "parents": [
        "c2b006c1da1602551def200e4661535f02b82488"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:08 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:00 2011 -0500"
      },
      "message": "xfs: use the \"delwri\" terminology consistently\n\nAnd also remove the strange local lock and delwri list pointers in a few\nfunctions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c2b006c1da1602551def200e4661535f02b82488",
      "tree": "6801f459bb218ed062d30e31eb92d3867ce8166a",
      "parents": [
        "61551f1ee536289084a4a8f1c4f187e2f371c440"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:07 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:00 2011 -0500"
      },
      "message": "xfs: let xfs_bwrite callers handle the xfs_buf_relse\n\nRemove the xfs_buf_relse from xfs_bwrite and let the caller handle it to\nmirror the delwri and read paths.\n\nAlso remove the mount pointer passed to xfs_bwrite, which is superflous now\nthat we have a mount pointer in the buftarg.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "61551f1ee536289084a4a8f1c4f187e2f371c440",
      "tree": "b160fd8779bafb6ec8e99f928bcb3e222a91817e",
      "parents": [
        "5a8ee6bafdd0ab8555adceac8b2cec539a552a1f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:06 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:14:59 2011 -0500"
      },
      "message": "xfs: call xfs_buf_delwri_queue directly\n\nUnify the ways we add buffers to the delwri queue by always calling\nxfs_buf_delwri_queue directly.  The xfs_bdwrite functions is removed and\nopencoded in its callers, and the two places setting XBF_DELWRI while a\nbuffer is locked and expecting xfs_buf_unlock to pick it up are converted\nto call xfs_buf_delwri_queue directly, too.  Also replace the\nXFS_BUF_UNDELAYWRITE macro with direct calls to xfs_buf_delwri_dequeue\nto make the explicit queuing/dequeuing more obvious.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "5a8ee6bafdd0ab8555adceac8b2cec539a552a1f",
      "tree": "58ee49a1a736bac15082444e3cd85f0ba568d63d",
      "parents": [
        "527cfdf19dd538a5a9e46b9bed0f30a38c28438d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:05 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:14:59 2011 -0500"
      },
      "message": "xfs: move more delwri setup into xfs_buf_delwri_queue\n\nDo not transfer a reference held by the caller to the buffer on the list,\nor decrement it in xfs_buf_delwri_queue, but instead grab a new reference\nif needed, and let the caller drop its own reference.  Also move setting\nof the XBF_DELWRI and XBF_ASYNC flags into xfs_buf_delwri_queue, and\nonly do it if needed.  Note that for now xfs_buf_unlock already has\nXBF_DELWRI, but that will change in the following patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "527cfdf19dd538a5a9e46b9bed0f30a38c28438d",
      "tree": "d6fe2410b628b27b159f3db9113b9186c1871bfd",
      "parents": [
        "375ec69d2ef6e0797f19f5823e36e249765c3d41"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:04 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:14:59 2011 -0500"
      },
      "message": "xfs: remove the unlock argument to xfs_buf_delwri_queue\n\nWe can just unlock the buffer in the caller, and the decrement of b_hold\nwould also be needed in the !unlock, we just never hit that case currently\ngiven that the caller handles that case.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "375ec69d2ef6e0797f19f5823e36e249765c3d41",
      "tree": "5c41cec41a3f8e852bb55500be6ed22efa30290c",
      "parents": [
        "7271d243f9d1b4106289e4cf876c8b1203de59ab"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Aug 23 08:28:03 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:14:59 2011 -0500"
      },
      "message": "xfs: remove delwri buffer handling from xfs_buf_iorequest\n\nWe cannot ever reach xfs_buf_iorequest for a buffer with XBF_DELWRI set,\ngiven that all write handlers make sure that the buffer is remove from\nthe delwri queue before, and we never do reads with the XBF_DELWRI flag\nset (which the code would not handle correctly anyway).\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "7271d243f9d1b4106289e4cf876c8b1203de59ab",
      "tree": "0fa71fcbab0ab9b7aa89cdd37bf05564ecc3ac4d",
      "parents": [
        "0c38a2512df272b14ef4238b476a2e4f70da1479"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Aug 25 07:17:02 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:14:59 2011 -0500"
      },
      "message": "xfs: don\u0027t serialise adjacent concurrent direct IO appending writes\n\nFor append write workloads, extending the file requires a certain\namount of exclusive locking to be done up front to ensure sanity in\nthings like ensuring that we\u0027ve zeroed any allocated regions\nbetween the old EOF and the start of the new IO.\n\nFor single threads, this typically isn\u0027t a problem, and for large\nIOs we don\u0027t serialise enough for it to be a problem for two\nthreads on really fast block devices. However for smaller IO and\nlarger thread counts we have a problem.\n\nTake 4 concurrent sequential, single block sized and aligned IOs.\nAfter the first IO is submitted but before it completes, we end up\nwith this state:\n\n        IO 1    IO 2    IO 3    IO 4\n      +-------+-------+-------+-------+\n      ^       ^\n      |       |\n      |       |\n      |       |\n      |       \\- ip-\u003ei_new_size\n      \\- ip-\u003ei_size\n\nAnd the IO is done without exclusive locking because offset \u003c\u003d\nip-\u003ei_size. When we submit IO 2, we see offset \u003e ip-\u003ei_size, and\ngrab the IO lock exclusive, because there is a chance we need to do\nEOF zeroing. However, there is already an IO in progress that avoids\nthe need for IO zeroing because offset \u003c\u003d ip-\u003ei_new_size. hence we\ncould avoid holding the IO lock exlcusive for this. Hence after\nsubmission of the second IO, we\u0027d end up this state:\n\n        IO 1    IO 2    IO 3    IO 4\n      +-------+-------+-------+-------+\n      ^               ^\n      |               |\n      |               |\n      |               |\n      |               \\- ip-\u003ei_new_size\n      \\- ip-\u003ei_size\n\nThere is no need to grab the i_mutex of the IO lock in exclusive\nmode if we don\u0027t need to invalidate the page cache. Taking these\nlocks on every direct IO effective serialises them as taking the IO\nlock in exclusive mode has to wait for all shared holders to drop\nthe lock. That only happens when IO is complete, so effective it\nprevents dispatch of concurrent direct IO writes to the same inode.\n\nAnd so you can see that for the third concurrent IO, we\u0027d avoid\nexclusive locking for the same reason we avoided the exclusive lock\nfor the second IO.\n\nFixing this is a bit more complex than that, because we need to hold\na write-submission local value of ip-\u003ei_new_size to that clearing\nthe value is only done if no other thread has updated it before our\nIO completes.....\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "0c38a2512df272b14ef4238b476a2e4f70da1479",
      "tree": "a88374d18dc0d28521d74bbf9ccde245ccaccdda",
      "parents": [
        "976d167615b64e14bc1491ca51d424e2ba9a5e84"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Aug 25 07:17:01 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:14:59 2011 -0500"
      },
      "message": "xfs: don\u0027t serialise direct IO reads on page cache checks\n\nThere is no need to grab the i_mutex of the IO lock in exclusive\nmode if we don\u0027t need to invalidate the page cache. Taking these\nlocks on every direct IO effective serialises them as taking the IO\nlock in exclusive mode has to wait for all shared holders to drop\nthe lock. That only happens when IO is complete, so effective it\nprevents dispatch of concurrent direct IO reads to the same inode.\n\nFix this by taking the IO lock shared to check the page cache state,\nand only then drop it and take the IO lock exclusively if there is\nwork to be done. Hence for the normal direct IO case, no exclusive\nlocking will occur.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nTested-by: Joern Engel \u003cjoern@logfs.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "0030807c66f058230bcb20d2573bcaf28852e804",
      "tree": "40c98d94085b6556cbbb33a7f5fca5a2cce153a2",
      "parents": [
        "17b38471c3c07a49f0bbc2ecc2e92050c164e226"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 11 11:14:10 2011 -0400"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 11:02:49 2011 -0500"
      },
      "message": "xfs: revert to using a kthread for AIL pushing\n\nCurrently we have a few issues with the way the workqueue code is used to\nimplement AIL pushing:\n\n - it accidentally uses the same workqueue as the syncer action, and thus\n   can be prevented from running if there are enough sync actions active\n   in the system.\n - it doesn\u0027t use the HIGHPRI flag to queue at the head of the queue of\n   work items\n\nAt this point I\u0027m not confident enough in getting all the workqueue flags and\ntweaks right to provide a perfectly reliable execution context for AIL\npushing, which is the most important piece in XFS to make forward progress\nwhen the log fills.\n\nRevert back to use a kthread per filesystem which fixes all the above issues\nat the cost of having a task struct and stack around for each mounted\nfilesystem.  In addition this also gives us much better ways to diagnose\nany issues involving hung AIL pushing and removes a small amount of code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Stefan Priebe \u003cs.priebe@profihost.ag\u003e\nTested-by: Stefan Priebe \u003cs.priebe@profihost.ag\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "17b38471c3c07a49f0bbc2ecc2e92050c164e226",
      "tree": "163e112a5736240efc29dab83d0603c931dff98f",
      "parents": [
        "bc6e588a8971aa74c02e42db4d6e0248679f3738"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 11 15:14:09 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 11:02:48 2011 -0500"
      },
      "message": "xfs: force the log if we encounter pinned buffers in .iop_pushbuf\n\nWe need to check for pinned buffers even in .iop_pushbuf given that inode\nitems flush into the same buffers that may be pinned directly due operations\non the unlinked inode list operating directly on buffers.  To do this add a\nreturn value to .iop_pushbuf that tells the AIL push about this and use\nthe existing log force mechanisms to unpin it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Stefan Priebe \u003cs.priebe@profihost.ag\u003e\nTested-by: Stefan Priebe \u003cs.priebe@profihost.ag\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "bc6e588a8971aa74c02e42db4d6e0248679f3738",
      "tree": "a9c8361b9f2d5b0364f5f4c3433e413b8f434dac",
      "parents": [
        "65112dccf8a113737684366349d7f9ec373ddc47"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 11 15:14:08 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 11:02:48 2011 -0500"
      },
      "message": "xfs: do not update xa_last_pushed_lsn for locked items\n\nIf an item was locked we should not update xa_last_pushed_lsn and thus skip\nit when restarting the AIL scan as we need to be able to lock and write it\nout as soon as possible.  Otherwise heavy lock contention might starve AIL\npushing too easily, especially given the larger backoff once we moved\nxa_last_pushed_lsn all the way to the target lsn.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Stefan Priebe \u003cs.priebe@profihost.ag\u003e\nTested-by: Stefan Priebe \u003cs.priebe@profihost.ag\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "e060c38434b2caa78efe7cedaff4191040b65a15",
      "tree": "407361230bf6733f63d8e788e4b5e6566ee04818",
      "parents": [
        "10e4ac572eeffe5317019bd7330b6058a400dfc2",
        "cc39c6a9bbdebfcf1a7dee64d83bf302bc38d941"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 15:08:05 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 15:08:18 2011 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nFast-forward merge with Linus to be able to merge patches\nbased on more recent version of the tree.\n"
    },
    {
      "commit": "558feb0818374d657fbc1ea03776ee20f204b3a6",
      "tree": "9c063b50ef953405850422ca740dda3093ef6387",
      "parents": [
        "1ac4594d88f63ba1557cc1a30ec1f915ca55b7cb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sat May 28 10:36:33 2011 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Sep 15 13:56:28 2011 +0200"
      },
      "message": "fs: Convert vmalloc/memset to vzalloc\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2d2422aebc037095f77551119f795449d29befed",
      "tree": "1786857f965cb63887c2bd7fd8dd08aabaefab4a",
      "parents": [
        "003f6c9df54970d8b19578d195b3e2b398cdbde2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 13 22:26:00 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Sep 14 08:56:35 2011 -0500"
      },
      "message": "xfs: fix a use after free in xfs_end_io_direct_write\n\nThere is a window in which the ioend that we call inode_dio_wake on\nin xfs_end_io_direct_write is already free.  Fix this by storing\nthe inode pointer in a local variable.\n\nThis is a fix for the regression introduced in 3.1-rc by\n\"fs: move inode_dio_done to the end_io handler\".\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "58d84c4ee0389ddeb86238d5d8359a982c9f7a5b",
      "tree": "c43d68e71407f45b4ecde6c2602d979ca1d03c34",
      "parents": [
        "866e4ed77448a0c311e1b055eb72ea05423fd799"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Aug 27 05:57:55 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Sep 01 09:46:11 2011 -0500"
      },
      "message": "xfs: fix -\u003ewrite_inode return values\n\nCurrently we always redirty an inode that was attempted to be written out\nsynchronously but has been cleaned by an AIL pushed internall, which is\nrather bogus.  Fix that by doing the i_update_core check early on and\nreturn 0 for it.  Also include async calls for it, as doing any work for\nthose is just as pointless.  While we\u0027re at it also fix the sign for the\nEIO return in case of a filesystem shutdown, and fix the completely\nnon-sensical locking around xfs_log_inode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n(cherry picked from commit 297db93bb74cf687510313eb235a7aec14d67e97)\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "866e4ed77448a0c311e1b055eb72ea05423fd799",
      "tree": "96180dbd62cc578f48404d639df87163a337135f",
      "parents": [
        "242d621964dd8641df53f7d51d4c6ead655cc5a6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Aug 27 05:57:44 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Aug 31 17:59:39 2011 -0500"
      },
      "message": "xfs: fix xfs_mark_inode_dirty during umount\n\nDuring umount we do not add a dirty inode to the lru and wait for it to\nbecome clean first, but force writeback of data and metadata with\nI_WILL_FREE set.  Currently there is no way for XFS to detect that the\ninode has been redirtied for metadata operations, as we skip the\nmark_inode_dirty call during teardown.  Fix this by setting i_update_core\nnanually in that case, so that the inode gets flushed during inode reclaim.\n\nAlternatively we could enable calling mark_inode_dirty for inodes in\nI_WILL_FREE state, and let the VFS dirty tracking handle this.  I decided\nagainst this as we will get better I/O patterns from reclaim compared to\nthe synchronous writeout in write_inode_now, and always marking the inode\ndirty in some way from xfs_mark_inode_dirty is a better safetly net in\neither case.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n(cherry picked from commit da6742a5a4cc844a9982fdd936ddb537c0747856)\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "242d621964dd8641df53f7d51d4c6ead655cc5a6",
      "tree": "50fa61892c54ddf7a46e35d7f76451da3f80a5bd",
      "parents": [
        "b6bede3b4cdfbd188557ab50fceec2e91d295edf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Aug 24 05:57:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Aug 25 10:30:05 2011 -0500"
      },
      "message": "xfs: deprecate the nodelaylog mount option\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "b6bede3b4cdfbd188557ab50fceec2e91d295edf",
      "tree": "9ebdeda9a0cac40a90d4b01c30380034b6f671d9",
      "parents": [
        "c59d87c460767bc35dafd490139d3cfe78fb8da4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Aug 14 17:13:00 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Aug 22 16:37:24 2011 -0500"
      },
      "message": "xfs: fix tracing builds inside the source tree\n\nThe code really requires the current source directory to be in the\nheader search path.  We already do this if building with an object\ntree separate from the source, but it needs to be added manually\nif building inside the source.  The cflags addition for it accidentally\ngot removed when collapsing the xfs directory structure.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c59d87c460767bc35dafd490139d3cfe78fb8da4",
      "tree": "2aad8261f86488e501d9645bd35d1398906da46d",
      "parents": [
        "06f8e2d6754dc631732415b741b5aa58a0f7133f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Aug 12 16:21:35 2011 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Aug 12 16:21:35 2011 -0500"
      },
      "message": "xfs: remove subdirectories\n\nUse the move from Linux 2.6 to Linux 3.x as an excuse to kill the\nannoying subdirectories in the XFS source code.  Besides the large\namount of file rename the only changes are to the Makefile, a few\nfiles including headers with the subdirectory prefix, and the binary\nsysctl compat code that includes a header under fs/xfs/ from\nkernel/.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "06f8e2d6754dc631732415b741b5aa58a0f7133f",
      "tree": "ed26461699fc8f4d734da5ceb27f7aeec718f2f7",
      "parents": [
        "e570280521290c27621d60cffea2400bdf1f2c88"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Aug 12 13:57:55 2011 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Aug 12 13:57:55 2011 -0500"
      },
      "message": "xfs: don\u0027t expect xfs headers to be in subdirectories\n\nFix up some #include directives in preparation for moving a few\nheader files out of xfs source subdirectories.\n\nNote that \"xfs_linux.h\" also got its quoting convention for included\nfiles switched.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "e570280521290c27621d60cffea2400bdf1f2c88",
      "tree": "4cf24cfa20ecef67b2aafa2309d04a137ecfbe4a",
      "parents": [
        "ac4d6888b21a8be373f3e06f1d4011fbe2bbbeac"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Wed Aug 03 02:18:34 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Aug 12 13:39:40 2011 -0500"
      },
      "message": "xfs: replace xfs_buf_geterror() with bp-\u003eb_error\n\nSince we just checked bp for NULL, it is ok to replace\nxfs_buf_geterror() with bp-\u003eb_error in these places.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ac4d6888b21a8be373f3e06f1d4011fbe2bbbeac",
      "tree": "6a39e3be9bcf99cddc0ce0b0ed15aac794b527f8",
      "parents": [
        "9e978d8f7db1c5de7cdc6450a8ca208db3b95f84"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Wed Aug 03 02:18:29 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Aug 12 13:39:29 2011 -0500"
      },
      "message": "xfs: Check the return value of xfs_buf_read() for NULL\n\nCheck the return value of xfs_buf_read() for NULL and return ENOMEM\nif it is NULL.  This is necessary in a few spots to avoid subsequent\ncode blindly dereferencing the null buffer pointer.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    }
  ],
  "next": "9e978d8f7db1c5de7cdc6450a8ca208db3b95f84"
}
