)]}'
{
  "log": [
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
      "tree": "fb51d60060453aef9e776c7d3a31588609d34d76",
      "parents": [
        "0c9aac08261512d70d7d4817bd222abca8b6bdd6",
        "5a5881cdeec2c019b5c9a307800218ee029f7f61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:23:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:23:52 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull XFS update (part 2) from Ben Myers:\n \"Fixes for tracing of xfs_name strings, flag handling in\n  open_by_handle, a log space hang with freeze/unfreeze, fstrim offset\n  calculations, a section mismatch with xfs_qm_exit, an oops in\n  xlog_recover_process_iunlinks, and a deadlock in xfs_rtfree_extent.\n\n  There are also additional trace points for attributes, and the\n  addition of a workqueue for allocation to work around kernel stack\n  size limitations.\"\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: add lots of attribute trace points\n  xfs: Fix oops on IO error during xlog_recover_process_iunlinks()\n  xfs: fix fstrim offset calculations\n  xfs: Account log unmount transaction correctly\n  xfs: don\u0027t cache inodes read through bulkstat\n  xfs: trace xfs_name strings correctly\n  xfs: introduce an allocation workqueue\n  xfs: Fix open flag handling in open_by_handle code\n  xfs: fix deadlock in xfs_rtfree_extent\n  fs: xfs: fix section mismatch in linux-next\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "5a5881cdeec2c019b5c9a307800218ee029f7f61",
      "tree": "67ae565f9e243a1eaa986457ca869e776fb76fac",
      "parents": [
        "d97d32edcd732110758799ae60af725e5110b3dc"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:13 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 17:18:21 2012 -0500"
      },
      "message": "xfs: add lots of attribute trace points\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "d97d32edcd732110758799ae60af725e5110b3dc",
      "tree": "b49bc097b289d123003695dcd1301cda5f091f4b",
      "parents": [
        "a66d636385d621e98a915233250356c394a437de"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 15 09:34:02 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 16:34:10 2012 -0500"
      },
      "message": "xfs: Fix oops on IO error during xlog_recover_process_iunlinks()\n\nWhen an IO error happens during inode deletion run from\nxlog_recover_process_iunlinks() filesystem gets shutdown. Thus any subsequent\nattempt to read buffers fails. Code in xlog_recover_process_iunlinks() does not\ncount with the fact that read of a buffer which was read a while ago can\nreally fail which results in the oops on\n  agi \u003d XFS_BUF_TO_AGI(agibp);\n\nFix the problem by cleaning up the buffer handling in\nxlog_recover_process_iunlinks() as suggested by Dave Chinner. We release buffer\nlock but keep buffer reference to AG buffer. That is enough for buffer to stay\npinned in memory and we don\u0027t have to call xfs_read_agi() all the time.\n\nCC: stable@kernel.org\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "a66d636385d621e98a915233250356c394a437de",
      "tree": "9dda534c10fed016503f77a5f7ce893f9c4db7f7",
      "parents": [
        "3948659e30808fbaa7673bbe89de2ae9769e20a7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:12 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 27 16:07:03 2012 -0500"
      },
      "message": "xfs: fix fstrim offset calculations\n\nxfs_ioc_fstrim() doesn\u0027t treat the incoming offset and length\ncorrectly. It treats them as a filesystem block address, rather than\na disk address. This is wrong because the range passed in is a\nlinear representation, while the filesystem block address notation\nis a sparse representation. Hence we cannot convert the range direct\nto filesystem block units and then use that for calculating the\nrange to trim.\n\nWhile this sounds dangerous, the problem is limited to calculating\nwhat AGs need to be trimmed. The code that calcuates the actual\nranges to trim gets the right result (i.e. only ever discards free\nspace), even though it uses the wrong ranges to limit what is\ntrimmed. Hence this is not a bug that endangers user data.\n\nFix this by treating the range as a disk address range and use the\nappropriate functions to convert the range into the desired formats\nfor calculations.\n\nFurther, fix the first free extent lookup (the longest) to actually\nfind the largest free extent. Currently this lookup uses a \u003c\u003d\nlookup, which results in finding the extent to the left of the\nlargest because we can never get an exact match on the largest\nextent. This is due to the fact that while we know it\u0027s size, we\ndon\u0027t know it\u0027s location and so the exact match fails and we move\none record to the left to get the next largest extent. Instead, use\na \u003e\u003d search so that the lookup returns the largest extent regardless\nof the fact we don\u0027t get an exact match on it.\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"
    },
    {
      "commit": "3948659e30808fbaa7673bbe89de2ae9769e20a7",
      "tree": "06ff528be9bd33a4f2579fb05514460b7fa1ec8a",
      "parents": [
        "5132ba8f2b7705fb6b06fa6ad3d009233c816b67"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:11 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 26 17:47:24 2012 -0500"
      },
      "message": "xfs: Account log unmount transaction correctly\n\nThere have been a few reports of this warning appearing recently:\n\nXFS (dm-4): xlog_space_left: head behind tail\n tail_cycle \u003d 129, tail_bytes \u003d 20163072\n GH   cycle \u003d 129, GH   bytes \u003d 20162880\n\nThe common cause appears to be lots of freeze and unfreeze cycles,\nand the output from the warnings indicates that we are leaking\naround 8 bytes of log space per freeze/unfreeze cycle.\n\nWhen we freeze the filesystem, we write an unmount record and that\nuses xlog_write directly - a special type of transaction,\neffectively. What it doesn\u0027t do, however, is correctly account for\nthe log space it uses. The unmount record writes an 8 byte structure\nwith a special magic number into the log, and the space this\nconsumes is not accounted for in the log ticket tracking the\noperation. Hence we leak 8 bytes every unmount record that is\nwritten.\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"
    },
    {
      "commit": "5132ba8f2b7705fb6b06fa6ad3d009233c816b67",
      "tree": "e552a365b600af005abec13f3a1deb1f57bae3b9",
      "parents": [
        "f616137519feb17b849894fcbe634a021d3fa7db"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:10 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 26 17:19:08 2012 -0500"
      },
      "message": "xfs: don\u0027t cache inodes read through bulkstat\n\nWhen we read inodes via bulkstat, we generally only read them once\nand then throw them away - they never get used again. If we retain\nthem in cache, then it simply causes the working set of inodes and\nother cached items to be reclaimed just so the inode cache can grow.\n\nAvoid this problem by marking inodes read by bulkstat not to be\ncached and check this flag in .drop_inode to determine whether the\ninode should be added to the VFS LRU or not. If the inode lookup\nhits an already cached inode, then don\u0027t set the flag. If the inode\nlookup hits an inode marked with no cache flag, remove the flag and\nallow it to be cached once the current reference goes away.\n\nInodes marked as not cached will get cleaned up by the background\ninode reclaim or via memory pressure, so they will still generate\nsome short term cache pressure. They will, however, be reclaimed\nmuch sooner and in preference to cache hot inodes.\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"
    },
    {
      "commit": "f616137519feb17b849894fcbe634a021d3fa7db",
      "tree": "efa0007b9141ee85f65980e3731bb02f18dcb4bc",
      "parents": [
        "c999a223c2f0d31c64ef7379814cea1378b2b800"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 28 11:01:40 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 26 13:58:48 2012 -0500"
      },
      "message": "xfs: trace xfs_name strings correctly\n\nStrings store in an xfs_name structure are often not NUL terminated,\nprint them using the correct printf specifiers that make use of the\nstring length store in the xfs_name structure.\n\nReported-by: Brian Candler \u003cB.Candler@pobox.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "49d99a2f9c4d033cc3965958a1397b1fad573dd3",
      "tree": "cda1849d49d40d2f25773e86605c55bc6745cf1f",
      "parents": [
        "1c3ddfe5ab886c4dc0443535e95ad8e41c41d0e5",
        "f074211f6041305b645669464343d504f4e6a290"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:19:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:19:22 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull XFS updates from Ben Myers:\n \"Scalability improvements for dquots, log grant code cleanups, plus\n  bugfixes and cleanups large and small\"\n\nFix up various trivial conflicts that were due to some of the earlier\npatches already having been integrated into v3.3 as bugfixes, and then\nthere were development patches on top of those.  Easily merged by just\ntaking the newer version from the pulled branch.\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs: (45 commits)\n  xfs: fallback to vmalloc for large buffers in xfs_getbmap\n  xfs: fallback to vmalloc for large buffers in xfs_attrmulti_attr_get\n  xfs: remove remaining scraps of struct xfs_iomap\n  xfs: fix inode lookup race\n  xfs: clean up minor sparse warnings\n  xfs: remove the global xfs_Gqm structure\n  xfs: remove the per-filesystem list of dquots\n  xfs: use per-filesystem radix trees for dquot lookup\n  xfs: per-filesystem dquot LRU lists\n  xfs: use common code for quota statistics\n  xfs: reimplement fdatasync support\n  xfs: split in-core and on-disk inode log item fields\n  xfs: make xfs_inode_item_size idempotent\n  xfs: log timestamp updates\n  xfs: log file size updates at I/O completion time\n  xfs: log file size updates as part of unwritten extent conversion\n  xfs: do not require an ioend for new EOF calculation\n  xfs: use per-filesystem I/O completion workqueues\n  quota: make Q_XQUOTASYNC a noop\n  xfs: include reservations in quota reporting\n  ...\n"
    },
    {
      "commit": "c999a223c2f0d31c64ef7379814cea1378b2b800",
      "tree": "ed699c3c98075bbfc4aed0ab22bd174e65e575a8",
      "parents": [
        "1a1d772433d42aaff7315b3468fef5951604f5c6"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:07 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 22 16:12:24 2012 -0500"
      },
      "message": "xfs: introduce an allocation workqueue\n\nWe currently have significant issues with the amount of stack that\nallocation in XFS uses, especially in the writeback path. We can\neasily consume 4k of stack between mapping the page, manipulating\nthe bmap btree and allocating blocks from the free list. Not to\nmention btree block readahead and other functionality that issues IO\nin the allocation path.\n\nAs a result, we can no longer fit allocation in the writeback path\nin the stack space provided on x86_64. To alleviate this problem,\nintroduce an allocation workqueue and move all allocations to a\nseperate context. This can be easily added as an interposing layer\ninto xfs_alloc_vextent(), which takes a single argument structure\nand does not return until the allocation is complete or has failed.\n\nTo do this, add a work structure and a completion to the allocation\nargs structure. This allows xfs_alloc_vextent to queue the args onto\nthe workqueue and wait for it to be completed by the worker. This\ncan be done completely transparently to the caller.\n\nThe worker function needs to ensure that it sets and clears the\nPF_TRANS flag appropriately as it is being run in an active\ntransaction context. Work can also be queued in a memory reclaim\ncontext, so a rescuer is needed for the workqueue.\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"
    },
    {
      "commit": "1a1d772433d42aaff7315b3468fef5951604f5c6",
      "tree": "0f2b7e5ccf4e0a99fde158d95d1225ed81a2b34e",
      "parents": [
        "5575acc7807595687288b3bbac15103f2a5462e1"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Mar 22 05:15:06 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 22 15:56:52 2012 -0500"
      },
      "message": "xfs: Fix open flag handling in open_by_handle code\n\nSparse identified some unsafe handling of open flags in the xfs open\nby handle ioctl code. Update the code to use the correct access\nmacros to ensure that we handle the open flags correctly.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "5575acc7807595687288b3bbac15103f2a5462e1",
      "tree": "1a47a34756e1c0023e2df8f3b1d9e10de568601a",
      "parents": [
        "1c2ccc66bcef992bec7bad6d52cade66d632d7fb"
      ],
      "author": {
        "name": "Kamal Dasu",
        "email": "kdasu.kdev@gmail.com",
        "time": "Thu Feb 23 00:41:39 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 22 15:31:06 2012 -0500"
      },
      "message": "xfs: fix deadlock in xfs_rtfree_extent\n\nTo fix the deadlock caused by repeatedly calling xfs_rtfree_extent\n\n - removed xfs_ilock() and xfs_trans_ijoin() from xfs_rtfree_extent(),\n   instead added asserts that the inode is locked and has an inode_item\n   attached to it.\n - in xfs_bunmapi() when dealing with an inode with the rt flag\n   call xfs_ilock() and xfs_trans_ijoin() so that the\n   reference count is bumped on the inode and attached it to the\n   transaction before calling into xfs_bmap_del_extent, similar to\n   what we do in xfs_bmap_rtalloc.\n\nSigned-off-by: Kamal Dasu \u003ckdasu.kdev@gmail.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "1c2ccc66bcef992bec7bad6d52cade66d632d7fb",
      "tree": "621a3e4d527d18bc6bfb2667baf29f5a9607706a",
      "parents": [
        "f074211f6041305b645669464343d504f4e6a290"
      ],
      "author": {
        "name": "Gerard Snitselaar",
        "email": "dev@snitselaar.org",
        "time": "Fri Mar 16 18:36:18 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 22 13:48:55 2012 -0500"
      },
      "message": "fs: xfs: fix section mismatch in linux-next\n\nxfs_qm_exit() is called in init_xfs_fs().\n\nSigned-off-by: Gerard Snitselaar \u003cdev@snitselaar.org\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8de52778798fe39660a8d6b26f290e0c93202761",
      "tree": "56384beb7863c1f338f2b66b509bf58eea5a99c2",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 06 12:45:27 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:32 2012 -0400"
      },
      "message": "vfs: check i_nlink limits in vfs_{mkdir,rename_dir,link}\n\nNew field of struct super_block - -\u003es_max_links.  Maximal allowed\nvalue of -\u003ei_nlink or 0; in the latter case all checks still need\nto be done in -\u003elink/-\u003emkdir/-\u003erename instances.  Note that this\nlimit applies both to directoris and to non-directories.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f074211f6041305b645669464343d504f4e6a290",
      "tree": "2fd1678c72b47683e25f69e247dfecaec79e477b",
      "parents": [
        "ad650f5b27bc9858360b42aaa0d9204d16115316"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Mar 07 04:50:22 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 15 14:54:23 2012 -0500"
      },
      "message": "xfs: fallback to vmalloc for large buffers in xfs_getbmap\n\nxfs_getbmap uses for a large buffer for extents, which is kmalloc\u0027d.\nThis can fail after the system has been running for some time as it\nis a high order allocation. Add a fallback to vmalloc so that it\ndoesn\u0027t require contiguous memory and so won\u0027t randomly fail on\nfiles with large extent lists.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "ad650f5b27bc9858360b42aaa0d9204d16115316",
      "tree": "9f21fe0fe1589c7cbcbc422f7d4ffcc4cf57bb74",
      "parents": [
        "6eb2466036358078aed9a65d702cbc97baf0ce65"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Mar 07 04:50:21 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 15 14:14:33 2012 -0500"
      },
      "message": "xfs: fallback to vmalloc for large buffers in xfs_attrmulti_attr_get\n\nxfsdump uses for a large buffer for extended attributes, which has a\nkmalloc\u0027d shadow buffer in the kernel. This can fail after the\nsystem has been running for some time as it is a high order\nallocation. Add a fallback to vmalloc so that it doesn\u0027t require\ncontiguous memory and so won\u0027t randomly fail while xfsdump is\nrunning.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "6eb2466036358078aed9a65d702cbc97baf0ce65",
      "tree": "5b1e68b8cf0afdc6007c3fd976ba55484a8e42ba",
      "parents": [
        "f30d500f809eca67a21704347ab14bb35877b5ee"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Mar 07 04:50:24 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 15 13:40:16 2012 -0500"
      },
      "message": "xfs: remove remaining scraps of struct xfs_iomap\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "f30d500f809eca67a21704347ab14bb35877b5ee",
      "tree": "0e4c8267a9087f0c70994346443221d3efb6f321",
      "parents": [
        "8d2a5e6ee37f205b3d76c223d4f3f88ba1d06220"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Mar 07 04:50:25 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Mar 15 13:16:42 2012 -0500"
      },
      "message": "xfs: fix inode lookup race\n\nWhen we get concurrent lookups of the same inode that is not in the\nper-AG inode cache, there is a race condition that triggers warnings\nin unlock_new_inode() indicating that we are initialising an inode\nthat isn\u0027t in a the correct state for a new inode.\n\nWhen we do an inode lookup via a file handle or a bulkstat, we don\u0027t\nserialise lookups at a higher level through the dentry cache (i.e.\npathless lookup), and so we can get concurrent lookups of the same\ninode.\n\nThe race condition is between the insertion of the inode into the\ncache in the case of a cache miss and a concurrently lookup:\n\nThread 1\t\t\tThread 2\nxfs_iget()\n  xfs_iget_cache_miss()\n    xfs_iread()\n    lock radix tree\n    radix_tree_insert()\n\t\t\t\trcu_read_lock\n\t\t\t\tradix_tree_lookup\n\t\t\t\tlock inode flags\n\t\t\t\tXFS_INEW not set\n\t\t\t\tigrab()\n\t\t\t\tunlock inode flags\n\t\t\t\trcu_read_unlock\n\t\t\t\tuse uninitialised inode\n\t\t\t\t.....\n    lock inode flags\n    set XFS_INEW\n    unlock inode flags\n    unlock radix tree\n  xfs_setup_inode()\n    inode flags \u003d I_NEW\n    unlock_new_inode()\n      WARNING as inode flags !\u003d I_NEW\n\nThis can lead to inode corruption, inode list corruption, etc, and\nis generally a bad thing to occur.\n\nFix this by setting XFS_INEW before inserting the inode into the\nradix tree. This will ensure any concurrent lookup will find the new\ninode with XFS_INEW set and that forces the lookup to wait until the\nXFS_INEW flag is removed before allowing the lookup to succeed.\n\ncc: \u003cstable@vger.kernel.org\u003e # for 3.0.x, 3.2.x\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"
    },
    {
      "commit": "8d2a5e6ee37f205b3d76c223d4f3f88ba1d06220",
      "tree": "0d571ac88b5e10499eb552885a45b1f5409d19f5",
      "parents": [
        "a05931ceb0160deadbd7798d60d01b17f2d81b09"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Wed Mar 07 04:50:19 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Mar 14 13:21:17 2012 -0500"
      },
      "message": "xfs: clean up minor sparse warnings\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"
    },
    {
      "commit": "a05931ceb0160deadbd7798d60d01b17f2d81b09",
      "tree": "ca56811415e970149cc99b8b7f6ec9a4677d6025",
      "parents": [
        "b84a3a96751f93071c1863f2962273973c8b8f5e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Mar 13 08:52:37 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Mar 14 12:06:32 2012 -0500"
      },
      "message": "xfs: remove the global xfs_Gqm structure\n\nIf we initialize the slab caches for the quota code when XFS is loaded there\nis no need for a global and reference counted quota manager structure.  Drop\nall this overhead and also fix the error handling during quota initialization.\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": "b84a3a96751f93071c1863f2962273973c8b8f5e",
      "tree": "26409cbc65a9b4457e6c52e90879361fc42d2386",
      "parents": [
        "9f920f116426806bfa34c1422742e1bf7b7a2b4b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Mar 14 11:53:34 2012 -0500"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Mar 14 11:53:34 2012 -0500"
      },
      "message": "xfs: remove the per-filesystem list of dquots\n\nInstead of keeping a separate per-filesystem list of dquots we can walk\nthe radix tree for the two places where we need to iterate all quota\nstructures.\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": "9f920f116426806bfa34c1422742e1bf7b7a2b4b",
      "tree": "3ec0a4f006dc10ed56e5bec1b605f5ecbb3a3275",
      "parents": [
        "f8739c3ce2ac9a01515b56026b6a066c0808234b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Mar 13 08:52:35 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Mar 14 11:09:06 2012 -0500"
      },
      "message": "xfs: use per-filesystem radix trees for dquot lookup\n\nReplace the global hash tables for looking up in-memory dquot structures\nwith per-filesystem radix trees to allow scaling to a large number of\nin-memory dquot structures.\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": "f8739c3ce2ac9a01515b56026b6a066c0808234b",
      "tree": "c3f7b877b5be6e12c62028de7da46fef3e537dc7",
      "parents": [
        "48776fd22344ad80adcbac0abc9c0da60c6481d2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Mar 13 08:52:34 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Mar 14 11:09:06 2012 -0500"
      },
      "message": "xfs: per-filesystem dquot LRU lists\n\nReplace the global dquot lru lists with a per-filesystem one.\n\nNote that the shrinker isn\u0027t wire up to the per-superblock VFS shrinker\ninfrastructure as would have problems summing up and splitting the counts\nfor inodes and dquots.  I don\u0027t think this is a major problem as the quota\ncache isn\u0027t as interwinded with the inode cache as the dentry cache is,\nbecause an inode that is dropped from the cache will generally release\na dquot reference, but most of the time it won\u0027t be the last one.\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": "48776fd22344ad80adcbac0abc9c0da60c6481d2",
      "tree": "8ab09fce19aab58e0e451d16c98ff7d1e84dcc53",
      "parents": [
        "8f639ddea0c4978ae9b4e46ea041c9e5afe0ee8d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Mar 13 08:52:33 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Mar 14 11:09:06 2012 -0500"
      },
      "message": "xfs: use common code for quota statistics\n\nSwitch the quota code over to use the generic XFS statistics infrastructure.\nWhile the legacy /proc/fs/xfs/xqm and /proc/fs/xfs/xqmstats interfaces are\npreserved for now the statistics that still have a meaning with the current\ncode are now also available from /proc/fs/xfs/stats.\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": "8f639ddea0c4978ae9b4e46ea041c9e5afe0ee8d",
      "tree": "d2b90c868fd3ad818317e3fff8448d6940afb3d5",
      "parents": [
        "f5d8d5c4bf29c9f7754d9cbe5e27c785106ba872"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 29 09:53:55 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 13 17:18:14 2012 -0500"
      },
      "message": "xfs: reimplement fdatasync support\n\nAdd an in-memory only flag to say we logged timestamps only, and use it to\ncheck if fdatasync can optimize away the log force.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "f5d8d5c4bf29c9f7754d9cbe5e27c785106ba872",
      "tree": "edb30eef42b3a26e5e9c33448e85a812971cbc30",
      "parents": [
        "339a5f5dd9d3ac3d68a594d81507e1eab77ed223"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 29 09:53:54 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 13 17:08:17 2012 -0500"
      },
      "message": "xfs: split in-core and on-disk inode log item fields\n\nAdd a new ili_fields member to the inode log item to isolate the in-memory\nflags from the ones that actually go to the log.  This will allow tracking\ntimestamp-only updates for fdatasync and O_DSYNC in the next patch and\nprepares for divorcing the on-disk log format from the in-memory log item\na little further down the road.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "339a5f5dd9d3ac3d68a594d81507e1eab77ed223",
      "tree": "53419a7d43830e399ca7eaaa15488d68423bbd80",
      "parents": [
        "8a9c9980f24f6d86e0ec0150ed35fba45d0c9f88"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 29 09:53:53 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 13 17:05:08 2012 -0500"
      },
      "message": "xfs: make xfs_inode_item_size idempotent\n\nMove all code messing with the inode log item flags into xfs_inode_item_format\nto make sure xfs_inode_item_size really only calculates the the number of\nvectors, but doesn\u0027t modify any state of the inode item.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "8a9c9980f24f6d86e0ec0150ed35fba45d0c9f88",
      "tree": "df976343a603bad7e6bdc20db31c64f752312434",
      "parents": [
        "281627df3eb55e1b729b9bb06fff5ff112929646"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 29 09:53:52 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 13 17:01:15 2012 -0500"
      },
      "message": "xfs: log timestamp updates\n\nTimestamps on regular files are the last metadata that XFS does not update\ntransactionally.  Now that we use the delaylog mode exclusively and made\nthe log scode scale extremly well there is no need to bypass that code for\ntimestamp updates.  Logging all updates allows to drop a lot of code, and\nwill allow for further performance improvements later on.\n\nNote that this patch drops optimized handling of fdatasync - it will be\nadded back in a separate commit.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "281627df3eb55e1b729b9bb06fff5ff112929646",
      "tree": "ffb2d00056f661073f62fa42693970a4485b87b9",
      "parents": [
        "84803fb78237014cbbc86c0f012b273a199f4691"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Mar 13 08:41:05 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Mar 13 16:30:49 2012 -0500"
      },
      "message": "xfs: log file size updates at I/O completion time\n\nDo not use unlogged metadata updates and the VFS dirty bit for updating\nthe file size after writeback.  In addition to causing various problems\nwith updates getting delayed for far too long this also drags in the\nunscalable VFS dirty tracking, and is one of the few remaining unlogged\nmetadata updates.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "84803fb78237014cbbc86c0f012b273a199f4691",
      "tree": "5910f6bae119115d006f65dca3d8e698ed83fb42",
      "parents": [
        "6923e686f19cb7017fc9777a10e06c2e2b2a2936"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 29 09:53:50 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 05 11:53:16 2012 -0600"
      },
      "message": "xfs: log file size updates as part of unwritten extent conversion\n\nIf we convert and unwritten extent past the current i_size log the size update\nas part of the extent manipulation transactions instead of doing an unlogged\nmetadata update later.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "6923e686f19cb7017fc9777a10e06c2e2b2a2936",
      "tree": "14398306804485fd7c0f04538d76f042f5cec6d9",
      "parents": [
        "aa6bf01d391935a8929333bc2e243084ea0c58db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 29 09:53:49 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 05 11:19:26 2012 -0600"
      },
      "message": "xfs: do not require an ioend for new EOF calculation\n\nReplace xfs_ioend_new_eof with a new inline xfs_new_eof helper that\ndoesn\u0027t require and ioend, and is available also outside of xfs_aops.c.\n\nAlso make the code a bit more clear by using a normal if statement\ninstead of a slightly misleading MIN().\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "aa6bf01d391935a8929333bc2e243084ea0c58db",
      "tree": "686c204328f00ae91466267a9f1e85c3c8d767cb",
      "parents": [
        "4b217ed9e30f94b6e8e5e262020ef0ceab6113af"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 29 09:53:48 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Mar 05 11:07:42 2012 -0600"
      },
      "message": "xfs: use per-filesystem I/O completion workqueues\n\nThe new concurrency managed workqueues are cheap enough that we can create\nper-filesystem instead of global workqueues.  This allows us to remove the\ntrylock or defer scheme on the ilock, which is not helpful once we have\noutstanding log reservations until finishing a size update.\n\nAlso allow the default concurrency on this workqueues so that I/O completions\nblocking on the ilock for one inode do not block process for another inode.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "89605011915aec5c6194e53a9f02631d68aea6bc",
      "tree": "9c8745156d1fbefcf28cf0cf5114ed4c4ef63f4c",
      "parents": [
        "18535a7e019e6fb9cdcefd43007bc72a67bf99ee"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:28:17 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 29 14:09:06 2012 -0600"
      },
      "message": "xfs: include reservations in quota reporting\n\nReport all quota usage including the currently pending reservations.  This\navoids the need to flush delalloc space before gathering quota information,\nand matches quota enforcement, which already takes the reservations into\naccount.\n\nThis fixes xfstests 270.\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": "18535a7e019e6fb9cdcefd43007bc72a67bf99ee",
      "tree": "4ba178dbe89f1af932f1b447981490216448d08f",
      "parents": [
        "ad637a10f444fc66b1f6d4a28fe30d4c61ed0161"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:28:16 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 29 11:57:36 2012 -0600"
      },
      "message": "xfs: merge xfs_qm_export_dquot into xfs_qm_scall_getquota\n\nThe is no good reason to have these two separate, and for the next change\nwe would need the full struct xfs_dquot in xfs_qm_export_dquot, so better\njust fold the code now instead of changing it spuriously.\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": "ad637a10f444fc66b1f6d4a28fe30d4c61ed0161",
      "tree": "c4512d9553696d9d5e36e40a909c3f7dabdcb1fb",
      "parents": [
        "9006fb91cfdf22812923f0536c7531c429c1aeab"
      ],
      "author": {
        "name": "Alex Elder",
        "email": "elder@dreamhost.com",
        "time": "Thu Feb 16 22:01:00 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Sat Feb 25 13:55:49 2012 -0600"
      },
      "message": "xfs: only take the ILOCK in xfs_reclaim_inode()\n\nAt the end of xfs_reclaim_inode(), the inode is locked in order to\nwe wait for a possible concurrent lookup to complete before the\ninode is freed.  This synchronization step was taking both the ILOCK\nand the IOLOCK, but the latter was causing lockdep to produce\nreports of the possibility of deadlock.\n\nIt turns out that there\u0027s no need to acquire the IOLOCK at this\npoint anyway.  It may have been required in some earlier version of\nthe code, but there should be no need to take the IOLOCK in\nxfs_iget(), so there\u0027s no (longer) any need to get it here for\nsynchronization.  Add an assertion in xfs_iget() as a reminder\nof this assumption.\n\nDave Chinner diagnosed this on IRC, and Christoph Hellwig suggested\nno longer including the IOLOCK.  I just put together the patch.\n\nSigned-off-by: Alex Elder \u003celder@dreamhost.com\u003e\nReviewed-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": "9006fb91cfdf22812923f0536c7531c429c1aeab",
      "tree": "36b37fe3df405a57e8ede3d2a40ea6c307f40ae9",
      "parents": [
        "42ceedb3caffe67c4ec0dfbb78ce410832d429b9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:31 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:37:04 2012 -0600"
      },
      "message": "xfs: split and cleanup xfs_log_reserve\n\nSplit the log regrant case out of xfs_log_reserve into a separate function,\nand merge xlog_grant_log_space and xlog_regrant_write_log_space into their\nrespective callers.  Also replace the XFS_LOG_PERM_RESERV flag, which easily\ngot misused before the previous cleanups with a simple boolean parameter.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "42ceedb3caffe67c4ec0dfbb78ce410832d429b9",
      "tree": "ce067cc4db352f49391215b6904c7c8ebfbdbc8d",
      "parents": [
        "e179840d74606ab1935c83fe5ad9d93c95ddc956"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:30 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:34:03 2012 -0600"
      },
      "message": "xfs: share code for grant head availability checks\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "e179840d74606ab1935c83fe5ad9d93c95ddc956",
      "tree": "47899d69dd92e2e804c7cf47f9cc53abdafdf335",
      "parents": [
        "23ee3df349b8b8fd153bd02fccf08b31aec5bce3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:29 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:31:45 2012 -0600"
      },
      "message": "xfs: share code for grant head wakeups\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "23ee3df349b8b8fd153bd02fccf08b31aec5bce3",
      "tree": "6ed2f0a4ab33da6b315a9c484e130849ebca8875",
      "parents": [
        "a79bf2d75b8f96bcdb6714138cd53cb3c358669c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:28 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:29:39 2012 -0600"
      },
      "message": "xfs: share code for grant head waiting\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "a79bf2d75b8f96bcdb6714138cd53cb3c358669c",
      "tree": "50c5e40becc5559133c29332f947750fe72529e8",
      "parents": [
        "c303c5b8c3b8eace41c4fba26205b50c0f8e4ca0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:27 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:26:47 2012 -0600"
      },
      "message": "xfs: add xlog_grant_head_wake_all\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "c303c5b8c3b8eace41c4fba26205b50c0f8e4ca0",
      "tree": "61f959e5c3729349f79b9d47224b1a06ba443602",
      "parents": [
        "28496968a6ac37c8b8c44b5156e633c581bb8378"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:26 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:21:39 2012 -0600"
      },
      "message": "xfs: add xlog_grant_head_init\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "28496968a6ac37c8b8c44b5156e633c581bb8378",
      "tree": "4e0c38612e2718e87219e00b7a3152d53393d145",
      "parents": [
        "14a7235fba4302a82d61150eda92ec90d3ae9cfb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:25 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:19:53 2012 -0600"
      },
      "message": "xfs: add the xlog_grant_head structure\n\nAdd a new data structure to allow sharing code between the log grant and\nregrant code.\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "14a7235fba4302a82d61150eda92ec90d3ae9cfb",
      "tree": "e0a43b6367bef41f68137279552caf7b53a43010",
      "parents": [
        "cfb7cdca0aca5ee2e2ef491284bf1edc3b581885"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:24 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:17:00 2012 -0600"
      },
      "message": "xfs: remove log space waitqueues\n\nThe tic-\u003et_wait waitqueues can never have more than a single waiter\non them, so we can easily replace them with a task_struct pointer\nand wake_up_process.\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "cfb7cdca0aca5ee2e2ef491284bf1edc3b581885",
      "tree": "2d3398752711b7b0215cba1aa2cc06fc8a44163d",
      "parents": [
        "5b03ff1b2444ddf7b8084b7505101e97257aff5a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:23 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:17:00 2012 -0600"
      },
      "message": "xfs: cleanup xfs_log_space_wake\n\nRemove the now unused opportunistic parameter, and use the the\nxlog_writeq_wake and xlog_reserveq_wake helpers now that we don\u0027t have\nto care about the opportunistic wakeups.\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "5b03ff1b2444ddf7b8084b7505101e97257aff5a",
      "tree": "25f783fa62973601e40d6af29ccf44a51b35267a",
      "parents": [
        "3af1de753b3caf9fa3762b4b1b85d833c121847e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:22 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:17:00 2012 -0600"
      },
      "message": "xfs: remove xfs_trans_unlocked_item\n\nThere is no reason to wake up log space waiters when unlocking inodes or\ndquots, and the commit log has no explanation for this function either.\n\nGiven that we now have exact log space wakeups everywhere we can assume\nthe reason for this function was to paper over log space races in earlier\nXFS versions.\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "3af1de753b3caf9fa3762b4b1b85d833c121847e",
      "tree": "ac204af972bcf3c7a4b913276ab32aa93426fe12",
      "parents": [
        "09a423a3d6c70905f1090f01aadb8e6abff527ce"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:21 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:17:00 2012 -0600"
      },
      "message": "xfs: do exact log space wakeups in xlog_ungrant_log_space\n\nThe only reason that xfs_log_space_wake had to do opportunistic wakeups\nwas that the old xfs_log_move_tail calling convention didn\u0027t allow for\nexact wakeups when not updating the log tail LSN.  Since this issue has\nbeen fixed we can do exact wakeups now.\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "09a423a3d6c70905f1090f01aadb8e6abff527ce",
      "tree": "7bbe94301c348add4bb9e11b253b3f9617ef3573",
      "parents": [
        "70b5437653d9c6c8de287affd38836cce98ebde5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:31:20 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 22:17:00 2012 -0600"
      },
      "message": "xfs: split tail_lsn assignments from log space wakeups\n\nCurrently xfs_log_move_tail has a tail_lsn argument that is horribly\noverloaded: it may contain either an actual lsn to assign to the log tail,\n0 as a special case to use the last sync LSN, or 1 to indicate that no tail\nLSN assignment should be performed, and we should opportunisticly wake up\nat one task waiting for log space even if we did not move the LSN.\n\nRemove the tail lsn assigned from xfs_log_move_tail and make the two callers\nuse xlog_assign_tail_lsn instead of the current variant of partially using\nthe code in xfs_log_move_tail and partially opencoding it.  Note that means\nwe grow an addition lock roundtrip on the AIL lock for each bulk update\nor delete, which is still far less than what we had before introducing the\nbulk operations.  If this proves to be a problem we can still add a variant\nof xlog_assign_tail_lsn that expects the lock to be held already.\n\nAlso rename the remainder of xfs_log_move_tail to xfs_log_space_wake as\nthat name describes its functionality much better.\n\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\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": "70b5437653d9c6c8de287affd38836cce98ebde5",
      "tree": "2b6c3e0dc27c3e3fedb0d455640ecacfb758f1dc",
      "parents": [
        "33e0edafd78d83273c14b14501cff063fac528e5"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Feb 06 12:51:05 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 22 21:47:52 2012 -0600"
      },
      "message": "xfs: cleanup quota check on disk blocks and inodes reservations\n\nThis patch is a cleanup of quota check on disk blocks and inodes\nreservations, and changes it as follows.\n\n(1) add a total_count variable to store the total number of\n    current usages and new reservations for disk blocks and inodes,\n    respectively.\n\n(2) make it more readable to check if the local variables softlimit\n    and hardlimit are positive. It has been changed as follows.\n\t    if (softlimit \u003e 0ULL) -\u003e if (softlimit)\n\t    if (hardlimit \u003e 0ULL) -\u003e if (hardlimit)\n    This is because they are defined as xfs_qcnt_t which is unsigned.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "33e0edafd78d83273c14b14501cff063fac528e5",
      "tree": "7013fa079406cd6fecda0dd79b49ecf41383d1c2",
      "parents": [
        "d0a3fe67e30261bb2018d2a06f33ff3303438c8e"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Feb 06 12:50:30 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Feb 21 10:13:59 2012 -0600"
      },
      "message": "xfs: make inode quota check more general\n\nThe xfs checks quota when reserving disk blocks and inodes. In the block\nreservation, it checks if the total number of blocks including current\nusage and new reservation exceed quota. In the inode reservation,\nit checks using the total number of inodes including only current usage\nwithout new reservation. However, this inode quota check works well\nsince the caller of xfs_trans_dquot() always sets the argument of the\nnumber of new inode reservation to 1 or 0 and inode is reserved one by\none in current xfs.\n\nTo make it more general, this patch changes it to the same way as the\nblock quota check.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit c922bbc819324558e61402a7a76c10c550ca61bc)\n"
    },
    {
      "commit": "d0a3fe67e30261bb2018d2a06f33ff3303438c8e",
      "tree": "de66c14ce3b0d75bbf0a1827a3eda369331af2ec",
      "parents": [
        "f65020a83ad570c1788f7d8ece67f3487166576b"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Feb 06 12:50:07 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Feb 21 10:13:49 2012 -0600"
      },
      "message": "xfs: change available ranges of softlimit and hardlimit in quota check\n\nIn general, quota allows us to use disk blocks and inodes up to each\nlimit, that is, they are available if they don\u0027t exceed their limitations.\nCurrent xfs sets their available ranges to lower than them except disk\ninode quota check. So, this patch changes the ranges to not beyond them.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 20f12d8ac01917d96860f352f67eddd912df0afb)\n"
    },
    {
      "commit": "c922bbc819324558e61402a7a76c10c550ca61bc",
      "tree": "814a1581f08d46b5494d514973e24e057af3ded5",
      "parents": [
        "20f12d8ac01917d96860f352f67eddd912df0afb"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Feb 06 12:50:30 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Feb 21 10:12:43 2012 -0600"
      },
      "message": "xfs: make inode quota check more general\n\nThe xfs checks quota when reserving disk blocks and inodes. In the block\nreservation, it checks if the total number of blocks including current\nusage and new reservation exceed quota. In the inode reservation,\nit checks using the total number of inodes including only current usage\nwithout new reservation. However, this inode quota check works well\nsince the caller of xfs_trans_dquot() always sets the argument of the\nnumber of new inode reservation to 1 or 0 and inode is reserved one by\none in current xfs.\n\nTo make it more general, this patch changes it to the same way as the\nblock quota check.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "20f12d8ac01917d96860f352f67eddd912df0afb",
      "tree": "4923e5efeaa4a00121cb7f7617de000484e300e8",
      "parents": [
        "05293485a0b6b1f803e8a3c0ff188c38f6969985"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Mon Feb 06 12:50:07 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Feb 21 10:12:43 2012 -0600"
      },
      "message": "xfs: change available ranges of softlimit and hardlimit in quota check\n\nIn general, quota allows us to use disk blocks and inodes up to each\nlimit, that is, they are available if they don\u0027t exceed their limitations.\nCurrent xfs sets their available ranges to lower than them except disk\ninode quota check. So, this patch changes the ranges to not beyond them.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Mark Tinguely \u003ctinguely@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "f65020a83ad570c1788f7d8ece67f3487166576b",
      "tree": "adb5c61454fc33843e6a6b1abca2448a3f92d967",
      "parents": [
        "92b2e5b31dd2ad2c9273578c2289d17f417fe32d"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Feb 13 20:51:05 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Feb 13 17:09:21 2012 -0600"
      },
      "message": "XFS: xfs_trans_add_item() - don\u0027t assign in ASSERT() when compare is intended\n\nIt looks to me like the two ASSERT()s in xfs_trans_add_item() really\nwant to do a compare (\u003d\u003d) rather than assignment (\u003d).\nThis patch changes it from the latter to the former.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 05293485a0b6b1f803e8a3c0ff188c38f6969985)\n"
    },
    {
      "commit": "05293485a0b6b1f803e8a3c0ff188c38f6969985",
      "tree": "c7e62a4dc1a423ae2e7e591f50cd71fcb681919f",
      "parents": [
        "04da0c8196ac0b12fb6b84f4b7a51ad2fa56d869"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Feb 13 20:51:05 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Mon Feb 13 17:06:39 2012 -0600"
      },
      "message": "XFS: xfs_trans_add_item() - don\u0027t assign in ASSERT() when compare is intended\n\nIt looks to me like the two ASSERT()s in xfs_trans_add_item() really\nwant to do a compare (\u003d\u003d) rather than assignment (\u003d).\nThis patch changes it from the latter to the former.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n"
    },
    {
      "commit": "92b2e5b31dd2ad2c9273578c2289d17f417fe32d",
      "tree": "312cdaf3479d943234d2a887a4395aa9626f6442",
      "parents": [
        "4177af3a8a6f119484c7903845c6693d7381c13e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 01 13:57:20 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Feb 10 12:38:09 2012 -0600"
      },
      "message": "xfs: use a normal shrinker for the dquot freelist\n\nStop reusing dquots from the freelist when allocating new ones directly, and\nimplement a shrinker that actually follows the specifications for the\ninterface.  The shrinker implementation is still highly suboptimal at this\npoint, but we can gradually work on it.\n\nThis also fixes an bug in the previous lock ordering, where we would take\nthe hash and dqlist locks inside of the freelist lock against the normal\nlock ordering.  This is only solvable by introducing the dispose list,\nand thus not when using direct reclaim of unused dquots for new allocations.\n\nAs a side-effect the quota upper bound and used to free ratio values in\n/proc/fs/xfs/xqm are set to 0 as these values don\u0027t make any sense in the\nnew world order.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n(cherry picked from commit 04da0c8196ac0b12fb6b84f4b7a51ad2fa56d869)\n"
    },
    {
      "commit": "04da0c8196ac0b12fb6b84f4b7a51ad2fa56d869",
      "tree": "1348207af6e7824a9baa268236768b857db00712",
      "parents": [
        "4505360376637832f79f84f352588b0a045ad113"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Feb 01 13:57:20 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Feb 10 12:02:05 2012 -0600"
      },
      "message": "xfs: use a normal shrinker for the dquot freelist\n\nStop reusing dquots from the freelist when allocating new ones directly, and\nimplement a shrinker that actually follows the specifications for the\ninterface.  The shrinker implementation is still highly suboptimal at this\npoint, but we can gradually work on it.\n\nThis also fixes an bug in the previous lock ordering, where we would take\nthe hash and dqlist locks inside of the freelist lock against the normal\nlock ordering.  This is only solvable by introducing the dispose list,\nand thus not when using direct reclaim of unused dquots for new allocations.\n\nAs a side-effect the quota upper bound and used to free ratio values in\n/proc/fs/xfs/xqm are set to 0 as these values don\u0027t make any sense in the\nnew world order.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "4177af3a8a6f119484c7903845c6693d7381c13e",
      "tree": "3d5c5179e0c11bfc85d84a62f6bfabec6632bf9c",
      "parents": [
        "6bd92a239fc71ea26eb1dab3aece5eaaa99d4ef7"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Jan 23 17:31:43 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Feb 03 11:32:20 2012 -0600"
      },
      "message": "Define new macro XFS_ALL_QUOTA_ACTIVE and simply some usage\n\nDefine new macro XFS_ALL_QUOTA_ACTIVE and simply some usage\nof quota macros.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "6bd92a239fc71ea26eb1dab3aece5eaaa99d4ef7",
      "tree": "675da1fb11cb8e36edbfb098ac07c0861f6b51f2",
      "parents": [
        "36731410834e08c7d15c3980abd6cc4c563c2e87"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Jan 23 17:31:37 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Feb 03 11:21:33 2012 -0600"
      },
      "message": "Change xfs_sb_from_disk() interface to take a mount pointer\n\nChange xfs_sb_from_disk() interface to take a mount pointer\ninstead of a superblock pointer.\n\nThis is to print mount point specific error messages in future\nfixes.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "36731410834e08c7d15c3980abd6cc4c563c2e87",
      "tree": "22823adcd10572766aa37d98bb7f5c3dcc248189",
      "parents": [
        "6967b964c1012231f338445f20f877e680cd4cb8"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Jan 23 17:31:30 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Feb 03 10:53:39 2012 -0600"
      },
      "message": "Define a new function xfs_inode_dquot()\n\nDefine a new function xfs_inode_dquot() that takes a inode pointer\nand a disk quota type and returns the quota pointer for the specified\nquota type.\n\nThis simplifies the xfs_qm_dqget() error path significantly.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "6967b964c1012231f338445f20f877e680cd4cb8",
      "tree": "bbf07cd6220f957eed9dead914f8603548c21fbb",
      "parents": [
        "b9957308452afcf58e656db834f44df10d7b1662"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Jan 23 17:31:25 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Feb 03 09:42:53 2012 -0600"
      },
      "message": "Define a new function xfs_this_quota_on()\n\nCreate a new function xfs_this_quota_on() that takes a xfs_mount\ndata structure and a disk quota type and returns true if the specified\ntype of quota is ON in the xfs_mount data structure.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "b9957308452afcf58e656db834f44df10d7b1662",
      "tree": "73f1b10f46ac7cb94042fb4c714ccdf4828c0d6f",
      "parents": [
        "021000e59c0db2d3a8113e906bde3183c33fa84b"
      ],
      "author": {
        "name": "Amit Sahrawat",
        "email": "amit.sahrawat83@gmail.com",
        "time": "Mon Jan 16 12:24:36 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Thu Feb 02 17:08:04 2012 -0600"
      },
      "message": "xfs: kill the unused XFS_BB_FSB_OFFSET macro\n\nRemoving the macro, as this is no more needed in the code.\nTried to find the reference when it was last used - but the usage\nfor this seemed to have been dropped long time ago.\n\nSigned-off-by: Amit Sahrawat \u003camit.sahrawat83@gmail.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "021000e59c0db2d3a8113e906bde3183c33fa84b",
      "tree": "dda591a89ef4d3fbf71983e491c65a6b6525920a",
      "parents": [
        "4505360376637832f79f84f352588b0a045ad113"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Fri Jan 13 05:58:39 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 31 13:37:33 2012 -0600"
      },
      "message": "xfs: show uuid when mount fails due to duplicate uuid\n\nWhen a system tries to mount a filesystem (FS) using UUID, the xfs\nreturns -EINVAL and shows a message if a FS with the same UUID has\nbeen already mounted. It is useful to output the duplicate UUID\nwith it.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "4505360376637832f79f84f352588b0a045ad113",
      "tree": "d0b00507b1d1c19684cddf402d995599a2e5cbef",
      "parents": [
        "9b025eb3a89e041bab6698e3858706be2385d692"
      ],
      "author": {
        "name": "Mitsuo Hayasaka",
        "email": "mitsuo.hayasaka.hu@hitachi.com",
        "time": "Fri Jan 27 06:37:26 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 31 12:11:18 2012 -0600"
      },
      "message": "xfs: pass KM_SLEEP flag to kmem_realloc() in xlog_recover_add_to_cnt_trans()\n\nThe kmem_realloc() in xfs is given KM_* memory allocation flags. And it\nallocates memory using kmalloc() after they are converted to gfp_mask\nflags. In xlog_recover_add_to_cont_trans(), 0u is passed to kmem_realloc(),\ninstead of them. I guess it is preferred to use them, and here memory must\nbe allocated but don\u0027t have to be done with GFP_ATOMIC. So, this patch\nchanges it to KM_SLEEP.\n\nSigned-off-by: Mitsuo Hayasaka \u003cmitsuo.hayasaka.hu@hitachi.com\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "9b025eb3a89e041bab6698e3858706be2385d692",
      "tree": "acb29c488c3f538c2041e279b701b0965cd9667b",
      "parents": [
        "dcd6c92267155e70a94b3927bce681ce74b80d1f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 11 18:52:10 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Jan 25 11:01:31 2012 -0600"
      },
      "message": "xfs: Fix missing xfs_iunlock() on error recovery path in xfs_readlink()\n\nCommit b52a360b forgot to call xfs_iunlock() when it detected corrupted\nsymplink and bailed out. Fix it by jumping to \u0027out\u0027 instead of doing return.\n\nCC: stable@kernel.org\nCC: Carlos Maiolino \u003ccmaiolino@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Alex Elder \u003celder@kernel.org\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e \n"
    },
    {
      "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"
    }
  ],
  "next": "78e55892d65ea69fbf252e086375d0d8f081b6c8"
}
