)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "9e978d8f7db1c5de7cdc6450a8ca208db3b95f84",
      "tree": "728a04a500acc62e49c944cb46096d651daf0d41",
      "parents": [
        "e44f4112a46ca817fe2758aac7bf7893a64a8c0e"
      ],
      "author": {
        "name": "Ajeet Yadav",
        "email": "ajeet.yadav.77@gmail.com",
        "time": "Fri Jul 29 07:42:59 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Aug 10 17:00:21 2011 -0500"
      },
      "message": "\"xfs: fix error handling for synchronous writes\" revisited\n\nxfs: fix for hang during synchronous buffer write error\n\nIf removed storage while synchronous buffer write underway,\n\"xfslogd\" hangs.\n\nDetailed log http://oss.sgi.com/archives/xfs/2011-07/msg00740.html\n\nRelated work bfc60177f8ab509bc225becbb58f7e53a0e33e81\n\"xfs: fix error handling for synchronous writes\"\n\nGiven that xfs_bwrite actually does the shutdown already after\nwaiting for the b_iodone completion and given that we actually\nfound that calling xfs_force_shutdown from inside\nxfs_buf_iodone_callbacks was a major contributor the problem\nit better to drop this call.\n\nSigned-off-by: Ajeet Yadav \u003cajeet.yadav.77@gmail.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "e44f4112a46ca817fe2758aac7bf7893a64a8c0e",
      "tree": "5482bffa17b6c335a1140d9a51857fe809772739",
      "parents": [
        "2ddb4e94065470828e131351566102274ea9e83f"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jul 22 16:04:41 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Aug 09 15:30:43 2011 -0500"
      },
      "message": "xfs: set cursor in xfs_ail_splice() even when AIL was empty\n\nIn xfs_ail_splice(), if a cursor is provided it is updated to\npoint to the last item on the list being spliced into the AIL.\nBut if the AIL was found to be empty, the cursor (if provided)\nis just initialized instead.\n\nThere is no reason the empty AIL case needs to be treated any\ndifferently.  And treating it the same way allows this code\nto be rearranged a bit, with a somewhat tidier result.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "2ddb4e94065470828e131351566102274ea9e83f",
      "tree": "3eb237d28e10d7735d57c051880e8173113acef8",
      "parents": [
        "c35a549c8b9e85bdff7e531a410d10e36b4b4f32",
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Aug 08 07:06:24 2011 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Aug 08 07:06:24 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux\n"
    },
    {
      "commit": "1b8e94993c4752d98c33903aa836acc15f7e6d5c",
      "tree": "b78cba208f0a193ce6ceebbc146021af4425b4e1",
      "parents": [
        "12ff47e7f5fb64c566f62e6cf6a3b291c51bd337",
        "206d440f64030b6425841bf7cb38e26a5ea0c382"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:48:31 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:48:31 2011 -1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set\n  VFS: Reorganise shrink_dcache_for_umount_subtree() after demise of dcache_lock\n  VFS: Remove dentry-\u003ed_lock locking from shrink_dcache_for_umount_subtree()\n  VFS: Remove detached-dentry counter from shrink_dcache_for_umount_subtree()\n  switch posix_acl_chmod() to umode_t\n  switch posix_acl_from_mode() to umode_t\n  switch posix_acl_equiv_mode() to umode_t *\n  switch posix_acl_create() to umode_t *\n  block: initialise bd_super in bdget()\n  vfs: avoid call to inode_lru_list_del() if possible\n  vfs: avoid taking inode_hash_lock on pipes and sockets\n  vfs: conditionally call inode_wb_list_del()\n  VFS: Fix automount for negative autofs dentries\n  Btrfs: load the key from the dir item in readdir into a fake dentry\n  devtmpfs: missing initialialization in never-hit case\n  hppfs: missing include\n"
    },
    {
      "commit": "206d440f64030b6425841bf7cb38e26a5ea0c382",
      "tree": "59be5f26a3b7ae922927c5d78082a37cdc5bb511",
      "parents": [
        "43c1c9cd244098012441b90c32304f11f1258d43"
      ],
      "author": {
        "name": "Markus Trippelsdorf",
        "email": "markus@trippelsdorf.de",
        "time": "Tue Jul 26 11:15:20 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 02:35:04 2011 -0400"
      },
      "message": "xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set\n\ncommit 4e34e719e45, that takes the ACL checks to common code,\naccidentely broke the build when CONFIG_FS_POSIX_ACL is not set:\n\n  CC      fs/xfs/linux-2.6/xfs_iops.o\nfs/xfs/linux-2.6/xfs_iops.c:1025:14: error: ‘xfs_get_acl’ undeclared here (not in a function)\n\nFix this by declaring xfs_get_acl a static inline function.\n\nSigned-off-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d6952123b53cc8b334df69bba2cd0063b0d88f68",
      "tree": "b1ccaa7e3d65dbf4af093202044da65bc4deb34e",
      "parents": [
        "d3fb612076eebec6f67257db0c7a9666ac7e5892"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 18:56:36 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 02:10:06 2011 -0400"
      },
      "message": "switch posix_acl_equiv_mode() to umode_t *\n\n... so that \u0026inode-\u003ei_mode could be passed to it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3fb612076eebec6f67257db0c7a9666ac7e5892",
      "tree": "5265fca258a74ffa75b845998492abb9446db72c",
      "parents": [
        "782b94cdf577b4df1feb376f372dccc28e66a771"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 18:37:50 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 02:09:42 2011 -0400"
      },
      "message": "switch posix_acl_create() to umode_t *\n\nso we can pass \u0026inode-\u003ei_mode to it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a5a7bbcc0137e5cdad21cce0962f6be0b7ecf173",
      "tree": "b0b9324b536da4c59390e58b5003f06829c718df",
      "parents": [
        "55f9c40ff632d03c527d6a6ceddcda0a224587a6"
      ],
      "author": {
        "name": "Markus Trippelsdorf",
        "email": "markus@trippelsdorf.de",
        "time": "Tue Jul 26 11:15:20 2011 +0200"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jul 29 12:26:14 2011 -0500"
      },
      "message": "xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set\n\ncommit 4e34e719e45, that takes the ACL checks to common code,\naccidentely broke the build when CONFIG_FS_POSIX_ACL is not set:\n\n  CC      fs/xfs/linux-2.6/xfs_iops.o\nfs/xfs/linux-2.6/xfs_iops.c:1025:14: error: ‘xfs_get_acl’ undeclared here (not in a function)\n\nFix this by declaring xfs_get_acl a static inline function.\n\nSigned-off-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "597a67e0ba758e3d2239c81fbb648c6e69ec30a2",
      "tree": "e2b6146df41943e7f87168fe3f5825722b434223",
      "parents": [
        "28890d3598c352ae065b560e0fded3e79c800ba1",
        "510792ee29770a38dd409bf2b469ade2fea9eb52"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 13:41:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 13:41:51 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:\n  xfs: optimize the negative xattr caching\n  xfs: prevent against ioend livelocks in xfs_file_fsync\n  xfs: flag all buffers as metadata\n  xfs: encapsulate a block of debug code\n"
    },
    {
      "commit": "510792ee29770a38dd409bf2b469ade2fea9eb52",
      "tree": "ed442b019b3ce77c4cead40082e7229bb7044eed",
      "parents": [
        "d1166ec792c96b65e4c18cbc5985944b5309d838"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Jul 26 15:07:29 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Jul 26 22:06:50 2011 -0500"
      },
      "message": "xfs: optimize the negative xattr caching\n\nSince the addition of file capabilities every write needs to read xattrs to\ncheck if we have any capabilities to clear.  In Linux 3.0 Andi Kleen added\na flag to cache the fact that we do not have any attributes on an inode.\nMake sure to already mark a file as not having any attributes when reading\nit from disk in case it doesn\u0027t even have an attribute fork.  Based on an\nearlier patch from Andi Kleen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "d1166ec792c96b65e4c18cbc5985944b5309d838",
      "tree": "683b74f000cd28d260674e767255e0284a9587d7",
      "parents": [
        "34951f5cb72b1e3a89a21581cb21e2d5b6a104a4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Jul 26 15:07:11 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Jul 26 22:06:39 2011 -0500"
      },
      "message": "xfs: prevent against ioend livelocks in xfs_file_fsync\n\nWe need to take some locks to prevent new ioends from coming in when we wait\nfor all existing ones to go away.  Up to Linux 3.0 that was done using the\ni_mutex held by the VFS fsync code, but now that we are called without\nit we need to take care of it ourselves.  Use the I/O lock instead of\ni_mutex just like we do in other places.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "34951f5cb72b1e3a89a21581cb21e2d5b6a104a4",
      "tree": "79e2b762ef32be642c5b032ec5ad06166f2132de",
      "parents": [
        "1c4f33296e8e79a6bbfffc8457d547ffc31d5dee"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Jul 26 15:06:44 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Jul 26 22:05:48 2011 -0500"
      },
      "message": "xfs: flag all buffers as metadata\n\nNow that REQ_META bios aren\u0027t treated specially in the CFQ I/O schedule\nanymore, we can tag all buffers as metadata to make blktrace traces more\nmeaningful.  Note that we use buffers also to zero out partial blocks\nin the preallocation / hole punching code, and while they operate on\ndata blocks the zeros written certainly aren\u0027t data.  I think this case\nis borderline metadata enough to not bother special casing it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "1c4f33296e8e79a6bbfffc8457d547ffc31d5dee",
      "tree": "67934ff868c5a9fb54841fc866adaf741868f9dc",
      "parents": [
        "b0189cd087aa82bd23277cb5c8960ab030e13e5c"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 18 18:14:09 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Jul 26 22:05:34 2011 -0500"
      },
      "message": "xfs: encapsulate a block of debug code\n\nPull into a helper function some debug-only code that validates a\nxfs_da_blkinfo structure that\u0027s been read from disk.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "03209378b4b25775bf5e6a86e86f074a1057a439",
      "tree": "1995ce966b96082e68fd59a364b16163ac564989",
      "parents": [
        "abbede1b3a680e108d61aaa415ce5153296e775d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 20:54:24 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 15:05:30 2011 -0400"
      },
      "message": "xfs: fix misspelled S_IS...()\n\nmode_t is not a bitmap...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "abbede1b3a680e108d61aaa415ce5153296e775d",
      "tree": "0fb8b8db864e5919b02f5d7dd2d66474e76a39d5",
      "parents": [
        "c46c887744b330795eba55fdb96343c36d481765"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 02:31:30 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 15:05:16 2011 -0400"
      },
      "message": "xfs: get rid of open-coded S_ISREG(), etc.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3ec4844d449cf7af9e749f73ba2052fb7b72fc2",
      "tree": "c515913e85f7e50878c83da2a88bc5a7269d087c",
      "parents": [
        "0003230e8200699860f0b10af524dc47bf8aecad",
        "df2e301fee3c2c2a87592151397ad7699bb14c37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  fs: Merge split strings\n  treewide: fix potentially dangerous trailing \u0027;\u0027 in #defined values/expressions\n  uwb: Fix misspelling of neighbourhood in comment\n  net, netfilter: Remove redundant goto in ebt_ulog_packet\n  trivial: don\u0027t touch files that are removed in the staging tree\n  lib/vsprintf: replace link to Draft by final RFC number\n  doc: Kconfig: `to be\u0027 -\u003e `be\u0027\n  doc: Kconfig: Typo: square -\u003e squared\n  doc: Konfig: Documentation/power/{pm \u003d\u003e apm-acpi}.txt\n  drivers/net: static should be at beginning of declaration\n  drivers/media: static should be at beginning of declaration\n  drivers/i2c: static should be at beginning of declaration\n  XTENSA: static should be at beginning of declaration\n  SH: static should be at beginning of declaration\n  MIPS: static should be at beginning of declaration\n  ARM: static should be at beginning of declaration\n  rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check\n  Update my e-mail address\n  PCIe ASPM: forcedly -\u003e forcibly\n  gma500: push through device driver tree\n  ...\n\nFix up trivial conflicts:\n - arch/arm/mach-ep93xx/dma-m2p.c (deleted)\n - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)\n - drivers/net/r8169.c (just context changes)\n"
    },
    {
      "commit": "c35a549c8b9e85bdff7e531a410d10e36b4b4f32",
      "tree": "b23147bbbe1f84fef1abc7912c0b7a38b9a30fdd",
      "parents": [
        "49074c069cd3f0f683325d0c7f8b2765dbe2e294"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:40:46 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:37 2011 -0500"
      },
      "message": "xfs: Remove the macro XFS_BUFTARG_NAME\n\nRemove the definition and usages of the macro XFS_BUFTARG_NAME.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "49074c069cd3f0f683325d0c7f8b2765dbe2e294",
      "tree": "eaa2bae9ebabf0728d8087ac40e2ca60b6471609",
      "parents": [
        "e38c9b87e5b428b3e2a2e48ab0ee2b6cdc8e6208"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:40:40 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:31 2011 -0500"
      },
      "message": "xfs: Remove the macro XFS_BUF_TARGET\n\nRemove the definition and usages of the macro XFS_BUF_TARGET\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "e38c9b87e5b428b3e2a2e48ab0ee2b6cdc8e6208",
      "tree": "e5f07f9f838a3e1a990410b0851ed3d111380ac7",
      "parents": [
        "811e64c7169bb59229971c4aa3b1ed5093f44c84"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:40:33 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:26 2011 -0500"
      },
      "message": "xfs: Remove the macro XFS_BUF_SET_TARGET\n\nRemove the macro XFS_BUF_SET_TARGET.\n\nhch: As all the buffer allocator already set -\u003eb_target it should be safe\nto simply remove these calls.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "811e64c7169bb59229971c4aa3b1ed5093f44c84",
      "tree": "cf14860be8322a112409095619b6e3ee71b500a7",
      "parents": [
        "02fe03d909f3a5876d7b4775fdbc83c07c7c3842"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:40:27 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:22 2011 -0500"
      },
      "message": "Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned\n\nReplace the macro XFS_BUF_ISPINNED with an inline helper function\nxfs_buf_ispinned, and change all its usages.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "02fe03d909f3a5876d7b4775fdbc83c07c7c3842",
      "tree": "ccc546ae4b21d69c4a9d07ac9240b05d91434679",
      "parents": [
        "6292604447ade7d150f5eba3b1518e1a224fda15"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:40:22 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:17 2011 -0500"
      },
      "message": "xfs: Remove the macro XFS_BUF_SET_PTR\n\nRemove the definition and usages of the macro XFS_BUF_SET_PTR.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "6292604447ade7d150f5eba3b1518e1a224fda15",
      "tree": "a33ff273c5d2e9b60bd468aa6c077d173187da28",
      "parents": [
        "0095a21eb6ae8ac9f9860aa26029fe6ebbd3beeb"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:40:15 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:13 2011 -0500"
      },
      "message": "xfs: Remove the macro XFS_BUF_PTR\n\nRemove the definition and usages of the macro XFS_BUF_PTR.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "0095a21eb6ae8ac9f9860aa26029fe6ebbd3beeb",
      "tree": "19623e83448d76c003a3ebae037d43cb6ce3cf31",
      "parents": [
        "72790aa1192f46dedfc827c170365fd554981d15"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:40:09 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:09 2011 -0500"
      },
      "message": "xfs: Remove macro XFS_BUF_SET_START\n\nRemove the definition and usage of the macro XFS_BUF_SET_START.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "72790aa1192f46dedfc827c170365fd554981d15",
      "tree": "1e88a1c4ad93d0536f59ea58a9fbba4bb015378c",
      "parents": [
        "b75e40a4193ca027af7327ef30c31d45aa0a0e40"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:40:04 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:06 2011 -0500"
      },
      "message": "xfs: Remove macro XFS_BUF_HOLD\n\nRemove the definition and usage of the macro XFS_BUF_HOLD\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "b75e40a4193ca027af7327ef30c31d45aa0a0e40",
      "tree": "9a75ea6fbcd2749efc46c94079c89afc2a145bc7",
      "parents": [
        "5a52c2a581cddcb676a54a95d99cd39f5577c33b"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:39:57 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 15:03:00 2011 -0500"
      },
      "message": "xfs: Remove macro XFS_BUF_BUSY and family\n\nRemove the definitions and uses of the macros XFS_BUF_BUSY,\nXFS_BUF_UNBUSY, and XFS_BUF_ISBUSY.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "5a52c2a581cddcb676a54a95d99cd39f5577c33b",
      "tree": "085825ca21b17d566e588428fa0aa2063ba4f1a4",
      "parents": [
        "ed43233be910bbc8b9da3d61aa1b931843d1b44e"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:39:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 14:57:46 2011 -0500"
      },
      "message": "xfs: Remove the macro XFS_BUF_ERROR and family\n\nRemove the definitions and usage of the macros XFS_BUF_ERROR,\nXFS_BUF_GETERROR and XFS_BUF_ISERROR.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ed43233be910bbc8b9da3d61aa1b931843d1b44e",
      "tree": "17644b0bffddfaa9ace2733345440012223ee6f0",
      "parents": [
        "55fb25d5b39320242b41af894921f5cef0c7e293"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Fri Jul 22 23:39:39 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 25 14:57:36 2011 -0500"
      },
      "message": "xfs: Remove the macro XFS_BUF_BFLAGS\n\nRemove the definition of the macro XFS_BUF_BFLAGS and its usage.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "4e34e719e457f2e031297175410fc0bd4016a085",
      "tree": "ab969a371e0d2efc6bfbf503ca6cdfce3af3bf6c",
      "parents": [
        "edde854e8bb34a7f32fa993d721f1da0faf64165"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jul 23 17:37:31 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:30:23 2011 -0400"
      },
      "message": "fs: take the ACL checks to common code\n\nReplace the -\u003echeck_acl method with a -\u003eget_acl method that simply reads an\nACL from disk after having a cache miss.  This means we can replace the ACL\nchecking boilerplate code with a single implementation in namei.c.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "826cae2f2b4d726b925f43bc208a571639da4761",
      "tree": "b7f83eecf3bde8c4e455d89c7c535988b3e8bd59",
      "parents": [
        "95203befa8887997f14077d8557e67d78457ee02"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 03:10:32 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:27:32 2011 -0400"
      },
      "message": "kill boilerplates around posix_acl_create_masq()\n\nnew helper: posix_acl_create(\u0026acl, gfp, mode_p).  Replaces acl with\nmodified clone, on failure releases acl and replaces with NULL.\nReturns 0 or -ve on error.  All callers of posix_acl_create_masq()\nswitched.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bc26ab5f65ae41b71df86ea46df3c3833d1d8d83",
      "tree": "85bbc4e0da4fac99ccf31b3609c61e2b148a8498",
      "parents": [
        "4482a087d4c5a6ffbc385c56b4a4e2f694d9fd5d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 00:18:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:27:30 2011 -0400"
      },
      "message": "kill boilerplate around posix_acl_chmod_masq()\n\nnew helper: posix_acl_chmod(\u0026acl, gfp, mode).  Replaces acl with modified\nclone or with NULL if that has failed; returns 0 or -ve on error.  All\ncallers of posix_acl_chmod_masq() switched to that - they\u0027d been doing\nexactly the same thing.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6311b10800a4bdc3f2c85d01fb113cf49bb83770",
      "tree": "4798068e025fa64c9c8656e2a28427f120d447a0",
      "parents": [
        "ebbb0ef2871bf3f529987313a9146cc42419a8a8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jul 23 17:36:50 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:25:38 2011 -0400"
      },
      "message": "xfs: cache negative ACLs if there is no attribute fork\n\nAlways set up a negative ACL cache entry if the inode doesn\u0027t have an\nattribute fork.  That behaves much better than doing this check inside\n-\u003echeck_acl.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e77819e57f0817c6dc7cadd061acd70c604cbce2",
      "tree": "f5d7aba2dfbb747a97d783b7cc6a486922c42559",
      "parents": [
        "3ca30d40a91fb9b9871e61d5dea2c1a895906a15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:30:19 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:23:39 2011 -0400"
      },
      "message": "vfs: move ACL cache lookup into generic code\n\nThis moves logic for checking the cached ACL values from low-level\nfilesystems into generic code.  The end result is a streamlined ACL\ncheck that doesn\u0027t need to load the inode-\u003ei_op-\u003echeck_acl pointer at\nall for the common cached case.\n\nThe filesystems also don\u0027t need to check for a non-blocking RCU walk\ncase in their acl_check() functions, because that is all handled at a\nVFS layer.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "340a0a01b9675a16201cc4fc4a210eb5b3bc11ce",
      "tree": "472f690c330e08391b286430a79864c9c83fc3cf",
      "parents": [
        "e13889bab3c6b5c839075086d28fe05f71984dda"
      ],
      "author": {
        "name": "Markus Trippelsdorf",
        "email": "markus@trippelsdorf.de",
        "time": "Sun Jul 24 14:03:30 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:23:21 2011 -0400"
      },
      "message": "xfs: Fix wrong return value of xfs_file_aio_write\n\nThe fsync prototype change commit 02c24a82187d accidentally overwrote\nthe ssize_t return value of xfs_file_aio_write with 0 for SYNC type\nwrites. Fix this by checking if an error occured when calling\nxfs_file_fsync and only change the return value in this case.\nIn addition xfs_file_fsync actually returns a normal negative error, so\nfix this, too.\n\nSigned-off-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nTested-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "df2e301fee3c2c2a87592151397ad7699bb14c37",
      "tree": "09364e1443d8cac6c415af5e8d07b2b37793b68e",
      "parents": [
        "497888cf69bf607ac1fe061a6437e0a670b0022f"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Sat Jul 16 18:10:35 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jul 22 16:47:15 2011 +0200"
      },
      "message": "fs: Merge split strings\n\nNo idea why these were split in the first place...\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "72c5052ddc3956d847f21c2b8d55c93664a51b2c",
      "tree": "47b381f3f746cdc1612f432bd902278f8901f84a",
      "parents": [
        "aacfc19c626ebd3daa675652457d71019a1f583f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:48 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:50 2011 -0400"
      },
      "message": "fs: move inode_dio_done to the end_io handler\n\nFor filesystems that delay their end_io processing we should keep our\ni_dio_count until the the processing is done.  Enable this by moving\nthe inode_dio_done call to the end_io handler if one exist.  Note that\nthe actual move to the workqueue for ext4 and XFS is not done in\nthis patch yet, but left to the filesystem maintainers.  At least\nfor XFS it\u0027s not needed yet either as XFS has an internal equivalent\nto i_dio_count.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8daaa83145ef1f0a146680618328dbbd0fa76939",
      "tree": "8ca49f03ed2fc4dada7283a6e109b13e3fb5501e",
      "parents": [
        "8ab47664d51a69ea79fe70bb07ca80664f74f76b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Jul 08 14:14:46 2011 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:42 2011 -0400"
      },
      "message": "xfs: make use of new shrinker callout for the inode cache\n\nConvert the inode reclaim shrinker to use the new per-sb shrinker\noperations. This allows much bigger reclaim batches to be used, and\nallows the XFS inode cache to be shrunk in proportion with the VFS\ndentry and inode caches. This avoids the problem of the VFS caches\nbeing shrunk significantly before the XFS inode cache is shrunk\nresulting in imbalances in the caches during reclaim.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "55fb25d5b39320242b41af894921f5cef0c7e293",
      "tree": "80611313673fc3adc9e82f355884a6adbc258357",
      "parents": [
        "af3e40228fb2dbc18d94fbd5103f07344a720ae7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 18 03:40:19 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Jul 20 18:38:04 2011 -0500"
      },
      "message": "xfs: add size update tracepoint to IO completion\n\nFor improving insight into IO completion behaviour.\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"
    },
    {
      "commit": "af3e40228fb2dbc18d94fbd5103f07344a720ae7",
      "tree": "e33bac82ebcf5fccf7f3d25cb8dc9b764736fc06",
      "parents": [
        "16b5902943c793e632cf8c9526619f59893bdc29"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 18 03:40:18 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Jul 20 18:37:46 2011 -0500"
      },
      "message": "xfs: convert AIL cursors to use struct list_head\n\nThe list of active AIL cursors uses a roll-your-own linked list with\nspecial casing for the AIL push cursor. Simplify this code by\nreplacing the list with standard struct list_head lists, and use a\nseparate list_head to track the active cursors. This allows us to\ntreat the AIL push cursor as a generic cursor rather than as a\nspecial case, further simplifying the code.\n\nFurther, fix the duplicate push cursor initialisation that the\nspecial case handling was hiding, and clean up all the comments\naround the active cursor list handling.\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"
    },
    {
      "commit": "16b5902943c793e632cf8c9526619f59893bdc29",
      "tree": "84769a5a36744ab7ad9288d8359c520ec2f8e101",
      "parents": [
        "1d8c95a363bf8cd4d4182dd19c01693b635311c2"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 18 03:40:17 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Jul 20 18:37:37 2011 -0500"
      },
      "message": "xfs: remove confusing ail cursor wrapper\n\nxfs_trans_ail_cursor_set() doesn\u0027t set the cursor to the current log\nitem, it sets it to the next item. There is already a function for\ndoing this - xfs_trans_ail_cursor_next() - and the _set function is\nsimply a two line wrapper.  Remove it and open code the setting of\nthe cursor in the two locations that call it to remove the\nconfusion.\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"
    },
    {
      "commit": "1d8c95a363bf8cd4d4182dd19c01693b635311c2",
      "tree": "839d26eb6a1f6814c687e2c6855feb377b74c0f9",
      "parents": [
        "ad1a2c878ca70829874b4fcc83223cccb4e26dab"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 18 03:40:16 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Jul 20 18:37:20 2011 -0500"
      },
      "message": "xfs: use a cursor for bulk AIL insertion\n\nDelayed logging can insert tens of thousands of log items into the\nAIL at the same LSN. When the committing of log commit records\noccur, we can get insertions occurring at an LSN that is not at the\nend of the AIL. If there are thousands of items in the AIL on the\ntail LSN, each insertion has to walk the AIL to find the correct\nplace to insert the new item into the AIL. This can consume large\namounts of CPU time and block other operations from occurring while\nthe traversals are in progress.\n\nTo avoid this repeated walk, use a AIL cursor to record\nwhere we should be inserting the new items into the AIL without\nhaving to repeat the walk. The cursor infrastructure already\nprovides this functionality for push walks, so is a simple extension\nof existing code. While this will not avoid the initial walk, it\nwill avoid repeating it tens of thousands of times during a single\ncheckpoint commit.\n\nThis version includes logic improvements from Christoph Hellwig.\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"
    },
    {
      "commit": "ad1a2c878ca70829874b4fcc83223cccb4e26dab",
      "tree": "fe664063bf7675a1be90c8c61c5ec7e09f99300e",
      "parents": [
        "adab0f67d1cdaf468bbc311bce4d61f17626a536"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Thu Jul 14 20:50:36 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Jul 20 18:35:21 2011 -0500"
      },
      "message": "xfs: failure mapping nfs fh to inode should return ESTALE\n\nOn xfs exports, nfsd is incorrectly returning ENOENT instead of\nESTALE on attempts to use a filehandle of a deleted file (spotted\nwith pynfs test PUTFH3).  The ENOENT was coming from xfs_iget.\n\n(It\u0027s tempting to wonder whether we should just map all xfs_iget\nerrors to ESTALE, but I don\u0027t believe so--xfs_iget can also return\nENOMEM at least, which we wouldn\u0027t want mapped to ESTALE.)\n\nWhile we\u0027re at it, the other return of ENOENT in xfs_nfs_get_inode()\nalso looks wrong.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "adab0f67d1cdaf468bbc311bce4d61f17626a536",
      "tree": "2df945816c38584beee131d1b93006123fe851aa",
      "parents": [
        "d0f9e8fb4cc6dd5d07c72eeecc2f332b6e85e221"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Wed Jun 29 22:10:14 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Jul 20 18:35:03 2011 -0500"
      },
      "message": "xfs: Remove the second parameter to xfs_sb_count()\n\nRemove the second parameter to xfs_sb_count() since all callers of\nthe function set them.\n\nAlso, fix the header comment regarding it being called periodically.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "7e40145eb111a5192e6d819f764db9d6828d1abb",
      "tree": "3249952a751de12465e8d66c63328445e9242f3a",
      "parents": [
        "9c2c703929e4c41210cfa6e3f599514421bab8dc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:12:17 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:21 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003echeck_acl()\n\nnot used in the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c2c703929e4c41210cfa6e3f599514421bab8dc",
      "tree": "2086738f22755ad18ba18ab2ee0f2b23d651da60",
      "parents": [
        "1fc0f78ca9f311c6277e2f1b7655bb4d43ceb311"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:06:22 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:19 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: pass MAY_NOT_BLOCK to -\u003echeck_acl()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d0f9e8fb4cc6dd5d07c72eeecc2f332b6e85e221",
      "tree": "b0d0102e47cf961b75bc9a918c64bee6f9bad399",
      "parents": [
        "c84470dda7a1165d90f55c2025c4c8ca403d485e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:50 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:50 2011 +0200"
      },
      "message": "xfs: remove the dead XFS_DABUF_DEBUG code\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "c84470dda7a1165d90f55c2025c4c8ca403d485e",
      "tree": "ee30dc29f914ab809f2388b3e184e738b712c22f",
      "parents": [
        "ea15ab3cdda1bc6822f572ce9ce5d86f097f9b08"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:50 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:50 2011 +0200"
      },
      "message": "xfs: remove leftovers of the old btree tracing code\n\nRemove various bits left over from the old kdb-only btree tracing code, but\nleave the actual trace point stubs in place to ease adding new event based\nbtree tracing.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "ea15ab3cdda1bc6822f572ce9ce5d86f097f9b08",
      "tree": "1fddbe64d7f6d9150bdb86a9579c8f5feb94f734",
      "parents": [
        "54244fec67024032cb54eb604b2a36579b5db2d3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:50 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:50 2011 +0200"
      },
      "message": "xfs: remove the dead QUOTADEBUG code\n\nRemove the dead hash table test rid which has been rotting away under\nQUOTADEBUG, including some code that was compiled for normal debug\nbuilds, but not actually called without QUOTADEBUG, and enable a few\ncheap debug checks that were hidden under QUOTADEBUG for normal\ndebug builds.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "54244fec67024032cb54eb604b2a36579b5db2d3",
      "tree": "8168bd1b0e50f6500a386125d7e0f43b9a6ce0ea",
      "parents": [
        "cb669ca5701153a808db6627521cc8aa52fc42d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "message": "xfs: remove the unused xfs_buf_delwri_sort function\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "cb669ca5701153a808db6627521cc8aa52fc42d1",
      "tree": "90529cad1994d11b8a21b0c2607adfb8da0b49fd",
      "parents": [
        "adadbeefb34f755a3477da51035eeeec2c1fde38"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "message": "xfs: remove wrappers around b_iodone\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "adadbeefb34f755a3477da51035eeeec2c1fde38",
      "tree": "bb5e9b79572004667ff6cdcbff0acd5d426ee774",
      "parents": [
        "bf9d9013a2a559858efb590bf922377be9d6d969"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "message": "xfs: remove wrappers around b_fspriv\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "bf9d9013a2a559858efb590bf922377be9d6d969",
      "tree": "d6c30253605901475db0110c61c25e9d139d20d4",
      "parents": [
        "77936d0280616d84d1eb0eb38a6f857d2827a434"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "message": "xfs: add a proper transaction pointer to struct xfs_buf\n\nReplace the typeless b_fspriv2 and the ugly macros around it with a properly\ntyped transaction pointer.  As a fallout the log buffer state debug checks\nare also removed.  We could have kept them using casts, but as they do\nnot have a real purpose we can as well just remove them.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "77936d0280616d84d1eb0eb38a6f857d2827a434",
      "tree": "3076e827144b7312d84e9ed52c5d2f92b1a10fb6",
      "parents": [
        "a230a1df40864ef68ff6fbd09302f16d2a216ea5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:49 2011 +0200"
      },
      "message": "xfs: factor out xfs_da_grow_inode_int\n\nxfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code.  Factor\nthe meat of those two functions into a new common helper.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "a230a1df40864ef68ff6fbd09302f16d2a216ea5",
      "tree": "c01375ab1d95beef1066304a3b70eb66f43f5aa0",
      "parents": [
        "a00b7745c6e68ee89a123cd81e1dbc52fb55868e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:48 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:48 2011 +0200"
      },
      "message": "xfs: factor out xfs_dir2_leaf_find_stale\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "a00b7745c6e68ee89a123cd81e1dbc52fb55868e",
      "tree": "9a58811ca53f674ca479ef088d1caa7f572ba43d",
      "parents": [
        "5792664070c62479b088e4909000582de3686396"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:48 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:48 2011 +0200"
      },
      "message": "xfs: cleanup struct xfs_dir2_free\n\nChange the bests array to be a proper variable sized entry.  This is done\neasily as no one relies on the size of the structure.  Also change\nXFS_DIR2_MAX_FREE_BESTS to an inline function while we\u0027re at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "5792664070c62479b088e4909000582de3686396",
      "tree": "900e7d35b33da062fe8fad5694539fdad8c59266",
      "parents": [
        "2bcf6e970f5a88fa05dced5eeb0326e13d93c4a1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:48 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:48 2011 +0200"
      },
      "message": "xfs: reshuffle dir2 headers\n\nReplace the current mess of dir2 headers with just three that have a clear\npurpose:\n\n - xfs_dir2_format.h for all format definitions, including the inline helpers\n   to access our variable size structures\n - xfs_dir2_priv.h for all prototypes that are internal to the dir2 code\n   and not needed by anything outside of the directory code.  For this\n   purpose xfs_da_btree.c, and phase6.c in xfs_repair are considered part\n   of the directory code.\n - xfs_dir2.h for the public interface to the directory code\n\nIn addition to the reshuffle I have also update the comments to not only\nmatch the new file structure, but also to describe the directory format\nbetter.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "2bcf6e970f5a88fa05dced5eeb0326e13d93c4a1",
      "tree": "5fb3e326ee8b06272490806fe493168299c3245a",
      "parents": [
        "b2ce39740066604288876c752d8170b3b17a21aa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:48 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jul 13 13:43:48 2011 +0200"
      },
      "message": "xfs: start periodic workers later\n\nStart the periodic sync workers only after we have finished xfs_mountfs\nand thus fully set up the filesystem structures.  Without this we can\ncall into xfs_qm_sync before the quotainfo strucute is set up if the\nmount takes unusually long, and probably hit other incomplete states\nas well.\n\nAlso clean up the xfs_fs_fill_super error path by using consistent\nlabel names, and removing an impossible to reach case.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Arkadiusz Miskiewicz \u003carekm@maven.pl\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "b2ce39740066604288876c752d8170b3b17a21aa",
      "tree": "fd51670cea52d4c4421ce98a65e8b4979535fb97",
      "parents": [
        "81463b1ca8dbd2f4f180feac3f49c7640e2b5f79"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 11 09:51:44 2011 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Jul 11 10:21:03 2011 -0500"
      },
      "message": "Revert \"xfs: fix filesystsem freeze race in xfs_trans_alloc\"\n\nThis reverts commit 7a249cf83da1813cfa71cfe1e265b40045eceb47.\n\nThat commit created a situation that could lead to a filesystem\nhang.  As Dave Chinner pointed out, xfs_trans_alloc() could hold a\nreference to m_active_trans (i.e., keep it non-zero) and then wait\nfor SB_FREEZE_TRANS to complete.  Meanwhile a filesystem freeze\nrequest could set SB_FREEZE_TRANS and then wait for m_active_trans\nto drop to zero.  Nobody benefits from this sequence of events...\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "81463b1ca8dbd2f4f180feac3f49c7640e2b5f79",
      "tree": "09d7f0c19d83e1362cea84339bbd2417518029dd",
      "parents": [
        "c0e090ced259b85b854636c99dda95b7070a2785"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Thu Jun 09 16:47:49 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jul 08 11:32:51 2011 -0500"
      },
      "message": "xfs: remove variables that serve no purpose in xfs_alloc_ag_vextent_exact()\n\nRemove two variables that serve no purpose in\nxfs_alloc_ag_vextent_exact().\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c0e090ced259b85b854636c99dda95b7070a2785",
      "tree": "b87f23061f2bd75ecbf4a1906c4fb4aad27cd2d1",
      "parents": [
        "e163cbde981c5988c3e80ca29589132336f18a72"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri May 20 21:52:17 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jul 08 11:32:51 2011 -0500"
      },
      "message": "xfs: consolidate \u0026 clarify mount sanity checks\n\nPavol pointed out that there is one silent error case in the mount\npath, and that others are rather uninformative.\n\nI\u0027ve taken Pavol\u0027s suggested patch and extended it a bit to also:\n\n* fix a message which says \"turned off\" but actually errors out\n* consolidate the vaguely differentiated \"SB sanity check [12]\"\n  messages, and hexdump the superblock for analysis\n\nOriginal-patch-by: Pavol Gono \u003cPavol.Gono@siemens.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "e163cbde981c5988c3e80ca29589132336f18a72",
      "tree": "735c72c28476969eddd4a39d878bb194f3609888",
      "parents": [
        "1d5ae5dfeee024d51fb2c0205035d7611a8f0c86"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:36 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:36 2011 +0200"
      },
      "message": "xfs: avoid a few disk cache flushes\n\nThere is no need for a pre-flush when doing writing the second part of a\nsplit log buffer, and if we are using an external log there is no need\nto do a full cache flush of the log device at all given that all writes\nto it use the FUA flag.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "1d5ae5dfeee024d51fb2c0205035d7611a8f0c86",
      "tree": "080047368d17c754cea7ed2079b2a0b05c3dd857",
      "parents": [
        "c8da0faf6b07623c473cab42967f943ad4ab7560"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:32 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:32 2011 +0200"
      },
      "message": "xfs: cleanup I/O-related buffer flags\n\nRemove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER\nto the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and\nXBF_FLUSH to allow more fine grained control over the bio flags.  Also\ncleanup processing of the flags in _xfs_buf_ioapply to make more sense,\nand renumber the sparse flag number space to group flags by purpose.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "c8da0faf6b07623c473cab42967f943ad4ab7560",
      "tree": "6bfd211ba798c482f592c81bfbe4760758c829e8",
      "parents": [
        "0c842ad46a51891ac4420b7285613f4134a65ccd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:25 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:25 2011 +0200"
      },
      "message": "xfs: return the buffer locked from xfs_buf_get_uncached\n\nAll other xfs_buf_get/read-like helpers return the buffer locked, make sure\nxfs_buf_get_uncached isn\u0027t different for no reason.  Half of the callers\nalready lock it directly after, and the others probably should also keep\nit locked if only for consistency and beeing able to use xfs_buf_rele,\nbut I\u0027ll leave that for later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "0c842ad46a51891ac4420b7285613f4134a65ccd",
      "tree": "cf82cc7853821a21998114d20b1297b14061eade",
      "parents": [
        "bbb4197c73be356a052dac25cce5ed0c157c6c90"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:19 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:19 2011 +0200"
      },
      "message": "xfs: clean up buffer locking helpers\n\nRename xfs_buf_cond_lock and reverse it\u0027s return value to fit most other\ntrylock operations in the Kernel and XFS (with the exception of down_trylock,\nafter which xfs_buf_cond_lock was modelled), and replace xfs_buf_lock_val\nwith an xfs_buf_islocked for use in asserts, or and opencoded variant in\ntracing.  remove the XFS_BUF_* wrappers for all the locking helpers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "bbb4197c73be356a052dac25cce5ed0c157c6c90",
      "tree": "7ef44557ef199da0a3e3072642da8acf930a8e4e",
      "parents": [
        "69ef921b55cc3788d1d2a27b33b27d04acd0090a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:10 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:10 2011 +0200"
      },
      "message": "xfs: remove the unused xfs_bufhash structure\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "69ef921b55cc3788d1d2a27b33b27d04acd0090a",
      "tree": "bcc7c1f4b7f15628f122dfdb96f8d4d37f587e92",
      "parents": [
        "218106a1104c598011e5df9d9aac7e0416be03e6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:05 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:36:05 2011 +0200"
      },
      "message": "xfs: byteswap constants instead of variables\n\nMicro-optimize various comparisms by always byteswapping the constant\ninstead of the variable, which allows to do the swap at compile instead\nof runtime.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "218106a1104c598011e5df9d9aac7e0416be03e6",
      "tree": "bdec31d1f6fd5fe11eed76bac56017affd3d1606",
      "parents": [
        "2282396d8157033503318fe4dee77ba82dc9d144"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:58 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:58 2011 +0200"
      },
      "message": "xfs: use generic get_unaligned_beXX helpers\n\nSwitch the shortform directory code over to use the generic\nget_unaligned_beXX helpers instead of reinventing them.  As a result\nkill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into\nxfs_linux.h.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "2282396d8157033503318fe4dee77ba82dc9d144",
      "tree": "5aab6f55e2e4c37c5cbd4036dab4b8b8c78daf82",
      "parents": [
        "3ed8638f8867b4d0df1ec606231a087ff06c4a59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:53 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:53 2011 +0200"
      },
      "message": "xfs: cleanup struct xfs_dir2_leaf\n\nSimplify the confusing xfs_dir2_leaf structure.  It is supposed to describe\nan XFS dir2 leaf format btree block, but due to the variable sized nature\nof almost all elements in it it can\u0027t actuall do anything close to that\njob.   Remove the members that are after the first variable sized array,\ngiven that they could only be used for sizeof expressions that can as well\njust use the underlying types directly, and make the ents array a real\nC99 variable sized array.\n\nAlso factor out the xfs_dir2_leaf_size, to make the sizing of a leaf\nentry which already was convoluted somewhat readable after using the\nlonger type names in the sizeof expressions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "3ed8638f8867b4d0df1ec606231a087ff06c4a59",
      "tree": "17afe7f78f2d32e96eb5f7697b9a4db6c5796e7e",
      "parents": [
        "0ba9cd84ef2af58645333a86f9c901684ab1fef6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:50 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:50 2011 +0200"
      },
      "message": "xfs: cleanup the definition of struct xfs_dir2_data_entry\n\nRemove the tag member which is at a variable offset after the actual\nname, and make name a real variable sized C99 array instead of the incorrect\none-sized array which confuses (not only) gcc.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "0ba9cd84ef2af58645333a86f9c901684ab1fef6",
      "tree": "0c25f43b83bb77ceb44cf29d207a295ac0b77b31",
      "parents": [
        "c2066e2662070e794f57a96a129c42575e77cfcb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:42 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:42 2011 +0200"
      },
      "message": "xfs: kill struct xfs_dir2_data\n\nRemove the confusing xfs_dir2_data structure.  It is supposed to describe\nan XFS dir2 data btree block, but due to the variable sized nature of\nalmost all elements in it it can\u0027t actuall do anything close to that\njob.  In addition to accessing the fixed offset header structure it was\nonly used to get a pointer to the first dir or unused entry after it,\nwhich can be trivially replaced by pointer arithmetics on the header\npointer.  For most users that is actually more natural anyway, as they\ndon\u0027t use a typed pointer but rather a character pointer for further\narithmetics.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "c2066e2662070e794f57a96a129c42575e77cfcb",
      "tree": "c1261009d7482af80db1b554a96b5a62f35b4877",
      "parents": [
        "a64b04179735de6bfd9f00c130a68ed7f20d18ef"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:38 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:38 2011 +0200"
      },
      "message": "xfs: avoid usage of struct xfs_dir2_data\n\nIn most places we can simply pass around and use the struct xfs_dir2_data_hdr,\nwhich is the first and most important member of struct xfs_dir2_data instead\nof the full structure.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "a64b04179735de6bfd9f00c130a68ed7f20d18ef",
      "tree": "36fe9aec30550aed6aecf6c2734fa365d1e7c83f",
      "parents": [
        "4f6ae1a49ed5c81501d6f7385416bb4e07289e99"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:32 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:32 2011 +0200"
      },
      "message": "xfs: kill struct xfs_dir2_block\n\nRemove the confusing xfs_dir2_block structure.  It is supposed to describe\nan XFS dir2 block format btree block, but due to the variable sized nature\nof almost all elements in it it can\u0027t actuall do anything close to that\njob.  In addition to accessing the fixed offset header structure it was\nonly used to get a pointer to the first dir or unused entry after it,\nwhich can be trivially replaced by pointer arithmetics on the header\npointer.  For most users that is actually more natural anyway, as they\ndon\u0027t use a typed pointer but rather a character pointer for further\narithmetics.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "4f6ae1a49ed5c81501d6f7385416bb4e07289e99",
      "tree": "f9e302754cff53ad96eaca3b0b4de1fd91a9beb2",
      "parents": [
        "78f70cd7b7e8fd44dc89af4f72fb110d865338a1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:27 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:27 2011 +0200"
      },
      "message": "xfs: avoid usage of struct xfs_dir2_block\n\nIn most places we can simply pass around and use the struct xfs_dir2_data_hdr,\nwhich is the first and most important member of struct xfs_dir2_block instead\nof the full structure.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "78f70cd7b7e8fd44dc89af4f72fb110d865338a1",
      "tree": "a0faa6e46c6d6504de239a1b34e90938a5763bca",
      "parents": [
        "ac8ba50f6be4a3ab49a2ad2cb676422af4ebaf8a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:19 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:19 2011 +0200"
      },
      "message": "xfs: cleanup the definition of struct xfs_dir2_sf_entry\n\nRemove the inumber member which is at a variable offset after the actual\nname, and make name a real variable sized C99 array instead of the incorrect\none-sized array which confuses (not only) gcc.  Based on this clean up\nthe helpers to calculate the entry size.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "ac8ba50f6be4a3ab49a2ad2cb676422af4ebaf8a",
      "tree": "7f08e8da5a8ae0e39df616faff5c94f2c386b46c",
      "parents": [
        "8bc387875870c87087f138741f456983cbc54660"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:13 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:13 2011 +0200"
      },
      "message": "xfs: kill struct xfs_dir2_sf\n\nThe list field of it is never cactually used, so all uses can simply be\nreplaced with the xfs_dir2_sf_hdr_t type that it has as first member.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "8bc387875870c87087f138741f456983cbc54660",
      "tree": "e121ad0f46dc72517172b0fd9b21603504b6a117",
      "parents": [
        "4fb44c8272a071290d2ad76164c532fa2902b604"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:03 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:35:03 2011 +0200"
      },
      "message": "xfs: cleanup shortform directory inode number handling\n\nRefactor the shortform directory helpers that deal with the 32-bit vs\n64-bit wide inode numbers into more sensible helpers, and kill the\nxfs_intino_t typedef that is now superflous.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "4fb44c8272a071290d2ad76164c532fa2902b604",
      "tree": "a3e36278df268b0bd99c12455ba6e4c8ced478cf",
      "parents": [
        "29d104af0a92ba1eac74b636da7fcf88242e1180"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:59 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:59 2011 +0200"
      },
      "message": "xfs: factor out xfs_dir2_leaf_find_entry\n\nAdd a new xfs_dir2_leaf_find_entry helper to factor out some duplicate code\nfrom xfs_dir2_leaf_addname xfs_dir2_leafn_add.  Found by Eric Sandeen using\nan automated code duplication checker.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "29d104af0a92ba1eac74b636da7fcf88242e1180",
      "tree": "9ddcbef9bd4569596a75b22f82736bdc29f5c930",
      "parents": [
        "f3ca87389dbff0a3dc1a7cb2fa7c62e25421c66c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:51 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:51 2011 +0200"
      },
      "message": "xfs: kill the unused struct xfs_sync_work\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "f3ca87389dbff0a3dc1a7cb2fa7c62e25421c66c",
      "tree": "39a6aa16be0bbab79e65525d57404b23eaff0205",
      "parents": [
        "7a249cf83da1813cfa71cfe1e265b40045eceb47"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:47 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:47 2011 +0200"
      },
      "message": "xfs: remove i_transp\n\nRemove the transaction pointer in the inode.  It\u0027s only used to avoid\npassing down an argument in the bmap code, and for a few asserts in\nthe transaction code right now.\n\nAlso use the local variable ip in a few more places in xfs_inode_item_unlock,\nso that it isn\u0027t only used for debug builds after the above change.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "7a249cf83da1813cfa71cfe1e265b40045eceb47",
      "tree": "0c665aad7d32614f7eaa5a11c1b534c8fb5037d3",
      "parents": [
        "33b8f7c2479dfcbc5c27174e44b5f659d9f33c70"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:42 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:42 2011 +0200"
      },
      "message": "xfs: fix filesystsem freeze race in xfs_trans_alloc\n\nAs pointed out by Jan xfs_trans_alloc can race with a concurrent filesystem\nfreeze when it sleeps during the memory allocation.  Fix this by moving the\nwait_for_freeze call after the memory allocation.  This means moving the\nfreeze into the low-level _xfs_trans_alloc helper, which thus grows a new\nargument.  Also fix up some comments in that area while at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\n"
    },
    {
      "commit": "33b8f7c2479dfcbc5c27174e44b5f659d9f33c70",
      "tree": "4ea1c46d0e36185b1921d7ab4e586b1c6c306b03",
      "parents": [
        "8f04c47aa9712874af2c8816c2ca2a332cba80e4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:39 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:39 2011 +0200"
      },
      "message": "xfs: improve sync behaviour in the face of aggressive dirtying\n\nThe following script from Wu Fengguang shows very bad behaviour in XFS\nwhen aggressively dirtying data during a sync on XFS, with sync times\nup to almost 10 times as long as ext4.\n\nA large part of the issue is that XFS writes data out itself two times\nin the -\u003esync_fs method, overriding the livelock protection in the core\nwriteback code, and another issue is the lock-less xfs_ioend_wait call,\nwhich doesn\u0027t prevent new ioend from being queue up while waiting for\nthe count to reach zero.\n\nThis patch removes the XFS-internal sync calls and relies on the VFS\nto do it\u0027s work just like all other filesystems do.  Note that the\ni_iocount wait which is rather suboptimal is simply removed here.\nWe already do it in -\u003ewrite_inode, which keeps the current supoptimal\nbehaviour.  We\u0027ll eventually need to remove that as well, but that\u0027s\nmaterial for a separate commit.\n\n------------------------------ snip ------------------------------\n#!/bin/sh\n\numount /dev/sda7\nmkfs.xfs -f /dev/sda7\n# mkfs.ext4 /dev/sda7\n# mkfs.btrfs /dev/sda7\nmount /dev/sda7 /fs\n\necho $((50\u003c\u003c20)) \u003e /proc/sys/vm/dirty_bytes\n\npid\u003d\nfor i in `seq 10`\ndo\n\tdd if\u003d/dev/zero of\u003d/fs/zero-$i bs\u003d1M count\u003d1000 \u0026\n\tpid\u003d\"$pid $!\"\ndone\n\nsleep 1\n\ntic\u003d$(date +\u0027%s\u0027)\nsync\ntac\u003d$(date +\u0027%s\u0027)\n\necho\necho sync time: $((tac-tic))\negrep \u0027(Dirty|Writeback|NFS_Unstable)\u0027 /proc/meminfo\n\npidof dd \u003e /dev/null \u0026\u0026 { kill -9 $pid; echo sync NOT livelocked; }\n------------------------------ snip ------------------------------\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "8f04c47aa9712874af2c8816c2ca2a332cba80e4",
      "tree": "56f76e7d1443759ed68c6720e7f242950e220f8c",
      "parents": [
        "857b9778d86ccba7d7b42c9d8aeecde794ec8a6b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:34 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:34 2011 +0200"
      },
      "message": "xfs: split xfs_itruncate_finish\n\nSplit the guts of xfs_itruncate_finish that loop over the existing extents\nand calls xfs_bunmapi on them into a new helper, xfs_itruncate_externs.\nMake xfs_attr_inactive call it directly instead of xfs_itruncate_finish,\nwhich allows to simplify the latter a lot, by only letting it deal with\nthe data fork.  As a result xfs_itruncate_finish is renamed to\nxfs_itruncate_data to make its use case more obvious.\n\nAlso remove the sync parameter from xfs_itruncate_data, which has been\nunessecary since the introduction of the busy extent list in 2002, and\ncompletely dead code since 2003 when the XFS_BMAPI_ASYNC parameter was\nmade a no-op.\n\nI can\u0027t actually see why the xfs_attr_inactive needs to set the transaction\nsync, but let\u0027s keep this patch simple and without changes in behaviour.\n\nAlso avoid passing a useless argument to xfs_isize_check, and make it\nprivate to xfs_inode.c.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "857b9778d86ccba7d7b42c9d8aeecde794ec8a6b",
      "tree": "8e336f66e4e712da3f6d3f9a2f87bd2e0a8ca781",
      "parents": [
        "681b120018e3c7e2680c93e8188c5ee34215df2f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:30 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:30 2011 +0200"
      },
      "message": "xfs: kill xfs_itruncate_start\n\nxfs_itruncate_start is a rather length wrapper that evaluates to a call\nto xfs_ioend_wait and xfs_tosspages, and only has two callers.\n\nInstead of using the complicated checks left over from IRIX where we\ncan to truncate the pagecache just call xfs_tosspages\n(aka truncate_inode_pages) directly as we want to get rid of all data\nafter i_size, and truncate_inode_pages handles incorrect alignments\nand too large offsets just fine.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "681b120018e3c7e2680c93e8188c5ee34215df2f",
      "tree": "ac9ac585405ce263d1dcb170b3e201e44688aa66",
      "parents": [
        "c4ed4243c40f97ed5b7b121777bbbc6aeaa722f0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:26 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:26 2011 +0200"
      },
      "message": "xfs: always log timestamp updates in xfs_setattr_size\n\nGet rid of the special case where we use unlogged timestamp updates for\na truncate to the current inode size, and just call xfs_setattr_nonsize\nfor it to treat it like a utimes calls.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "c4ed4243c40f97ed5b7b121777bbbc6aeaa722f0",
      "tree": "fda6054305f357705687016906a1ca254018c2e7",
      "parents": [
        "dec58f1dfd30a3c3e9dadc808692f4e5cd922745"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:23 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:23 2011 +0200"
      },
      "message": "xfs: split xfs_setattr\n\nSplit up xfs_setattr into two functions, one for the complex truncate\nhandling, and one for the trivial attribute updates.  Also move both\nnew routines to xfs_iops.c as they are fairly Linux-specific.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "dec58f1dfd30a3c3e9dadc808692f4e5cd922745",
      "tree": "42af1ab01493325e860e5cbf4245c6b39dd6e951",
      "parents": [
        "dbcdde3e76f45d56c4a30ca6c5d69b6d473d3fd1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:18 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:18 2011 +0200"
      },
      "message": "xfs: work around bogus gcc warning in xfs_allocbt_init_cursor\n\nGCC 4.6 complains about an array subscript is above array bounds when\nusing the btree index to index into the agf_levels array.  The only\ntwo indices passed in are 0 and 1, and we have an assert insuring that.\n\nReplace the trick of using the array index directly with using constants\nin the already existing branch for assigning the XFS_BTREE_LASTREC_UPDATE\nflag.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "dbcdde3e76f45d56c4a30ca6c5d69b6d473d3fd1",
      "tree": "8758c2cce216c028f9d17bcb8417a3740329f66d",
      "parents": [
        "680a647b49fa52de0b37b8bc58a3a8c4bc76b262"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:14 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 08 14:34:14 2011 +0200"
      },
      "message": "xfs: re-enable non-blocking behaviour in xfs_map_blocks\n\nThe non-blockig behaviour in xfs_vm_writepage currently is conditional on\nhaving both the WB_SYNC_NONE sync_mode and the nonblocking flag set.\nThe latter used to be used by both pdflush, kswapd and a few other places\nin older kernels, but has been fading out starting with the introduction\nof the per-bdi flusher threads.\n\nEnable the non-blocking behaviour for all WB_SYNC_NONE calls to get back\nthe behaviour we want.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    }
  ],
  "next": "680a647b49fa52de0b37b8bc58a3a8c4bc76b262"
}
