)]}'
{
  "log": [
    {
      "commit": "e09f98606dcc156de1146c209d45a0d6d5f51c3f",
      "tree": "dd63ab7c2eaedad409fb0c72d4d675b2d3e9f533",
      "parents": [
        "3daeb42c13567e1505f233f6a699cc0e23c8ab5a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jan 14 01:33:54 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:49:07 2010 -0600"
      },
      "message": "xfs: xfs_swap_extents needs to handle dynamic fork offsets\n\nWhen swapping extents, we can corrupt inodes by swapping data forks\nthat are in incompatible formats.  This is caused by the two indoes\nhaving different fork offsets due to the presence of an attribute\nfork on an attr2 filesystem.  xfs_fsr tries to be smart about\nsetting the fork offset, but the trick it plays only works on attr1\n(old fixed format attribute fork) filesystems.\n\nChanging the way xfs_fsr sets up the attribute fork will prevent\nthis situation from ever occurring, so in the kernel code we can get\nby with a preventative fix - check that the data fork in the\ndefragmented inode is in a format valid for the inode it is being\nswapped into.  This will lead to files that will silently and\npotentially repeatedly fail defragmentation, so issue a warning to\nthe log when this particular failure occurs to let us know that\nxfs_fsr needs updating/fixing.\n\nTo help identify how to improve xfs_fsr to avoid this issue, add\ntrace points for the inodes being swapped so that we can determine\nwhy the swap was rejected and to confirm that the code is making the\nright decisions and modifications when swapping forks.\n\nA further complication is even when the swap is allowed to proceed\nwhen the fork offset is different between the two inodes then value\nfor the maximum number of extents the data fork can hold can be\nwrong. Make sure these are also set correctly after the swap occurs.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "3daeb42c13567e1505f233f6a699cc0e23c8ab5a",
      "tree": "a5897b35cb4830d73089aace8abd5b2c8bae1d7f",
      "parents": [
        "4b6a46882cca8349e8942e2650c33b11bc571c92"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Jan 14 08:44:46 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:46:19 2010 -0600"
      },
      "message": "xfs: fix missing error check in xfs_rtfree_range\n\nWhen xfs_rtfind_forw() returns an error, the block is returned\nuninitialised.  xfs_rtfree_range() is not checking the error return,\nso could be using an uninitialised block number for modifying bitmap\nsummary info.\n\nThe problem was found by gcc when compiling the *userspace* libxfs\ncode - it is an copy of the kernel code with the exact same bug.\ngcc gives an uninitialised variable warning on the userspace code\nbut not on the kernel code. You gotta love the consistency (Mmmm,\nslightly chewy today!).\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "4b6a46882cca8349e8942e2650c33b11bc571c92",
      "tree": "5a5ab0783340fa4acd75a172d857d0077a527809",
      "parents": [
        "126976c7c17d3bdfbc1fe9e0af8bee9f62d14cc6"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jan 11 11:45:21 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:46:02 2010 -0600"
      },
      "message": "xfs: fix stale inode flush avoidance\n\nWhen reclaiming stale inodes, we need to guarantee that inodes are\nunpinned before returning with a \"clean\" status. If we don\u0027t we can\nreclaim inodes that are pinned, leading to use after free in the\ntransaction subsystem as transactions complete.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "126976c7c17d3bdfbc1fe9e0af8bee9f62d14cc6",
      "tree": "01b15c25ad8be7402a54fd090771a12084e8f425",
      "parents": [
        "57817c68229984818fea9e614d6f95249c3fb098"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Jan 10 23:51:48 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:45:33 2010 -0600"
      },
      "message": "xfs: Remove inode iolock held check during allocation\n\nlockdep complains about a the lock not being initialised as we do an\nASSERT based check that the lock is not held before we initialise it\nto catch inodes freed with the lock held.\n\nlockdep does this check for us in the lock initialisation code, so\nremove the ASSERT to stop the lockdep warning.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "57817c68229984818fea9e614d6f95249c3fb098",
      "tree": "1c3265ae92ccf51617763a568c4c76be3a596578",
      "parents": [
        "018027be90a6946e8cf3f9b17b5582384f7ed117"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Jan 10 23:51:47 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:44:44 2010 -0600"
      },
      "message": "xfs: reclaim all inodes by background tree walks\n\nWe cannot do direct inode reclaim without taking the flush lock to\nensure that we do not reclaim an inode under IO. We check the inode\nis clean before doing direct reclaim, but this is not good enough\nbecause the inode flush code marks the inode clean once it has\ncopied the in-core dirty state to the backing buffer.\n\nIt is the flush lock that determines whether the inode is still\nunder IO, even though it is marked clean, and the inode is still\nrequired at IO completion so we can\u0027t reclaim it even though it is\nclean in core. Hence the requirement that we need to take the flush\nlock even on clean inodes because this guarantees that the inode\nwriteback IO has completed and it is safe to reclaim the inode.\n\nWith delayed write inode flushing, we coul dend up waiting a long\ntime on the flush lock even for a clean inode. The background\nreclaim already handles this efficiently, so avoid all the problems\nby killing the direct reclaim path altogether.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "018027be90a6946e8cf3f9b17b5582384f7ed117",
      "tree": "a8816b9884e21eab9cb3342af9de9ddc28f9f0de",
      "parents": [
        "c8e20be020f234c8d492927a424a7d8bbefd5b5d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Jan 10 23:51:46 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:44:21 2010 -0600"
      },
      "message": "xfs: Avoid inodes in reclaim when flushing from inode cache\n\nThe reclaim code will handle flushing of dirty inodes before reclaim\noccurs, so avoid them when determining whether an inode is a\ncandidate for flushing to disk when walking the radix trees.  This\nis based on a test patch from Christoph Hellwig.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c8e20be020f234c8d492927a424a7d8bbefd5b5d",
      "tree": "ced84d52bf87d72d36a65e3ddca6b4fc4b7f819f",
      "parents": [
        "7284ce6c9f6153d1777df5f310c959724d1bd446"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sun Jan 10 23:51:45 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 15 13:43:55 2010 -0600"
      },
      "message": "xfs: reclaim inodes under a write lock\n\nMake the inode tree reclaim walk exclusive to avoid races with\nconcurrent sync walkers and lookups. This is a version of a patch\nposted by Christoph Hellwig that avoids all the code duplication.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "fd45e4784164d1017521086524e3442318c67370",
      "tree": "aaaf8f524d4bf094f6debadc6e580f81038f4915",
      "parents": [
        "44e08c45cc14e6190a424be8d450070c8e508fad"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Jan 02 02:38:56 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Sun Jan 10 12:22:02 2010 -0600"
      },
      "message": "xfs: Ensure we force all busy extents in range to disk\n\nWhen we search for and find a busy extent during allocation we\nforce the log out to ensure the extent free transaction is on\ndisk before the allocation transaction. The current implementation\nhas a subtle bug in it--it does not handle multiple overlapping\nranges.\n\nThat is, if we free lots of little extents into a single\ncontiguous extent, then allocate the contiguous extent, the busy\nsearch code stops searching at the first extent it finds that\noverlaps the allocated range. It then uses the commit LSN of the\ntransaction to force the log out to.\n\nUnfortunately, the other busy ranges might have more recent\ncommit LSNs than the first busy extent that is found, and this\nresults in xfs_alloc_search_busy() returning before all the\nextent free transactions are on disk for the range being\nallocated. This can lead to potential metadata corruption or\nstale data exposure after a crash because log replay won\u0027t replay\nall the extent free transactions that cover the allocation range.\n\nModified-by: Alex Elder \u003caelder@sgi.com\u003e\n\n(Dropped the \"found\" argument from the xfs_alloc_busysearch trace\nevent.)\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "44e08c45cc14e6190a424be8d450070c8e508fad",
      "tree": "f0938a953d0bce87cade91ec753293c305925296",
      "parents": [
        "d6d59bada372bcf8bd36c3bbc71c485c29dd2a4b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Sat Jan 02 02:39:40 2010 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Sun Jan 10 12:22:00 2010 -0600"
      },
      "message": "xfs: Don\u0027t flush stale inodes\n\nBecause inodes remain in cache much longer than inode buffers do\nunder memory pressure, we can get the situation where we have\nstale, dirty inodes being reclaimed but the backing storage has\nbeen freed.  Hence we should never, ever flush XFS_ISTALE inodes\nto disk as there is no guarantee that the backing buffer is in\ncache and still marked stale when the flush occurs.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "d6d59bada372bcf8bd36c3bbc71c485c29dd2a4b",
      "tree": "140a4625597ffac953ce1d0dbbfed7caa436e053",
      "parents": [
        "ea9a48881e093a41a79305fb1545ca0794b203dc"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Dec 23 16:09:13 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Sun Jan 10 12:21:58 2010 -0600"
      },
      "message": "xfs: fix timestamp handling in xfs_setattr\n\nWe currently have some rather odd code in xfs_setattr for\nupdating the a/c/mtime timestamps:\n\n - first we do a non-transaction update if all three are updated\n   together\n - second we implicitly update the ctime for various changes\n   instead of relying on the ATTR_CTIME flag\n - third we set the timestamps to the current time instead of the\n   arguments in the iattr structure in many cases.\n\nThis patch makes sure we update it in a consistent way:\n\n - always transactional\n - ctime is only updated if ATTR_CTIME is set or we do a size\n   update, which is a special case\n - always to the times passed in from the caller instead of the\n   current time\n\nThe only non-size caller of xfs_setattr that doesn\u0027t come from\nthe VFS is updated to set ATTR_CTIME and pass in a valid ctime\nvalue.\n\nReported-by: Eric Blake \u003cebb9@byu.net\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ea9a48881e093a41a79305fb1545ca0794b203dc",
      "tree": "b17a7fec50d6a1552190235470a24be2078c95ca",
      "parents": [
        "3c8ad49b015eb115fbd6982f56d530f53cf57f84"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Dec 21 14:03:03 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Sun Jan 10 12:21:56 2010 -0600"
      },
      "message": "xfs: use DECLARE_EVENT_CLASS\n\nUsing DECLARE_EVENT_CLASS allows us to to use trace event code\ninstead of duplicating it in the binary.  This was not available\nbefore 2.6.33 so it had to be done as a separate step once the\nprerequisite was merged.\n\nThis only requires changes to xfs_trace.h and the results are\nrather impressive:\n\nhch@brick:~/work/linux-2.6/obj-kvm$ size fs/xfs/xfs.o*\ntext\t   data\t    bss\t    dec\t    hex\tfilename\n 607732\t  41884\t   3616\t 653232\t  9f7b0\tfs/xfs/xfs.o\n1026732\t  41884\t   3808\t1072424\t 105d28\tfs/xfs/xfs.o.old\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "a539bd8c86549b545b4ed27a0cfaf53fe649054d",
      "tree": "b31f3a00cc96147e3872534ba0d713f828f89f5b",
      "parents": [
        "74d2e4f8d79ae0c4b6ec027958d5b18058662eea"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Thu Dec 17 00:20:07 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Jan 08 13:32:29 2010 -0600"
      },
      "message": "xfs: kill some warnings on i386 builds\n\nRandy Dunlap Reported printk() format-related warnings reported\non i386 builds in his environment.  Dave Chinner provided this\npatch to eliminate them.\n\nSigned-off by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "eaff8079d4f1016a12e34ab323737314f24127dd",
      "tree": "a3d9e00320c6195e55811d5247a521f99341a411",
      "parents": [
        "7a0ad10c367ab57c899d340372f37880cbe6ab52"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Dec 17 14:25:01 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 17 11:03:25 2009 -0500"
      },
      "message": "kill I_LOCK\n\nAfter I_SYNC was split from I_LOCK the leftover is always used together with\nI_NEW and thus superflous.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bea4c899f2b5fad80099aea979780ef19f9b1987",
      "tree": "65130f4bc91b92e72498fc58bf895d35f2ebf0f2",
      "parents": [
        "73efc4681cb5e3c8807daf106f001e7f0798d8a0",
        "3fc98b1ac036675b95f6e3fafd5ef147b97d4d30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 13:29:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 13:29:39 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  XFS: Free buffer pages array unconditionally\n  xfs: kill xfs_bmbt_rec_32/64 types\n  xfs: improve metadata I/O merging in the elevator\n  xfs: check for not fully initialized inodes in xfs_ireclaim\n"
    },
    {
      "commit": "3fc98b1ac036675b95f6e3fafd5ef147b97d4d30",
      "tree": "1710b6e0140a12a6e20ef0494b11e42b9f0fcfc6",
      "parents": [
        "a5f9be58c2b87106100a6053d09b1f9f8d551c6e"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Dec 14 23:11:57 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 16 13:41:20 2009 -0600"
      },
      "message": "XFS: Free buffer pages array unconditionally\n\nThe code in xfs_free_buf() only attempts to free the b_pages array if the\nbuffer is a page cache backed or page allocated buffer. The extra log buffer\nthat is used when the log wraps uses pages that are allocated to a different\nlog buffer, but it still has a b_pages array allocated when those pages\nare associated to with the extra buffer in xfs_buf_associate_memory.\n\nHence we need to always attempt to free the b_pages array when tearing\ndown a buffer, not just on buffers that are explicitly marked as page bearing\nbuffers. This fixes a leak detected by the kernel memory leak code.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "a5f9be58c2b87106100a6053d09b1f9f8d551c6e",
      "tree": "4d44970b16b0699cb3bc757b9e5f25eda230d4d1",
      "parents": [
        "2ee1abad73a12df5521cd3f017f081f1f684a361"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Dec 04 10:19:07 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 16 13:41:20 2009 -0600"
      },
      "message": "xfs: kill xfs_bmbt_rec_32/64 types\n\nFor a long time we\u0027ve always stored bmap btree records in the 64bit format,\nso kill off the dead 32bit type, and make sure the 64bit type is named just\nxfs_bmbt_rec everywhere, without any size postfix.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "2ee1abad73a12df5521cd3f017f081f1f684a361",
      "tree": "e44a88b0ae7f01d339426d7a6d18bde017bb9cf1",
      "parents": [
        "b44b1126279b60597f96bbe77507b1650f88a969"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dgc@sgi.com",
        "time": "Tue Nov 24 18:03:15 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 16 13:41:19 2009 -0600"
      },
      "message": "xfs: improve metadata I/O merging in the elevator\n\nChange all async metadata buffers to use [READ|WRITE]_META I/O types\nso that the I/O doesn\u0027t get issued immediately. This allows merging of\nadjacent metadata requests but still prioritises them over bulk data.\nThis shows a 10-15% improvement in sequential create speed of small\nfiles.\n\nDon\u0027t include the log buffers in this classification - leave them as\nsync types so they are issued immediately.\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "b44b1126279b60597f96bbe77507b1650f88a969",
      "tree": "220cb8d4903532c2551ee2bdffa03885cdc642ba",
      "parents": [
        "5ac4d630eb87656bd4dc313b910776d54d88ea28"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 01 18:12:29 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Dec 16 13:20:15 2009 -0600"
      },
      "message": "xfs: check for not fully initialized inodes in xfs_ireclaim\n\nAdd an assert for inodes not added to the inode cache in xfs_ireclaim,\nto make sure we\u0027re not going to introduce something like the\nfamous nfsd inode cache bug again.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "1e431f5ce78f3ae8254d725060288b78ff74f086",
      "tree": "a144fd7b6120ec61958c82023b25620a18aa3d6d",
      "parents": [
        "1c7c474c31aea6d5cb2fb35f31d9e9e91ae466b1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 03 16:44:53 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:49 2009 -0500"
      },
      "message": "cleanup blockdev_direct_IO locking\n\nCurrently the locking in blockdev_direct_IO is a mess, we have three different\nlocking types and very confusing checks for some of them.  The most\ncomplicated one is DIO_OWN_LOCKING for reads, which happens to not actually be\nused.\n\nThis patch gets rid of the DIO_OWN_LOCKING - as mentioned above the read case\nis unused anyway, and the write side is almost identical to DIO_NO_LOCKING.\nThe difference is that DIO_NO_LOCKING always sets the create argument for\nthe get_blocks callback to zero, but we can easily move that to the actual\nget_blocks callbacks.  There are four users of the DIO_NO_LOCKING mode:\ngfs already ignores the create argument and thus is fine with the new\nversion, ocfs2 only errors out if create were ever set, and we can remove\nthis dead code now, the block device code only ever uses create for an\nerror message if we are fully beyond the device which can never happen,\nand last but not least XFS will need the new behavour for writes.\n\nNow we can replace the lock_type variable with a flags one, where no flag\nmeans the DIO_NO_LOCKING behaviour and DIO_LOCKING is kept as the first\nflag.  Separate out the check for not allowing to fill holes into a separate\nflag, although for now both flags always get set at the same time.\n\nAlso revamp the documentation of the locking scheme to actually make sense.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "431547b3c4533b8c7fd150ab36980b9a3147797b",
      "tree": "807ff2790f3c13c7c91ed2afd6d833032899482d",
      "parents": [
        "ef26ca97e83052790940cbc444b01b0d17a813c1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Nov 13 09:52:56 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:49 2009 -0500"
      },
      "message": "sanitize xattr handler prototypes\n\nAdd a flags argument to struct xattr_handler and pass it to all xattr\nhandler methods.  This allows using the same methods for multiple\nhandlers, e.g. for the ACL methods which perform exactly the same action\nfor the access and default ACLs, just using a different underlying\nattribute.  With a little more groundwork it\u0027ll also allow sharing the\nmethods for the regular user/trusted/secure handlers in extN, ocfs2 and\njffs2 like it\u0027s already done for xfs in this patch.\n\nAlso change the inode argument to the handlers to a dentry to allow\nusing the handlers mechnism for filesystems that require it later,\ne.g. cifs.\n\n[with GFS2 bits updated by Steven Whitehouse \u003cswhiteho@redhat.com\u003e]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5fe878ae7f82fbf0830dbfaee4c5ca18f3aee442",
      "tree": "7e7ad290cfb30705948d8ebeb46b013afa913f42",
      "parents": [
        "23aee091d804efa8cc732a31c1ae5d625e1ec886"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Dec 15 16:47:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 16 07:20:13 2009 -0800"
      },
      "message": "direct-io: cleanup blockdev_direct_IO locking\n\nCurrently the locking in blockdev_direct_IO is a mess, we have three\ndifferent locking types and very confusing checks for some of them.  The\nmost complicated one is DIO_OWN_LOCKING for reads, which happens to not\nactually be used.\n\nThis patch gets rid of the DIO_OWN_LOCKING - as mentioned above the read\ncase is unused anyway, and the write side is almost identical to\nDIO_NO_LOCKING.  The difference is that DIO_NO_LOCKING always sets the\ncreate argument for the get_blocks callback to zero, but we can easily\nmove that to the actual get_blocks callbacks.  There are four users of the\nDIO_NO_LOCKING mode: gfs already ignores the create argument and thus is\nfine with the new version, ocfs2 only errors out if create were ever set,\nand we can remove this dead code now, the block device code only ever uses\ncreate for an error message if we are fully beyond the device which can\nnever happen, and last but not least XFS will need the new behavour for\nwrites.\n\nNow we can replace the lock_type variable with a flags one, where no flag\nmeans the DIO_NO_LOCKING behaviour and DIO_LOCKING is kept as the first\nflag.  Separate out the check for not allowing to fill holes into a\nseparate flag, although for now both flags always get set at the same\ntime.\n\nAlso revamp the documentation of the locking scheme to actually make\nsense.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d180ec5d348e3a51836d723c182374483012c981",
      "tree": "252bcf36f7f6e329d94092a3238a79d7f2e1e2e2",
      "parents": [
        "53365383c4667aba55385cd1858582c19a7a8a36",
        "0b1b213fcf3a8486ada99a2bab84ab8c6f51b264"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 09:12:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 09:12:43 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: event tracing support\n  xfs: change the xfs_iext_insert / xfs_iext_remove\n  xfs: cleanup bmap extent state macros\n"
    },
    {
      "commit": "03daa57cdb2198e36a41ca1f63a030759490363f",
      "tree": "5b7b476b6f8f73bc9ad3a986430943ec3386e66a",
      "parents": [
        "9ac6e44ee5caa5f0babfc87f2613e1296d2c2d11"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Dec 14 18:01:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:33 2009 -0800"
      },
      "message": "fs/xfs/xfs_log_recover.c: use %pU to print UUIDs\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b1b213fcf3a8486ada99a2bab84ab8c6f51b264",
      "tree": "661fd8da7487231224c77b95c33986cb7d7b41ef",
      "parents": [
        "6ef3554422e2c7e7aa424ba63737da498881dff4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Dec 14 23:14:59 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Dec 14 23:08:16 2009 -0600"
      },
      "message": "xfs: event tracing support\n\nConvert the old xfs tracing support that could only be used with the\nout of tree kdb and xfsidbg patches to use the generic event tracer.\n\nTo use it make sure CONFIG_EVENT_TRACING is enabled and then enable\nall xfs trace channels by:\n\n   echo 1 \u003e /sys/kernel/debug/tracing/events/xfs/enable\n\nor alternatively enable single events by just doing the same in one\nevent subdirectory, e.g.\n\n   echo 1 \u003e /sys/kernel/debug/tracing/events/xfs/xfs_ihold/enable\n\nor set more complex filters, etc. In Documentation/trace/events.txt\nall this is desctribed in more detail.  To reads the events do a\n\n   cat /sys/kernel/debug/tracing/trace\n\nCompared to the last posting this patch converts the tracing mostly to\nthe one tracepoint per callsite model that other users of the new\ntracing facility also employ.  This allows a very fine-grained control\nof the tracing, a cleaner output of the traces and also enables the\nperf tool to use each tracepoint as a virtual performance counter,\n     allowing us to e.g. count how often certain workloads git various\n     spots in XFS.  Take a look at\n\n    http://lwn.net/Articles/346470/\n\nfor some examples.\n\nAlso the btree tracing isn\u0027t included at all yet, as it will require\nadditional core tracing features not in mainline yet, I plan to\ndeliver it later.\n\nAnd the really nice thing about this patch is that it actually removes\nmany lines of code while adding this nice functionality:\n\n fs/xfs/Makefile                |    8\n fs/xfs/linux-2.6/xfs_acl.c     |    1\n fs/xfs/linux-2.6/xfs_aops.c    |   52 -\n fs/xfs/linux-2.6/xfs_aops.h    |    2\n fs/xfs/linux-2.6/xfs_buf.c     |  117 +--\n fs/xfs/linux-2.6/xfs_buf.h     |   33\n fs/xfs/linux-2.6/xfs_fs_subr.c |    3\n fs/xfs/linux-2.6/xfs_ioctl.c   |    1\n fs/xfs/linux-2.6/xfs_ioctl32.c |    1\n fs/xfs/linux-2.6/xfs_iops.c    |    1\n fs/xfs/linux-2.6/xfs_linux.h   |    1\n fs/xfs/linux-2.6/xfs_lrw.c     |   87 --\n fs/xfs/linux-2.6/xfs_lrw.h     |   45 -\n fs/xfs/linux-2.6/xfs_super.c   |  104 ---\n fs/xfs/linux-2.6/xfs_super.h   |    7\n fs/xfs/linux-2.6/xfs_sync.c    |    1\n fs/xfs/linux-2.6/xfs_trace.c   |   75 ++\n fs/xfs/linux-2.6/xfs_trace.h   | 1369 +++++++++++++++++++++++++++++++++++++++++\n fs/xfs/linux-2.6/xfs_vnode.h   |    4\n fs/xfs/quota/xfs_dquot.c       |  110 ---\n fs/xfs/quota/xfs_dquot.h       |   21\n fs/xfs/quota/xfs_qm.c          |   40 -\n fs/xfs/quota/xfs_qm_syscalls.c |    4\n fs/xfs/support/ktrace.c        |  323 ---------\n fs/xfs/support/ktrace.h        |   85 --\n fs/xfs/xfs.h                   |   16\n fs/xfs/xfs_ag.h                |   14\n fs/xfs/xfs_alloc.c             |  230 +-----\n fs/xfs/xfs_alloc.h             |   27\n fs/xfs/xfs_alloc_btree.c       |    1\n fs/xfs/xfs_attr.c              |  107 ---\n fs/xfs/xfs_attr.h              |   10\n fs/xfs/xfs_attr_leaf.c         |   14\n fs/xfs/xfs_attr_sf.h           |   40 -\n fs/xfs/xfs_bmap.c              |  507 +++------------\n fs/xfs/xfs_bmap.h              |   49 -\n fs/xfs/xfs_bmap_btree.c        |    6\n fs/xfs/xfs_btree.c             |    5\n fs/xfs/xfs_btree_trace.h       |   17\n fs/xfs/xfs_buf_item.c          |   87 --\n fs/xfs/xfs_buf_item.h          |   20\n fs/xfs/xfs_da_btree.c          |    3\n fs/xfs/xfs_da_btree.h          |    7\n fs/xfs/xfs_dfrag.c             |    2\n fs/xfs/xfs_dir2.c              |    8\n fs/xfs/xfs_dir2_block.c        |   20\n fs/xfs/xfs_dir2_leaf.c         |   21\n fs/xfs/xfs_dir2_node.c         |   27\n fs/xfs/xfs_dir2_sf.c           |   26\n fs/xfs/xfs_dir2_trace.c        |  216 ------\n fs/xfs/xfs_dir2_trace.h        |   72 --\n fs/xfs/xfs_filestream.c        |    8\n fs/xfs/xfs_fsops.c             |    2\n fs/xfs/xfs_iget.c              |  111 ---\n fs/xfs/xfs_inode.c             |   67 --\n fs/xfs/xfs_inode.h             |   76 --\n fs/xfs/xfs_inode_item.c        |    5\n fs/xfs/xfs_iomap.c             |   85 --\n fs/xfs/xfs_iomap.h             |    8\n fs/xfs/xfs_log.c               |  181 +----\n fs/xfs/xfs_log_priv.h          |   20\n fs/xfs/xfs_log_recover.c       |    1\n fs/xfs/xfs_mount.c             |    2\n fs/xfs/xfs_quota.h             |    8\n fs/xfs/xfs_rename.c            |    1\n fs/xfs/xfs_rtalloc.c           |    1\n fs/xfs/xfs_rw.c                |    3\n fs/xfs/xfs_trans.h             |   47 +\n fs/xfs/xfs_trans_buf.c         |   62 -\n fs/xfs/xfs_vnodeops.c          |    8\n 70 files changed, 2151 insertions(+), 2592 deletions(-)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "6ef3554422e2c7e7aa424ba63737da498881dff4",
      "tree": "ec0c8be29f8caea05f06f98c16e2a25c4fea3ebc",
      "parents": [
        "7574aa92f9b4952c458024e1fa51f20fed65ba07"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 25 00:00:21 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Dec 14 23:08:15 2009 -0600"
      },
      "message": "xfs: change the xfs_iext_insert / xfs_iext_remove\n\nChange the xfs_iext_insert / xfs_iext_remove prototypes to pass more\ninformation which will allow pushing the trace points from the callers\ninto those functions.  This includes folding the whichfork information\ninto the state variable to minimize the addition stack footprint.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "7574aa92f9b4952c458024e1fa51f20fed65ba07",
      "tree": "9f27ed8e5ec46de258b31ecf6c650c000b80a6da",
      "parents": [
        "3ea6b3d0e6d0ffd91c0f8cadeb69b7133c038b32"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 25 00:00:19 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Dec 14 23:08:15 2009 -0600"
      },
      "message": "xfs: cleanup bmap extent state macros\n\nCleanup the extent state macros in the bmap code to use one common set of\nflags that we can pass to the tracing code later and remove a lot of the\nmacro obsfucation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "3126c136bc30225d7a43af741778aa50e95e467a",
      "tree": "71e6f0de6e1f4cde200dd632da4d2f61180289bf",
      "parents": [
        "f4d544ee5720d336a8c64f9fd33efb888c302309",
        "8e0eb4011bd73d5f91b215b532f74eef478ef795"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:31:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:31:13 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (21 commits)\n  ext3: PTR_ERR return of wrong pointer in setup_new_group_blocks()\n  ext3: Fix data / filesystem corruption when write fails to copy data\n  ext4: Support for 64-bit quota format\n  ext3: Support for vfsv1 quota format\n  quota: Implement quota format with 64-bit space and inode limits\n  quota: Move definition of QFMT_OCFS2 to linux/quota.h\n  ext2: fix comment in ext2_find_entry about return values\n  ext3: Unify log messages in ext3\n  ext2: clear uptodate flag on super block I/O error\n  ext2: Unify log messages in ext2\n  ext3: make \"norecovery\" an alias for \"noload\"\n  ext3: Don\u0027t update the superblock in ext3_statfs()\n  ext3: journal all modifications in ext3_xattr_set_handle\n  ext2: Explicitly assign values to on-disk enum of filetypes\n  quota: Fix WARN_ON in lookup_one_len\n  const: struct quota_format_ops\n  ubifs: remove manual O_SYNC handling\n  afs: remove manual O_SYNC handling\n  kill wait_on_page_writeback_range\n  vfs: Implement proper O_SYNC semantics\n  ...\n"
    },
    {
      "commit": "f4d544ee5720d336a8c64f9fd33efb888c302309",
      "tree": "3b4674d46b04fbcfc38677df59c92320f65568dd",
      "parents": [
        "0e2f7b837600979d5b6f174a6ff695b85942e985",
        "44a743f68705c681439f264deb05f8f38e9048d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:30:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:30:29 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: Fix error return for fallocate() on XFS\n  xfs: cleanup dmapi macros in the umount path\n  xfs: remove incorrect sparse annotation for xfs_iget_cache_miss\n  xfs: kill the STATIC_INLINE macro\n  xfs: uninline xfs_get_extsz_hint\n  xfs: rename xfs_attr_fetch to xfs_attr_get_int\n  xfs: simplify xfs_buf_get / xfs_buf_read interfaces\n  xfs: remove IO_ISAIO\n  xfs: Wrapped journal record corruption on read at recovery\n  xfs: cleanup data end I/O handlers\n  xfs: use WRITE_SYNC_PLUG for synchronous writeout\n  xfs: reset the i_iolock lock class in the reclaim path\n  xfs: I/O completion handlers must use NOFS allocations\n  xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks\n  xfs: simplify inode teardown\n"
    },
    {
      "commit": "44a743f68705c681439f264deb05f8f38e9048d3",
      "tree": "3634e5e6599143f44e37e0964f61688ecf7af4a4",
      "parents": [
        "30ac0683dd452ba273c8db92a74d8cf7aef981d8"
      ],
      "author": {
        "name": "Jason Gunthorpe",
        "email": "jgunthorpe@obsidianresearch.com",
        "time": "Tue Nov 24 21:52:53 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:23 2009 -0600"
      },
      "message": "xfs: Fix error return for fallocate() on XFS\n\nNoticed that through glibc fallocate would return 28 rather than -1\nand errno \u003d 28 for ENOSPC. The xfs routines uses XFS_ERROR format\npositive return error codes while the syscalls use negative return\ncodes.  Fixup the two cases in xfs_vn_fallocate syscall to convert to\nnegative.\n\nSigned-off-by: Jason Gunthorpe \u003cjgunthorpe@obsidianresearch.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "30ac0683dd452ba273c8db92a74d8cf7aef981d8",
      "tree": "656d403388b16d451c340a3b8ed0880296755016",
      "parents": [
        "0c3dc2b02a4996c13e26eb91296e8a309e0c6227"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 14 16:17:24 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:23 2009 -0600"
      },
      "message": "xfs: cleanup dmapi macros in the umount path\n\nStop the flag saving as we never mangle those in the unmount path, and\nhide all the weird arguents to the dmapi code inside the\nXFS_SEND_PREUNMOUNT / XFS_SEND_UNMOUNT macros.\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": "0c3dc2b02a4996c13e26eb91296e8a309e0c6227",
      "tree": "7a974ff0d9cb20dee3c2afa84fd1f67ffda281eb",
      "parents": [
        "b8f82a4a6fc79fcb4b2eb81252020e04c9b49da5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 14 16:17:23 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:23 2009 -0600"
      },
      "message": "xfs: remove incorrect sparse annotation for xfs_iget_cache_miss\n\nxfs_iget_cache_miss does not get called with the pag_ici_lock held, so\nthe __releases annotation is incorrect.\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": "b8f82a4a6fc79fcb4b2eb81252020e04c9b49da5",
      "tree": "4f6c6d123e39ea80d43927398c279f29ca1143ef",
      "parents": [
        "5683f53e36235234f7861909fdff878ff1f1bb20"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 14 16:17:22 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:22 2009 -0600"
      },
      "message": "xfs: kill the STATIC_INLINE macro\n\nRemove our own STATIC_INLINE macro.  For small function inside\nimplementation files just use STATIC and let gcc inline it, and for\nthose in headers do the normal static inline - they are all small\nenough to be inlined for debug builds, too.\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": "5683f53e36235234f7861909fdff878ff1f1bb20",
      "tree": "3d1315b115319403df9ac59d6a01c5ddf4719058",
      "parents": [
        "e82fa0c7ca29b805388aa51d3cad2cb7a4df3084"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 14 16:17:21 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:22 2009 -0600"
      },
      "message": "xfs: uninline xfs_get_extsz_hint\n\nThis function is too large to efficiently be inlined.\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": "e82fa0c7ca29b805388aa51d3cad2cb7a4df3084",
      "tree": "f1149b0d37f837afb20549f83994e8da6b9332dc",
      "parents": [
        "6ad112bfb5af537e9e3103c807748bb4a99bbd9e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 14 16:17:20 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:22 2009 -0600"
      },
      "message": "xfs: rename xfs_attr_fetch to xfs_attr_get_int\n\nUsing a totally different name for the low-level get operation does\nnot fit the _int convention used in the rest of the attr code, so\nrename it.\n\nWhile we\u0027re at it also fix the prototype to use the normal convention\nand mark it static as it\u0027s never used outside of xfs_attr.c.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "6ad112bfb5af537e9e3103c807748bb4a99bbd9e",
      "tree": "783d7ea24d916914914287f696c1a957e495bd59",
      "parents": [
        "c355c656fede21f6e967816a603905f0ad6a7311"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Nov 24 18:02:23 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:21 2009 -0600"
      },
      "message": "xfs: simplify xfs_buf_get / xfs_buf_read interfaces\n\nCurrently the low-level buffer cache interfaces are highly confusing\nas we have a _flags variant of each that does actually respect the\nflags, and one without _flags which has a flags argument that gets\nignored and overriden with a default set.  Given that very few places\nuse the default arguments get rid of the duplication and convert all\ncallers to pass the flags explicitly.  Also remove the now confusing\n_flags postfix.\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": "c355c656fede21f6e967816a603905f0ad6a7311",
      "tree": "98106d194d7d4c569da1e54bce7630b498a5624d",
      "parents": [
        "fc5bc4c85c45f0bf854404e5736aa8b65720a18d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 14 16:17:18 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:21 2009 -0600"
      },
      "message": "xfs: remove IO_ISAIO\n\nWe set the IO_ISAIO flag for all read/write I/O since early Linux\n2.6.x.  Remove it as it has lost it\u0027s purpose long ago.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "fc5bc4c85c45f0bf854404e5736aa8b65720a18d",
      "tree": "f7938c5a4386a789606654e83f5dbb91367ef507",
      "parents": [
        "5ec4fabb02fcb5b4a4154a27e4299af5aa0f87ac"
      ],
      "author": {
        "name": "Andy Poling",
        "email": "andy@realbig.com",
        "time": "Tue Nov 03 17:26:47 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:21 2009 -0600"
      },
      "message": "xfs: Wrapped journal record corruption on read at recovery\n\nSummary of problem:\n\nIf a journal record wraps at the physical end of the journal, it has to be\nread in two parts in xlog_do_recovery_pass(): a read at the physical end and a\nread at the physical beginning.  If xlog_bread() has to re-align the first\nread, the second read request does not take that re-alignment into account.\nIf the first read was re-aligned, the second read over-writes the end of the\ndata from the first read, effectively corrupting it.  This can happen either\nwhen reading the record header or reading the record data.\n\nThe first sanity check in xlog_recover_process_data() is to check for a valid\nclientid, so that is the error reported.\n\nSummary of fix:\n\nIf there was a first read at the physical end, XFS_BUF_PTR() returns where the\ndata was requested to begin.  Conversely, because it is the result of\nxlog_align(), offset indicates where the requested data for the first read\nactually begins - whether or not xlog_bread() has re-aligned it.\n\nUsing offset as the base for the calculation of where to place the second read\ndata ensures that it will be correctly placed immediately following the data\nfrom the first read instead of sometimes over-writing the end of it.\n\nThe attached patch has resolved the reported problem of occasional inability\nto recover the journal (reporting \"bad clientid\").\n\nSigned-off-by: Andy Poling \u003candy@realbig.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "5ec4fabb02fcb5b4a4154a27e4299af5aa0f87ac",
      "tree": "5932e385b83c06241f4696c3d2ae6000bd0f2a6f",
      "parents": [
        "06342cf8adb23464deae0f58f8bcb87818a3bee6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Oct 30 09:11:47 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:20 2009 -0600"
      },
      "message": "xfs: cleanup data end I/O handlers\n\nCurrently we have different end I/O handlers for read vs the different\ntypes of write I/O.  But they are all very similar so we could just\nuse one with a few conditionals and reduce code size a lot.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "06342cf8adb23464deae0f58f8bcb87818a3bee6",
      "tree": "5e137892c622fd66216f7b7c3454d3f5e9ffccd1",
      "parents": [
        "033da48fda9d56e28b3fe3ef87ef6fd43290f554"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Oct 30 09:09:15 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:20 2009 -0600"
      },
      "message": "xfs: use WRITE_SYNC_PLUG for synchronous writeout\n\nThe VM and I/O schedulers now expect us to use WRITE_SYNC_PLUG for\nsynchronous writeout.  Right now I can\u0027t see any changes in performance\nnumbers with this, but we\u0027re getting some beating for not using it,\nand the knowledge definitely could help the block code to make better\ndecisions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "033da48fda9d56e28b3fe3ef87ef6fd43290f554",
      "tree": "0883ff1fd99a9d9bff00c2694e6b66ae12a39bba",
      "parents": [
        "80641dc66a2d6dfb22af4413227a92b8ab84c7bb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 19 04:05:26 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:20 2009 -0600"
      },
      "message": "xfs: reset the i_iolock lock class in the reclaim path\n\nThe iolock is used for protecting reads, writes and block truncates\nagainst each other.  We have two classes of callers, the first one is\ninduced by a file operation and requires a reference to the inode be\nheld and not dropped after the operation is done:\n\n - xfs_vm_vmap, xfs_vn_fallocate, xfs_read, xfs_write, xfs_splice_read,\n   xfs_splice_write and xfs_setattr are all implementations of VFS\n   methods that require a live inode\n - xfs_getbmap and xfs_swap_extents are ioctl subcommand for which the\n   same is true\n - xfs_truncate_file is only called on quota inodes just returned from\n   xfs_iget\n - xfs_sync_inode_data does the lock just after an igrab()\n - xfs_filestream_associate and xfs_filestream_new_ag take the iolock\n   on the parent inode of an inode which by VFS rules must be referenced\n\nAnd we have various calls to truncate blocks past EOF or the whole\nfile when dropping the last reference to an inode.  Unfortunately\nlockdep complains when we do memory allocations that can recurse into\nthe filesystem in the first class because the second class happens to\ntake the same lock.  To avoid this re-init the iolock in the beginning\nof xfs_fs_clear_inode to get a new lock class.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "80641dc66a2d6dfb22af4413227a92b8ab84c7bb",
      "tree": "f7353e4ca2bd4629b41c9ec79306d042d64f90f7",
      "parents": [
        "c56c9631cbe88f08854a56ff9776c1f310916830"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 19 04:00:03 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:20 2009 -0600"
      },
      "message": "xfs: I/O completion handlers must use NOFS allocations\n\nWhen completing I/O requests we must not allow the memory allocator to\nrecurse into the filesystem, as we might deadlock on waiting for the\nI/O completion otherwise.  The only thing currently allocating normal\nGFP_KERNEL memory is the allocation of the transaction structure for\nthe unwritten extent conversion.  Add a memflags argument to\n_xfs_trans_alloc to allow controlling the allocator behaviour.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Thomas Neumann \u003ctneumann@users.sourceforge.net\u003e\nTested-by: Thomas Neumann \u003ctneumann@users.sourceforge.net\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c56c9631cbe88f08854a56ff9776c1f310916830",
      "tree": "9069de0b572857072bc99334b8d5e1bce14ef13f",
      "parents": [
        "848ce8f731aed0a2d4ab5884a4f6664af73d2dd0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 19 04:03:46 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:19 2009 -0600"
      },
      "message": "xfs: fix mmap_sem/iolock inversion in xfs_free_eofblocks\n\nWhen xfs_free_eofblocks is called from -\u003erelease the VM might already\nhold the mmap_sem, but in the write path we take the iolock before\ntaking the mmap_sem in the generic write code.\n\nSwitch xfs_free_eofblocks to only trylock the iolock if called from\n-\u003erelease and skip trimming the prellocated blocks in that case.\nWe\u0027ll still free them later on the final iput.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "848ce8f731aed0a2d4ab5884a4f6664af73d2dd0",
      "tree": "cb8bdd8d2ce23f586e4bc0351dc934ae37a6db4e",
      "parents": [
        "22763c5cf3690a681551162c15d34d935308c8d7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 29 13:48:56 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Fri Dec 11 15:11:19 2009 -0600"
      },
      "message": "xfs: simplify inode teardown\n\nCurrently the reclaim code for the case where we don\u0027t reclaim the\nfinal reclaim is overly complicated.  We know that the inode is clean\nbut instead of just directly reclaiming the clean inode we go through\nthe whole process of marking the inode reclaimable just to directly\nreclaim it from the calling context.  Besides being overly complicated\nthis introduces a race where iget could recycle an inode between\nmarked reclaimable and actually being reclaimed leading to panics.\n\nThis patch gets rid of the existing reclaim path, and replaces it with\na simple call to xfs_ireclaim if the inode was clean.  While we\u0027re at\nit we also use the slightly more lax xfs_inode_clean check we\u0027d use\nlater to determine if we need to flush the inode here.\n\nFinally get rid of xfs_reclaim function and place the remaining small\nbits of reclaim code directly into xfs_fs_destroy_inode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Patrick Schreurs \u003cpatrick@news-service.com\u003e\nReported-by: Tommy van Leeuwen \u003ctommy@news-service.com\u003e\nTested-by: Patrick Schreurs \u003cpatrick@news-service.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "6b2f3d1f769be5779b479c37800229d9a4809fc3",
      "tree": "046ef6736ec6c25ab1c68741ba715d13645af336",
      "parents": [
        "59bc055211b8d266ab6089158058bf8268e02006"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Oct 27 11:05:28 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:50 2009 +0100"
      },
      "message": "vfs: Implement proper O_SYNC semantics\n\nWhile Linux provided an O_SYNC flag basically since day 1, it took until\nLinux 2.4.0-test12pre2 to actually get it implemented for filesystems,\nsince that day we had generic_osync_around with only minor changes and the\ngreat \"For now, when the user asks for O_SYNC, we\u0027ll actually give\nO_DSYNC\" comment.  This patch intends to actually give us real O_SYNC\nsemantics in addition to the O_DSYNC semantics.  After Jan\u0027s O_SYNC\npatches which are required before this patch it\u0027s actually surprisingly\nsimple, we just need to figure out when to set the datasync flag to\nvfs_fsync_range and when not.\n\nThis patch renames the existing O_SYNC flag to O_DSYNC while keeping it\u0027s\nnumerical value to keep binary compatibility, and adds a new real O_SYNC\nflag.  To guarantee backwards compatiblity it is defined as expanding to\nboth the O_DSYNC and the new additional binary flag (__O_SYNC) to make\nsure we are backwards-compatible when compiled against the new headers.\n\nThis also means that all places that don\u0027t care about the differences can\njust check O_DSYNC and get the right behaviour for O_SYNC, too - only\nplaces that actuall care need to check __O_SYNC in addition.  Drivers and\nnetwork filesystems have been updated in a fail safe way to always do the\nfull sync magic if O_DSYNC is set.  The few places setting O_SYNC for\nlower layers are kept that way for now to stay failsafe.\n\nWe enforce that O_DSYNC is set when __O_SYNC is set early in the open path\nto make sure we always get these sane options.\n\nNote that parisc really screwed up their headers as they already define a\nO_DSYNC that has always been a no-op.  We try to repair it by using it for\nthe new O_DSYNC and redefinining O_SYNC to send both the traditional\nO_SYNC numerical value _and_ the O_DSYNC one.\n\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "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: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "6035ccd8e9e40bb654fbfdef325902ab531679a5",
      "tree": "c1810d8a4d4ef150cdf14af72e6087dfc3f4b6e0",
      "parents": [
        "23eb3b64b5e44680c867e165fe1cd18e57fba255",
        "878eaddd05d251cefa9632c2b8046833c5eead66"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 08:19:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 08:19:16 2009 -0800"
      },
      "message": "Merge branch \u0027for-2.6.33\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.33\u0027 of git://git.kernel.dk/linux-2.6-block: (113 commits)\n  cfq-iosched: Do not access cfqq after freeing it\n  block: include linux/err.h to use ERR_PTR\n  cfq-iosched: use call_rcu() instead of doing grace period stall on queue exit\n  blkio: Allow CFQ group IO scheduling even when CFQ is a module\n  blkio: Implement dynamic io controlling policy registration\n  blkio: Export some symbols from blkio as its user CFQ can be a module\n  block: Fix io_context leak after failure of clone with CLONE_IO\n  block: Fix io_context leak after clone with CLONE_IO\n  cfq-iosched: make nonrot check logic consistent\n  io controller: quick fix for blk-cgroup and modular CFQ\n  cfq-iosched: move IO controller declerations to a header file\n  cfq-iosched: fix compile problem with !CONFIG_CGROUP\n  blkio: Documentation\n  blkio: Wait on sync-noidle queue even if rq_noidle \u003d 1\n  blkio: Implement group_isolation tunable\n  blkio: Determine async workload length based on total number of queues\n  blkio: Wait for cfq queue to get backlogged if group is empty\n  blkio: Propagate cgroup weight updation to cfq groups\n  blkio: Drop the reference to queue once the task changes cgroup\n  blkio: Provide some isolation between groups\n  ...\n"
    },
    {
      "commit": "1557d33007f63dd96e5d15f33af389378e5f2e54",
      "tree": "06d05722b2ba5d2a67532f779fa8a88efe3c88f1",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "c656ae95d1c5c8ed5763356263ace2d03087efec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:38:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:38:50 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6: (43 commits)\n  security/tomoyo: Remove now unnecessary handling of security_sysctl.\n  security/tomoyo: Add a special case to handle accesses through the internal proc mount.\n  sysctl: Drop \u0026 in front of every proc_handler.\n  sysctl: Remove CTL_NONE and CTL_UNNUMBERED\n  sysctl: kill dead ctl_handler definitions.\n  sysctl: Remove the last of the generic binary sysctl support\n  sysctl net: Remove unused binary sysctl code\n  sysctl security/tomoyo: Don\u0027t look at ctl_name\n  sysctl arm: Remove binary sysctl support\n  sysctl x86: Remove dead binary sysctl support\n  sysctl sh: Remove dead binary sysctl support\n  sysctl powerpc: Remove dead binary sysctl support\n  sysctl ia64: Remove dead binary sysctl support\n  sysctl s390: Remove dead sysctl binary support\n  sysctl frv: Remove dead binary sysctl support\n  sysctl mips/lasat: Remove dead binary sysctl support\n  sysctl drivers: Remove dead binary sysctl support\n  sysctl crypto: Remove dead binary sysctl support\n  sysctl security/keys: Remove dead binary sysctl support\n  sysctl kernel: Remove binary sysctl logic\n  ...\n"
    },
    {
      "commit": "d014d043869cdc591f3a33243d3481fa4479c2d0",
      "tree": "63626829498e647ba058a1ce06419fe7e4d5f97d",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "6070d81eb5f2d4943223c96e7609a53cdc984364"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\n\tkernel/irq/chip.c\n"
    },
    {
      "commit": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0d99519efef15fd0cf84a849492c7b1deee1e4b7",
      "tree": "d0f9d922ef73f6b9c4529826878f3cc5567848fd",
      "parents": [
        "b17621fed6aa039387e35f9b4d34d98f213e5673"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@gmail.com",
        "time": "Thu Dec 03 13:54:25 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 13:54:25 2009 +0100"
      },
      "message": "writeback: remove unused nonblocking and congestion checks\n\n- no one is calling wb_writeback and write_cache_pages with\n  wbc.nonblocking\u003d1 any more\n- lumpy pageout will want to do nonblocking writeback without the\n  congestion wait\n\nSo remove the congestion checks as suggested by Chris.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6d4561110a3e9fa742aeec6717248a491dfb1878",
      "tree": "689e2abf19940416ce597ba56ed31026ff59bd21",
      "parents": [
        "86926d0096279b9739ceeff40f68d3c33b9119a9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 16 03:11:48 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 18 08:37:40 2009 -0800"
      },
      "message": "sysctl: Drop \u0026 in front of every proc_handler.\n\nFor consistency drop \u0026 in front of every proc_handler.  Explicity\ntaking the address is unnecessary and it prevents optimizations\nlike stubbing the proc_handlers to NULL.\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "6c06f072c2d797ddbb2270363de97c53ebbe0385",
      "tree": "03654fd6af68f5ba0004f9e7c2b6945504de53f3",
      "parents": [
        "8ec6dba2581754e375be66f7bedd708d856d8b30"
      ],
      "author": {
        "name": "Nathaniel W. Turner",
        "email": "nate@houseofnate.net",
        "time": "Mon Nov 16 19:51:48 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 17 10:26:49 2009 -0600"
      },
      "message": "xfs: copy li_lsn before dropping AIL lock\n\nAccess to log items on the AIL is generally protected by m_ail_lock;\nthis is particularly needed when we\u0027re getting or setting the 64-bit\nli_lsn on a 32-bit platform.  This patch fixes a couple places where we\nwere accessing the log item after dropping the AIL lock on 32-bit\nmachines.\n\nThis can result in a partially-zeroed log-\u003el_tail_lsn if\nxfs_trans_ail_delete is racing with xfs_trans_ail_update, and in at\nleast some cases, this can leave the l_tail_lsn with a zero cycle\nnumber, which means xlog_space_left will think the log is full (unless\nCONFIG_XFS_DEBUG is set, in which case we\u0027ll trip an ASSERT), leading to\nprocesses stuck forever in xlog_grant_log_space.\n\nThanks to Adrian VanderSpek for first spotting the race potential and to\nDave Chinner for debug assistance.\n\nSigned-off-by: Nathaniel W. Turner \u003cnate@houseofnate.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "8ec6dba2581754e375be66f7bedd708d856d8b30",
      "tree": "d6cfdee839d6fb0b236a8d4272e607a9f5c4241c",
      "parents": [
        "a9366e61b03f55a6e009e687ad10e706714c9907"
      ],
      "author": {
        "name": "Jan Rekorajski",
        "email": "baggins@sith.mimuw.edu.pl",
        "time": "Mon Nov 16 11:57:02 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 17 10:26:38 2009 -0600"
      },
      "message": "XFS bug in log recover with quota (bugzilla id 855)\n\nHi,\nI was hit by a bug in linux 2.6.31 when XFS is not able to recover the\nlog after a crash if fs was mounted with quotas. Gory details in XFS\nbugzilla: http://oss.sgi.com/bugzilla/show_bug.cgi?id\u003d855.\n\nIt looks like wrong struct is used in buffer length check, and the following\npatch should fix the problem.\n\nxfs_dqblk_t has a size of 104+32 bytes, while xfs_disk_dquot_t is 104 bytes\nlong, and this is exactly what I see in system logs - \"XFS: dquot too small\n(104) in xlog_recover_do_dquot_trans.\"\n\nSigned-off-by: Jan Rekorajski \u003cbaggins@sith.mimuw.edu.pl\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "ab09203e302b6e526f6930f3e460064b0f253ae9",
      "tree": "bc95bfaba78ba30613d57c676eca42818b8a3293",
      "parents": [
        "2bc4657c15e4a33d9a192579c7627a397dbcbebc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 05 14:25:10 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 12 02:04:55 2009 -0800"
      },
      "message": "sysctl fs: Remove dead binary sysctl support\n\nNow that sys_sysctl is a generic wrapper around /proc/sys  .ctl_name\nand .strategy members of sysctl tables are dead code.  Remove them.\n\nCc: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "a80a66caf8110fc33af8013353fe0da0ae553a13",
      "tree": "35cf3ba9ccba371b2e2752cd5cbfc8c3a428f1ea",
      "parents": [
        "bf699c9bac124f0a095d8ef06f2d6b219300a822",
        "c7ff91d722e44c98504e6e2c357b47e1988dfbbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 31 12:12:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 31 12:12:49 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/fs/xfs/xfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/fs/xfs/xfs:\n  xfs: fix xfs_quota remove error\n  xfs: free temporary cursor in xfs_dialloc\n"
    },
    {
      "commit": "c7ff91d722e44c98504e6e2c357b47e1988dfbbd",
      "tree": "ce00b608165eab1f4f647eaed997824992b43664",
      "parents": [
        "3b826386d376e5545d2e92b2da5ebd965cafae97"
      ],
      "author": {
        "name": "Ryota Yamauchi",
        "email": "r-yamauchi@vf.jp.nec.com",
        "time": "Fri Oct 30 09:27:44 2009 +0100"
      },
      "committer": {
        "name": "hch@lst.de",
        "email": "Christoph Hellwig",
        "time": "Fri Oct 30 09:27:44 2009 +0100"
      },
      "message": "xfs: fix xfs_quota remove error\n\nThe xfs_quota returns ENOSYS when remove command is executed.\nReproducable with following steps.\n\n    # mount -t xfs -o uquota /dev/sda7 /mnt/mp1\n    # xfs_quota -x -c off -c remove\n    XFS_QUOTARM: Function not implemented.\n\nThe remove command is allowed during quotaoff, but xfs_fs_set_xstate()\nchecks whether quota is running, and it leads to ENOSYS.\n\nTo solve this problem, add a check for X_QUOTARM.\n\nSigned-off-by: Ryota Yamauchi \u003cr-yamauchi@vf.jp.nec.com\u003e\nSigned-off-by: Utako Kusaka \u003cu-kusaka@wm.jp.nec.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "3b826386d376e5545d2e92b2da5ebd965cafae97",
      "tree": "50c017ab5f90a70878291b33c331004b36437cce",
      "parents": [
        "ba313e68facf190317d8db3afdc0f0028c963a96"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Fri Oct 30 09:27:07 2009 +0100"
      },
      "committer": {
        "name": "hch@lst.de",
        "email": "Christoph Hellwig",
        "time": "Fri Oct 30 09:27:07 2009 +0100"
      },
      "message": "xfs: free temporary cursor in xfs_dialloc\n\nCommit bd169565993b39b9b4b102cdac8b13e0a259ce2f seems\nto have a slight regression where this code path:\n\n    if (!--searchdistance) {\n        /*\n         * Not in range - save last search\n         * location and allocate a new inode\n         */\n        ...\n        goto newino;\n    }\n\ndoesn\u0027t free the temporary cursor (tcur) that got dup\u0027d in\nthis function.\n\nThis leaks an item in the xfs_btree_cur zone, and it\u0027s caught\non module unload:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nBUG xfs_btree_cur: Objects remaining on kmem_cache_close()\n-----------------------------------------------------------\n\nIt seems like maybe a single free at the end of the function might\nbe cleaner, but for now put a del_cursor right in this code block\nsimilar to the handling in the rest of the function.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "23756692147c5dfd3328afd42e16e9d943ff756c",
      "tree": "63dedb075b4ae9ef16553a7ddf053cddea4beb06",
      "parents": [
        "0b3dc0e9c8ed4f09605fa844081503bf752388b0",
        "05277c75f6dea8ecf59138cd1b6781fb54ae08bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 29 08:18:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 29 08:18:25 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: fix double IRELE in xfs_dqrele_inode\n"
    },
    {
      "commit": "ba313e68facf190317d8db3afdc0f0028c963a96",
      "tree": "7bce97bc386f4359687238afae5840aa9e0161ee",
      "parents": [
        "e09d39968bd8befa087f10f970fa236e8694b643",
        "05277c75f6dea8ecf59138cd1b6781fb54ae08bd"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 13 15:47:22 2009 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 13 15:47:22 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://oss.sgi.com/oss/git/xfs/xfs into for-linus\n"
    },
    {
      "commit": "05277c75f6dea8ecf59138cd1b6781fb54ae08bd",
      "tree": "e61d1206c3201b306f4fadeb1a4fb2cdd55fa887",
      "parents": [
        "d0800703febc04827b8fa91921aa4e254d01e8d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 12 23:42:10 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 13 13:16:36 2009 -0500"
      },
      "message": "xfs: fix double IRELE in xfs_dqrele_inode\n\nxfs_dqrele_inode calls xfs_iput to release the ilock and a reference\nand then also calls IRELE which does a second decrement of the reference\ncount.  This leads to a premature freeing of inodes when quotas were turned\noff while the filesystem was mounted.\n\nThanks to Utako Kusaka for reporting the bug and provinding a good testcase.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Utako Kusaka \u003cu-kusaka@wm.jp.nec.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "a372bf8b6a12f23f68e716113ccaea4bf646dd0f",
      "tree": "3852e11c78e5dea779f49e9a94288c8ac827e821",
      "parents": [
        "0d5d1aadc8e299874a6a014d65b6bb903b12424d",
        "e09d39968bd8befa087f10f970fa236e8694b643"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 09 13:29:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 09 13:29:42 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: stop calling filemap_fdatawait inside -\u003efsync\n  fix readahead calculations in xfs_dir2_leaf_getdents()\n  xfs: make sure xfs_sync_fsdata covers the log\n  xfs: mark inodes dirty before issuing I/O\n  xfs: cleanup -\u003esync_fs\n  xfs: fix xfs_quiesce_data\n  xfs: implement -\u003edirty_inode to fix timestamp handling\n"
    },
    {
      "commit": "e09d39968bd8befa087f10f970fa236e8694b643",
      "tree": "393f4cdd32504ed435b7a5f728cf74855378459d",
      "parents": [
        "fdec29c5fcd2705d61c1d14a1d4c74be03e9627c",
        "d0800703febc04827b8fa91921aa4e254d01e8d1"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 13:53:44 2009 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 13:53:44 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 into for-linus\n"
    },
    {
      "commit": "d0800703febc04827b8fa91921aa4e254d01e8d1",
      "tree": "814c8d76966873d5cc683ba9de14ef2226897f48",
      "parents": [
        "8e69ce147127a0235e8d1f2b75ea214be78c61b3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Sep 26 19:55:04 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 12:02:48 2009 -0500"
      },
      "message": "xfs: stop calling filemap_fdatawait inside -\u003efsync\n\nNow that the VFS actually waits for the data I/O to complete before\ncalling into -\u003efsync we can stop doing it ourselves.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "8e69ce147127a0235e8d1f2b75ea214be78c61b3",
      "tree": "9de85d2c0e0527e7821f6844b03ef8ca47ed00f8",
      "parents": [
        "dce5065a57c158e0ca5db8e63c50118b2ecf4ac5"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Fri Sep 25 19:42:26 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 12:02:12 2009 -0500"
      },
      "message": "fix readahead calculations in xfs_dir2_leaf_getdents()\n\nThis is for bug #850,\nhttp://oss.sgi.com/bugzilla/show_bug.cgi?id\u003d850\nXFS file system segfaults , repeatedly and 100% reproducable in 2.6.30 , 2.6.31\n\nThe above only showed up on a CONFIG_XFS_DEBUG\u003dy kernel, because\nxfs_bmapi() ASSERTs that it has been asked for at least one map,\n\nand it was getting 0.\n\nThe root cause is that our guesstimated \"bufsize\" from xfs_file_readdir\nwas fairly small, and the\n\n\t\tbufsize -\u003d length;\n\nin the loop was going negative - except bufsize is a size_t, so it\nwas wrapping to a very large number.\n\nThen when we did\n\t\tra_want \u003d howmany(bufsize + mp-\u003em_dirblksize,\n\t\t\t\t  mp-\u003em_sb.sb_blocksize) - 1;\n\nwith that very large number, the (int) ra_want was coming out\nnegative, and a subsequent compare:\n\n\t\tif (1 + ra_want \u003e map_blocks ...\n\nwas coming out -true- (negative int compare w/ uint) and we went\nback to xfs_bmapi() for more, even though we did not need more,\nand asked for 0 maps, and hit the ASSERT.\n\nWe have kind of a type mess here, but just keeping bufsize from\ngoing negative is probably sufficient to avoid the problem.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "dce5065a57c158e0ca5db8e63c50118b2ecf4ac5",
      "tree": "3cd53a5fd21551585e0c01febbf9daebed8d5749",
      "parents": [
        "932640e8adaff3d0c28ee32d4863c7a7a74df055"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Oct 06 20:29:30 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 12:01:49 2009 -0500"
      },
      "message": "xfs: make sure xfs_sync_fsdata covers the log\n\nWe want to always cover the log after writing out the superblock, and\nin case of a synchronous writeout make sure we actually wait for the\nlog to be covered.  That way a filesystem that has been sync()ed can\nbe considered clean by log recovery.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "932640e8adaff3d0c28ee32d4863c7a7a74df055",
      "tree": "14c1bd418ca5a5c7234946eee17386ce6df68e3a",
      "parents": [
        "69961a26b82931601e07c9e3656bd90c598f2395"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Oct 06 20:29:29 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 12:01:26 2009 -0500"
      },
      "message": "xfs: mark inodes dirty before issuing I/O\n\nTo make sure they get properly waited on in sync when I/O is in flight and\nwe latter need to update the inode size.  Requires a new helper to check if an\nioend structure is beyond the current EOF.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "69961a26b82931601e07c9e3656bd90c598f2395",
      "tree": "0798e1feac2cebe0327affef4a63bdf6fd11ff02",
      "parents": [
        "c90b07e8dd9f263d2e2af1d9648ba269f4d0d8fd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 06 20:29:28 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 12:01:03 2009 -0500"
      },
      "message": "xfs: cleanup -\u003esync_fs\n\nSort out -\u003esync_fs to not perform a superblock writeback for the wait \u003d 0 case\nas that is just an optional first pass and the superblock will be written back\nproperly in the next call with wait \u003d 1.  Instead perform an opportunistic\nquota writeback to have less work later.  Also remove the freeze special case\nas we do a proper wait \u003d 1 call in the freeze code anyway.\n\nAlso rename the function to xfs_fs_sync_fs to match the normal naming\nconvention, update comments and avoid calling into the laptop_mode logic on\nan error.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "c90b07e8dd9f263d2e2af1d9648ba269f4d0d8fd",
      "tree": "a2dd23b15d74f1ea338394c545ae5d569a1fb557",
      "parents": [
        "f9581b1443abac50c90168301d40a7734b13a5dc"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Oct 06 20:29:27 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 12:00:36 2009 -0500"
      },
      "message": "xfs: fix xfs_quiesce_data\n\nWe need to do a synchronous xfs_sync_fsdata to make sure the superblock\nactually is on disk when we return.\n\nAlso remove SYNC_BDFLUSH flag to xfs_sync_inodes because that particular\nflag is never checked.\n\nMove xfs_filestream_flush call later to only release inodes after they\nhave been written out.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "f9581b1443abac50c90168301d40a7734b13a5dc",
      "tree": "1ffecb2a1be9f0be55d9307fa93910ba24f8ed56",
      "parents": [
        "9ef96da6ec5e1b4cf7eb8e30852cd88ec7d5fdc0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 06 20:29:26 2009 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Thu Oct 08 12:00:03 2009 -0500"
      },
      "message": "xfs: implement -\u003edirty_inode to fix timestamp handling\n\nThis is picking up on Felix\u0027s repost of Dave\u0027s patch to implement a\n.dirty_inode method.  We really need this notification because\nthe VFS keeps writing directly into the inode structure instead\nof going through methods to update this state.  In addition to\nthe long-known atime issue we now also have a caller in VM code\nthat updates c/mtime that way for shared writeable mmaps.  And\nI found another one that no one has noticed in practice in the FIFO\ncode.\n\nSo implement -\u003edirty_inode to set i_update_core whenever the\ninode gets externally dirtied, and switch the c/mtime handling to\nthe same scheme we already use for atime (always picking up\nthe value from the Linux inode).\n\nNote that this patch also removes the xfs_synchronize_atime call\nin xfs_reclaim it was superflous as we already synchronize the time\nwhen writing the inode via the log (xfs_inode_item_format) or the\nnormal buffers (xfs_iflush_int).\n\nIn addition also remove the I_CLEAR check before copying the Linux\ntimestamps - now that we always have the Linux inode available\nwe can always use the timestamps in it.\n\nAlso switch to just using file_update_time for regular reads/writes -\nthat will get us all optimization done to it for free and make\nsure we notice early when it breaks.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "7a9e02d6bb05b268dc403d7ee87ce4198062f838",
      "tree": "f38920e87e9d908c19e881ccbf549ae4035f9724",
      "parents": [
        "e7dcaa4755e35d7540bf19f316f8798357c53fa0"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Sat Oct 03 19:48:23 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Oct 03 19:48:23 2009 +0900"
      },
      "message": "this_cpu: xfs_icsb_modify_counters does not need \"cpu\" variable\n\nThe xfs_icsb_modify_counters() function no longer needs the cpu variable\nif we use this_cpu_ptr() and we can get rid of get/put_cpu().\n\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Olaf Weber \u003colaf@sgi.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db16826367fefcb0ddb93d76b66adc52eb4e6339",
      "tree": "626224c1eb1eb79c522714591f208b4fdbdcd9d4",
      "parents": [
        "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
        "465fdd97cbe16ef8727221857e96ef62dd352017"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits)\n  HWPOISON: Enable error_remove_page on btrfs\n  HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs\n  HWPOISON: Add madvise() based injector for hardware poisoned pages v4\n  HWPOISON: Enable error_remove_page for NFS\n  HWPOISON: Enable .remove_error_page for migration aware file systems\n  HWPOISON: The high level memory error handler in the VM v7\n  HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n  HWPOISON: shmem: call set_page_dirty() with locked page\n  HWPOISON: Define a new error_remove_page address space op for async truncation\n  HWPOISON: Add invalidate_inode_page\n  HWPOISON: Refactor truncate to allow direct truncating of page v2\n  HWPOISON: check and isolate corrupted free pages v2\n  HWPOISON: Handle hardware poisoned pages in try_to_unmap\n  HWPOISON: Use bitmask/action code for try_to_unmap behaviour\n  HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2\n  HWPOISON: Add poison check to page fault handling\n  HWPOISON: Add basic support for poisoned pages in fault handler v3\n  HWPOISON: Add new SIGBUS error codes for hardware poison signals\n  HWPOISON: Add support for poison swap entries v2\n  HWPOISON: Export some rmap vma locking to outside world\n  ...\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
      "tree": "1f967f283dade6e03897169bb29513354f49f910",
      "parents": [
        "50223e486cabdcf7e540e519da1f26bab3084e5d",
        "24ed7a97464db44592495f98cff8bcee02f92bc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)\n  trivial: fix typo in aic7xxx comment\n  trivial: fix comment typo in drivers/ata/pata_hpt37x.c\n  trivial: typo in kernel-parameters.txt\n  trivial: fix typo in tracing documentation\n  trivial: add __init/__exit macros in drivers/gpio/bt8xxgpio.c\n  trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c\n  trivial: remove unnecessary semicolons\n  trivial: Fix duplicated word \"options\" in comment\n  trivial: kbuild: remove extraneous blank line after declaration of usage()\n  trivial: improve help text for mm debug config options\n  trivial: doc: hpfall: accept disk device to unload as argument\n  trivial: doc: hpfall: reduce risk that hpfall can do harm\n  trivial: SubmittingPatches: Fix reference to renumbered step\n  trivial: fix typos \"man[ae]g?ment\" -\u003e \"management\"\n  trivial: media/video/cx88: add __init/__exit macros to cx88 drivers\n  trivial: fix typo in CONFIG_DEBUG_FS in gcov doc\n  trivial: fix missing printk space in amd_k7_smp_check\n  trivial: fix typo s/ketymap/keymap/ in comment\n  trivial: fix typo \"to to\" in multiple files\n  trivial: fix typos in comments s/DGBU/DBGU/\n  ...\n"
    },
    {
      "commit": "b87221de6a4934eda856475a0065688d12973a04",
      "tree": "6bcf0628e106c4833538f4c23d710fbbe3d7609a",
      "parents": [
        "0d54b217a247f39605361f867fefbb9e099a5432"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: mark remaining super_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0d54b217a247f39605361f867fefbb9e099a5432",
      "tree": "5af6a2cc4cbc6c327e735ac5edb642d47a1f0013",
      "parents": [
        "61e225dc341107be304fd1088146c2a5e88ff9e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: make struct super_block::s_qcop const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "411c94038594b2a3fd123d09bdec3fe2500e383d",
      "tree": "44b991786c7f4806b1b88f40439945b3835b6292",
      "parents": [
        "786d8ca341a30296264bc6cebac52d37b0851647"
      ],
      "author": {
        "name": "Anand Gadiyar",
        "email": "gadiyar@ti.com",
        "time": "Tue Jul 07 15:24:23 2009 +0530"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Sep 21 15:14:54 2009 +0200"
      },
      "message": "trivial: fix typo \"for for\" in multiple files\n\ntrivial: fix typo \"for for\" in multiple files\n\nSigned-off-by: Anand Gadiyar \u003cgadiyar@ti.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "aa261f549d7652258331ebb12795f3bc4395d213",
      "tree": "0ca807db32a6e3f213fa52b5a053d2b27e5e6bac",
      "parents": [
        "6a46079cf57a7f7758e8b926980a4f852f89b34d"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:16 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:16 2009 +0200"
      },
      "message": "HWPOISON: Enable .remove_error_page for migration aware file systems\n\nEnable removing of corrupted pages through truncation\nfor a bunch of file systems: ext*, xfs, gfs2, ocfs2, ntfs\nThese should cover most server needs.\n\nI chose the set of migration aware file systems for this\nfor now, assuming they have been especially audited.\nBut in general it should be safe for all file systems\non the data area that support read/write and truncate.\n\nCaveat: the hardware error handler does not take i_mutex\nfor now before calling the truncate function. Is that ok?\n\nCc: tytso@mit.edu\nCc: hch@infradead.org\nCc: mfasheh@suse.com\nCc: aia21@cantab.net\nCc: hugh.dickins@tiscali.co.uk\nCc: swhiteho@redhat.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "fdec29c5fcd2705d61c1d14a1d4c74be03e9627c",
      "tree": "bcf5d4dd46b4945f3b4bec6b763ff9a9484e4e59",
      "parents": [
        "0cb583fd2862f19ea88b02eb307d11c09e51e2f8",
        "9ef96da6ec5e1b4cf7eb8e30852cd88ec7d5fdc0"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Sep 15 21:37:47 2009 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Sep 15 21:37:47 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://oss.sgi.com/xfs/xfs into for-linus\n\nConflicts:\n\tfs/xfs/linux-2.6/xfs_lrw.c\n"
    },
    {
      "commit": "9ef96da6ec5e1b4cf7eb8e30852cd88ec7d5fdc0",
      "tree": "c6f289939c371628a6bd0a4da945a0993e37c882",
      "parents": [
        "361735fd8ff8f7d8b9f0e134d0d99d99ee193d92"
      ],
      "author": {
        "name": "Jaswinder Singh Rajput",
        "email": "jaswinder@kernel.org",
        "time": "Sun Aug 09 20:23:12 2009 +0530"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Sep 15 12:30:30 2009 -0500"
      },
      "message": "xfs: includecheck fix for fs/xfs/xfs_iops.c\n\nfix the following \u0027make includecheck\u0027 warning:\n\n  fs/xfs/linux-2.6/xfs_iops.c: xfs_acl.h is included more than once.\n\nSigned-off-by: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "361735fd8ff8f7d8b9f0e134d0d99d99ee193d92",
      "tree": "16cc89f80380bc6d7fec6dee0c3553039fc671da",
      "parents": [
        "f08a59f1467b92cd9b8c78961506f69c74bb01a5"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Aug 28 23:55:00 2009 +0400"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Sep 15 12:29:24 2009 -0500"
      },
      "message": "xfs: switch to seq_file\n\ncreate_proc_read_entry() is getting deprecated.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "af0f4414f343429971d33b0dd8dccc85c1f3dcd2",
      "tree": "1b053812591d19f618240672eb74fd74912c29c1",
      "parents": [
        "d23c937b0f740888765676f6f82f509dbbb2bbad"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 18 18:32:55 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:17 2009 +0200"
      },
      "message": "xfs: Convert sync_page_range() to simple filemap_write_and_wait_range()\n\nChristoph Hellwig says that it is enough for XFS to call\nfilemap_write_and_wait_range() instead of sync_page_range() because we do\nall the metadata syncing when forcing the log.\n\nCC: Felix Blyakher \u003cfelixb@sgi.com\u003e\nCC: xfs@oss.sgi.com\nCC: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4734d401d43c6469d568caf223d37aa0fc1bf4dc",
      "tree": "d73cbfd3537a5681ab5523e320a55b240b2fdd72",
      "parents": [
        "988abe4075e5748d9f7c79d9dfffa0cf5291611b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 09 18:19:02 2009 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Sep 09 18:19:02 2009 -0500"
      },
      "message": "xfs: use correct log reservation when handling ENOSPC in xfs_create\n\nWe added the ENOSPC handling patch in xfs_create just after it got mered\nwith xfs_mkdir.  Change the log reservation to the variable for either\nthe create or mkdir value so it does the right thing if get here for creating\na directory.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "18f4c644773bc8de1fd9c5182b30c231aafb94ef",
      "tree": "b423bdb22304c6af3ad0f26b873e6081fafc8f01",
      "parents": [
        "1d5ccd1c422d7d292a9e45248aa36771900c6331"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 28 12:29:03 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 11:09:04 2009 -0700"
      },
      "message": "jffs2/jfs/xfs: switch over to \u0027check_acl\u0027 rather than \u0027permission()\u0027\n\nThis avoids an indirect call in the VFS for each path component lookup.\n\nWell, at least as long as you own the directory in question, and the ACL\ncheck is unnecessary.\n\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "988abe4075e5748d9f7c79d9dfffa0cf5291611b",
      "tree": "929f60ead5fd0c230d2d51dc44d805bdc10e6dc3",
      "parents": [
        "81e251766e8f8c9d7abb5db784e58c5c45f82797"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Sep 02 17:02:24 2009 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Sep 02 17:02:24 2009 -0500"
      },
      "message": "xfs: xfs_showargs() reports group *and* project quotas enabled\n\nIf you enable group or project quotas on an XFS file system, then the\nmount table presented through /proc/self/mounts erroneously shows\nthat both options are in effect for the file system.  The root of\nthe problem is some bad logic in the xfs_showargs() function, which\nis used to format the file system type-specific options in effect\nfor a file system.\n\nThe problem originated in this GIT commit:\n    Move platform specific mount option parse out of core XFS code\n    Date: 11/22/07\n    Author: Dave Chinner\n    SHA1 ID: a67d7c5f5d25d0b13a4dfb182697135b014fa478\n\nFor XFS quotas, project and group quota management are mutually\nexclusive--only one can be in effect at a time.  There are two\nparts to managing quotas:  aggregating usage information; and\nenforcing limits.  It is possible to have a quota in effect\n(aggregating usage) but not enforced.\n\nThese features are recorded on an XFS mount point using these flags:\n    XFS_PQUOTA_ACCT - Project quotas are aggregated\n    XFS_GQUOTA_ACCT - Group quotas are aggregated\n    XFS_OQUOTA_ENFD - Project/group quotas are enforced\n\nThe code in error is in fs/xfs/linux-2.6/xfs_super.c:\n\n        if (mp-\u003em_qflags \u0026 (XFS_PQUOTA_ACCT|XFS_OQUOTA_ENFD))\n                seq_puts(m, \",\" MNTOPT_PRJQUOTA);\n        else if (mp-\u003em_qflags \u0026 XFS_PQUOTA_ACCT)\n                seq_puts(m, \",\" MNTOPT_PQUOTANOENF);\n\n        if (mp-\u003em_qflags \u0026 (XFS_GQUOTA_ACCT|XFS_OQUOTA_ENFD))\n                seq_puts(m, \",\" MNTOPT_GRPQUOTA);\n        else if (mp-\u003em_qflags \u0026 XFS_GQUOTA_ACCT)\n                seq_puts(m, \",\" MNTOPT_GQUOTANOENF);\n\nThe problem is that XFS_OQUOTA_ENFD will be set in mp-\u003em_qflags\nif either group or project quotas are enforced, and as a result\nboth MNTOPT_PRJQUOTA and MNTOPT_GRPQUOTA will be shown as mount\noptions.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "81e251766e8f8c9d7abb5db784e58c5c45f82797",
      "tree": "10346e889fd15183c4253f392cf5d2ffa6cdf85f",
      "parents": [
        "f4378b6eaf63492c0f9a397d52813e0ae6b49e7b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 01 19:56:55 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 20:43:01 2009 -0500"
      },
      "message": "xfs: un-static xfs_inobt_lookup\n\nxfs_inobt_lookup is also used in xfs_itable.c, remove the STATIC modifier\nfrom it\u0027s declaration to fix non-debug builds.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "3725867dccfb83e4b0cff64e916a04258f300591",
      "tree": "5c7f888895bf63994a85a02658f1a3433b2dccae",
      "parents": [
        "bc990f5cb424cdca9dda866785d088e2c2110ecc"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 01 14:03:08 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 17:00:46 2009 -0500"
      },
      "message": "xfs: actually enable the swapext compat handler\n\nFix a small typo in the compat ioctl handler that cause the swapext\ncompat handler to never be called.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nTested-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "f4378b6eaf63492c0f9a397d52813e0ae6b49e7b",
      "tree": "2aaaae7bf689f5af74036e3649dec2a713f8df3f",
      "parents": [
        "aa72a5cf00001d0b952c7c755be404b9118ceb2e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Sep 01 14:03:08 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 16:55:53 2009 -0500"
      },
      "message": "xfs: actually enable the swapext compat handler\n\nFix a small typo in the compat ioctl handler that cause the swapext\ncompat handler to never be called.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nTested-by: Torsten Kaiser \u003cjust.for.lkml@googlemail.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "aa72a5cf00001d0b952c7c755be404b9118ceb2e",
      "tree": "2100d71c9d697f48f4c868b6631242c7292e5fd4",
      "parents": [
        "13e6d5cdde0e785aa943810f08b801cadd0935df"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 21:51:52 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:46:16 2009 -0500"
      },
      "message": "xfs: simplify xfs_trans_iget\n\nxfs_trans_iget is a wrapper for xfs_iget that adds the inode to the\ntransaction after it is read.  Except when the inode already is in the\ninode cache, in which case it returns the existing locked inode with\nincrement lock recursion counts.\n\nNow, no one in the tree every decrements these lock recursion counts,\nso any user of this gets a potential double unlock when both the original\nowner of the inode and the xfs_trans_iget caller unlock it.  When looking\nback in a git bisect in the historic XFS tree there was only one place\nthat decremented these counts, xfs_trans_iput.  Introduced in commit\nca25df7a840f426eb566d52667b6950b92bb84b5 by Adam Sweeney in 1993,\nand removed in commit 19f899a3ab155ff6a49c0c79b06f2f61059afaf3 by\nSteve Lord in 2003.  And as long as it didn\u0027t slip through git bisects\ncracks never actually used in that time frame.\n\nA quick audit of the callers of xfs_trans_iget shows that no caller\nreally relies on this behaviour fortunately - xfs_ialloc allows this\ninode from disk so it must not be there before, and all the RT allocator\nroutines only every add each RT bitmap inode once.\n\nIn addition to removing lots of code and reducing the size of the inode\nitem this patch also avoids the double inode cache lookup in each\ncreate/mkdir/mknod transaction.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "13e6d5cdde0e785aa943810f08b801cadd0935df",
      "tree": "72b62d1e3e4b35f1613458b6e1dbbadd74534a92",
      "parents": [
        "bd169565993b39b9b4b102cdac8b13e0a259ce2f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 21:00:31 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:57 2009 -0500"
      },
      "message": "xfs: merge fsync and O_SYNC handling\n\nThe guarantees for O_SYNC are exactly the same as the ones we need to\nmake for an fsync call (and given that Linux O_SYNC is O_DSYNC the\nequivalent is fdadatasync, but we treat both the same in XFS), except\nwith a range data writeout.  Jan Kara has started unifying these two\npath for filesystems using the generic helpers, and I\u0027ve started to\nlook at XFS.\n\nThe actual transaction commited by xfs_fsync and xfs_write_sync_logforce\nhas a different transaction number, but actually is exactly the same.\nWe\u0027ll only use the fsync transaction going forward.  One major difference\nis that xfs_write_sync_logforce never issues a cache flush unless we\ncommit a transaction causing that as a side-effect, which is an obvious\nbug in the O_SYNC handling.  Second all the locking and i_update_size\nvs i_update_core changes from 978b7237123d007b9fa983af6e0e2fa8f97f9934\nnever made it to xfs_write_sync_logforce, so we add them back.\n\nTo make xfs_fsync easily usable from the O_SYNC path, the filemap_fdatawait\ncall is moved up to xfs_file_fsync, so that we don\u0027t wait on the whole\nfile after we already waited for our portion in xfs_write.\n\nWe\u0027ll also use a plain call to filemap_write_and_wait_range instead\nof the previous sync_page_rang which did it in two steps including\nan half-hearted inode write out that doesn\u0027t help us.\n\nOnce we\u0027re done with this also remove the now useless i_update_size\ntracking.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "bd169565993b39b9b4b102cdac8b13e0a259ce2f",
      "tree": "4cc6dc56cf7a2b9af71156299e091062dbe30594",
      "parents": [
        "2187550525d7bcb8c87689e4eca41b1955bf9ac3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dgc@sgi.com",
        "time": "Mon Aug 31 20:58:28 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:48 2009 -0500"
      },
      "message": "xfs: speed up free inode search\n\nDon\u0027t search too far - abort if it is outside a certain radius and simply do\na linear search for the first free inode.  In AGs with a million inodes this\ncan speed up allocation speed by 3-4x.\n\n[hch: ported to the new xfs_ialloc.c world order]\n\nSigned-off-by: Dave Chinner \u003cdgc@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "2187550525d7bcb8c87689e4eca41b1955bf9ac3",
      "tree": "1538be459d9d37a9daf537885e93a3cf20ee49c8",
      "parents": [
        "4254b0bbb1c0826b7443ffa593576696bc591aa2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 20:58:21 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:39 2009 -0500"
      },
      "message": "xfs: rationalize xfs_inobt_lookup*\n\nCurrenly we have a xfs_inobt_lookup* variant for each comparism direction,\nand all these get all three fields of the inobt records passed, while the\ncommon case is just looking for the inode number and we have only marginally\nmore callers than xfs_inobt_lookup* variants.\n\nSo opencode a direct call to xfs_btree_lookup for the single case where we\nneed all fields, and replace xfs_inobt_lookup* with a xfs_inobt_looku that\njust takes the inode number and the direction for all other callers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "4254b0bbb1c0826b7443ffa593576696bc591aa2",
      "tree": "bf938f43d83c31a6aa87825e5fe0c2c2388d52d2",
      "parents": [
        "0b48db80ba689edfd96ed06c3124d6cf1146de3f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 20:57:14 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:29 2009 -0500"
      },
      "message": "xfs: untangle xfs_dialloc\n\nClarify the control flow in xfs_dialloc.  Factor out a helper to go to the\nnext node from the current one and improve the control flow by expanding\ncomposite if statements and using gotos.\n\nThe xfs_ialloc_next_rec helper is borrowed from Dave Chinners dynamic\nallocation policy patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "0b48db80ba689edfd96ed06c3124d6cf1146de3f",
      "tree": "d145e86f4bb459fc5462e7b97aeec4b01c55a7d6",
      "parents": [
        "afabc24a73bfee2656724b0a70395f1693eaa62b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dgc@sgi.com",
        "time": "Mon Aug 31 20:57:09 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:18 2009 -0500"
      },
      "message": "xfs: factor out debug checks from xfs_dialloc and xfs_difree\n\nFactor out a common helper from repeated debug checks in xfs_dialloc and\nxfs_difree.\n\n[hch: split out from Dave\u0027s dynamic allocation policy patches]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "afabc24a73bfee2656724b0a70395f1693eaa62b",
      "tree": "0cd8058f3a014a64941934d05db47c88e5a823c3",
      "parents": [
        "2e287a731e0607e0371dc6165b7dd3ebc67fa8e1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 20:57:03 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:45:08 2009 -0500"
      },
      "message": "xfs: improve xfs_inobt_update prototype\n\nBoth callers of xfs_inobt_update have the record in form of a\nxfs_inobt_rec_incore_t, so just pass a pointer to it instead of the\nindividual variables.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "2e287a731e0607e0371dc6165b7dd3ebc67fa8e1",
      "tree": "d51ee5e646aff15965cb483a0e4236cc140105cc",
      "parents": [
        "85c0b2ab5e69ca6133380ead1c50e0840d136b39"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 31 20:56:58 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:44:56 2009 -0500"
      },
      "message": "xfs: improve xfs_inobt_get_rec prototype\n\nMost callers of xfs_inobt_get_rec need to fill a xfs_inobt_rec_incore_t, and\nthose who don\u0027t yet are fine with a xfs_inobt_rec_incore_t, instead of the\nthree individual variables, too.  So just change xfs_inobt_get_rec to write\nthe output into a xfs_inobt_rec_incore_t directly.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "85c0b2ab5e69ca6133380ead1c50e0840d136b39",
      "tree": "915fe86af550398d131071456c772053917e298c",
      "parents": [
        "1da1daed813c534263a87ffc36d5b775e65231ad"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Aug 31 20:56:51 2009 -0300"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Sep 01 12:44:27 2009 -0500"
      },
      "message": "xfs: factor out inode initialisation\n\nFactor out code to initialize new inode clusters into a function of it\u0027s own.\nThis keeps xfs_ialloc_ag_alloc smaller and better structured and enables a\nfuture inode cluster initialization transaction.  Also initialize the agno\nvariable earlier in xfs_ialloc_ag_alloc to avoid repeated byte swaps.\n\n[hch:  The original patch is from Dave from his unpublished inode create\n transaction patch series, with some modifcations by me to apply stand-alone]\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "a0f7bfd3429fc48f4d1aa5364b9428d75798ba04",
      "tree": "ebe8965e3c4337c5287daac4cb51c21e83239fc2",
      "parents": [
        "eb00457d624c70a2492c319e7e05ed7e067b2794"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Jul 27 18:15:25 2009 +0200"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Aug 31 14:46:22 2009 -0500"
      },
      "message": "fs/xfs: Correct redundant test\n\nbp was tested for NULL a few lines before, followed by a return, and there\nis no intervening modification of its value.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nexpression E;\nposition p1,p2;\n@@\n\nif (x \u003d\u003d NULL || ...) { ... when forall\n   return ...; }\n... when !\u003d \\(x\u003dE\\|x--\\|x++\\|--x\\|++x\\|x-\u003dE\\|x+\u003dE\\|x|\u003dE\\|x\u0026\u003dE\\|\u0026x\\)\n(\n*x \u003d\u003d NULL\n|\n*x !\u003d NULL\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nAcked-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "eb00457d624c70a2492c319e7e05ed7e067b2794",
      "tree": "fd307d2427f4a50b911b83827d61eac6a6a6a3eb",
      "parents": [
        "fef1111ecdd2b5198afe91537a5cd4c6be80a255"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sun Jul 05 12:23:35 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Aug 31 14:46:22 2009 -0500"
      },
      "message": "xfs: remove XFS_INO64_OFFSET\n\nCommit a19d9f887d81106d52cacbc9930207b487e07e0e removed the\nino64 option but left the XFS_INO64_OFFSET define it used\nin place - just remove it.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    }
  ],
  "next": "fef1111ecdd2b5198afe91537a5cd4c6be80a255"
}
