)]}'
{
  "log": [
    {
      "commit": "b0710ccc6d9fa8fb908b5f6d1b0782a09d80e24f",
      "tree": "1cbb8a6e5d1257e4154d2117a61fcc37f54fee0d",
      "parents": [
        "075fe1028699f6a280545dfc2cfc5ac82d555c8c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:37:11 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:37:11 2009 +0200"
      },
      "message": "xfs: remove SYNC_IOWAIT\n\nWe want to wait for all I/O to finish when we do data integrity syncs.  So\nthere is no reason to keep SYNC_WAIT separate from SYNC_IOWAIT.  This\ncauses a little change in behaviour for the ENOSPC flushing code which now\ndoes a second submission and wait of buffered I/O, but that should finish\nASAP as we already did an asynchronous writeout earlier.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "075fe1028699f6a280545dfc2cfc5ac82d555c8c",
      "tree": "af17172ddc4d97d73b6a9a39f6dcf0ca2659fcdc",
      "parents": [
        "fe588ed32867b42e0d906db558ca92fd9f8b128e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:35:48 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:48 2009 +0200"
      },
      "message": "xfs: split xfs_sync_inodes\n\nxfs_sync_inodes is used to write back either file data or inode metadata.\nIn general we always do these separately, except for one fishy case in\nxfs_fs_put_super that does both.  So separate xfs_sync_inodes into\nseparate xfs_sync_data and xfs_sync_attr functions.  In xfs_fs_put_super\nwe first call the data sync and then the attr sync as that was the previous\norder.  The moved log force in that path doesn\u0027t make a difference because\nwe will force the log again as part of the real unmount process.\n\nThe filesystem readonly checks are not performed by the new function but\ninstead moved into the callers, given that most callers alredy have it\nfurther up in the stack.  Also add debug checks that we do not pass in\nincorrect flags in the new xfs_sync_data and xfs_sync_attr function and\nfix the one place that did pass in a wrong flag.\n\nAlso remove a comment mentioning xfs_sync_inodes that has been incorrect\nfor a while because we always take either the iolock or ilock in the\nsync path these days.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "fe588ed32867b42e0d906db558ca92fd9f8b128e",
      "tree": "4d5c6a5e34ebf1a0c2a82d3d1c08c272d5823264",
      "parents": [
        "75f3cb1393133682958db6f157e1b6473e5a366b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:35:27 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:27 2009 +0200"
      },
      "message": "xfs: use generic inode iterator in xfs_qm_dqrele_all_inodes\n\nUse xfs_inode_ag_iterator instead of opencoding the inode walk in the\nquota code.  Mark xfs_inode_ag_iterator and xfs_sync_inode_valid non-static\nto allow using them from the quota code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "75f3cb1393133682958db6f157e1b6473e5a366b",
      "tree": "e2e22c20c20e7d37e64b8f7fa4148253be01364a",
      "parents": [
        "abc1064742604e60a47a65fa3214dc1a84db093d"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jun 08 15:35:14 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:14 2009 +0200"
      },
      "message": "xfs: introduce a per-ag inode iterator\n\nGiven that we walk across the per-ag inode lists so often, it makes sense to\nintroduce an iterator for this.\n\nConvert the sync and reclaim code to use this new iterator, quota code will\nfollow in the next patch.\n\nAlso change xfs_reclaim_inode to return -EGAIN instead of 1 for an inode\nalready under reclaim.  This simplifies the AG iterator and doesn\u0027t\nmatter for the only other caller.\n\n[hch: merged the lookup and execute callbacks back into one to get the\n pag_ici_lock locking correct and simplify the code flow]\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "abc1064742604e60a47a65fa3214dc1a84db093d",
      "tree": "eeefefeaae0783b8943e99b68b27547c575d5194",
      "parents": [
        "1da8eecab5f866b4f5be43adbaadf18e259a8cc5"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jun 08 15:35:12 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:12 2009 +0200"
      },
      "message": "xfs: remove unused parameter from xfs_reclaim_inodes\n\nThe noblock parameter of xfs_reclaim_inodes is only ever set to zero. Remove\nit and all the conditional code that is never executed.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "1da8eecab5f866b4f5be43adbaadf18e259a8cc5",
      "tree": "0edb76f83331e1844e01e451afe5eb67774bf6d4",
      "parents": [
        "845b6d0cbbc2304e8a54ed4038272c55f85b2269"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jun 08 15:35:07 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:07 2009 +0200"
      },
      "message": "xfs: factor out inode validation for sync\n\nSeparate the validation of inodes found by the radix\ntree walk from the radix tree lookup.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "845b6d0cbbc2304e8a54ed4038272c55f85b2269",
      "tree": "1c8e9270f7e78a0525f1873cef4d017618e06632",
      "parents": [
        "5a34d5cd096310133f9208db294021208a96660d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:35:05 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:05 2009 +0200"
      },
      "message": "xfs: split inode flushing from xfs_sync_inodes_ag\n\nIn many cases we only want to sync inode metadata. Split out the inode\nflushing into a separate helper to prepare factoring the inode sync code.\n\nBased on a patch from Dave Chinner, but redone to keep the current behaviour\nexactly and leave changes to the flushing logic to another patch.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "5a34d5cd096310133f9208db294021208a96660d",
      "tree": "66485ce654aada42bc41bd7b20fcf1a083d9aa0b",
      "parents": [
        "7d095257e321214e4cf359abd131ba1f09c60cba"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jun 08 15:35:03 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:35:03 2009 +0200"
      },
      "message": "xfs: split inode data writeback from xfs_sync_inodes_ag\n\nIn many cases we only want to sync inode data. Start spliting the inode sync\ninto data sync and inode sync by factoring out the inode data flush.\n\n[hch: minor cleanups]\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "7d095257e321214e4cf359abd131ba1f09c60cba",
      "tree": "3f71e2650651616f8ba168b64a82ab48aedef14c",
      "parents": [
        "0c5e1ce89f1eacc366ec421c0f5f681159479c28"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:33:32 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:33:32 2009 +0200"
      },
      "message": "xfs: kill xfs_qmops\n\nKill the quota ops function vector and replace it with direct calls or\nstubs in the CONFIG_XFS_QUOTA\u003dn case.\n\nMake sure we check XFS_IS_QUOTA_RUNNING in the right spots.  We can remove\nthe number of those checks because the XFS_TRANS_DQ_DIRTY flag can\u0027t be set\notherwise.\n\nThis brings us back closer to the way this code worked in IRIX and earlier\nLinux versions, but we keep a lot of the more useful factoring of common\ncode.\n\nEventually we should also kill xfs_qm_bhv.c, but that\u0027s left for a later\npatch.\n\nReduces the size of the source code by about 250 lines and the size of\nXFS module by about 1.5 kilobytes with quotas enabled:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 615957\t   2960\t   3848\t 622765\t  980ad\tfs/xfs/xfs.o\n 617231\t   3152\t   3848\t 624231\t  98667\tfs/xfs/xfs.o.old\n\nFallout:\n\n - xfs_qm_dqattach is split into xfs_qm_dqattach_locked which expects\n   the inode locked and xfs_qm_dqattach which does the locking around it,\n   thus removing XFS_QMOPT_ILOCKED.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "0c5e1ce89f1eacc366ec421c0f5f681159479c28",
      "tree": "c73fb303fa25d58773ecb989c428041994933b92",
      "parents": [
        "e1696834e8a15d7ef9ae8ffdffe00bac1399a2e3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:33:21 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:33:21 2009 +0200"
      },
      "message": "xfs: validate quota log items during log recovery\n\nArkadiusz has seen really strange crashes in xfs_qm_dqcheck that\nI can only explain by a log item being too smal to actually fit the\nxfs_dqblk_t we\u0027re dereferencing all over xfs_qm_dqcheck.  So add\ngraceful checks for NULL or too small quota items to the log recovery\ncode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "e1696834e8a15d7ef9ae8ffdffe00bac1399a2e3",
      "tree": "456df7fe129e1cd08a2bee149dc2ac5e96767ee5",
      "parents": [
        "4156e735d3abde8e9243b5d22f7999dd3fffab2e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 15:32:59 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Jun 08 15:32:59 2009 +0200"
      },
      "message": "xfs: update max log size\n\nCommit a6634fba3dec4a92f0a2c4e30c80b634c0576ad5 in xfsprogs increased the\nmaximum log size supported by mkfs.  Merged back the changes to xfs_fs.h\nso the growfs enforced the same limit and the headers are in sync.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\n"
    },
    {
      "commit": "4156e735d3abde8e9243b5d22f7999dd3fffab2e",
      "tree": "d69552f9eafbe62715366d7c9617259e7eeff672",
      "parents": [
        "096324873f9c7172a17aff9db1356f4f01b77afe"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Jun 01 13:13:24 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Jun 01 13:13:24 2009 -0500"
      },
      "message": "xfs: prevent deadlock in xfs_qm_shake()\n\nIt\u0027s possible to recurse into filesystem from the memory\nallocation, which deadlocks in xfs_qm_shake(). Add check\nfor __GFP_FS, and bail out if it is not set.\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Hedi Berriche \u003chedi@sgi.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "096324873f9c7172a17aff9db1356f4f01b77afe",
      "tree": "676a1a98cd00c9c7ad1736930c5dc28acce8a192",
      "parents": [
        "ec91d1335f478c5cd089d82ffbf936075c5f24c8"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sat May 23 14:30:12 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue May 26 17:46:37 2009 -0500"
      },
      "message": "xfs: fix overflow in xfs_growfs_data_private\n\nIn the case where growing a filesystem would leave the last AG\ntoo small, the fixup code has an overflow in the calculation\nof the new size with one fewer ag, because \"nagcount\" is a 32\nbit number.  If the new filesystem has \u003e 2^32 blocks in it\nthis causes a problem resulting in an EINVAL return from growfs:\n\n # xfs_io -f -c \"truncate 19998630180864\" fsfile\n # mkfs.xfs -f -bsize\u003d4096 -dagsize\u003d76288719b,size\u003d3905982455b fsfile\n # mount -o loop fsfile /mnt\n # xfs_growfs /mnt\n\nmeta-data\u003d/dev/loop0             isize\u003d256    agcount\u003d52,\nagsize\u003d76288719 blks\n         \u003d                       sectsz\u003d512   attr\u003d2\ndata     \u003d                       bsize\u003d4096   blocks\u003d3905982455, imaxpct\u003d5\n         \u003d                       sunit\u003d0      swidth\u003d0 blks\nnaming   \u003dversion 2              bsize\u003d4096   ascii-ci\u003d0\nlog      \u003dinternal               bsize\u003d4096   blocks\u003d32768, version\u003d2\n         \u003d                       sectsz\u003d512   sunit\u003d0 blks, lazy-count\u003d0\nrealtime \u003dnone                   extsz\u003d4096   blocks\u003d0, rtextents\u003d0\nxfs_growfs: XFS_IOC_FSGROWFSDATA xfsctl failed: Invalid argument\n\nReported-by: richard.ems@cape-horn-eng.com\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "ec91d1335f478c5cd089d82ffbf936075c5f24c8",
      "tree": "a17f277b51ece8ffa9c5dae796372d7140c77a4c",
      "parents": [
        "6321e3ed2acf3ee9643cdd403e1c88605d7944ba"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu May 07 19:49:45 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri May 08 00:29:44 2009 -0500"
      },
      "message": "xfs: fix double unlock in xfs_swap_extents()\n\nRegreesion from commit ef8f7fc, which rearranged the code in\nxfs_swap_extents() leading to double unlock of xfs inode ilock.\nThat resulted in xfs_fsr deadlocking itself on platforms, which\ndon\u0027t handle double unlock of rw_semaphore nicely. It caused the\ncount go negative, which represents the write holder, without\nreally having one. ia64 is one of the platforms where deadlock\nwas easily reproduced and the fix was tested.\n\nSigned-off-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "6321e3ed2acf3ee9643cdd403e1c88605d7944ba",
      "tree": "42ccd5dd1082d291089fec1aa6e8b6a84866bb0c",
      "parents": [
        "4be4a00fb55879ef44b5914c189aecffa828deb4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 24 08:39:02 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Apr 29 13:25:29 2009 -0500"
      },
      "message": "xfs: fix getbmap vs mmap deadlock\n\nxfs_getbmap (or rather the formatters called by it) copy out the getbmap\nstructures under the ilock, which can deadlock against mmap.  This has\nbeen reported via bugzilla a while ago (#717) and has recently also\nshown up via lockdep.\n\nSo allocate a temporary buffer to format the kernel getbmap structures\ninto and then copy them out after dropping the locks.\n\nA little problem with this is that we limit the number of extents we\ncan copy out by the maximum allocation size, but I see no real way\naround that.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "4be4a00fb55879ef44b5914c189aecffa828deb4",
      "tree": "ed9191f7aafa17205f6044cc4bab5ffd06f9a3cd",
      "parents": [
        "2ac00af7a6d2e65013e6f28bd1f37c0cd98ba134"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Apr 29 10:50:48 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Apr 29 10:00:01 2009 -0500"
      },
      "message": "xfs: a couple getbmap cleanups\n\n - reshuffle various conditionals for data vs attr fork to make the code\n   more readable\n - do fine-grainded goto-based error handling\n - exit early from conditionals instead of keeping a long else branch around\n - allow kmem_alloc to fail\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "2ac00af7a6d2e65013e6f28bd1f37c0cd98ba134",
      "tree": "a04390733906bc8bb9d26c0a8dce12279cbb83cf",
      "parents": [
        "f25181f598cf4a8ccc40a51d8b74f8b555ecddee"
      ],
      "author": {
        "name": "Olaf Weber",
        "email": "olaf@sgi.com",
        "time": "Fri Apr 17 16:12:45 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Apr 29 09:24:29 2009 -0500"
      },
      "message": "xfs: add more checks to superblock validation\n\nThere had been reports where xfs filesystem was randomly\ncorrupted with fsfuzzer, and xfs failed to handle it\ngracefully. This patch fixes couple of reported problem\nby providing additional checks in the superblock\nvalidation routine.\n\nSigned-off-by: Olaf Weber \u003colaf@sgi.com\u003e\nReviewed-by: Josef \u0027Jeff\u0027 Sipek \u003cjeffpc@josefsipek.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "f25181f598cf4a8ccc40a51d8b74f8b555ecddee",
      "tree": "c27dcad813a3e5aeb8c96017ff1a81f736dfef08",
      "parents": [
        "8de2bf937a6bea8f0f775fd5399ba20c1a0c3d77"
      ],
      "author": {
        "name": "Lachlan McIlroy",
        "email": "lmcilroy@redhat.com",
        "time": "Thu Apr 23 22:18:00 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Apr 29 09:14:10 2009 -0500"
      },
      "message": "xfs_file_last_byte() needs to acquire ilock\n\nWe had some systems crash with this stack:\n\n[\u003ca00000010000cb20\u003e] ia64_leave_kernel+0x0/0x280\n[\u003ca00000021291ca00\u003e] xfs_bmbt_get_startoff+0x0/0x20 [xfs]\n[\u003ca0000002129080b0\u003e] xfs_bmap_last_offset+0x210/0x280 [xfs]\n[\u003ca00000021295b010\u003e] xfs_file_last_byte+0x70/0x1a0 [xfs]\n[\u003ca00000021295b200\u003e] xfs_itruncate_start+0xc0/0x1a0 [xfs]\n[\u003ca0000002129935f0\u003e] xfs_inactive_free_eofblocks+0x290/0x460 [xfs]\n[\u003ca000000212998fb0\u003e] xfs_release+0x1b0/0x240 [xfs]\n[\u003ca0000002129ad930\u003e] xfs_file_release+0x70/0xa0 [xfs]\n[\u003ca000000100162ea0\u003e] __fput+0x1a0/0x420\n[\u003ca000000100163160\u003e] fput+0x40/0x60\n\nThe problem here is that xfs_file_last_byte() does not acquire the\ninode lock and can therefore race with another thread that is modifying\nthe extext list.  While xfs_bmap_last_offset() is trying to lookup\nwhat was the last extent some extents were merged and the extent list\nshrunk so the index we lookup is now beyond the end of the extent list\nand potentially in a freed buffer.\n\nSigned-off-by: Lachlan McIlroy \u003clmcilroy@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "8de2bf937a6bea8f0f775fd5399ba20c1a0c3d77",
      "tree": "d48f944faf9c324cfcd197ab802ff7c4504e04ec",
      "parents": [
        "153fec43ce5264dfe9f3530b281a2e940b25a0a8"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:49:12 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:49:12 2009 +0200"
      },
      "message": "xfs: remove xfs_flush_space\n\nThe only thing we need to do now when we get an ENOSPC condition during delayed\nallocation reservation is flush all the other inodes with delalloc blocks on\nthem and retry without EOF preallocation. Remove the unneeded mess that is\nxfs_flush_space() and just call xfs_flush_inodes() directly from\nxfs_iomap_write_delay().\n\nAlso, change the location of the retry label to avoid trying to do EOF\npreallocation because we don\u0027t want to do that at ENOSPC. This enables us to\nremove the BMAPI_SYNC flag as it is no longer used.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "153fec43ce5264dfe9f3530b281a2e940b25a0a8",
      "tree": "803fa00839de5702a0349b434d24a788e9753d4e",
      "parents": [
        "e43afd72d2455defd63a3f94f22fa09b586e58ed"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:48:30 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:48:30 2009 +0200"
      },
      "message": "xfs: flush delayed allcoation blocks on ENOSPC in create\n\nIf we are creating lots of small files, we can fail to get\na reservation for inode create earlier than we should due to\nEOF preallocation done during delayed allocation reservation.\nHence on the first reservation ENOSPC failure flush all the\ndelayed allocation blocks out of the system and retry.\n\nThis fixes the last commonly triggered spurious ENOSPC issue\nthat has been reported.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e43afd72d2455defd63a3f94f22fa09b586e58ed",
      "tree": "a883a748374d5f63bf030dcf445723a901f88357",
      "parents": [
        "5825294edd3364cbba6514f70d88debec4f6cec7"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:47:27 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:47:27 2009 +0200"
      },
      "message": "xfs: block callers of xfs_flush_inodes() correctly\n\nxfs_flush_inodes() currently uses a magic timeout to wait for\nsome inodes to be flushed before returning. This isn\u0027t\nreally reliable but used to be the best that could be done\ndue to deadlock potential of waiting for the entire flush.\n\nNow the inode flush is safe to execute while we hold page\nand inode locks, we can wait for all the inodes to flush\nsynchronously. Convert the wait mechanism to a completion\nto do this efficiently. This should remove all remaining\nspurious ENOSPC errors from the delayed allocation reservation\npath.\n\nThis is extracted almost line for line from a larger patch\nfrom Mikulas Patocka.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5825294edd3364cbba6514f70d88debec4f6cec7",
      "tree": "5462388cdb6b36b2f0f1cf75dc6ee60a7c643a23",
      "parents": [
        "a8d770d987ee20b59fba6c37d7f0f2a351913c4b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:45:44 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:45:44 2009 +0200"
      },
      "message": "xfs: make inode flush at ENOSPC synchronous\n\nWhen we are writing to a single file and hit ENOSPC, we trigger a background\nflush of the inode and try again.  Because we hold page locks and the iolock,\nthe flush won\u0027t proceed until after we release these locks. This occurs once\nwe\u0027ve given up and ENOSPC has been reported. Hence if this one is the only\ndirty inode in the system, we\u0027ll get an ENOSPC prematurely.\n\nTo fix this, remove the async flush from the allocation routines and move\nit to the top of the write path where we can do a synchronous flush\nand retry the write again. Only retry once as a second ENOSPC indicates\nthat we really are ENOSPC.\n\nThis avoids a page cache deadlock when trying to do this flush synchronously\nin the allocation layer that was identified by Mikulas Patocka.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a8d770d987ee20b59fba6c37d7f0f2a351913c4b",
      "tree": "3da37edba537ca5860eae97f47fb1204bc5a55b3",
      "parents": [
        "9d7fef74b23fe57803c5f71fab11630d9ec2cb4b"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:44:54 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:44:54 2009 +0200"
      },
      "message": "xfs: use xfs_sync_inodes() for device flushing\n\nCurrently xfs_device_flush calls sync_blockdev() which is\na no-op for XFS as all it\u0027s metadata is held in a different\naddress to the one sync_blockdev() works on.\n\nCall xfs_sync_inodes() instead to flush all the delayed\nallocation blocks out. To do this as efficiently as possible,\ndo it via two passes - one to do an async flush of all the\ndirty blocks and a second to wait for all the IO to complete.\nThis requires some modification to the xfs-sync_inodes_ag()\nflush code to do efficiently.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "9d7fef74b23fe57803c5f71fab11630d9ec2cb4b",
      "tree": "e196c150f77c9c45d9dc0b5e2c06ae867c9bc2a4",
      "parents": [
        "c626d174cfe38e7f0545d074c299527892cd8c45"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:42:59 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:42:59 2009 +0200"
      },
      "message": "xfs: inform the xfsaild of the push target before sleeping\n\nWhen trying to reserve log space, we find the amount of space\nwe need, then go to sleep waiting for space. When we are\nwoken, we try to push the tail of the log forward to make\nsure we have space available.\n\nUnfortunately, this means that if there is not space available, and\neveryone who needs space goes to sleep there is no-one left to push\nthe tail of the log to make space available. Once we have a thread\nwaiting for space to become available, the others queue up behind\nit in a FIFO, and none of them push the tail of the log.\n\nThis can result in everyone going to sleep in xlog_grant_log_space()\nif the first sleeper races with the last I/O that moves the tail\nof the log forward. With no further I/O tomove the tail of the log,\nthere is nothing to wake the sleepers and hence all transactions\njust stop.\n\nFix this by making sure the xfsaild will create enough space for the\ntransaction that is about to sleep by moving the push target far\nenough forwards to ensure that that the curent proceeees will have\nenough space available when it is woken. That is, we push the\nAIL before we go to sleep.\n\nBecause we\u0027ve inserted the log ticket into the queue before we\u0027ve\npushed and gone to sleep, subsequent transactions will wait behind\nthis one. Hence we are guaranteed to have space available when we\nare woken.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c626d174cfe38e7f0545d074c299527892cd8c45",
      "tree": "8f7dfa34a77bc415d9dc604d79fbae98ffe47a14",
      "parents": [
        "705db3fd4660174a27418bbcb874d209a76044eb"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:42:11 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:42:11 2009 +0200"
      },
      "message": "xfs: prevent unwritten extent conversion from blocking I/O completion\n\nUnwritten extent conversion can recurse back into the filesystem due\nto memory allocation. Memory reclaim requires I/O completions to be\nprocessed to allow the callers to make progress. If the I/O\ncompletion workqueue thread is doing the recursion, then we have a\ndeadlock situation.\n\nMove unwritten extent completion into it\u0027s own workqueue so it\ndoesn\u0027t block I/O completions for normal delayed allocation or\noverwrite data.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "705db3fd4660174a27418bbcb874d209a76044eb",
      "tree": "84ec380710246cb3b97cd46ee57b3555d3afd07b",
      "parents": [
        "a6cb767e24b1dbedfcfa8077eab0aa2eab224038"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:40:17 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:40:17 2009 +0200"
      },
      "message": "xfs: fix double free of inode\n\nIf we fail to initialise the VFS inode in inode_init_always(),\nit will call -\u003edelete_inode internally resulting in the inode being\nfreed. Hence we need to delay the call to inode_init_always()\nuntil after the XFS inode is sufficient set up to handle a\ncall to -\u003edelete_inode, and then if that fails do not touch\nthe inode again at all as it has been freed.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "a6cb767e24b1dbedfcfa8077eab0aa2eab224038",
      "tree": "fb564a9323f40f70d22e6d41c2d4709922291944",
      "parents": [
        "1aacc064e029f0017384e463121b98f06d3a2cc3"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Apr 06 18:39:27 2009 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@brick.lst.de",
        "time": "Mon Apr 06 18:39:27 2009 +0200"
      },
      "message": "xfs: validate log feature fields correctly\n\nIf the large log sector size feature bit is set in the\nsuperblock by accident (say disk corruption), the then\nfields that are now considered valid are not checked on\nproduction kernels. The checks are present as ASSERT\nstatements so cause a panic on a debug kernel.\n\nChange this so that the fields are validity checked if\nthe feature bit is set and abort the log mount if the\nfields do not contain valid values.\n\nReported-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "1aacc064e029f0017384e463121b98f06d3a2cc3",
      "tree": "5fa260aaafdcf41d8f13557b4d1715f23fafa1b8",
      "parents": [
        "5123bc35d2bd2e5c344a53e634edec2cd0861a0e"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Mar 31 00:23:37 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Tue Mar 31 00:23:37 2009 -0500"
      },
      "message": "Revert \"xfs: increase the maximum number of supported ACL entries\"\n\nThis reverts commit 8b112171734c791afaf43ccc8c6ec492e7006e44.\nPremature unintended commit.\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "5123bc35d2bd2e5c344a53e634edec2cd0861a0e",
      "tree": "86f56040b6a8d394c30b7f6bc48d9c001851c2b2",
      "parents": [
        "930861c4e6f13ce2e7d06cd1ef11441a065517d9",
        "27174203f570b923e5c02c618a5557295bab8755"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Mar 30 22:17:44 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Mar 30 22:17:44 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/fs/xfs/xfs\n"
    },
    {
      "commit": "930861c4e6f13ce2e7d06cd1ef11441a065517d9",
      "tree": "df6ff01f89768ff8d6fe6a64491be30e6e56c3e0",
      "parents": [
        "8b112171734c791afaf43ccc8c6ec492e7006e44",
        "15f7176eb1cccec0a332541285ee752b935c1c85"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Mar 30 22:08:33 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Mon Mar 30 22:08:33 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "15f7176eb1cccec0a332541285ee752b935c1c85",
      "tree": "9d33689be7415388ed57f437faaae883a4978a85",
      "parents": [
        "d3d52d687a770973b459d8a92ec1adbba3f60c4b",
        "321dee6e8b235c496f0a068a72d8df9a4e13ceb9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:46:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:46:43 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  wireless: remove duplicated .ndo_set_mac_address\n  netfilter: xtables: fix IPv6 dependency in the cluster match\n  tg3: Add GRO support.\n  niu: Add GRO support.\n  ucc_geth: Fix use-after-of_node_put() in ucc_geth_probe().\n  gianfar: Fix use-after-of_node_put() in gfar_of_init().\n  kernel: remove HIPQUAD()\n  netpoll: store local and remote ip in net-endian\n  netfilter: fix endian bug in conntrack printks\n  dmascc: fix incomplete conversion to network_device_ops\n  gso: Fix support for linear packets\n  skbuff.h: fix missing kernel-doc\n  ni5010: convert to net_device_ops\n"
    },
    {
      "commit": "d3d52d687a770973b459d8a92ec1adbba3f60c4b",
      "tree": "94318a62f25b970d604e29a9b8554afe82932d16",
      "parents": [
        "d17abcd5417d84cfa8a225160481203a37dc81d4",
        "ed223129a30de7d244ca9b59819f5532c9caf039"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:46:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:46:12 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:\n  sparc64: Fix reset hangs on Niagara systems.\n  cpumask: use mm_cpumask() wrapper: sparc\n  cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL.: sparc\n  cpumask: remove the now-obsoleted pcibus_to_cpumask(): sparc\n  cpumask: remove cpu_coregroup_map: sparc\n  cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc\n  cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: sparc64\n  cpumask: Use accessors code.: sparc64\n  cpumask: Use accessors code: sparc\n  cpumask: arch_send_call_function_ipi_mask: sparc\n  cpumask: Use smp_call_function_many(): sparc64\n"
    },
    {
      "commit": "d17abcd5417d84cfa8a225160481203a37dc81d4",
      "tree": "74ce2c425c5c6550acec90bc92c8a3f735f0d257",
      "parents": [
        "db6f204019380c788f1de06ee937bdbccd60e5c0",
        "bb75efddeaca89f8a67fd82cdcbaaf436cf17ca9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask:\n  oprofile: Thou shalt not call __exit functions from __init functions\n  cpumask: remove the now-obsoleted pcibus_to_cpumask(): generic\n  cpumask: remove cpumask_t from core\n  cpumask: convert rcutorture.c\n  cpumask: use new cpumask_ functions in core code.\n  cpumask: remove references to struct irqaction\u0027s mask field.\n  cpumask: use mm_cpumask() wrapper: kernel/fork.c\n  cpumask: use set_cpu_active in init/main.c\n  cpumask: remove node_to_first_cpu\n  cpumask: fix seq_bitmap_*() functions.\n  cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n"
    },
    {
      "commit": "db6f204019380c788f1de06ee937bdbccd60e5c0",
      "tree": "f8ca32ab6932a21797dbc5aa77688ea017959da0",
      "parents": [
        "3c6fae67d026d57f64eb3da9c0d0e76983e39ae3",
        "d1881d3192a3d3e8dc4f255b03187f4c36cb0617"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:57:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:57:39 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest-and-virtio\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest-and-virtio:\n  lguest: barrier me harder\n  lguest: use bool instead of int\n  lguest: use KVM hypercalls\n  lguest: wire up pte_update/pte_update_defer\n  lguest: fix spurious BUG_ON() on invalid guest stack.\n  virtio: more neatening of virtio_ring macros.\n  virtio: fix BAD_RING, START_US and END_USE macros\n"
    },
    {
      "commit": "3c6fae67d026d57f64eb3da9c0d0e76983e39ae3",
      "tree": "a11f2ff6d99b382fff02a643f6b6b204efb9c40e",
      "parents": [
        "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
        "de15f093e666ccd542f6f7a0e3e917166a07ab44"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:54:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:54:32 2009 -0700"
      },
      "message": "Merge branch \u0027hwmon-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6\n\n* \u0027hwmon-for-linus\u0027 of git://jdelvare.pck.nerim.net/jdelvare-2.6:\n  hwmon: (fschmd) Add support for the FSC Hades IC\n  hwmon: (fschmd) Add support for the FSC Syleus IC\n  i2c-i801: Instantiate FSC hardware montioring chips\n  dmi: Let dmi_walk() users pass private data\n  hwmon: Define a standard interface for chassis intrusion detection\n  Move the pcf8591 driver to hwmon\n  hwmon: (w83627ehf) Only expose in6 or temp3 on the W83667HG\n  hwmon: (w83627ehf) Add support for W83667HG\n  hwmon: (w83627ehf) Invert fan pin variables logic\n  hwmon: (hdaps) Fix Thinkpad X41 axis inversion\n  hwmon: (hdaps) Allow inversion of separate axis\n  hwmon: (ds1621) Clean up documentation\n  hwmon: (ds1621) Avoid unneeded register access\n  hwmon: (ds1621) Clean up register access\n  hwmon: (ds1621) Reorder code statements\n"
    },
    {
      "commit": "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
      "tree": "2a2ca00bed0fc22b4eb83db092c9178868d8f76b",
      "parents": [
        "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
        "2f8501815256af8498904e68bd0984b1afffd6f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (33 commits)\n  lockdep: fix deadlock in lockdep_trace_alloc\n  lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n  lockdep: annotate reclaim context (__GFP_NOFS), fix\n  lockdep: build fix for !PROVE_LOCKING\n  lockstat: warn about disabled lock debugging\n  lockdep: use stringify.h\n  lockdep: simplify check_prev_add_irq()\n  lockdep: get_user_chars() redo\n  lockdep: simplify get_user_chars()\n  lockdep: add comments to mark_lock_irq()\n  lockdep: remove macro usage from mark_held_locks()\n  lockdep: fully reduce mark_lock_irq()\n  lockdep: merge the !_READ mark_lock_irq() helpers\n  lockdep: merge the _READ mark_lock_irq() helpers\n  lockdep: simplify mark_lock_irq() helpers #3\n  lockdep: further simplify mark_lock_irq() helpers\n  lockdep: simplify the mark_lock_irq() helpers\n  lockdep: split up mark_lock_irq()\n  lockdep: generate usage strings\n  lockdep: generate the state bit definitions\n  ...\n"
    },
    {
      "commit": "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
      "tree": "c84bb54712f566e6497ccadd1ae9f42b4baf0c63",
      "parents": [
        "53d8f67082c9b86699dd88b7f9e667e245193f21",
        "a9caa3de249a6c43bc9c6aec87881f09276677e3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 16:06:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 16:06:04 2009 -0700"
      },
      "message": "Merge branch \u0027proc-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc:\n  Revert \"proc: revert /proc/uptime to -\u003eread_proc hook\"\n  proc 2/2: remove struct proc_dir_entry::owner\n  proc 1/2: do PDE usecounting even for -\u003eread_proc, -\u003ewrite_proc\n  proc: fix sparse warnings in pagemap_read()\n  proc: move fs/proc/inode-alloc.txt comment into a source file\n"
    },
    {
      "commit": "53d8f67082c9b86699dd88b7f9e667e245193f21",
      "tree": "0e888713ee7a1a53b05852839aeb724fabe80490",
      "parents": [
        "93c36ed8348934b462044d2d60ab345055318933",
        "8efb8c76fcdccf5050c0ea059dac392789baaff2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 15:12:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 15:12:14 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:\n  PCI PM: Make pci_prepare_to_sleep() disable wake-up if needed\n  radeonfb: Use __pci_complete_power_transition()\n  PCI PM: Introduce __pci_[start|complete]_power_transition() (rev. 2)\n  PCI PM: Restore config spaces of all devices during early resume\n  PCI PM: Make pci_set_power_state() handle devices with no PM support\n  PCI PM: Put devices into low power states during late suspend (rev. 2)\n  PCI PM: Move pci_restore_standard_config to pci-driver.c\n  PCI PM: Use pci_set_power_state during early resume\n  PCI PM: Consistently use variable name \"error\" for pm call return values\n  kexec: Change kexec jump code ordering\n  PM: Change hibernation code ordering\n  PM: Change suspend code ordering\n  PM: Rework handling of interrupts during suspend-resume\n  PM: Introduce functions for suspending and resuming device interrupts\n"
    },
    {
      "commit": "93c36ed8348934b462044d2d60ab345055318933",
      "tree": "1d9b9236e83ed3f7aee2b79dee0e0a8e99df5e16",
      "parents": [
        "3a355cc61d41bc31cc23a57247df63dba80a6018"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Mar 30 14:08:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 14:28:59 2009 -0700"
      },
      "message": "dma-debug: fix printk formats (i386)\n\nFix printk format warnings in dma-debug:\n\n  lib/dma-debug.c:645: warning: format \u0027%016llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 6 has type \u0027dma_addr_t\u0027\n  lib/dma-debug.c:662: warning: format \u0027%016llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 6 has type \u0027dma_addr_t\u0027\n  lib/dma-debug.c:676: warning: format \u0027%016llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 6 has type \u0027dma_addr_t\u0027\n  lib/dma-debug.c:686: warning: format \u0027%016llx\u0027 expects type \u0027long long unsigned int\u0027, but argument 6 has type \u0027dma_addr_t\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3a355cc61d41bc31cc23a57247df63dba80a6018",
      "tree": "cf39d0b861fa8a33b748a95f3c86bbb33d9c2dac",
      "parents": [
        "77e465867080c2d1e0c410e96dcdcd51e8584a6f"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 16:49:58 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 14:28:58 2009 -0700"
      },
      "message": "reiserfs: xattr_create is unused with xattrs disabled\n\nThis patch ifdefs xattr_create when xattrs aren\u0027t enabled.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77e465867080c2d1e0c410e96dcdcd51e8584a6f",
      "tree": "87400adb4219cda04a39f3fe1b970b64c85c747a",
      "parents": [
        "dfbbe89e197a77f2c8046a51c74e33e35f878080"
      ],
      "author": {
        "name": "Alexander Beregalov",
        "email": "a.beregalov@gmail.com",
        "time": "Tue Mar 31 00:32:40 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 14:28:58 2009 -0700"
      },
      "message": "reiserfs: fix build breakage\n\nFix this build error when REISERFS_FS_POSIX_ACL is not set:\n\n  fs/reiserfs/inode.c: In function \u0027reiserfs_new_inode\u0027:\n  fs/reiserfs/inode.c:1919: warning: passing argument 1 of \u0027reiserfs_inherit_default_acl\u0027 from incompatible pointer type\n  fs/reiserfs/inode.c:1919: warning: passing argument 2 of \u0027reiserfs_inherit_default_acl\u0027 from incompatible pointer type\n  fs/reiserfs/inode.c:1919: warning: passing argument 3 of \u0027reiserfs_inherit_default_acl\u0027 from incompatible pointer type\n  fs/reiserfs/inode.c:1919: error: too many arguments to function \u0027reiserfs_inherit_default_acl\u0027\n\ndue to a missing transaction-handle argument in the non-acl\ncompatibility function.\n\nSigned-off-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nAcked-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f8501815256af8498904e68bd0984b1afffd6f8",
      "tree": "ffc9b4d8d80906fc2743b34dcdc93fdd2294f2c6",
      "parents": [
        "19cefdffbfe0f7e280f21e80875937e8700e99e2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Fri Mar 20 11:13:20 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:19:24 2009 +0200"
      },
      "message": "lockdep: fix deadlock in lockdep_trace_alloc\n\nHeiko reported that we grab the graph lock with irqs enabled.\n\nFix this by providng the same wrapper as all other lockdep entry\nfunctions have.\n\nReported-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nLKML-Reference: \u003c1237544000.24626.52.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a9caa3de249a6c43bc9c6aec87881f09276677e3",
      "tree": "900831b12af9b3cd4743d4ae5ed5a457f8125edb",
      "parents": [
        "99b76233803beab302123d243eea9e41149804f3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 20 17:07:22 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:58 2009 +0400"
      },
      "message": "Revert \"proc: revert /proc/uptime to -\u003eread_proc hook\"\n\nThis reverts commit 6c87df37dcb9c6c33923707fa5191e0a65874d60.\n\nproc files implemented through seq_file do pread(2) now.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "99b76233803beab302123d243eea9e41149804f3",
      "tree": "398178210fe66845ccd6fa4258ba762a87e023ad",
      "parents": [
        "3dec7f59c370c7b58184d63293c3dc984d475840"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Mar 25 22:48:06 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:44 2009 +0400"
      },
      "message": "proc 2/2: remove struct proc_dir_entry::owner\n\nSetting -\u003eowner as done currently (pde-\u003eowner \u003d THIS_MODULE) is racy\nas correctly noted at bug #12454. Someone can lookup entry with NULL\n-\u003eowner, thus not pinning enything, and release it later resulting\nin module refcount underflow.\n\nWe can keep -\u003eowner and supply it at registration time like -\u003eproc_fops\nand -\u003edata.\n\nBut this leaves -\u003eowner as easy-manipulative field (just one C assignment)\nand somebody will forget to unpin previous/pin current module when\nswitching -\u003eowner. -\u003eproc_fops is declared as \"const\" which should give\nsome thoughts.\n\n-\u003eread_proc/-\u003ewrite_proc were just fixed to not require -\u003eowner for\nprotection.\n\nrmmod\u0027ed directories will be empty and return \".\" and \"..\" -- no harm.\nAnd directories with tricky enough readdir and lookup shouldn\u0027t be modular.\nWe definitely don\u0027t want such modular code.\n\nRemoving -\u003eowner will also make PDE smaller.\n\nSo, let\u0027s nuke it.\n\nKudos to Jeff Layton for reminding about this, let\u0027s say, oversight.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12454\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "3dec7f59c370c7b58184d63293c3dc984d475840",
      "tree": "54df7ab53c1f625179e2b69c78b782b5a867363e",
      "parents": [
        "09729a9919fdaf137995b0f19cbd401e22229cac"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 20 17:04:33 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:27 2009 +0400"
      },
      "message": "proc 1/2: do PDE usecounting even for -\u003eread_proc, -\u003ewrite_proc\n\nstruct proc_dir_entry::owner is going to be removed. Now it\u0027s only necessary\nto protect PDEs which are using -\u003eread_proc, -\u003ewrite_proc hooks.\n\nHowever, -\u003eowner assignments are racy and make it very easy for someone to switch\n-\u003eowner on live PDE (as some subsystems do) without fixing refcounts and so on.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12454\n\nSo, -\u003eowner is on death row.\n\nProxy file operations exist already (proc_file_operations), just bump usecount\nwhen necessary.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "09729a9919fdaf137995b0f19cbd401e22229cac",
      "tree": "54b187f7fade4f4669f37935f019b6f8c23b5df4",
      "parents": [
        "1681bc30f272dd2fe347b90468791b05c7044f03"
      ],
      "author": {
        "name": "Milind Arun Choudhary",
        "email": "milindchoudhary@gmail.com",
        "time": "Fri Feb 20 16:56:45 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:22 2009 +0400"
      },
      "message": "proc: fix sparse warnings in pagemap_read()\n\nfs/proc/task_mmu.c:696:12: warning: cast removes address space of expression\nfs/proc/task_mmu.c:696:9: warning: incorrect type in assignment (different address spaces)\nfs/proc/task_mmu.c:696:9:    expected unsigned long long [noderef] [usertype] \u003casn:1\u003e*out\nfs/proc/task_mmu.c:696:9:    got unsigned long long [usertype] *\u003cnoident\u003e\nfs/proc/task_mmu.c:697:12: warning: cast removes address space of expression\nfs/proc/task_mmu.c:697:9: warning: incorrect type in assignment (different address spaces)\nfs/proc/task_mmu.c:697:9:    expected unsigned long long [noderef] [usertype] \u003casn:1\u003e*end\nfs/proc/task_mmu.c:697:9:    got unsigned long long [usertype] *\u003cnoident\u003e\nfs/proc/task_mmu.c:723:12: warning: cast removes address space of expression\nfs/proc/task_mmu.c:723:26: error: subtraction of different types can\u0027t work (different address spaces)\nfs/proc/task_mmu.c:725:24: error: subtraction of different types can\u0027t work (different address spaces)\n\nSigned-off-by: Milind Arun Choudhary \u003cmilindchoudhary@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "1681bc30f272dd2fe347b90468791b05c7044f03",
      "tree": "72a37dcde9c2536594d3eab4deca8997d34d39d5",
      "parents": [
        "e1c502482853f84606928f5a2f2eb6da1993cda1"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Jan 13 13:53:48 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:13:12 2009 +0400"
      },
      "message": "proc: move fs/proc/inode-alloc.txt comment into a source file\n\nso that people will realize that it exists and can update it as needed.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "19cefdffbfe0f7e280f21e80875937e8700e99e2",
      "tree": "7a82d84609af22469d3f96d371d14b7dcf65d1f2",
      "parents": [
        "6700ec65c207068a81a535e9dca616fefac21671"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 15 06:03:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 22:59:44 2009 +0200"
      },
      "message": "lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n\nImpact: build fix\n\nfix typo in mm/slob.c:\n\n mm/slob.c:469: error: ‘flags’ undeclared (first use in this function)\n mm/slob.c:469: error: (Each undeclared identifier is reported only once\n mm/slob.c:469: error: for each function it appears in.)\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090128135457.350751756@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dfbbe89e197a77f2c8046a51c74e33e35f878080",
      "tree": "23b860ad3d68a12503f04c44c2e4465fbb8bdae9",
      "parents": [
        "712b0006bf3a9ed0b14a56c3291975e582127766",
        "f23c20c83d523e5f8cda1f8f7ed52fe6afffbe29"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 13:54:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 13:54:50 2009 -0700"
      },
      "message": "Merge branch \u0027drm-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6\n\n* \u0027drm-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (53 commits)\n  drm: detect hdmi monitor by hdmi identifier (v3)\n  drm: drm_fops.c unlock missing on error path\n  drm: reorder struct drm_ioctl_desc to save space on 64 bit builds\n  radeon: add some new pci ids\n  drm: read EDID extensions from monitor\n  drm: Use a little stash on the stack to avoid kmalloc in most DRM ioctls.\n  drm/radeon: add regs required for occlusion queries support\n  drm/i915: check the return value from the copy from user\n  drm/radeon: fix logic in r600_page_table_init() to match ati_gart\n  drm/radeon: r600 ptes are 64-bit, cleanup cleanup function.\n  drm/radeon: don\u0027t call irq changes on r600 suspend/resume\n  drm/radeon: fix r600 writeback across suspend/resume\n  drm/radeon: fix r600 writeback setup.\n  drm: fix warnings about new mappings in info code.\n  drm/radeon: NULL noise: drivers/gpu/drm/radeon/radeon_*.c\n  drm/radeon: fix r600 pci mapping calls.\n  drm/radeon: r6xx/r7xx: fix possible oops in r600_page_table_cleanup()\n  radeon: call the correct idle function, logic got inverted.\n  drm/radeon: RS600: fix interrupt handling\n  drm/r600: fix rptr address along lines of previous fixes to radeon.\n  ...\n"
    },
    {
      "commit": "712b0006bf3a9ed0b14a56c3291975e582127766",
      "tree": "aff33e947673137ae21734321e1f036600297223",
      "parents": [
        "e1c502482853f84606928f5a2f2eb6da1993cda1",
        "b0d44c0dbbd52effb731b1c0af9afd56215c48de"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 13:41:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 13:41:00 2009 -0700"
      },
      "message": "Merge branch \u0027iommu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027iommu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (60 commits)\n  dma-debug: make memory range checks more consistent\n  dma-debug: warn of unmapping an invalid dma address\n  dma-debug: fix dma_debug_add_bus() definition for !CONFIG_DMA_API_DEBUG\n  dma-debug/x86: register pci bus for dma-debug leak detection\n  dma-debug: add a check dma memory leaks\n  dma-debug: add checks for kernel text and rodata\n  dma-debug: print stacktrace of mapping path on unmap error\n  dma-debug: Documentation update\n  dma-debug: x86 architecture bindings\n  dma-debug: add function to dump dma mappings\n  dma-debug: add checks for sync_single_sg_*\n  dma-debug: add checks for sync_single_range_*\n  dma-debug: add checks for sync_single_*\n  dma-debug: add checking for [alloc|free]_coherent\n  dma-debug: add add checking for map/unmap_sg\n  dma-debug: add checking for map/unmap_page/single\n  dma-debug: add core checking functions\n  dma-debug: add debugfs interface\n  dma-debug: add kernel command line parameters\n  dma-debug: add initialization code\n  ...\n\nFix trivial conflicts due to whitespace changes in arch/x86/kernel/pci-nommu.c\n"
    },
    {
      "commit": "8efb8c76fcdccf5050c0ea059dac392789baaff2",
      "tree": "e1633be5df4fa15755bfcfaf5007d8b972bcdff7",
      "parents": [
        "b8e676d2432b8ce96967a3fe6601a0a28e64fa10"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:27 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:56 2009 +0200"
      },
      "message": "PCI PM: Make pci_prepare_to_sleep() disable wake-up if needed\n\nIf the device is not supposed to wake up the system, ie. when\ndevice_may_wakeup(\u0026dev-\u003edev) returns \u0027false\u0027, pci_prepare_to_sleep()\nshould pass \u0027false\u0027 to pci_enable_wake() so that it calls the\nplatform to disable the wake-up capability of the device.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "b8e676d2432b8ce96967a3fe6601a0a28e64fa10",
      "tree": "6cebb9e8a05a3cbf4500bf95afa458d913ce3faf",
      "parents": [
        "0e5dd46b761195356065a30611f265adec286d0d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Mar 26 22:52:08 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:56 2009 +0200"
      },
      "message": "radeonfb: Use __pci_complete_power_transition()\n\nUse __pci_complete_power_transition() to finalize the transition into\nD2 after programming the PMCSR of the device directly.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "0e5dd46b761195356065a30611f265adec286d0d",
      "tree": "4ca10dac14ac44789a51048c4ceb3989be175f63",
      "parents": [
        "931ff68a5a53fa84bcdf9b1b179a80e54e034bd0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Mar 26 22:51:40 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:56 2009 +0200"
      },
      "message": "PCI PM: Introduce __pci_[start|complete]_power_transition() (rev. 2)\n\nThe radeonfb driver needs to program the device\u0027s PMCSR directly due\nto some quirky hardware it has to handle (see\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12846 for details) and\nafter doing that it needs to call the platform (usually ACPI) to\nfinish the power transition of the device.  Currently it uses\npci_set_power_state() for this purpose, however making a specific\nassumption about the internal behavior of this function, which has\nchanged recently so that this assumption is no longer satisfied.\nFor this reason, introduce __pci_complete_power_transition() that may\nbe called by the radeonfb driver to complete the power transition of\nthe device.  For symmetry, introduce __pci_start_power_transition().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "931ff68a5a53fa84bcdf9b1b179a80e54e034bd0",
      "tree": "88263b349d5eda796bb5f0724b52d1f73eeb1a8c",
      "parents": [
        "4a865905f685eaefaedf6ade362323dc52aa703b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:40:50 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:56 2009 +0200"
      },
      "message": "PCI PM: Restore config spaces of all devices during early resume\n\nAt present the configuration spaces of PCI devices that have no\ndrivers or no PM support in the drivers (either legacy or through a\npm object) are not saved during suspend and, consequently, they are\nnot restored during resume.  This generally may lead to the state of\nthe system being slightly inconsistent after the resume, so it\u0027s\nbetter to save and restore the configuration spaces of these devices\nas well.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "4a865905f685eaefaedf6ade362323dc52aa703b",
      "tree": "4b0b38ffe0e4f00a13af03ac55957aa32dc9c8ac",
      "parents": [
        "46939f8b15e44f065d052e89ea4f2adc81fdc740"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:40:36 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:56 2009 +0200"
      },
      "message": "PCI PM: Make pci_set_power_state() handle devices with no PM support\n\nThere is a problem with PCI devices without any PM support (either\nnative or through the platform) that pci_set_power_state() always\nreturns error code for them, even if they are being put into D0.\nHowever, such devices are always in D0, so pci_set_power_state()\nshould return success when attempting to put such a device into D0.\nIt also should update the current_state field for these devices as\nappropriate.  This modification is necessary so that the standard\nconfiguration registers of these devices are successfully restored by\npci_restore_standard_config() during the \"early\" phase of resume.\n\nIn addition, pci_set_power_state() should check the value of\ncurrent_state before calling the platform to change the power state\nof the device to avoid doing that unnecessarily.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "46939f8b15e44f065d052e89ea4f2adc81fdc740",
      "tree": "e8af8e84d9f84bbf08e24ceae46a36eaad6764f6",
      "parents": [
        "0128a89cf75124500b5b69f0c3c7b7c5aa60676f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:40:26 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:55 2009 +0200"
      },
      "message": "PCI PM: Put devices into low power states during late suspend (rev. 2)\n\nOnce we have allowed timer interrupts to be enabled during the late\nphase of suspending devices, we are now able to use the generic\npci_set_power_state() to put PCI devices into low power states at\nthat time.  We can also use some related platform callbacks, like the\nones preparing devices for wake-up, during the late suspend.\n\nDoing this will allow us to avoid the race condition where a device\nusing shared interrupts is put into a low power state with interrupts\nenabled and then an interrupt (for another device) comes in and\nconfuses its driver.  At the same time, devices that don\u0027t support\nthe native PCI PM or that require some additional, platform-specific\noperations to be carried out to put them into low power states will\nbe handled as appropriate.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "0128a89cf75124500b5b69f0c3c7b7c5aa60676f",
      "tree": "96cdc2c1dc62f2a543b11f481811efce59b1f0f7",
      "parents": [
        "f00a20ef46b1795c495869163a9a7333f899713a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:40:18 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:55 2009 +0200"
      },
      "message": "PCI PM: Move pci_restore_standard_config to pci-driver.c\n\nMove pci_restore_standard_config() from pci.c to pci-driver.c and\nmake it static.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "f00a20ef46b1795c495869163a9a7333f899713a",
      "tree": "c5992f03dc67c1492ac06d0191024e4676f6cc5f",
      "parents": [
        "57ef80266e14ecc363380268fedc64e519047b4a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:40:08 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:55 2009 +0200"
      },
      "message": "PCI PM: Use pci_set_power_state during early resume\n\nOnce we have allowed timer interrupts to be enabled during the early\nphase of resuming devices, we are now able to use the generic\npci_set_power_state() to put PCI devices into D0 at that time.  Then,\nthe platform-specific PM code will have a chance to handle devices\nthat don\u0027t implement the native PCI PM or that require some\nadditional, platform-specific operations to be carried out to power\nthem up.  Also, by doing this we can simplify the code quite a bit.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "57ef80266e14ecc363380268fedc64e519047b4a",
      "tree": "796619e61b70ce7ed2ac9571ca4961fe1903a3ab",
      "parents": [
        "749b0afc3a9d90dda3319fd1464a3b32fc225361"
      ],
      "author": {
        "name": "Frans Pop",
        "email": "elendil@planet.nl",
        "time": "Mon Mar 16 22:39:56 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:55 2009 +0200"
      },
      "message": "PCI PM: Consistently use variable name \"error\" for pm call return values\n\nI noticed two functions use a variable \"i\" to store the return value of PM\nfunction calls while the rest of the file uses \"error\". As \"i\" normally\nindicates a counter of some sort it seems better to keep this consistent.\n\nSigned-off-by: Frans Pop \u003celendil@planet.nl\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "749b0afc3a9d90dda3319fd1464a3b32fc225361",
      "tree": "811a0931109bf3ee1204d43c37c9f3d1d7a4b327",
      "parents": [
        "4aecd6718939eb3c4145b248369b65f7483a8a02"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:35 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:55 2009 +0200"
      },
      "message": "kexec: Change kexec jump code ordering\n\nChange the ordering of the kexec jump code so that the nonboot CPUs\nare disabled after calling device drivers\u0027 \"late suspend\" methods.\n\nThis change reflects the recent modifications of the power management\ncode that is also used by kexec jump.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4aecd6718939eb3c4145b248369b65f7483a8a02",
      "tree": "20030736ca8e762b5de7ad2e66c39321c9ef94f5",
      "parents": [
        "900af0d973856d6feb6fc088c2d0d3fde57707d3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:26 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Change hibernation code ordering\n\nChange the ordering of the hibernation core code so that the platform\n\"prepare\" callbacks are executed and the nonboot CPUs are disabled\nafter calling device drivers\u0027 \"late suspend\" methods.\n\nThis change (along with the previous analogous change of the suspend\ncore code) will allow us to rework the PCI PM core so that the power\nstate of devices is changed in the \"late\" phase of suspend (and\nanalogously in the \"early\" phase of resume), which in turn will allow\nus to avoid the race condition where a device using shared interrupts\nis put into a low power state with interrupts enabled and then an\ninterrupt (for another device) comes in and confuses its driver.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "900af0d973856d6feb6fc088c2d0d3fde57707d3",
      "tree": "4502d4108200fa0eb38dd5f0155b205fed166e48",
      "parents": [
        "2ed8d2b3a81bdbb0418301628ccdb008ac9f40b7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:15 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Change suspend code ordering\n\nChange the ordering of the suspend core code so that the platform\n\"prepare\" callback is executed and the nonboot CPUs are disabled\nafter calling device drivers\u0027 \"late suspend\" methods.\n\nThis change will allow us to rework the PCI PM core so that the power\nstate of devices is changed in the \"late\" phase of suspend (and\nanalogously in the \"early\" phase of resume), which in turn will allow\nus to avoid the race condition where a device using shared interrupts\nis put into a low power state with interrupts enabled and then an\ninterrupt (for another device) comes in and confuses its driver.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ed8d2b3a81bdbb0418301628ccdb008ac9f40b7",
      "tree": "54ab0cd7aa7db73151533b463bd490b62a29c462",
      "parents": [
        "0a0c5168df270a50e3518e4f12bddb31f8f5f38f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:06 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Rework handling of interrupts during suspend-resume\n\nUse the functions introduced in by the previous patch,\nsuspend_device_irqs(), resume_device_irqs() and check_wakeup_irqs(),\nto rework the handling of interrupts during suspend (hibernation) and\nresume.  Namely, interrupts will only be disabled on the CPU right\nbefore suspending sysdevs, while device drivers will be prevented\nfrom receiving interrupts, with the help of the new helper function,\nbefore their \"late\" suspend callbacks run (and analogously during\nresume).\n\nIn addition, since the device interrups are now disabled before the\nCPU has turned all interrupts off and the CPU will ACK the interrupts\nsetting the IRQ_PENDING bit for them, check in sysdev_suspend() if\nany wake-up interrupts are pending and abort suspend if that\u0027s the\ncase.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0a0c5168df270a50e3518e4f12bddb31f8f5f38f",
      "tree": "ea1e392fef9d52a7b81c9010580c09317a4d707d",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:33:49 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Introduce functions for suspending and resuming device interrupts\n\nIntroduce helper functions allowing us to prevent device drivers from\ngetting any interrupts (without disabling interrupts on the CPU)\nduring suspend (or hibernation) and to make them start to receive\ninterrupts again during the subsequent resume.  These functions make it\npossible to keep timer interrupts enabled while the \"late\" suspend and\n\"early\" resume callbacks provided by device drivers are being\nexecuted.  In turn, this allows device drivers\u0027 \"late\" suspend and\n\"early\" resume callbacks to sleep, execute ACPI callbacks etc.\n\nThe functions introduced here will be used to rework the handling of\ninterrupts during suspend (hibernation) and resume.  Namely,\ninterrupts will only be disabled on the CPU right before suspending\nsysdevs, while device drivers will be prevented from receiving\ninterrupts, with the help of the new helper function, before their\n\"late\" suspend callbacks run (and analogously during resume).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "de15f093e666ccd542f6f7a0e3e917166a07ab44",
      "tree": "ba0fb9235e3267812f2580306c27d7087d9fd7f3",
      "parents": [
        "c69ab2b78efbe388bb0fc5d885b718ff4668cceb"
      ],
      "author": {
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com",
        "time": "Mon Mar 30 21:46:45 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:45 2009 +0200"
      },
      "message": "hwmon: (fschmd) Add support for the FSC Hades IC\n\nAdd support for the Hades to the FSC hwmon driver.\n\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "c69ab2b78efbe388bb0fc5d885b718ff4668cceb",
      "tree": "a970ddcc436d1e80cc37e2937f8e32883afe73ba",
      "parents": [
        "fa5bfab7128e58c31448fca83a288a86e7d476cc"
      ],
      "author": {
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com",
        "time": "Mon Mar 30 21:46:45 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:45 2009 +0200"
      },
      "message": "hwmon: (fschmd) Add support for the FSC Syleus IC\n\nMany thanks to Fujitsu Siemens Computers for providing docs and a\nmachine to test the driver on.\n\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "fa5bfab7128e58c31448fca83a288a86e7d476cc",
      "tree": "de05e1b02bed9414ebeab03f4ee15d6052c70017",
      "parents": [
        "e7a19c5624c66afa8118b10cd59f87ee407646bc"
      ],
      "author": {
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com",
        "time": "Mon Mar 30 21:46:44 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:44 2009 +0200"
      },
      "message": "i2c-i801: Instantiate FSC hardware montioring chips\n\nDetect various FSC hwmon IC\u0027s based on DMI tables and then let\nthe i2c-i801 driver instantiate the i2c client devices. Note that\nsome of the info in the added table is indentical for all rows, still\nthis is kept in the table to keep the code general and thus (hopefully)\neasily extensible in the future.\n\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "e7a19c5624c66afa8118b10cd59f87ee407646bc",
      "tree": "4e70f99aa84cdd18f13c673980afebe4a268359e",
      "parents": [
        "ec19920944246b4686c7772a58507a20c361dc9d"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:44 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:44 2009 +0200"
      },
      "message": "dmi: Let dmi_walk() users pass private data\n\nAt the moment, dmi_walk() lacks flexibility, users can\u0027t pass data to\nthe callback function. Add a pointer for private data to make this\nfunction more flexible.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Hans de Goede \u003chdegoede@redhat.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "ec19920944246b4686c7772a58507a20c361dc9d",
      "tree": "9fbeb5dab591826f819dd869d50a70d1a1b64f9f",
      "parents": [
        "fb4504fe84b09cbf49fda19e6630a1003d79656a"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:44 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:44 2009 +0200"
      },
      "message": "hwmon: Define a standard interface for chassis intrusion detection\n\nDefine a standard interface for the chassis intrusion detection feature\nsome hardware monitoring chips have. Some drivers have custom sysfs\nentries for it, but a standard interface would allow integration with\nuser-space (namely libsensors.)\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Hans de Goede \u003cj.w.r.degoede@hhs.nl\u003e\nAcked-by: Matt Roberds \u003cmattroberds@cox.net\u003e\n"
    },
    {
      "commit": "fb4504fe84b09cbf49fda19e6630a1003d79656a",
      "tree": "d2e623b65fb91f18a02b3435f5a25e8b36572815",
      "parents": [
        "a157d06d4d70318a0818552095071d7430dd5d34"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:43 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:43 2009 +0200"
      },
      "message": "Move the pcf8591 driver to hwmon\n\nDirectory drivers/i2c/chips is going away, so drivers there must find\nnew homes. For the pcf8591 driver, the best choice seems to be the\nhwmon subsystem. While the Philips PCF8591 device isn\u0027t a typical\nhardware monitoring chip, its DAC interface is compatible with the\nhwmon one, so it fits somewhat.\n\nIf a better subsystem is ever created for ADC/DAC chips, the driver\ncould be moved there.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Aurelien Jarno \u003caurelien@aurel32.net\u003e\n"
    },
    {
      "commit": "a157d06d4d70318a0818552095071d7430dd5d34",
      "tree": "314ce9e6a3920071dcc364219521ba82675bdaac",
      "parents": [
        "237c8d2f54ff12bd4fea1a9d18a94ae5810271d3"
      ],
      "author": {
        "name": "Gong Jun",
        "email": "JGong@nuvoton.com",
        "time": "Mon Mar 30 21:46:43 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:43 2009 +0200"
      },
      "message": "hwmon: (w83627ehf) Only expose in6 or temp3 on the W83667HG\n\nThe pin for in6 and temp3 is shared on the W83667HG, so only one of\nthese features can be supported on any given system. Let the driver\nselect which one depending on the temp3 disabled bit.\n\nSigned-off-by: Gong Jun \u003cJGong@nuvoton.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "237c8d2f54ff12bd4fea1a9d18a94ae5810271d3",
      "tree": "f93114b8b4c24a59151353cdfb63dd52fa055f9b",
      "parents": [
        "1704b26ee3fd89c76724cbea238e951dc019faca"
      ],
      "author": {
        "name": "Gong Jun",
        "email": "JGong@nuvoton.com",
        "time": "Mon Mar 30 21:46:42 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:42 2009 +0200"
      },
      "message": "hwmon: (w83627ehf) Add support for W83667HG\n\nAdd initial support for the Nuvoton W83667HG chip to the w83627ehf\ndriver. It has been tested on ASUS P5QL PRO by Gong Jun.\n\nAt the moment there is still a usability issue which is that only in6\nor temp3 can be present on the W83667HG, so the driver shouldn\u0027t\nexpose both. This will be addressed later.\n\nSigned-off-by: Gong Jun \u003cJGong@nuvoton.com\u003e\nAcked-by: David Hubbard \u003cdavid.c.hubbard@gmail.com\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "1704b26ee3fd89c76724cbea238e951dc019faca",
      "tree": "8ad08be8be5e6ae2eeb523cb03c2db2a24ca2506",
      "parents": [
        "b6a33fe2cc1b44851174967943fe5989f7e0550f"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:42 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:42 2009 +0200"
      },
      "message": "hwmon: (w83627ehf) Invert fan pin variables logic\n\nUse positive logic for fan pin variables (variable is set if pin is\nused for fan), instead of negative logic which is error prone.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Gong Jun \u003cJGong@nuvoton.com\u003e\n"
    },
    {
      "commit": "b6a33fe2cc1b44851174967943fe5989f7e0550f",
      "tree": "a39d183d672aa9d94b3bf78fbffa78986ff5dbad",
      "parents": [
        "2b8cf3e8c0638687a7a28a7517e673f855623e3b"
      ],
      "author": {
        "name": "Frank Seidel",
        "email": "frank@f-seidel.de",
        "time": "Mon Mar 30 21:46:42 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:42 2009 +0200"
      },
      "message": "hwmon: (hdaps) Fix Thinkpad X41 axis inversion\n\nFix for kernel.org bug #7154: hdaps inversion of actual Thinkpad\nX41\u0027s Y-axis.\n\nSigned-off-by: Frank Seidel \u003cfrank@f-seidel.de\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "2b8cf3e8c0638687a7a28a7517e673f855623e3b",
      "tree": "0c549bbfb7d6f195d9e1e7b0412ae96884d311d0",
      "parents": [
        "25f3311acc3405dd0dace3571a41f450e6cc6a65"
      ],
      "author": {
        "name": "Frank Seidel",
        "email": "frank@f-seidel.de",
        "time": "Mon Mar 30 21:46:41 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:41 2009 +0200"
      },
      "message": "hwmon: (hdaps) Allow inversion of separate axis\n\nFix for kernel.org bug #7154: hdaps inversion of each axis. This\nversion is based on the work from Michael Ruoss \u003cmiruoss@student.ethz.ch\u003e.\n\nSigned-off-by: Frank Seidel \u003cfrank@f-seidel.de\u003e\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\n"
    },
    {
      "commit": "25f3311acc3405dd0dace3571a41f450e6cc6a65",
      "tree": "12488d1cafb7ec8140156b73175476e74897ccaa",
      "parents": [
        "e4879e28abd67b894fb9d2db0afd08f1945670ba"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:41 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:41 2009 +0200"
      },
      "message": "hwmon: (ds1621) Clean up documentation\n\n* The alarms sysfs file is deprecated, and individual alarm files are\n  self-explanatory.\n* The driver doesn\u0027t implement high-reslution temperature readings so\n  don\u0027t document that.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Aurelien Jarno \u003caurelien@aurel32.net\u003e\n"
    },
    {
      "commit": "e4879e28abd67b894fb9d2db0afd08f1945670ba",
      "tree": "e6e9c1269c9ed949fb89bf7d31e116ace255d2ff",
      "parents": [
        "594592dc6f68356a3b7278eb4d260a50a66f0a06"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:40 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:40 2009 +0200"
      },
      "message": "hwmon: (ds1621) Avoid unneeded register access\n\nRegister access over SMBus isn\u0027t cheap, so avoid register access where\npossible:\n* Only write back the configuration register if it changed.\n* Don\u0027t refresh the register cache when we don\u0027t have to.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Aurelien Jarno \u003caurelien@aurel32.net\u003e\n"
    },
    {
      "commit": "594592dc6f68356a3b7278eb4d260a50a66f0a06",
      "tree": "0bdb535a8e3bcd0f4ea03fdc86842709e9ea4b50",
      "parents": [
        "9202add67454c6a6f9508f41e733edce705dc56e"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:40 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:40 2009 +0200"
      },
      "message": "hwmon: (ds1621) Clean up register access\n\nFix a few oddities in how the ds1621 driver accesses the registers:\n* We don\u0027t need a wrapper to access the configuration register.\n* Check for error before calling swab16. Error checking isn\u0027t\n  complete yet, but that\u0027s a start.\n* Device-specific read functions should never be called during\n  detection, as by definition we don\u0027t know what device we are talking\n  to at that point.\n* Likewise, don\u0027t assume that register reads succeed during detection.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Aurelien Jarno \u003caurelien@aurel32.net\u003e\n"
    },
    {
      "commit": "9202add67454c6a6f9508f41e733edce705dc56e",
      "tree": "c95085164215c9374e838f1bf3f6051b74d99441",
      "parents": [
        "0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:40 2009 +0200"
      },
      "committer": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Mon Mar 30 21:46:40 2009 +0200"
      },
      "message": "hwmon: (ds1621) Reorder code statements\n\nReorder the ds1621 driver code so that we can get rid of forward\nfunction declarations.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Aurelien Jarno \u003caurelien@aurel32.net\u003e\n"
    },
    {
      "commit": "e1c502482853f84606928f5a2f2eb6da1993cda1",
      "tree": "ca296007164906342a195bdf3a5305277e6af5da",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7",
        "ee93961be1faddf9e9a638bc519145c20f0cfeba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:29:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:33:01 2009 -0700"
      },
      "message": "Merge branch \u0027reiserfs-updates\u0027 from Jeff Mahoney\n\n* reiserfs-updates: (35 commits)\n  reiserfs: rename [cn]_* variables\n  reiserfs: rename p_._ variables\n  reiserfs: rename p_s_tb to tb\n  reiserfs: rename p_s_inode to inode\n  reiserfs: rename p_s_bh to bh\n  reiserfs: rename p_s_sb to sb\n  reiserfs: strip trailing whitespace\n  reiserfs: cleanup path functions\n  reiserfs: factor out buffer_info initialization\n  reiserfs: add atomic addition of selinux attributes during inode creation\n  reiserfs: use generic readdir for operations across all xattrs\n  reiserfs: journaled xattrs\n  reiserfs: use generic xattr handlers\n  reiserfs: remove i_has_xattr_dir\n  reiserfs: make per-inode xattr locking more fine grained\n  reiserfs: eliminate per-super xattr lock\n  reiserfs: simplify xattr internal file lookups/opens\n  reiserfs: Clean up xattrs when REISERFS_FS_XATTR is unset\n  reiserfs: remove IS_PRIVATE helpers\n  reiserfs: remove link detection code\n  ...\n\nFixed up conflicts manually due to:\n - quota name cleanups vs variable naming changes:\n\tfs/reiserfs/inode.c\n\tfs/reiserfs/namei.c\n\tfs/reiserfs/stree.c\n        fs/reiserfs/xattr.c\n - exported include header cleanups\n\tinclude/linux/reiserfs_fs.h\n"
    },
    {
      "commit": "ee93961be1faddf9e9a638bc519145c20f0cfeba",
      "tree": "9c62f05dca9ea72c2b419a7f1f9d5874b587e5ab",
      "parents": [
        "d68caa9530a8ba54f97002e02bf6a0ad2462b8c0"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:50 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:40 2009 -0700"
      },
      "message": "reiserfs: rename [cn]_* variables\n\nThis patch renames n_, c_, etc variables to something more sane.  This\nis the sixth in a series of patches to rip out some of the awful\nvariable naming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d68caa9530a8ba54f97002e02bf6a0ad2462b8c0",
      "tree": "39a2b877483270253f95f3678a4559e9bd5524e8",
      "parents": [
        "a063ae17925cafabe55ebe1957ca0e8c480bd132"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:49 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:40 2009 -0700"
      },
      "message": "reiserfs: rename p_._ variables\n\nThis patch is a simple s/p_._//g to the reiserfs code.  This is the\nfifth in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a063ae17925cafabe55ebe1957ca0e8c480bd132",
      "tree": "85d8797ec51124d33398a15a5a8d5a6b81e3a36f",
      "parents": [
        "995c762ea486b48c9777522071fbf132dea96807"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:48 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:40 2009 -0700"
      },
      "message": "reiserfs: rename p_s_tb to tb\n\nThis patch is a simple s/p_s_tb/tb/g to the reiserfs code.  This is the\nfourth in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "995c762ea486b48c9777522071fbf132dea96807",
      "tree": "d6d82ca71ca67a98687762b83ce2858eb8dc624f",
      "parents": [
        "ad31a4fc0386e8590c51ca4b8f1ae1d8b8b2ac5e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:47 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: rename p_s_inode to inode\n\nThis patch is a simple s/p_s_inode/inode/g to the reiserfs code.  This\nis the third in a series of patches to rip out some of the awful\nvariable naming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad31a4fc0386e8590c51ca4b8f1ae1d8b8b2ac5e",
      "tree": "636010f3ba98e15245f04ade1a74a730e40abf57",
      "parents": [
        "a9dd364358fbdc68faee5d20c2d648c320dc3cf0"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:46 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: rename p_s_bh to bh\n\nThis patch is a simple s/p_s_bh/bh/g to the reiserfs code.  This is the\nsecond in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9dd364358fbdc68faee5d20c2d648c320dc3cf0",
      "tree": "effcf61e5e198083faff82dc1e0bd6071639fca8",
      "parents": [
        "0222e6571c332563a48d4cf5487b67feabe60b5e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:45 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: rename p_s_sb to sb\n\nThis patch is a simple s/p_s_sb/sb/g to the reiserfs code.  This is the\nfirst in a series of patches to rip out some of the awful variable\nnaming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0222e6571c332563a48d4cf5487b67feabe60b5e",
      "tree": "44829ca0a4b1343edec08d4f70696cb0d3218975",
      "parents": [
        "3cd6dbe6feb9b32347e6c6f25a27f0cde9d50418"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:44 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: strip trailing whitespace\n\nThis patch strips trailing whitespace from the reiserfs code.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3cd6dbe6feb9b32347e6c6f25a27f0cde9d50418",
      "tree": "613a4aaa00bc830b69a97ff2cb3558dc163f957d",
      "parents": [
        "fba4ebb5f0f84a6f9989e9591741ddff946de320"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:43 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: cleanup path functions\n\nThis patch cleans up some redundancies in the reiserfs tree path code.\n\ndecrement_bcount() is essentially the same function as brelse(), so we use\nthat instead.\n\ndecrement_counters_in_path() is exactly the same function as pathrelse(), so\nwe kill that and use pathrelse() instead.\n\nThere\u0027s also a bit of cleanup that makes the code a bit more readable.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fba4ebb5f0f84a6f9989e9591741ddff946de320",
      "tree": "7d140b781292f00a70a98f0f938fc2ac6f0896c0",
      "parents": [
        "57fe60df62410f949da094d06ced1dda9575b69c"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:42 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: factor out buffer_info initialization\n\nThis is the first in a series of patches to make balance_leaf() not\nquite so insane.\n\nThis patch factors out the open coded initializations of buffer_info\nstructures and defines a few initializers for the 4 cases they\u0027re used.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57fe60df62410f949da094d06ced1dda9575b69c",
      "tree": "f3ba5db112cd7d2a8865d16bece28c38a766145c",
      "parents": [
        "a41f1a4715f26f7bc4d047d0bc7710145c8e69c7"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:41 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: add atomic addition of selinux attributes during inode creation\n\nSome time ago, some changes were made to make security inode attributes\nbe atomically written during inode creation.  ReiserFS fell behind in\nthis area, but with the reworking of the xattr code, it\u0027s now fairly\neasy to add.\n\nThe following patch adds the ability for security attributes to be added\nautomatically during inode creation.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a41f1a4715f26f7bc4d047d0bc7710145c8e69c7",
      "tree": "8b5d94368e774ec490619593300e8b3f4b7c5cb1",
      "parents": [
        "0ab2621ebd9a28bf7a524ecd50d492a10579dfcc"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:40 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: use generic readdir for operations across all xattrs\n\nThe current reiserfs xattr implementation open codes reiserfs_readdir\nand frees the path before calling the filldir function.  Typically, the\nfilldir function is something that modifies the file system, such as a\nchown or an inode deletion that also require reading of an inode\nassociated with each direntry.  Since the file system is modified, the\npath retained becomes invalid for the next run.  In addition, it runs\nbackwards in attempt to minimize activity.\n\nThis is clearly suboptimal from a code cleanliness perspective as well\nas performance-wise.\n\nThis patch implements a generic reiserfs_for_each_xattr that uses the\ngeneric readdir and a specific filldir routine that simply populates an\narray of dentries and then performs a specific operation on them.  When\nall files have been operated on, it then calls the operation on the\ndirectory itself.\n\nThe result is a noticable code reduction and better performance.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ab2621ebd9a28bf7a524ecd50d492a10579dfcc",
      "tree": "62dda6de2fed116aff363190f95a58d56c690e3e",
      "parents": [
        "48b32a3553a54740d236b79a90f20147a25875e3"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:39 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: journaled xattrs\n\nDeadlocks are possible in the xattr code between the journal lock and the\nxattr sems.\n\nThis patch implements journalling for xattr operations. The benefit is\ntwofold:\n * It gets rid of the deadlock possibility by always ensuring that xattr\n   write operations are initiated inside a transaction.\n * It corrects the problem where xattr backing files aren\u0027t considered any\n   differently than normal files, despite the fact they are metadata.\n\nI discussed the added journal load with Chris Mason, and we decided that\nsince xattrs (versus other journal activity) is fairly rare, the introduction\nof larger transactions to support journaled xattrs wouldn\u0027t be too big a deal.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48b32a3553a54740d236b79a90f20147a25875e3",
      "tree": "faf6807facb5825608469a9e33c9127f90b974df",
      "parents": [
        "8ecbe550a142fe604874afa477ea68986f89b86c"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:38 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: use generic xattr handlers\n\nChristoph Hellwig had asked me quite some time ago to port the reiserfs\nxattrs to the generic xattr interface.\n\nThis patch replaces the reiserfs-specific xattr handling code with the\ngeneric struct xattr_handler.\n\nHowever, since reiserfs doesn\u0027t split the prefix and name when accessing\nxattrs, it can\u0027t leverage generic_{set,get,list,remove}xattr without\nneedlessly reconstructing the name on the back end.\n\nUpdate 7/26/07: Added missing dput() to deletion path.\nUpdate 8/30/07: Added missing mark_inode_dirty when i_mode is used to\n                represent an ACL and no previous ACL existed.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ecbe550a142fe604874afa477ea68986f89b86c",
      "tree": "3b11a69188137b478894f24079b8cc56df7843b3",
      "parents": [
        "8b6dd72a441a683cef7ace93de0a57ced4367f00"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:37 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: remove i_has_xattr_dir\n\nWith the changes to xattr root locking, the i_has_xattr_dir flag\nis no longer needed. This patch removes it.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8b6dd72a441a683cef7ace93de0a57ced4367f00",
      "tree": "6bdeebd3a35d71db2c7ea3e48e3f617b5efbd81a",
      "parents": [
        "d984561b326cd0fe0d1183d11b9b4fa1d011d21d"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:36 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: make per-inode xattr locking more fine grained\n\nThe per-inode locking can be made more fine-grained to surround just the\ninteraction with the filesystem itself.  This really only applies to\nprotecting reads during a write, since concurrent writes are barred with\ninode-\u003ei_mutex at the vfs level.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d984561b326cd0fe0d1183d11b9b4fa1d011d21d",
      "tree": "e0487588581bccaa2b875529ed84ec5a4a254ab9",
      "parents": [
        "6c17675e1e02ebde220ef639a3fb1333928ec2f4"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:35 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: eliminate per-super xattr lock\n\nWith the switch to using inode-\u003ei_mutex locking during lookups/creation\nin the xattr root, the per-super xattr lock is no longer needed.\n\nThis patch removes it.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c17675e1e02ebde220ef639a3fb1333928ec2f4",
      "tree": "2bc1e7f1d05d725d5d1294d687edb52da0722928",
      "parents": [
        "a72bdb1cd244725ff47b3a29662e2cb820d8c60f"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:34 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:37 2009 -0700"
      },
      "message": "reiserfs: simplify xattr internal file lookups/opens\n\nThe xattr file open/lookup code is needlessly complex.  We can use\nvfs-level operations to perform the same work, and also simplify the\nlocking constraints.  The locking advantages will be exploited in future\npatches.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a72bdb1cd244725ff47b3a29662e2cb820d8c60f",
      "tree": "68f9022b303ca5183bd64eddbff41f0624e84188",
      "parents": [
        "6dfede696391133eadd7ce90b61c9573ee6e5a90"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:33 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:37 2009 -0700"
      },
      "message": "reiserfs: Clean up xattrs when REISERFS_FS_XATTR is unset\n\nThe current reiserfs xattr implementation will not clean up old xattr\nfiles if files are deleted when REISERFS_FS_XATTR is unset.  This\nresults in inaccessible lost files, wasting space.\n\nThis patch compiles in basic xattr knowledge, such as how to delete them\nand change ownership for quota tracking.  If the file system has never\nused xattrs, then the operation is quite fast: it returns immediately\nwhen it sees there is no .reiserfs_priv directory.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6dfede696391133eadd7ce90b61c9573ee6e5a90",
      "tree": "2051bfc5108d0e7592b8738e43f4ae972d398ccd",
      "parents": [
        "010f5a21a323e7383e067009a7785462883fe5ea"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:32 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:37 2009 -0700"
      },
      "message": "reiserfs: remove IS_PRIVATE helpers\n\nThere are a number of helper functions for marking a reiserfs inode\nprivate that were leftover from reiserfs did its own thing wrt to\nprivate inodes.  S_PRIVATE has been in the kernel for some time, so this\npatch removes the helpers and uses IS_PRIVATE instead.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "010f5a21a323e7383e067009a7785462883fe5ea",
      "tree": "2144b0d0e7c7e37da0e5b28a922d49c00ea5cec3",
      "parents": [
        "ec6ea56b2f1d3811815e53131e85fd1fc9b51873"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:31 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:37 2009 -0700"
      },
      "message": "reiserfs: remove link detection code\n\nEarly in the reiserfs xattr development, there was a plan to use\nhardlinks to save disk space for identical xattrs.  That code never\nmaterialized and isn\u0027t going to, so this patch removes the detection\ncode.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "ec6ea56b2f1d3811815e53131e85fd1fc9b51873"
}
