)]}'
{
  "log": [
    {
      "commit": "d060646436233912178e6b9e3a7f30a41214220f",
      "tree": "a460c8e2d89cdcf08d574f497c421decf36fe018",
      "parents": [
        "5bf1f26227a59b9634e95eb3c7c012b766e5e6a0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:14 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:12:33 2012 -0600"
      },
      "message": "xfs: cleanup xfs_file_aio_write\n\nWith all the size field updates out of the way xfs_file_aio_write can\nbe further simplified by pushing all iolock handling into\nxfs_file_dio_aio_write and xfs_file_buffered_aio_write and using\nthe generic generic_write_sync helper for synchronous writes.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "5bf1f26227a59b9634e95eb3c7c012b766e5e6a0",
      "tree": "940a58e03256bd70787d1341c90027ef334f5fac",
      "parents": [
        "2813d682e8e6a278f94817429afd46b30875bb6e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:13 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:11:07 2012 -0600"
      },
      "message": "xfs: always return with the iolock held from xfs_file_aio_write_checks\n\nWhile xfs_iunlock is fine with 0 lockflags the calling conventions are much\ncleaner if xfs_file_aio_write_checks never returns without the iolock held.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "2813d682e8e6a278f94817429afd46b30875bb6e",
      "tree": "d865b04ec89076b692a922b7f5fced9be0458f47",
      "parents": [
        "ce7ae151ddada3dbf67301464343c154903166b3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:12 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:10:19 2012 -0600"
      },
      "message": "xfs: remove the i_new_size field in struct xfs_inode\n\nNow that we use the VFS i_size field throughout XFS there is no need for the\ni_new_size field any more given that the VFS i_size field gets updated\nin -\u003ewrite_end before unlocking the page, and thus is always uptodate when\nwriteback could see a page.  Removing i_new_size also has the advantage that\nwe will never have to trim back di_size during a failed buffered write,\ngiven that it never gets updated past i_size.\n\nNote that currently the generic direct I/O code only updates i_size after\ncalling our end_io handler, which requires a small workaround to make\nsure di_size actually makes it to disk.  I hope to fix this properly in\nthe generic code.\n\nA downside is that we lose the support for parallel non-overlapping O_DIRECT\nappending writes that recently was added.  I don\u0027t think keeping the complex\nand fragile i_new_size infrastructure for this is a good tradeoff - if we\nreally care about parallel appending writers we should investigate turning\nthe iolock into a range lock, which would also allow for parallel\nnon-overlapping buffered writers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "ce7ae151ddada3dbf67301464343c154903166b3",
      "tree": "db56a153e7ae07aa5103d001a7d7252dc0891c7e",
      "parents": [
        "f392e6319a4e9a028b0c8b48f000bb01d660ad53"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:11 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:08:53 2012 -0600"
      },
      "message": "xfs: remove the i_size field in struct xfs_inode\n\nThere is no fundamental need to keep an in-memory inode size copy in the XFS\ninode.  We already have the on-disk value in the dinode, and the separate\nin-memory copy that we need for regular files only in the XFS inode.\n\nRemove the xfs_inode i_size field and change the XFS_ISIZE macro to use the\nVFS inode i_size field for regular files.  Switch code that was directly\naccessing the i_size field in the xfs_inode to XFS_ISIZE, or in cases where\nwe are limited to regular files direct access of the VFS inode i_size field.\n\nThis also allows dropping some fairly complicated code in the write path\nwhich dealt with keeping the xfs_inode i_size uptodate with the VFS i_size\nthat is getting updated inside -\u003ewrite_end.\n\nNote that we do not bother resetting the VFS i_size when truncating a file\nthat gets freed to zero as there is no point in doing so because the VFS inode\nis no longer in use at this point.  Just relax the assert in xfs_ifree to\nonly check the on-disk size instead.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "f392e6319a4e9a028b0c8b48f000bb01d660ad53",
      "tree": "6cf97bebb841da303056b60da087e76cc087af9b",
      "parents": [
        "474fce067521a40dbacc722e8ba119e81c2d31bf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:10 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:07:54 2012 -0600"
      },
      "message": "xfs: replace i_pin_wait with a bit waitqueue\n\nReplace i_pin_wait, which is only used during synchronous inode flushing\nwith a bit waitqueue.  This trades off a much smaller inode against\nslightly slower wakeup performance, and saves 12 (32-bit) or 20 (64-bit)\nbytes in the XFS inode.\n\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "474fce067521a40dbacc722e8ba119e81c2d31bf",
      "tree": "fd923aa42a5304182e8a8c64ca5d130f9afef286",
      "parents": [
        "49e4c70e52a2bc2090e5a4e003e2888af21d6a2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:09 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:06:45 2012 -0600"
      },
      "message": "xfs: replace i_flock with a sleeping bitlock\n\nWe almost never block on i_flock, the exception is synchronous inode\nflushing.  Instead of bloating the inode with a 16/24-byte completion\nthat we abuse as a semaphore just implement it as a bitlock that uses\na bit waitqueue for the rare sleeping path.  This primarily is a\ntradeoff between a much smaller inode and a faster non-blocking\npath vs faster wakeups, and we are much better off with the former.\n\nA small downside is that we will lose lockdep checking for i_flock, but\ngiven that it\u0027s always taken inside the ilock that should be acceptable.\n\nNote that for example the inode writeback locking is implemented in a\nvery similar way.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "49e4c70e52a2bc2090e5a4e003e2888af21d6a2b",
      "tree": "9d9ecf18b5a78d187f622a769cc1464150ad7740",
      "parents": [
        "8096b1ebb59b94b3bc6abb6b7d121419e83447ba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:08 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:03:50 2012 -0600"
      },
      "message": "xfs: make i_flags an unsigned long\n\nTo be used for bit wakeup i_flags needs to be an unsigned long or we\u0027ll\nrun into trouble on big endian systems.  Because of the 1-byte i_update\nfield right after it this actually causes a fairly large size increase\non its own (4 or 8 bytes), but that increase will be more than offset\nby the next two patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "8096b1ebb59b94b3bc6abb6b7d121419e83447ba",
      "tree": "3d01d19459cbb973dc8698b7fa44e1bee260303d",
      "parents": [
        "3d2b3129c2c48cf0153e0f2058cf87e4b45ca3ac"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:07 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:02:28 2012 -0600"
      },
      "message": "xfs: remove the if_ext_max field in struct xfs_ifork\n\nWe spent a lot of effort to maintain this field, but it always equals to the\nfork size divided by the constant size of an extent.  The prime use of it is\nto assert that the two stay in sync.  Just divide the fork size by the extent\nsize in the few places that we actually use it and remove the overhead\nof maintaining it.  Also introduce a few helpers to consolidate the places\nwhere we actually care about the value.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "3d2b3129c2c48cf0153e0f2058cf87e4b45ca3ac",
      "tree": "eb0e3ac276c862280a1161683fc9915ccc999e30",
      "parents": [
        "bf322d983e540f66517db85b6870017613bb1e8d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:06 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jan 13 12:11:46 2012 -0600"
      },
      "message": "xfs: remove the unused dm_attrs structure\n\n.. and the just as dead bhv_desc forward declaration while we\u0027re at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "bf322d983e540f66517db85b6870017613bb1e8d",
      "tree": "f01eb47527c526d3654746db1f2533eae8cfe050",
      "parents": [
        "673e8e597c06eb81954bf21a10f5cce74a1de8f1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:05 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jan 13 12:11:46 2012 -0600"
      },
      "message": "xfs: cleanup xfs_iomap_eof_align_last_fsb\n\nReplace the nasty if, else if, elseif condition with more natural C flow\nthat expressed the logic we want here better.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "673e8e597c06eb81954bf21a10f5cce74a1de8f1",
      "tree": "a6d47b0c44dfe24119de8d4c944f7c5c6e2c30dc",
      "parents": [
        "099469502f62fbe0d7e4f0b83a2f22538367f734"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:04 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jan 13 12:11:45 2012 -0600"
      },
      "message": "xfs: remove xfs_itruncate_data\n\nThis wrapper isn\u0027t overly useful, not to say rather confusing.\n\nAround the call to xfs_itruncate_extents it does:\n\n - add tracing\n - add a few asserts in debug builds\n - conditionally update the inode size in two places\n - log the inode\n\nBoth the tracing and the inode logging can be moved to xfs_itruncate_extents\nas they are useful for the attribute fork as well - in fact the attr code\nalready does an equivalent xfs_trans_log_inode call just after calling\nxfs_itruncate_extents.  The conditional size updates are a mess, and there\nwas no reason to do them in two places anyway, as the first one was\nconditional on the inode having extents - but without extents we\nxfs_itruncate_extents would be a no-op and the placement wouldn\u0027t matter\nanyway.  Instead move the size assignments and the asserts that make sense\nto the callers that want it.\n\nAs a side effect of this clean up xfs_setattr_size by introducing variables\nfor the old and new inode size, and moving the size updates into a common\nplace.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "993ecff81aa6d50d694704de2647a5529ff2f166",
      "tree": "047a313e86f63e22f1eff63945bea2e8e8147222",
      "parents": [
        "12e55508921865aefdd80fd17afe70c191afbd1b",
        "b1c770c273a4787069306fc82aab245e9ac72e9d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:50:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 12:50:15 2012 -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 endian conversion issue in discard code\n"
    },
    {
      "commit": "98793265b429a3f0b3f1750e74d67cd4d740d162",
      "tree": "b0bd717673f0c21845cf053f3fb6b75d42530af5",
      "parents": [
        "b4a133da2eaccb844a7beaef16ffd9c76a0d21d3",
        "bd1b2a555952d959f47169056fca05acf7eff81f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -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: (53 commits)\n  Kconfig: acpi: Fix typo in comment.\n  misc latin1 to utf8 conversions\n  devres: Fix a typo in devm_kfree comment\n  btrfs: free-space-cache.c: remove extra semicolon.\n  fat: Spelling s/obsolate/obsolete/g\n  SCSI, pmcraid: Fix spelling error in a pmcraid_err() call\n  tools/power turbostat: update fields in manpage\n  mac80211: drop spelling fix\n  types.h: fix comment spelling for \u0027architectures\u0027\n  typo fixes: aera -\u003e area, exntension -\u003e extension\n  devices.txt: Fix typo of \u0027VMware\u0027.\n  sis900: Fix enum typo \u0027sis900_rx_bufer_status\u0027\n  decompress_bunzip2: remove invalid vi modeline\n  treewide: Fix comment and string typo \u0027bufer\u0027\n  hyper-v: Update MAINTAINERS\n  treewide: Fix typos in various parts of the kernel, and fix some comments.\n  clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n  gpio: Kconfig: drop unknown symbol \u0027CS5535_GPIO\u0027\n  leds: Kconfig: Fix typo \u0027D2NET_V2\u0027\n  sound: Kconfig: drop unknown symbol ARCH_CLPS7500\n  ...\n\nFix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new\nkconfig additions, close to removed commented-out old ones)\n"
    },
    {
      "commit": "eb59c505f8a5906ad2e053d14fab50eb8574fd6f",
      "tree": "c6e875adc12b481b916e847e8f80b8881a0fb02c",
      "parents": [
        "1619ed8f60959829d070d8f39cd2f8ca0e7135ce",
        "c233523b3d392e530033a7587d7970dc62a02361"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:10:57 2012 -0800"
      },
      "message": "Merge branch \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\n* \u0027pm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  PM / Hibernate: Implement compat_ioctl for /dev/snapshot\n  PM / Freezer: fix return value of freezable_schedule_timeout_killable()\n  PM / shmobile: Allow the A4R domain to be turned off at run time\n  PM / input / touchscreen: Make st1232 use device PM QoS constraints\n  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n  PM / shmobile: Remove the stay_on flag from SH7372\u0027s PM domains\n  PM / shmobile: Don\u0027t include SH7372\u0027s INTCS in syscore suspend/resume\n  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode\n  PM: Drop generic_subsys_pm_ops\n  PM / Sleep: Remove forward-only callbacks from AMBA bus type\n  PM / Sleep: Remove forward-only callbacks from platform bus type\n  PM: Run the driver callback directly if the subsystem one is not there\n  PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers\n  PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.\n  PM / Sleep: Merge internal functions in generic_ops.c\n  PM / Sleep: Simplify generic system suspend callbacks\n  PM / Hibernate: Remove deprecated hibernation snapshot ioctls\n  PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()\n  ARM: S3C64XX: Implement basic power domain support\n  PM / shmobile: Use common always on power domain governor\n  ...\n\nFix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused\nXBT_FORCE_SLEEP bit\n"
    },
    {
      "commit": "29ad0de279002f9b6a63df5ba85328f5b633b842",
      "tree": "8284c1a50ff2ecf9defca2a47f12947977c04df1",
      "parents": [
        "972b2c719990f91eb3b2310d44ef8a2d38955a14",
        "40d344ec5ee440596b1f3ae87556e20c7197757a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:05:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:05:29 2012 -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: (22 commits)\n  xfs: mark the xfssyncd workqueue as non-reentrant\n  xfs: simplify xfs_qm_detach_gdquots\n  xfs: fix acl count validation in xfs_acl_from_disk()\n  xfs: remove unused XBT_FORCE_SLEEP bit\n  xfs: remove XFS_QMOPT_DQSUSER\n  xfs: kill xfs_qm_idtodq\n  xfs: merge xfs_qm_dqinit_core into the only caller\n  xfs: add a xfs_dqhold helper\n  xfs: simplify xfs_qm_dqattach_grouphint\n  xfs: nest qm_dqfrlist_lock inside the dquot qlock\n  xfs: flatten the dquot lock ordering\n  xfs: implement lazy removal for the dquot freelist\n  xfs: remove XFS_DQ_INACTIVE\n  xfs: cleanup xfs_qm_dqlookup\n  xfs: cleanup dquot locking helpers\n  xfs: remove the sync_mode argument to xfs_qm_dqflush_all\n  xfs: remove xfs_qm_sync\n  xfs: make sure to really flush all dquots in xfs_qm_quotacheck\n  xfs: untangle SYNC_WAIT and SYNC_TRYLOCK meanings for xfs_qm_dqflush\n  xfs: remove the lid_size field in struct log_item_desc\n  ...\n\nFix up trivial conflict in fs/xfs/xfs_sync.c\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "576b1d67ce949e7542ff765b00eb5357e706768b",
      "tree": "de2c2e2a4592e98f8fc3638ddba1dbb8954ddbe6",
      "parents": [
        "dd716e64d60f2ad40e0da7db426d4bfc7eabd5d7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 02:50:15 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:00 2012 -0500"
      },
      "message": "xfs: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a79f17e4a641a2f463cb512cb0ec349844a147b",
      "tree": "8801127310d0a3492941bb284e83393844a19685",
      "parents": [
        "8c9379e972e984d11c2b99121847ba9fa7a0c56c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 08:06:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: mnt_drop_write_file()\n\nnew helper (wrapper around mnt_drop_write()) to be used in pair with\nmnt_want_write_file().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a561be7100cd610bd2e082f3211c1dfb45835817",
      "tree": "a1016a11df967be6f289a4e8ae29597ba39df17e",
      "parents": [
        "f47ec3f28354795f000c14bf18ed967ec81a3ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 11:57:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "switch a bunch of places to mnt_want_write_file()\n\nit\u0027s both faster (in case when file has been opened for write) and cleaner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b1c770c273a4787069306fc82aab245e9ac72e9d",
      "tree": "64337e4ec57722c40a4a9733ab046d5ece2a65f2",
      "parents": [
        "40d344ec5ee440596b1f3ae87556e20c7197757a"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Dec 21 00:07:42 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 03 11:39:55 2012 -0600"
      },
      "message": "xfs: fix endian conversion issue in discard code\n\nWhen finding the longest extent in an AG, we read the value directly\nout of the AGF buffer without endian conversion. This will give an\nincorrect length, resulting in FITRIM operations potentially not\ntrimming everything that it should.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "be4f1ac828776bbc7868a68b465cd8eedb733cfd",
      "tree": "e1200a933beeb93702ce0c571a4ca3304f3cab72",
      "parents": [
        "0b8fd3033c308e4088760aa1d38ce77197b4e074"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 20 20:08:41 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Dec 23 16:41:47 2011 -0600"
      },
      "message": "xfs: log all dirty inodes in xfs_fs_sync_fs\n\nSince Linux 2.6.36 the writeback code has introduces various measures for\nlive lock prevention during sync().  Unfortunately some of these are\nactively harmful for the XFS model, where the inode gets marked dirty for\nmetadata from the data I/O handler.\n\nThe older_than_this checks that are now more strictly enforced since\n\n    writeback: avoid livelocking WB_SYNC_ALL writeback\n\nby only calling into __writeback_inodes_sb and thus only sampling the\ncurrent cut off time once.  But on a slow enough devices the previous\nasynchronous sync pass might not have fully completed yet, and thus XFS\nmight mark metadata dirty only after that sampling of the cut off time for\nthe blocking pass already happened.  I have not myself reproduced this\nmyself on a real system, but by introducing artificial delay into the\nXFS I/O completion workqueues it can be reproduced easily.\n\nFix this by iterating over all XFS inodes in -\u003esync_fs and log all that\nare dirty.  This might log inode that only got redirtied after the\nprevious pass, but given how cheap delayed logging of inodes is it\nisn\u0027t a major concern for performance.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nTested-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "0b8fd3033c308e4088760aa1d38ce77197b4e074",
      "tree": "534cfbf7315e4ea6363792be9acf83029cf034a2",
      "parents": [
        "9f9c19ec1a59422c7687b11847ed3408128aa0d6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 15:49:55 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Dec 23 16:41:47 2011 -0600"
      },
      "message": "xfs: log the inode in -\u003ewrite_inode calls for kupdate\n\nIf the writeback code writes back an inode because it has expired we currently\nuse the non-blockin -\u003ewrite_inode path.  This means any inode that is pinned\nis skipped.  With delayed logging and a workload that has very little log\ntraffic otherwise it is very likely that an inode that gets constantly\nwritten to is always pinned, and thus we keep refusing to write it.  The VM\nwriteback code at that point redirties it and doesn\u0027t try to write it again\nfor another 30 seconds.  This means under certain scenarious time based\nmetadata writeback never happens.\n\nFix this by calling into xfs_log_inode for kupdate in addition to data\nintegrity syncs, and thus transfer the inode to the log ASAP.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nTested-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "b00f4dc5ff022cb9cbaffd376d9454d7fa1e496f",
      "tree": "40f1b232e2f1e8ac365317a14fdcbcb331722b46",
      "parents": [
        "1eac8111e0763853266a171ce11214da3a347a0a",
        "b9e26dfdad5a4f9cbdaacafac6998614cc9c41bc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 21:59:45 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 21:59:45 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into pm-sleep\n\n* master: (848 commits)\n  SELinux: Fix RCU deref check warning in sel_netport_insert()\n  binary_sysctl(): fix memory leak\n  mm/vmalloc.c: remove static declaration of va from __get_vm_area_node\n  ipmi_watchdog: restore settings when BMC reset\n  oom: fix integer overflow of points in oom_badness\n  memcg: keep root group unchanged if creation fails\n  nilfs2: potential integer overflow in nilfs_ioctl_clean_segments()\n  nilfs2: unbreak compat ioctl\n  cpusets: stall when updating mems_allowed for mempolicy or disjoint nodemask\n  evm: prevent racing during tfm allocation\n  evm: key must be set once during initialization\n  mmc: vub300: fix type of firmware_rom_wait_states module parameter\n  Revert \"mmc: enable runtime PM by default\"\n  mmc: sdhci: remove \"state\" argument from sdhci_suspend_host\n  x86, dumpstack: Fix code bytes breakage due to missing KERN_CONT\n  IB/qib: Correct sense on freectxts increment and decrement\n  RDMA/cma: Verify private data length\n  cgroups: fix a css_set not found bug in cgroup_attach_proc\n  oprofile: Fix uninitialized memory access when writing to writing to oprofilefs\n  Revert \"xen/pv-on-hvm kexec: add xs_reset_watches to shutdown watches from old kernel\"\n  ...\n\nConflicts:\n\tkernel/cgroup_freezer.c\n"
    },
    {
      "commit": "40d344ec5ee440596b1f3ae87556e20c7197757a",
      "tree": "e0f41573d782b9c93306cd888b9cd7ff66d361df",
      "parents": [
        "28fb588c9bd810dec273d96e80591392f6ce1e1c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Dec 05 08:53:21 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Dec 19 22:17:01 2011 -0600"
      },
      "message": "xfs: mark the xfssyncd workqueue as non-reentrant\n\nOn a system with lots of memory pressure that is stuck on synchronous inode\nreclaim the workqueue code will run one instance of the inode reclaim work\nitem on every CPU. which is not what we want.  Make sure to mark the\nxfssyncd workqueue as non-reentrant to make sure there only is one instace\nof each running globally.  Also stop using special paramater for the\nworkqueue; now that we guarantee each fs has only running one of each works\nat a time there is no need to artificially lower max_active and compensate\nfor that by setting the WQ_CPU_INTENSIVE flag.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "28fb588c9bd810dec273d96e80591392f6ce1e1c",
      "tree": "a45ca1155de23900b194d7406ea772f48d328894",
      "parents": [
        "093019cf1b18dd31b2c3b77acce4e000e2cbc9ce"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:21 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Dec 16 15:33:30 2011 -0600"
      },
      "message": "xfs: simplify xfs_qm_detach_gdquots\n\nThere is no reason to drop qi_dqlist_lock around calls to xfs_qm_dqrele\nbecause the free list lock now nests inside qi_dqlist_lock and the\ndquot lock.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "093019cf1b18dd31b2c3b77acce4e000e2cbc9ce",
      "tree": "d181c46d1738fc53a48202c1a46ef4221847e486",
      "parents": [
        "687d1c5e8e26f68b0defb1b9ccd85a0955325b9d"
      ],
      "author": {
        "name": "Xi Wang",
        "email": "xi.wang@gmail.com",
        "time": "Mon Dec 12 21:55:52 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Dec 16 15:17:42 2011 -0600"
      },
      "message": "xfs: fix acl count validation in xfs_acl_from_disk()\n\nCommit fa8b18ed didn\u0027t prevent the integer overflow and possible\nmemory corruption.  \"count\" can go negative and bypass the check.\n\nSigned-off-by: Xi Wang \u003cxi.wang@gmail.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "687d1c5e8e26f68b0defb1b9ccd85a0955325b9d",
      "tree": "711090c76c2ac7e935e6e994860bdaf863faa3e5",
      "parents": [
        "7ae4440723a413c7a52edd27f654c34680dd4ea2"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Tue Dec 13 23:12:45 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Dec 16 15:12:33 2011 -0600"
      },
      "message": "xfs: remove unused XBT_FORCE_SLEEP bit\n\nXBT_FORCE_SLEEP is no longer ever tested; it is only set\nand cleared.  Remove it.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "7ae4440723a413c7a52edd27f654c34680dd4ea2",
      "tree": "14ec4a743f812d84a00177f7df20f832cd428e62",
      "parents": [
        "97e7ade506cdd7157d8b64c77696c082fb997476"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:25 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Dec 15 14:38:30 2011 -0600"
      },
      "message": "xfs: remove XFS_QMOPT_DQSUSER\n\nJust read the id 0 dquot from disk directly in xfs_qm_init_quotainfo instead\nof going through dqget and requiring a special flag to not add the dquot to\nany lists.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "97e7ade506cdd7157d8b64c77696c082fb997476",
      "tree": "37cf54335972c92516e44444ce0dc36842b81e35",
      "parents": [
        "49d35a5cf115d9273edb8aa7e527502411b77712"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:24 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Dec 15 14:37:32 2011 -0600"
      },
      "message": "xfs: kill xfs_qm_idtodq\n\nThis function doesn\u0027t help the code flow, so merge the dquot allocation and\ntransaction handling into xfs_qm_dqread.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "49d35a5cf115d9273edb8aa7e527502411b77712",
      "tree": "82dc21607f31b4f7a4923ea04848ed5af4aa7253",
      "parents": [
        "78e55892d65ea69fbf252e086375d0d8f081b6c8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:23 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Dec 15 14:37:32 2011 -0600"
      },
      "message": "xfs: merge xfs_qm_dqinit_core into the only caller\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "78e55892d65ea69fbf252e086375d0d8f081b6c8",
      "tree": "7f115cdcd97b5dfa6826f8c27427d4061a97591f",
      "parents": [
        "ab680bb739ca0e969148951c2e127f6683dcb933"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:22 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Dec 15 14:37:32 2011 -0600"
      },
      "message": "xfs: add a xfs_dqhold helper\n\nFactor the common pattern of:\n\n\txfs_dqlock(dqp);\n\tXFS_DQHOLD(dqp);\n\txfs_dqunlock(dqp);\n\ninto a new helper, and remove XFS_DQHOLD now that only one other caller\nis left.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "ab680bb739ca0e969148951c2e127f6683dcb933",
      "tree": "10422c5507bd48bf6029a03e6a89b94a356de735",
      "parents": [
        "bf72de3194e73fa210a904b0bd951135286bb385"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:20 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Dec 15 10:04:31 2011 -0600"
      },
      "message": "xfs: simplify xfs_qm_dqattach_grouphint\n\nNo need to play games with the qlock now that the freelist lock nests inside\nit.  Also clean up various outdated comments.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "bf72de3194e73fa210a904b0bd951135286bb385",
      "tree": "408ead179da91befd82e0cc23ed66830ead2fa59",
      "parents": [
        "92678554abfc2a2f2727ad168da87d8d434ac904"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:19 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Dec 14 21:15:42 2011 -0600"
      },
      "message": "xfs: nest qm_dqfrlist_lock inside the dquot qlock\n\nAllow xfs_qm_dqput to work without trylock loops by nesting the freelist lock\ninside the dquot qlock.  In turn that requires trylocks in the reclaim path\ninstead, but given it\u0027s a classic tradeoff between fast and slow path, and\nwe follow the model of the inode and dentry caches.\n\nDocument our new lock order now that it has settled.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "92678554abfc2a2f2727ad168da87d8d434ac904",
      "tree": "082b395f587dca7903c083e8e10529be1890dc4e",
      "parents": [
        "be7ffc38a80a78e6b68d0f51fae8e8d57b55324c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:18 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Dec 14 16:32:21 2011 -0600"
      },
      "message": "xfs: flatten the dquot lock ordering\n\nIntroduce a new XFS_DQ_FREEING flag that tells lookup and mplist walks\nto skip a dquot that is beeing freed, and use this avoid the trylock\non the hash and mplist locks in xfs_qm_dqreclaim_one.  Also simplify\nxfs_dqpurge by moving the inodes to a dispose list after marking them\nXFS_DQ_FREEING and avoid the locker ordering constraints.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "be7ffc38a80a78e6b68d0f51fae8e8d57b55324c",
      "tree": "bb5ca49fd1dc92051e9898a653d7bdd26c93af59",
      "parents": [
        "80a376bfb7f8ff8f1942cb1bdd0052e908918252"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:17 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 13 16:46:28 2011 -0600"
      },
      "message": "xfs: implement lazy removal for the dquot freelist\n\nDo not remove dquots from the freelist when we grab a reference to them in\nxfs_qm_dqlookup, but leave them on the freelist util scanning notices that\nthey have a reference.  This speeds up the lookup fastpath, and greatly\nsimplifies the lock ordering constraints.  Note that the same scheme is\nused by the VFS inode and dentry caches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "80a376bfb7f8ff8f1942cb1bdd0052e908918252",
      "tree": "f370553d188065bfa2722b74076ef81b111cd477",
      "parents": [
        "497507b9ee63499d364ad7149c584285cd925dfc"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:16 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 13 14:55:54 2011 -0600"
      },
      "message": "xfs: remove XFS_DQ_INACTIVE\n\nFree dquots when purging them during umount instead of keeping them around\non the freelist in a degraded state.  The out of order locking in\nxfs_qm_dqpurge will be removed again later in this series.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "497507b9ee63499d364ad7149c584285cd925dfc",
      "tree": "a0377653cae16e61443a6fb46bd52b511f28e86f",
      "parents": [
        "800b484ec0262946262ad20561a8081fd31f4a6f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:15 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 13 11:43:35 2011 -0600"
      },
      "message": "xfs: cleanup xfs_qm_dqlookup\n\nRearrange the code to avoid the conditional locking around the flist_locked\nvariable.  This means we lose a (rather pointless) assert, and hold the\nfreelist lock a bit longer for one corner case.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "800b484ec0262946262ad20561a8081fd31f4a6f",
      "tree": "41bc447ef77f21546e03d975017c11cb3d1a1a4d",
      "parents": [
        "a7ef9bd79f488c643edfda7dedcbdb0a1b8e7552"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:14 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Dec 12 17:28:20 2011 -0600"
      },
      "message": "xfs: cleanup dquot locking helpers\n\nMark the trivial lock wrappers as inline, and make the naming consistent\nfor all of them.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "a7ef9bd79f488c643edfda7dedcbdb0a1b8e7552",
      "tree": "df4b36b0ca2b663f3e19b268168742c5a808f9fa",
      "parents": [
        "34625c661b01dab193c7e8a0151a63553e97cfdf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:13 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Dec 12 16:46:20 2011 -0600"
      },
      "message": "xfs: remove the sync_mode argument to xfs_qm_dqflush_all\n\nIt always is zero, and removing it will make future changes easier.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "34625c661b01dab193c7e8a0151a63553e97cfdf",
      "tree": "75bbf616053e35ab63847a717068f8fae51f8d12",
      "parents": [
        "f2fba558d3c80dcd10bbadbb8f05c78dc2860b95"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:12 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Dec 12 16:41:44 2011 -0600"
      },
      "message": "xfs: remove xfs_qm_sync\n\nNow that we can\u0027t have any dirty dquots around that aren\u0027t in the AIL we\ncan get rid of the explicit dquot syncing from xfssyncd and xfs_fs_sync_fs\nand instead rely on AIL pushing to write out any quota updates.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "f2fba558d3c80dcd10bbadbb8f05c78dc2860b95",
      "tree": "00cbd32e517729b75755067dc0a8d009166a9e73",
      "parents": [
        "fdedf28b9492d69976110d12cc0d02d33c8ea7ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:11 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Dec 12 16:39:22 2011 -0600"
      },
      "message": "xfs: make sure to really flush all dquots in xfs_qm_quotacheck\n\nMake sure we do not skip any dquots when flushing them out after a\nquotacheck to make sure that we will never have any dirty dquots on a\nlive filesystem.  At this point no dquot should be pinnable, but lets\nbe pedantic about it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "fdedf28b9492d69976110d12cc0d02d33c8ea7ea",
      "tree": "c7d390c58afa3fd342efadca88e3991c8cb5142f",
      "parents": [
        "b39342134a6ec72778ffc2ddbd3c0faa10c64676"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:10 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Dec 12 16:31:01 2011 -0600"
      },
      "message": "xfs: untangle SYNC_WAIT and SYNC_TRYLOCK meanings for xfs_qm_dqflush\n\nOnly skip pinned dquots if SYNC_TRYLOCK is specified, and adjust the callers\nto keep the behaviour unchanged.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "b39342134a6ec72778ffc2ddbd3c0faa10c64676",
      "tree": "fc95ebf3b6ef32c80b907d7ea9af6112b4e520ff",
      "parents": [
        "0244b9603df38bf19155b761689e1a816fc50b0a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:09 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Dec 08 13:53:30 2011 -0600"
      },
      "message": "xfs: remove the lid_size field in struct log_item_desc\n\nOutside the now removed nodelaylog code this field is only used for\nasserts and can be safely removed now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "0244b9603df38bf19155b761689e1a816fc50b0a",
      "tree": "256b91c77c63d2ec58af5844f1e3eb1f587ceaf1",
      "parents": [
        "93b8a5854f247138e401471a9c3b82ccb62ff608"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:08 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Dec 08 13:53:30 2011 -0600"
      },
      "message": "xfs: cleanup the transaction commit path a bit\n\nNow that the nodelaylog mode is gone we can simplify the transaction commit\npath a bit by removing the xfs_trans_commit_cil routine.  Restoring the\nprocess flags is merged into xfs_trans_commit which already does it for\nthe error path, and allocating the log vectors is merged into\nxlog_cil_format_items, which already fills them with data, thus avoiding\none loop over all log items.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "93b8a5854f247138e401471a9c3b82ccb62ff608",
      "tree": "5a914815ff68b1d36289292bb518a6b47f7fb2d1",
      "parents": [
        "9f9c19ec1a59422c7687b11847ed3408128aa0d6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Dec 06 21:58:07 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Dec 08 12:30:32 2011 -0600"
      },
      "message": "xfs: remove the deprecated nodelaylog option\n\nThe delaylog mode has been the default for a long time, and the nodelaylog\noption has been scheduled for removal in Linux 3.3.  Remove it and code\nonly used by it now that we have opened the 3.3 window.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "9f9c19ec1a59422c7687b11847ed3408128aa0d6",
      "tree": "55a7dbf7422f4b18e32ba5e0f5378c959c4e12ba",
      "parents": [
        "c29f7d457ac63311feb11928a866efd2fe153d74"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Nov 28 08:17:36 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 06 14:19:47 2011 -0600"
      },
      "message": "xfs: fix the logspace waiting algorithm\n\nApply the scheme used in log_regrant_write_log_space to wake up any other\nthreads waiting for log space before the newly added one to\nlog_regrant_write_log_space as well, and factor the code into readable\nhelpers.  For each of the queues we have add two helpers:\n\n - one to try to wake up all waiting threads.  This helper will also be\n   usable by xfs_log_move_tail once we remove the current opportunistic\n   wakeups in it.\n - one to sleep on t_wait until enough log space is available, loosely\n   modelled after Linux waitqueues.\n \nAnd use them to reimplement the guts of log_regrant_write_log_space and\nlog_regrant_write_log_space.  These two function now use one and the same\nalgorithm for waiting on log space instead of subtly different ones before,\nwith an option to completely unify them in the near future.\n\nAlso move the filesystem shutdown handling to the common caller given\nthat we had to touch it anyway.\n\nBased on hard debugging and an earlier patch from\nChandra Seetharaman \u003csekharan@us.ibm.com\u003e.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nTested-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "c29f7d457ac63311feb11928a866efd2fe153d74",
      "tree": "277ae257d415895a980c973ab2e41f59c70999d3",
      "parents": [
        "a99ebf43f49f4499ab0e2a8a9132ad6ed6ba2409"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Nov 30 08:58:18 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Dec 06 10:46:23 2011 -0600"
      },
      "message": "xfs: fix nfs export of 64-bit inodes numbers on 32-bit kernels\n\nThe i_ino field in the VFS inode is of type unsigned long and thus can\u0027t\nhold the full 64-bit inode number on 32-bit kernels.  We have the full\ninode number in the XFS inode, so use that one for nfs exports.  Note\nthat I\u0027ve also switched the 32-bit file handles types to it, just to make\nthe code more consistent and copy \u0026 paste errors less likely to happen.\n\nReported-by: Guoquan Yang \u003cygq51@hotmail.com\u003e\nReported-by: Hank Peng \u003cpengxihan@gmail.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "90802ed9c3dbab2e067bd9fc67a30e66e6774e8f",
      "tree": "ac379380a669ad3c2a7ab0c3d923f1e9644ae885",
      "parents": [
        "05183189ee5df8799b22c56d93f0f69b8490e33f"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Mon Dec 05 13:00:34 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Dec 06 09:53:40 2011 +0100"
      },
      "message": "treewide: Fix comment and string typo \u0027bufer\u0027\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "a99ebf43f49f4499ab0e2a8a9132ad6ed6ba2409",
      "tree": "6dba4c8cacee04e8b507f77fd547bab7a23063ac",
      "parents": [
        "4c393a6059f8442a70512a48ce4639b882b6f6ad"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Dec 01 11:24:20 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Dec 02 16:24:02 2011 -0600"
      },
      "message": "xfs: fix allocation length overflow in xfs_bmapi_write()\n\nWhen testing the new xfstests --large-fs option that does very large\nfile preallocations, this assert was tripped deep in\nxfs_alloc_vextent():\n\nXFS: Assertion failed: args-\u003eminlen \u003c\u003d args-\u003emaxlen, file: fs/xfs/xfs_alloc.c, line: 2239\n\nThe allocation was trying to allocate a zero length extent because\nthe lower 32 bits of the allocation length was zero. The remaining\nlength of the allocation to be done was an exact multiple of 2^32 -\nthe first case I saw was at 496TB remaining to be allocated.\n\nThis turns out to be an overflow when converting the allocation\nlength (a 64 bit quantity) into the extent length to allocate (a 32\nbit quantity), and it requires the length to be allocated an exact\nmultiple of 2^32 blocks to trip the assert.\n\nFix it by limiting the extent lenth to allocate to MAXEXTLEN.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "42b2aa86c6670347a2a07e6d7af0e0ecc8fdbff9",
      "tree": "6f8fb2a1efb3e84bf281658befe06dc6a7fb026b",
      "parents": [
        "a13b032776379fa6e2bfccf798969ca51e5fb052"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Mon Nov 28 20:31:00 2011 -0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 02 14:57:31 2011 +0100"
      },
      "message": "treewide: Fix typos in various parts of the kernel, and fix some comments.\n\nThe below patch fixes some typos in various parts of the kernel, as well as fixes some comments.\nPlease let me know if I missed anything, and I will try to get it changed and resent.\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4c393a6059f8442a70512a48ce4639b882b6f6ad",
      "tree": "dfff7ce8903ae87a092f3ee2ab213fd06e5a47ec",
      "parents": [
        "4dd2cb4a28b7ab1f37163a4eba280926a13a8749"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sat Nov 19 17:44:30 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 29 13:03:12 2011 -0600"
      },
      "message": "xfs: fix attr2 vs large data fork assert\n\nWith Dmitry fsstress updates I\u0027ve seen very reproducible crashes in\nxfs_attr_shortform_remove because xfs_attr_shortform_bytesfit claims that\nthe attributes would not fit inline into the inode after removing an\nattribute.  It turns out that we were operating on an inode with lots\nof delalloc extents, and thus an if_bytes values for the data fork that\nis larger than biggest possible on-disk storage for it which utterly\nconfuses the code near the end of xfs_attr_shortform_bytesfit.\n\nFix this by always allowing the current attribute fork, like we already\ndo for the attr1 format, given that delalloc conversion will take care\nfor moving either the data or attribute area out of line if it doesn\u0027t\nfit at that point - or making the point moot by merging extents at this\npoint.\n\nAlso document the function better, and clean up some loose bits.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "4dd2cb4a28b7ab1f37163a4eba280926a13a8749",
      "tree": "f48cbb282ad4d52649b594657f00c1c8be753a47",
      "parents": [
        "fa8b18edd752a8b4e9d1ee2cd615b82c93cf8bba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 29 12:06:14 2011 -0600"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 29 12:06:14 2011 -0600"
      },
      "message": "xfs: force buffer writeback before blocking on the ilock in inode reclaim\n\nIf we are doing synchronous inode reclaim we block the VM from making\nprogress in memory reclaim.  So if we encouter a flush locked inode\npromote it in the delwri list and wake up xfsbufd to write it out now.\nWithout this we can get hangs of up to 30 seconds during workloads hitting\nsynchronous inode reclaim.\n\nThe scheme is copied from what we do for dquot reclaims.\n\nReported-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nTested-by: Simon Kirby \u003csim@hostway.ca\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "fa8b18edd752a8b4e9d1ee2cd615b82c93cf8bba",
      "tree": "9765979df5cd3da5f7e7c54b6fcf47ae26486ec9",
      "parents": [
        "c8891329131f791e0ddc422eaf6fc86e9a8cf8f5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Nov 20 15:35:32 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Nov 28 22:14:24 2011 -0600"
      },
      "message": "xfs: validate acl count\n\nThis prevents in-memory corruption and possible panics if the on-disk\nACL is badly corrupted.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "a0acae0e886d44bd5ce6d2f173c1ace0fcf0d9f6",
      "tree": "0b763388360a5a9043986e1f2201e43df74ebc46",
      "parents": [
        "3a7cbd50f74907580eb47a8d08e1f29741b81abf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 21 12:32:22 2011 -0800"
      },
      "message": "freezer: unexport refrigerator() and update try_to_freeze() slightly\n\nThere is no reason to export two functions for entering the\nrefrigerator.  Calling refrigerator() instead of try_to_freeze()\ndoesn\u0027t save anything noticeable or removes any race condition.\n\n* Rename refrigerator() to __refrigerator() and make it return bool\n  indicating whether it scheduled out for freezing.\n\n* Update try_to_freeze() to return bool and relay the return value of\n  __refrigerator() if freezing().\n\n* Convert all refrigerator() users to try_to_freeze().\n\n* Update documentation accordingly.\n\n* While at it, add might_sleep() to try_to_freeze().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "db3e74b582915d66e10b0c73a62763418f54c340",
      "tree": "e5cdfdedf24c275601e0b197db24dbd52c8e08b9",
      "parents": [
        "810627d9a6d0e8820c798001875bc4e1b7754ebf"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Thu Nov 10 01:33:10 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Nov 15 14:45:09 2011 -0600"
      },
      "message": "xfs: use doalloc flag in xfs_qm_dqattach_one()\n\nThe doalloc arg in xfs_qm_dqattach_one() is a flag that indicates\nwhether a new area to handle quota information will be allocated\nif needed. Originally, it was passed to xfs_qm_dqget(), but has\nbeen removed by the following commit (probably by mistake):\n\n\tcommit 8e9b6e7fa4544ea8a0e030c8987b918509c8ff47\n\tAuthor: Christoph Hellwig \u003chch@lst.de\u003e\n\tDate:   Sun Feb 8 21:51:42 2009 +0100\n\n\txfs: remove the unused XFS_QMOPT_DQLOCK flag\n\nAs the result, xfs_qm_dqget() called from xfs_qm_dqattach_one()\nnever allocates the new area even if it is needed.\n\nThis patch gives the doalloc arg to xfs_qm_dqget() in\nxfs_qm_dqattach_one() to fix this problem.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "810627d9a6d0e8820c798001875bc4e1b7754ebf",
      "tree": "1ebd7b3919f78d117d7ec8b6ec78615e01210448",
      "parents": [
        "272e42b215c52d32e06bf035c1f6b70baa6716bd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Nov 08 08:56:15 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: fix force shutdown handling in xfs_end_io\n\nEnsure ioend-\u003eio_error gets propagated back to e.g. AIO completions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "272e42b215c52d32e06bf035c1f6b70baa6716bd",
      "tree": "b09ad40176f53006d57669255991a42ee38eb488",
      "parents": [
        "b52a360b2aa1c59ba9970fb0f52bbb093fcc7a24"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Oct 28 09:54:24 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: constify xfs_item_ops\n\nThe log item ops aren\u0027t nessecarily the biggest exploit vector, but marking\nthem const is easy enough.  Also remove the unused xfs_item_ops_t typedef\nwhile we\u0027re at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "b52a360b2aa1c59ba9970fb0f52bbb093fcc7a24",
      "tree": "b8710ad524592faac1427d2155aaf4ba29a80cf8",
      "parents": [
        "1ea6b8f48918282bdca0b32a34095504ee65bab5"
      ],
      "author": {
        "name": "Carlos Maiolino",
        "email": "cmaiolino@redhat.com",
        "time": "Mon Nov 07 16:10:24 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Nov 08 10:48:23 2011 -0600"
      },
      "message": "xfs: Fix possible memory corruption in xfs_readlink\n\nFixes a possible memory corruption when the link is larger than\nMAXPATHLEN and XFS_DEBUG is not enabled. This also remove the\nS_ISLNK assert, since the inode mode is checked previously in\nxfs_readlink_by_handle() and via VFS.\n\nUpdated to address concerns raised by Ben Hutchings about the loose\nattention paid to 32- vs 64-bit values, and the lack of handling a\npotentially negative pathlen value:\n - Changed type of \"pathlen\" to be xfs_fsize_t, to match that of\n   ip-\u003ei_d.di_size\n - Added checking for a negative pathlen to the too-long pathlen\n   test, and generalized the message that gets reported in that case\n   to reflect the change\nAs a result, if a negative pathlen were encountered, this function\nwould return EFSCORRUPTED (and would fail an assertion for a debug\nbuild)--just as would a too-long pathlen.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94054fa3fca1fd78db02cb3d68d5627120f0a1d4",
      "tree": "6ba391fcbad8500610706da5fbc03ffe9cecfd55",
      "parents": [
        "a18bba061c789f5815c3efc3c80e6ac269911964"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 31 17:07:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:46 2011 -0700"
      },
      "message": "xfs: warn if direct reclaim tries to writeback pages\n\nDirect reclaim should never writeback pages.  For now, handle the\nsituation and warn about it.  Ultimately, this will be a BUG_ON.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5619a693965b291315685bdfe01a0246ebd7e41e",
      "tree": "80a9869814d601a3d5fb439d6c6e4d6c7d6865e4",
      "parents": [
        "37be944a0270402f9cda291a930b0286f6dc92f5",
        "9e4c109ac822395e0aae650e4e3c9e4903f6602f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:31:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 28 10:31:42 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs: (69 commits)\n  xfs: add AIL pushing tracepoints\n  xfs: put in missed fix for merge problem\n  xfs: do not flush data workqueues in xfs_flush_buftarg\n  xfs: remove XFS_bflush\n  xfs: remove xfs_buf_target_name\n  xfs: use xfs_ioerror_alert in xfs_buf_iodone_callbacks\n  xfs: clean up xfs_ioerror_alert\n  xfs: clean up buffer allocation\n  xfs: remove buffers from the delwri list in xfs_buf_stale\n  xfs: remove XFS_BUF_STALE and XFS_BUF_SUPER_STALE\n  xfs: remove XFS_BUF_SET_VTYPE and XFS_BUF_SET_VTYPE_REF\n  xfs: remove XFS_BUF_FINISH_IOWAIT\n  xfs: remove xfs_get_buftarg_list\n  xfs: fix buffer flushing during unmount\n  xfs: optimize fsync on directories\n  xfs: reduce the number of log forces from tail pushing\n  xfs: Don\u0027t allocate new buffers on every call to _xfs_buf_find\n  xfs: simplify xfs_trans_ijoin* again\n  xfs: unlock the inode before log force in xfs_change_file_space\n  xfs: unlock the inode before log force in xfs_fs_nfs_commit_metadata\n  ...\n"
    },
    {
      "commit": "59e52534172d845ebffb0d7e85fc56fb7b857051",
      "tree": "49552e03f1bdb413cd8b5f7542e91770688d7047",
      "parents": [
        "73692d9bb58ecc2fa73f4b2bfcf6eadaa6d49a26",
        "0d89e54c8249645404283436d952afc261a04e1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:11:02 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 12:11:02 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (59 commits)\n  MAINTAINERS: linux-m32r is moderated for non-subscribers\n  linux@lists.openrisc.net is moderated for non-subscribers\n  Drop default from \"DM365 codec select\" choice\n  parisc: Kconfig: cleanup Kernel page size default\n  Kconfig: remove redundant CONFIG_ prefix on two symbols\n  cris: remove arch/cris/arch-v32/lib/nand_init.S\n  microblaze: add missing CONFIG_ prefixes\n  h8300: drop puzzling Kconfig dependencies\n  MAINTAINERS: microblaze-uclinux@itee.uq.edu.au is moderated for non-subscribers\n  tty: drop superfluous dependency in Kconfig\n  ARM: mxc: fix Kconfig typo \u0027i.MX51\u0027\n  Fix file references in Kconfig files\n  aic7xxx: fix Kconfig references to READMEs\n  Fix file references in drivers/ide/\n  thinkpad_acpi: Fix printk typo \u0027bluestooth\u0027\n  bcmring: drop commented out line in Kconfig\n  btmrvl_sdio: fix typo \u0027btmrvl_sdio_sd6888\u0027\n  doc: raw1394: Trivial typo fix\n  CIFS: Don\u0027t free volume_info-\u003eUNC until we are entirely done with it.\n  treewide: Correct spelling of successfully in comments\n  ...\n"
    },
    {
      "commit": "36b8d186e6cc8e32cb5227f5645a58e1bc0af190",
      "tree": "1000ad26e189e6ff2c53fb7eeff605f59c7ad94e",
      "parents": [
        "cd85b557414fe4cd44ea6608825e96612a5fe2b2",
        "c45ed235abf1b0b6666417e3c394f18717976acd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 25 09:45:31 2011 +0200"
      },
      "message": "Merge branch \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027next\u0027 of git://selinuxproject.org/~jmorris/linux-security: (95 commits)\n  TOMOYO: Fix incomplete read after seek.\n  Smack: allow to access /smack/access as normal user\n  TOMOYO: Fix unused kernel config option.\n  Smack: fix: invalid length set for the result of /smack/access\n  Smack: compilation fix\n  Smack: fix for /smack/access output, use string instead of byte\n  Smack: domain transition protections (v3)\n  Smack: Provide information for UDS getsockopt(SO_PEERCRED)\n  Smack: Clean up comments\n  Smack: Repair processing of fcntl\n  Smack: Rule list lookup performance\n  Smack: check permissions from user space (v2)\n  TOMOYO: Fix quota and garbage collector.\n  TOMOYO: Remove redundant tasklist_lock.\n  TOMOYO: Fix domain transition failure warning.\n  TOMOYO: Remove tomoyo_policy_memory_lock spinlock.\n  TOMOYO: Simplify garbage collector.\n  TOMOYO: Fix make namespacecheck warnings.\n  target: check hex2bin result\n  encrypted-keys: check hex2bin result\n  ...\n"
    },
    {
      "commit": "9e4c109ac822395e0aae650e4e3c9e4903f6602f",
      "tree": "c59e7fabd8a43e6d3392045760653cbfeb5cd6e3",
      "parents": [
        "2900b33999e2fc8a8edf0dddaafffec4da25ee10"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Oct 11 15:14:11 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 18 15:12:04 2011 -0500"
      },
      "message": "xfs: add AIL pushing tracepoints\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "2900b33999e2fc8a8edf0dddaafffec4da25ee10",
      "tree": "b6013dafbf461ee6a0ec4f0f554c02e26877b41a",
      "parents": [
        "9508534c5f170ada5a745cde0df49732718440e9"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 18 20:00:14 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 18 20:00:14 2011 +0000"
      },
      "message": "xfs: put in missed fix for merge problem\n\nI intended to do this as part of fixing part of the conflict with\nthe merge with Linus\u0027 tree, but evidently it didn\u0027t get included in\nthe commit.\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n\n"
    },
    {
      "commit": "9508534c5f170ada5a745cde0df49732718440e9",
      "tree": "2b0f1e19aa529e77720522d13541adedbc46564e",
      "parents": [
        "5a93a064d27b42e4af1772b0599b53e3241191ac",
        "a84a79e4d369a73c0130b5858199e949432da4c6"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Oct 17 15:42:02 2011 -0500"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Mon Oct 17 15:42:02 2011 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux\n\nResolved conflicts:\n  fs/xfs/xfs_trans_priv.h:\n    - deleted struct xfs_ail field xa_flags\n    - kept field xa_log_flush in struct xfs_ail\n  fs/xfs/xfs_trans_ail.c:\n    - in xfsaild_push(), in XFS_ITEM_PUSHBUF case, replaced\n      \"flush_log \u003d 1\" with \"ailp-\u003exa_log_flush++\"\n\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "5a93a064d27b42e4af1772b0599b53e3241191ac",
      "tree": "67d51441dba4fd8645ec9f5eaacb5d60c62049c7",
      "parents": [
        "a9add83e5abd29bf2b7b3658311199eeabbdefc6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:53 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 22:34:31 2011 -0500"
      },
      "message": "xfs: do not flush data workqueues in xfs_flush_buftarg\n\nWhen we call xfs_flush_buftarg (generally from sync or umount) it already\nis too late to flush the data workqueues, as I/O completion is signalled\nfor them and we are thus already done with the data we would flush here.\n\nThere are places where flushing them might be useful, but the current\nsync interface doesn\u0027t give us that opportunity.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "a9add83e5abd29bf2b7b3658311199eeabbdefc6",
      "tree": "0219f5fad2baac905366ca559001f39c3ca90ed4",
      "parents": [
        "02b102df1502a7ea4167d115510e1e8fe6467f12"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:52 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:11 2011 -0500"
      },
      "message": "xfs: remove XFS_bflush\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "02b102df1502a7ea4167d115510e1e8fe6467f12",
      "tree": "b8895eb40f8690051a44858eeb497f61bfc2b74d",
      "parents": [
        "b38505b09b7854d446b2f60b4414e3231277aa1a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:11 2011 -0500"
      },
      "message": "xfs: remove xfs_buf_target_name\n\nThe calling convention that returns a pointer to a static buffer is\nfairly nasty, so just opencode it in the only caller that is left.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b38505b09b7854d446b2f60b4414e3231277aa1a",
      "tree": "f1f7984a14e6fdeee5b87df245c7f67dd9a0d602",
      "parents": [
        "901796afca0d31d97bf6d1bf2ab251a93a4b8c83"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:50 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: use xfs_ioerror_alert in xfs_buf_iodone_callbacks\n\nUse xfs_ioerror_alert instead of opencoding a very similar error\nmessage.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "901796afca0d31d97bf6d1bf2ab251a93a4b8c83",
      "tree": "85f204657d81700492487acbf39fb9702e6b0842",
      "parents": [
        "4347b9d7ad4223474d315c3ab6bc1ce7cce7fa2d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:49 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: clean up xfs_ioerror_alert\n\nInstead of passing the block number and mount structure explicitly\nget them off the bp and fix make the argument order more natural.\n\nAlso move it to xfs_buf.c and stop printing the device name given\nthat we already get the fs name as part of xfs_alert, and we know\nwhat device is operates on because of the caller that gets printed,\nfinally rename it to xfs_buf_ioerror_alert and pass __func__ as\nargument where it makes sense.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "4347b9d7ad4223474d315c3ab6bc1ce7cce7fa2d",
      "tree": "e82674b33a3a86528749d4960e0b0f97395c309e",
      "parents": [
        "af5c4bee499eb68bc36ca046030394d82d0e3669"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:48 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: clean up buffer allocation\n\nChange _xfs_buf_initialize to allocate the buffer directly and rename it to\nxfs_buf_alloc now that is the only buffer allocation routine.  Also remove\nthe xfs_buf_deallocate wrapper around the kmem_zone_free calls for buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "af5c4bee499eb68bc36ca046030394d82d0e3669",
      "tree": "4d015bdd36d9c424e04c8aaf8050dccb79cd7c31",
      "parents": [
        "c867cb61641751fd3d86350232d64ae2a10137d4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:47 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: remove buffers from the delwri list in xfs_buf_stale\n\nFor each call to xfs_buf_stale we call xfs_buf_delwri_dequeue either\ndirectly before or after it, or are guaranteed by the surrounding\nconditionals that we are never called on delwri buffers.  Simply\nthis situation by moving the call to xfs_buf_delwri_dequeue into\nxfs_buf_stale.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c867cb61641751fd3d86350232d64ae2a10137d4",
      "tree": "414d38d5edd941cee2eb07f9eeb7ebaa29d1cd5b",
      "parents": [
        "38f23232449c9d2c0bc8e9541cb8ab08b7c2b9ce"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:46 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:10 2011 -0500"
      },
      "message": "xfs: remove XFS_BUF_STALE and XFS_BUF_SUPER_STALE\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "38f23232449c9d2c0bc8e9541cb8ab08b7c2b9ce",
      "tree": "2713a5b8d1e42ef1a12047d839e4247381b95256",
      "parents": [
        "5fde0326ddb1472ef31034c8ed952a19d4679191"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:45 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: remove XFS_BUF_SET_VTYPE and XFS_BUF_SET_VTYPE_REF\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "5fde0326ddb1472ef31034c8ed952a19d4679191",
      "tree": "50733475339e3e8780893085a35c75b44a7b2849",
      "parents": [
        "b17b833443a3b65907f5ecb36f8af33996f6ec78"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:44 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: remove XFS_BUF_FINISH_IOWAIT\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b17b833443a3b65907f5ecb36f8af33996f6ec78",
      "tree": "ee378ac255df193914c70015b95b37944ce6aca1",
      "parents": [
        "87c7bec7fc3377b3873eb3a0f4b603981ea16ebb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Oct 10 16:52:43 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: remove xfs_get_buftarg_list\n\nThe code is unused and under a config option that doesn\u0027t exist, remove it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "87c7bec7fc3377b3873eb3a0f4b603981ea16ebb",
      "tree": "abe143d8f76e4d95f2158134913b10fc9be6def1",
      "parents": [
        "1da2f2dbf2d2aaa1b0f6ca2f61fcf07e24eb659b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 14 14:08:26 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: fix buffer flushing during unmount\n\nThe code to flush buffers in the umount code is a bit iffy: we first\nflush all delwri buffers out, but then might be able to queue up a\nnew one when logging the sb counts.  On a normal shutdown that one\nwould get flushed out when doing the synchronous superblock write in\nxfs_unmountfs_writesb, but we skip that one if the filesystem has\nbeen shut down.\n\nFix this by moving the delwri list flushing until just before unmounting\nthe log, and while we\u0027re at it also remove the superflous delwri list\nand buffer lru flusing for the rt and log device that can never have\ncached or delwri buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReported-by: Amit Sahrawat \u003camit.sahrawat83@gmail.com\u003e\nTested-by: Amit Sahrawat \u003camit.sahrawat83@gmail.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "1da2f2dbf2d2aaa1b0f6ca2f61fcf07e24eb659b",
      "tree": "41340d0cb08191d0bba677391e238d3771443033",
      "parents": [
        "670ce93fef93bba8c8a422a79747385bec8e846a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Oct 02 14:25:16 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: optimize fsync on directories\n\nDirectories are only updated transactionally, which means fsync only\nneeds to flush the log the inode is currently dirty, but not bother\nwith checking for dirty data, non-transactional updates, and most\nimportanly doesn\u0027t have to flush disk caches except as part of a\ntransaction commit.\n\nWhile the first two optimizations can\u0027t easily be measured, the\nlatter actually makes a difference when doing lots of fsync that do\nnot actually have to commit the inode, e.g. because an earlier fsync\nalready pushed the log far enough.\n\nThe new xfs_dir_fsync is identical to xfs_nfs_commit_metadata except\nfor the prototype, but I\u0027m not sure creating a common helper for the\ntwo is worth it given how simple the functions are.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "670ce93fef93bba8c8a422a79747385bec8e846a",
      "tree": "2f358f3c38f847cd12caf5f5f1eb3c36d586c546",
      "parents": [
        "3815832a2aa4df9815d15dac05227e0c8551833f"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Sep 30 04:45:03 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:09 2011 -0500"
      },
      "message": "xfs: reduce the number of log forces from tail pushing\n\nThe AIL push code will issue a log force on ever single push loop\nthat it exits and has encountered pinned items. It doesn\u0027t rescan\nthese pinned items until it revisits the AIL from the start. Hence\nwe only need to force the log once per walk from the start of the\nAIL to the target LSN.\n\nThis results in numbers like this:\n\n\txs_push_ail_flush.....         1456\n\txs_log_force.........          1485\n\nFor an 8-way 50M inode create workload - almost all the log forces\nare coming from the AIL pushing code.\n\nReduce the number of log forces by only forcing the log if the\nprevious walk found pinned buffers. This reduces the numbers to:\n\n\txs_push_ail_flush.....          665\n\txs_log_force.........           682\n\nFor the same test.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "3815832a2aa4df9815d15dac05227e0c8551833f",
      "tree": "f92c98e6e73d3d8e6da7909b1ebd8e7cf4888df9",
      "parents": [
        "ddc3415aba1cb2f86d1fcad720cea834ee178f54"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Sep 30 04:45:02 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: Don\u0027t allocate new buffers on every call to _xfs_buf_find\n\nStats show that for an 8-way unlink @ ~80,000 unlinks/s we are doing\n~1 million cache hit lookups to ~3000 buffer creates. That\u0027s almost\n3 orders of magnitude more cahce hits than misses, so optimising for\ncache hits is quite important. In the cache hit case, we do not need\nto allocate a new buffer in case of a cache miss, so we are\neffectively hitting the allocator for no good reason for vast the\nmajority of calls to _xfs_buf_find. 8-way create workloads are\nshowing similar cache hit/miss ratios.\n\nThe result is profiles that look like this:\n\n     samples  pcnt function                        DSO\n     _______ _____ _______________________________ _________________\n\n     1036.00 10.0% _xfs_buf_find                   [kernel.kallsyms]\n      582.00  5.6% kmem_cache_alloc                [kernel.kallsyms]\n      519.00  5.0% __memcpy                        [kernel.kallsyms]\n      468.00  4.5% __ticket_spin_lock              [kernel.kallsyms]\n      388.00  3.7% kmem_cache_free                 [kernel.kallsyms]\n      331.00  3.2% xfs_log_commit_cil              [kernel.kallsyms]\n\n\nFurther, there is a fair bit of work involved in initialising a new\nbuffer once a cache miss has occurred and we currently do that under\nthe rbtree spinlock. That increases spinlock hold time on what are\nheavily used trees.\n\nTo fix this, remove the initialisation of the buffer from\n_xfs_buf_find() and only allocate the new buffer once we\u0027ve had a\ncache miss. Initialise the buffer immediately after allocating it in\nxfs_buf_get, too, so that is it ready for insert if we get another\ncache miss after allocation. This minimises lock hold time and\navoids unnecessary allocator churn. The resulting profiles look\nlike:\n\n     samples  pcnt function                    DSO\n     _______ _____ ___________________________ _________________\n\n     8111.00  9.1% _xfs_buf_find               [kernel.kallsyms]\n     4380.00  4.9% __memcpy                    [kernel.kallsyms]\n     4341.00  4.8% __ticket_spin_lock          [kernel.kallsyms]\n     3401.00  3.8% kmem_cache_alloc            [kernel.kallsyms]\n     2856.00  3.2% xfs_log_commit_cil          [kernel.kallsyms]\n     2625.00  2.9% __kmalloc                   [kernel.kallsyms]\n     2380.00  2.7% kfree                       [kernel.kallsyms]\n     2016.00  2.3% kmem_cache_free             [kernel.kallsyms]\n\nShowing a significant reduction in time spent doing allocation and\nfreeing from slabs (kmem_cache_alloc and kmem_cache_free).\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "ddc3415aba1cb2f86d1fcad720cea834ee178f54",
      "tree": "7a31a932ce0b7080557be062ccc7c3c0e181b140",
      "parents": [
        "23bb0be1a237c8732ce1a43140e5cb103a676b92"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 19 15:00:54 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: simplify xfs_trans_ijoin* again\n\nThere is no reason to keep a reference to the inode even if we unlock\nit during transaction commit because we never drop a reference between\nthe ijoin and commit.  Also use this fact to merge xfs_trans_ijoin_ref\nback into xfs_trans_ijoin - the third argument decides if an unlock\nis needed now.\n\nI\u0027m actually starting to wonder if allowing inodes to be unlocked\nat transaction commit really is worth the effort.  The only real\nbenefit is that they can be unlocked earlier when commiting a\nsynchronous transactions, but that could be solved by doing the\nlog force manually after the unlock, too.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "23bb0be1a237c8732ce1a43140e5cb103a676b92",
      "tree": "deb4405e0612bf50472040587bbbef398a49888c",
      "parents": [
        "8292d88c5c833fc8b837c3a018fd6d72c35a3231"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:47:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: unlock the inode before log force in xfs_change_file_space\n\nLet the transaction commit unlock the inode before it potentially causes\na synchronous log force.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "8292d88c5c833fc8b837c3a018fd6d72c35a3231",
      "tree": "69d46f192c1aee634f4bab6cbf6b5891f4383a70",
      "parents": [
        "b10370585349d364ff3c550afa7922e6e21f029d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:47:50 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: unlock the inode before log force in xfs_fs_nfs_commit_metadata\n\nOnly read the LSN we need to push to with the ilock held, and then release\nit before we do the log force to improve concurrency.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b10370585349d364ff3c550afa7922e6e21f029d",
      "tree": "23996ee7961fc5595d72c5e149a4250c444356f4",
      "parents": [
        "815cb21662b914e1e14c256a3d662b1352c8509e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 19 14:55:51 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: unlock the inode before log force in xfs_fsync\n\nOnly read the LSN we need to push to with the ilock held, and then release\nit before we do the log force to improve concurrency.\n\nThis also removes the only direct caller of _xfs_trans_commit, thus\nallowing it to be merged into the plain xfs_trans_commit again.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "815cb21662b914e1e14c256a3d662b1352c8509e",
      "tree": "7e87f3d4c01a2869e2b5e438a688827c33d6f5cc",
      "parents": [
        "c029a50d51b8a9520105ec903639de03389915d0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 26 09:14:34 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:08 2011 -0500"
      },
      "message": "xfs: XFS_TRANS_SWAPEXT is not a valid flag for xfs_trans_commit\n\nXFS_TRANS_SWAPEXT is a transaction type, not a flag for xfs_trans_commit, so\ndon\u0027t pass it in xfs_swap_extents.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "c029a50d51b8a9520105ec903639de03389915d0",
      "tree": "f0d3993b6429eea9f4843a3113eb9258613f30ef",
      "parents": [
        "d952e2f81244d6502aff126df5011fab10f92187"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Sep 21 09:42:30 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: fix possible overflow in xfs_ioc_trim()\n\nIn xfs_ioc_trim it is possible that computing the last allocation group\nto discard might overflow for big start \u0026 len values, because the result\nmight be bigger then xfs_agnumber_t which is 32 bit long. Fix this by not\nallowing the start and end block of the range to be beyond the end of the\nfile system.\n\nNote that if the start is beyond the end of the file system we have to\nreturn -EINVAL, but in the \"end\" case we have to truncate it to the fs\nsize.\n\nAlso introduce \"end\" variable, rather than using start+len which which\nmight be more confusing to get right as this bug shows.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n"
    },
    {
      "commit": "d952e2f81244d6502aff126df5011fab10f92187",
      "tree": "15503180081395092f0c1395e6403d98c906c143",
      "parents": [
        "b0eab14e74d2d7b22d065e18a1cdebcf7716debf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:07 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: cleanup xfs_bmap.h\n\nConvert all function prototypes to the short form used elsewhere,\nand remove duplicates of comments already placed at the function\nbody.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "b0eab14e74d2d7b22d065e18a1cdebcf7716debf",
      "tree": "c5cf9e53fe4b74202689fbe792c349077841d641",
      "parents": [
        "c6534249851d062113ab4d8d226be8dba8ecb92e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:06 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: dont ignore error code from xfs_bmbt_update\n\nFix a case in xfs_bmap_add_extent_unwritten_real where we aren\u0027t\npassing the returned error on.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c6534249851d062113ab4d8d226be8dba8ecb92e",
      "tree": "a838779512f25dfe93b4aaa506ca5c895db6f28a",
      "parents": [
        "572a4cf04ac7f46e9206aabfef03dae602812341"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:05 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: pass bmalloca to xfs_bmap_add_extent_hole_real\n\nAll the parameters passed to xfs_bmap_add_extent_hole_real() are in\nthe xfs_bmalloca structure now. Just pass the bmalloca parameter to\nthe function instead of 8 separate parameters.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "572a4cf04ac7f46e9206aabfef03dae602812341",
      "tree": "c548aecf511c86a4d8b47ef12c6a44a8d416aa5c",
      "parents": [
        "c315c90b7d530d1ec3c226052e153b0cffa512c8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:04 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:07 2011 -0500"
      },
      "message": "xfs: pass bmalloca to xfs_bmap_add_extent_delay_real\n\nAll the parameters passed to xfs_bmap_add_extent_delay_real() are in\nthe xfs_bmalloca structure now. Just pass the bmalloca parameter to\nthe function instead of 8 separate parameters.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "c315c90b7d530d1ec3c226052e153b0cffa512c8",
      "tree": "d2b258ca4dba17f40cc2ea0d6a43a3ac79062299",
      "parents": [
        "e0c3da5d89dc1aeef2275a8b751231e147603f0f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Sep 18 20:41:02 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: move logflags into bmalloca\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "e0c3da5d89dc1aeef2275a8b751231e147603f0f",
      "tree": "4409337fb70fba9979d8160d5055e402daa3a692",
      "parents": [
        "29c8d17a8938be88e36b93522753f3519aefd05d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:41:01 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: move lastx and nallocs into bmalloca\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "29c8d17a8938be88e36b93522753f3519aefd05d",
      "tree": "e54ac344f5228cd22d447a9759682f73ce3d4c6e",
      "parents": [
        "963c30cf45e8c832ae11438ff9d99c954b9d0114"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:41:00 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: move btree cursor into bmalloca\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    },
    {
      "commit": "963c30cf45e8c832ae11438ff9d99c954b9d0114",
      "tree": "0d6c7ea97c4b4acaea918d6e158a3aa09dc37ca6",
      "parents": [
        "3a75667e902dbdb87718b1ee2b3b745b344a8163"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Sun Sep 18 20:40:59 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Tue Oct 11 21:15:06 2011 -0500"
      },
      "message": "xfs: do not keep local copies of allocation ranges in xfs_bmapi_allocate\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n\n\n"
    }
  ],
  "next": "3a75667e902dbdb87718b1ee2b3b745b344a8163"
}
