)]}'
{
  "log": [
    {
      "commit": "508827ff0ac3981d420edac64a70de7f4e304d38",
      "tree": "b0cee8ddef9f0ceab68c388e4ae46b7295eb2cb5",
      "parents": [
        "2c3c3d02f28801d7ad2da4952b2c7ca6621ef221",
        "72e2240f181871675d3a979766330c91d48a1673"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 05 02:06:47 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 05 02:06:47 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/tokenring/tmspci.c\n\tdrivers/net/ucc_geth_mii.c\n"
    },
    {
      "commit": "36b31106b725ac2ca4941d4ee8dbb67df72ed5dd",
      "tree": "81a38dfa56d58ce3be085ed8b31fac6f41ef0571",
      "parents": [
        "7b88ed671a7157e427811db208bb167c49f33352",
        "8f64b32eb73fbfe9f38c4123121b63ee409278a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 02 15:42:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 02 15:42:26 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: don\u0027t call jbd2_journal_force_commit_nested without journal\n  ext4: Reorder fs/Makefile so that ext2 root fs\u0027s are mounted using ext2\n  ext4: Remove duplicate call to ext4_commit_super() in ext4_freeze()\n"
    },
    {
      "commit": "aa4abc9bcce0d2a7ec189e897f8f8c58ca04643b",
      "tree": "22ef88d84a2e06380bb6a853c3ba28657e4e5f92",
      "parents": [
        "814c01dc7c533033b4e99981a2e24a6195bfb43c",
        "52c0326beaa3cb0049d0f1c51c6ad5d4a04e4430"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 01 21:35:16 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 01 21:35:16 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\tdrivers/net/wireless/iwlwifi/iwl-tx.c\n\tnet/8021q/vlan_core.c\n\tnet/core/dev.c\n"
    },
    {
      "commit": "5cf8cf4146de03de67d1a8aefbece66b65f255cc",
      "tree": "ced1ae8ce6217acdc717a394e7ebbdb5dcb1886e",
      "parents": [
        "31d8b5631f095cb7100cfccc95c801a2547ffe2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Feb 26 21:32:51 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:27:45 2009 -0800"
      },
      "message": "Fix FREEZE/THAW compat_ioctl regression\n\nCommit 8e961870bb9804110d5c8211d5d9d500451c4518 removed the FREEZE/THAW\nhandling in xfs_compat_ioctl but never added any compat handler back, so\nnow any freeze/thaw request from a 32-bit binary ond 64-bit userspace\nwill fail.\n\nAs these ioctls are 32/64-bit compatible two simple COMPATIBLE_IOCTL\nentries in fs/compat_ioctl.c will do the job.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "adc487204a9373d2b5a535412466326036147a72",
      "tree": "bae340437d94f25020f2dcdf448eb1110d4621a8",
      "parents": [
        "dca17146f4b72b8966016c406d94ad3e48289b79"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Feb 27 14:02:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:20 2009 -0800"
      },
      "message": "EXPORT_SYMBOL(d_obtain_alias) rather than EXPORT_SYMBOL_GPL\n\nCommit 4ea3ada2955e4519befa98ff55dd62d6dfbd1705 declares d_obtain_alias()\nas EXPORT_SYMBOL_GPL where it\u0027s supposed to replace d_alloc_anon which was\npreviously declared as EXPORT_SYMBOL and thus available to any loadable\nmodule.\n\nThis patch reverts that.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "221be177e68e197a946bb991c8b91468e960be4e",
      "tree": "f77313df6358700d58cc7921551400170a8f6700",
      "parents": [
        "d49981150387c481779a544ec641f17882f4bbfb",
        "b50be33e42e2c87812b30aee1a2b2a5ac6cb3ffa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 26 14:45:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 26 14:45:57 2009 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6:\n  [MTD] [MAPS] Remove MODULE_DEVICE_TABLE() from ck804rom driver.\n  [JFFS2] fix mount crash caused by removed nodes\n  [JFFS2] force the jffs2 GC daemon to behave a bit better\n  [MTD] [MAPS] blackfin async requires complex mappings\n  [MTD] [MAPS] blackfin: fix memory leak in error path\n  [MTD] [MAPS] physmap: fix wrong free and del_mtd_{partition,device}\n  [MTD] slram: Handle negative devlength correctly\n  [MTD] map_rom has NULL erase pointer\n  [MTD] [LPDDR] qinfo_probe depends on lpddr\n"
    },
    {
      "commit": "28d57d437786eb3e44f1ca3f0f41e7cfe29c6dd4",
      "tree": "f6dfd111dac45ee7e2b366eb47a2598f46460a1e",
      "parents": [
        "4442f518269c6b3686fcbcadad22dc4475309b16"
      ],
      "author": {
        "name": "wengang wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Fri Feb 13 10:11:47 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:12 2009 -0800"
      },
      "message": "ocfs2: add IO error check in ocfs2_get_sector()\n\nCheck for IO error in ocfs2_get_sector().\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4442f518269c6b3686fcbcadad22dc4475309b16",
      "tree": "5d054d3e44dc95d6ce48709894fe5f2449fb6c77",
      "parents": [
        "c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Feb 20 11:11:50 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: set gap to seperate entry and value when xattr in bucket\n\nThis patch set a gap (4 bytes) between xattr entry and\nname/value when xattr in bucket. This gap use to seperate\nentry and name/value when a bucket is full. It had already\nbeen set when xattr in inode/block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7",
      "tree": "81ab9d6d0be93e57bcb17130abed3516574b3752",
      "parents": [
        "89a907afe073b8971a83d0ad54f391542b64d327"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Feb 24 17:40:26 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: lock the metaecc process for xattr bucket\n\nFor other metadata in ocfs2, metaecc is checked in ocfs2_read_blocks\nwith io_mutex held. While for xattr bucket, it is calculated by\nthe whole buckets. So we have to add a spin_lock to prevent multiple\nprocesses calculating metaecc.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nTested-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "89a907afe073b8971a83d0ad54f391542b64d327",
      "tree": "0168dc1ee1a92981c74c73e9a224e9d4fe63b048",
      "parents": [
        "53ecd25e148615e0ed2a72635cc76f4773f97f90"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Feb 17 04:39:28 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: Use the right access_* method in ctime update of xattr.\n\nIn ctime updating of xattr, it use the wrong type of access for\ninode, so use ocfs2_journal_access_di instead.\n\nReported-and-Tested-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "53ecd25e148615e0ed2a72635cc76f4773f97f90",
      "tree": "ad4f26d160889792c72199678634b4132c5ce1d7",
      "parents": [
        "dabc47de7a23f57522dc762d9d2ad875700d3497"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:16 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2/dlm: Make dlm_assert_master_handler() kill itself instead of the asserter\n\nIn dlm_assert_master_handler(), if we get an incorrect assert master from a node\nthat, we reply with EINVAL asking the asserter to die. The problem is that an\nassert is sent after so many hoops, it is invariably the node that thinks the\nasserter is wrong, is actually wrong. So instead of killing the asserter, this\npatch kills the assertee.\n\nThis patch papers over a race that is still being addressed.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "dabc47de7a23f57522dc762d9d2ad875700d3497",
      "tree": "02d3bca6eaa20975512693a4fcce988dd7df4855",
      "parents": [
        "c74ff8bb2235d848beb67fcfddae71ecbe3f92b1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:15 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2/dlm: Use ast_lock to protect ast_list\n\nThe code was using dlm-\u003espinlock instead of dlm-\u003east_lock to protect the\nast_list. This patch fixes the issue.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c74ff8bb2235d848beb67fcfddae71ecbe3f92b1",
      "tree": "516dd4c87a13c5a068fb47660488f52de486ddb2",
      "parents": [
        "7dc102b737e9f49dac426161294cb2d326a97d8e"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:14 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2: Cleanup the lockname print in dlmglue.c\n\nThe dentry lock has a different format than other locks. This patch fixes\nocfs2_log_dlm_error() macro to make it print the dentry lock correctly.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7dc102b737e9f49dac426161294cb2d326a97d8e",
      "tree": "6073525b25fa7ab423099e808866cfdf96f668dd",
      "parents": [
        "47be12e4eec84c1846f29af64fe25a396b57a026"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:13 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2/dlm: Retract fix for race between purge and migrate\n\nMainline commit d4f7e650e55af6b235871126f747da88600e8040 attempts to delay\nthe dlm_thread from sending the drop ref message if the lockres is being\nmigrated. The problem is that we make the dlm_thread wait for the migration\nto complete. This causes a deadlock as dlm_thread also participates in the\nlockres migration process.\n\nA better fix for the original oss bugzilla#1012 is in testing.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "47be12e4eec84c1846f29af64fe25a396b57a026",
      "tree": "a16590b4fc4e3753295c230a32f07a6e1bbd3a57",
      "parents": [
        "64e71303e44f3697e4568147caa966de74bdb4fb"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Jan 09 07:32:48 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2: Access and dirty the buffer_head in mark_written.\n\nIn __ocfs2_mark_extent_written, when we meet with the situation\nof c_split_covers_rec, the old solution just replace the extent\nrecord and forget to access and dirty the buffer_head. This will\ncause a problem when the unwritten extent is in an extent block.\nSo access and dirty it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "64e71303e44f3697e4568147caa966de74bdb4fb",
      "tree": "49c93c69aeb56e739658c00981f1410e1e354d38",
      "parents": [
        "babb29b0a33db53704594f63f271ca6c049eddc6",
        "4e06bdd6cbd5105376e7caf4e683ed131e777389"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 26 10:37:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 26 10:37:00 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: try committing transaction before returning ENOSPC\n  Btrfs: add better -ENOSPC handling\n"
    },
    {
      "commit": "b2bf96833c5782befc3e7700f791fde754a47b01",
      "tree": "b38745750c948b519e4c46bb9589d3a61c6359f4",
      "parents": [
        "169d418b127b98a3e464e9c4b807ad083760f98c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 19 08:50:26 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 26 10:45:48 2009 +0100"
      },
      "message": "block: fix bogus gcc warning for uninitialized var usage\n\nNewer gcc throw this warning:\n\n        fs/bio.c: In function ?bio_alloc_bioset?:\n        fs/bio.c:305: warning: ?p? may be used uninitialized in this function\n\nsince it cannot figure out that \u0027p\u0027 is only ever used if \u0027bs\u0027 is non-NULL.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8f64b32eb73fbfe9f38c4123121b63ee409278a7",
      "tree": "1c856ed32d7a282dbde0cea2e8839e2c2de51ba9",
      "parents": [
        "d8ae4601a4b7ea1fa17fa395c3468c0e144d1275"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Feb 26 00:57:35 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 26 00:57:35 2009 -0500"
      },
      "message": "ext4: don\u0027t call jbd2_journal_force_commit_nested without journal\n\nRunning without a journal, I oopsed when I ran out of space,\nbecause we called jbd2_journal_force_commit_nested() from\next4_should_retry_alloc() without a journal.\n\nThis should take care of it, I think.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d8ae4601a4b7ea1fa17fa395c3468c0e144d1275",
      "tree": "ce4a6593aaa883377fdd2754655ff5815d363111",
      "parents": [
        "8b1a8ff8b321a9384304aeea4dbdb9747daf7ee8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 28 09:50:01 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 28 09:50:01 2009 -0500"
      },
      "message": "ext4: Reorder fs/Makefile so that ext2 root fs\u0027s are mounted using ext2\n\nIn fs/Makefile, ext3 was placed before ext2 so that a root filesystem\nthat possessed a journal, it would be mounted as ext3 instead of ext2.\nThis was necessary because a cleanly unmounted ext3 filesystem was\nfully backwards compatible with ext2, and could be mounted by ext2 ---\nbut it was desirable that it be mounted with ext3 so that the\njournaling would be enabled.\n\nThe ext4 filesystem supports new incompatible features, so there is no\ndanger of an ext4 filesystem being mistaken for an ext2 filesystem.\nAt that point, the relative ordering of ext4 with respect to ext2\ndidn\u0027t matter until ext4 gained the ability to mount filesystems\nwithout a journal starting in 2.6.29-rc1.  Now that this is the case,\ngiven that ext4 is before ext2, it means that root filesystems that\nwere using the plain-jane ext2 format are getting mounted using the\next4 filesystem driver, which is a change in behavior which could be\nsurprising to users.\n\nIt\u0027s doubtful that there are that many ext2-only root filesystem users\nthat would also have ext4 compiled into the kernel, but to adhere to\nthe principle of least surprise, the correct ordering in fs/Makefile\nis ext3, followed by ext2, and finally ext4.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "8b1a8ff8b321a9384304aeea4dbdb9747daf7ee8",
      "tree": "7be11423c5b5a10e085122b5a3e8d004e5fa865a",
      "parents": [
        "ebd3610b110bbb18ea6f9f2aeed1e1068c537227"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 28 00:08:53 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 28 00:08:53 2009 -0500"
      },
      "message": "ext4: Remove duplicate call to ext4_commit_super() in ext4_freeze()\n\nCommit c4be0c1d added error checking to ext4_freeze() when calling\next4_commit_super().  Unfortunately the patch failed to remove the\noriginal call to ext4_commit_super(), with the net result that when\nfreezing the filesystem, the superblock gets written twice, the first\ntime without error checking.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "694593e3374a67d95ece6a275a1f181644c2c4d8",
      "tree": "df083065019ded7607e460a7bea44f53deb505f8",
      "parents": [
        "21209b61b0ca0aafb04b5ab3561e3c8e7c7f776d",
        "e07a4b9217d1e97d2f3a62b6b070efdc61212110"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 24 15:42:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 24 15:42:08 2009 -0800"
      },
      "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  proc: fix PG_locked reporting in /proc/kpageflags\n"
    },
    {
      "commit": "4daa0682af15b24e9d66ccde3a5d502682e572d8",
      "tree": "b675fbb92366514e53c240dfa0115cd4aeef00ba",
      "parents": [
        "f7e603ad8f78cd3b59e33fa72707da0cbabdf699",
        "ebd3610b110bbb18ea6f9f2aeed1e1068c537227"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 24 15:39:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 24 15:39:34 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Fix deadlock in ext4_write_begin() and ext4_da_write_begin()\n  ext4: Add fallback for find_group_flex\n"
    },
    {
      "commit": "e07a4b9217d1e97d2f3a62b6b070efdc61212110",
      "tree": "8fb1450f8dd1140693f84092ba25eedf3359ccb9",
      "parents": [
        "f7e603ad8f78cd3b59e33fa72707da0cbabdf699"
      ],
      "author": {
        "name": "Helge Bahmann",
        "email": "helge.bahmann@secunet.com",
        "time": "Fri Feb 20 16:24:12 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Feb 24 21:17:58 2009 +0300"
      },
      "message": "proc: fix PG_locked reporting in /proc/kpageflags\n\nExpr always evaluates to zero.\n\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "e70049b9e74267dd47e1ffa62302073487afcb48",
      "tree": "2cd000c0751ef31c9044b020d63f278cdf4f332d",
      "parents": [
        "d18921a0e319ab512f8186b1b1142c7b8634c779",
        "f7e603ad8f78cd3b59e33fa72707da0cbabdf699"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 24 03:50:29 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 24 03:50:29 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n"
    },
    {
      "commit": "cac711211a039ae2e2dc6322ffb3c2279d093bf1",
      "tree": "a910c047f30616462bb8312b86b0caff8a56fa85",
      "parents": [
        "226485e9a91ee89c941d8cb7714f85644a8071d0"
      ],
      "author": {
        "name": "Krzysztof Sachanowicz",
        "email": "analyzer1@gmail.com",
        "time": "Mon Feb 23 22:21:55 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 23 18:25:32 2009 -0800"
      },
      "message": "proc: proc_get_inode should de_put when inode already initialized\n\nde_get is called before every proc_get_inode, but corresponding de_put is\ncalled only when dropping last reference to an inode. This might cause\nsomething like\nremove_proc_entry: /proc/stats busy, count\u003d14496\nto be printed to the syslog.\n\nThe fix is to call de_put in case of an already initialized inode in\nproc_get_inode.\n\nSigned-off-by: Krzysztof Sachanowicz \u003canalyzer1@gmail.com\u003e\nTested-by: Marcin Pilipczuk \u003cmarcin.pilipczuk@gmail.com\u003e\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebd3610b110bbb18ea6f9f2aeed1e1068c537227",
      "tree": "a7ecd4c6ef1d05619abeefea831e8f73ffadda11",
      "parents": [
        "05bf9e839d9de4e8a094274a0a2fd07beb47eaf1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Feb 22 21:09:59 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 22 21:09:59 2009 -0500"
      },
      "message": "ext4: Fix deadlock in ext4_write_begin() and ext4_da_write_begin()\n\nFunctions ext4_write_begin() and ext4_da_write_begin() call\ngrab_cache_page_write_begin() without AOP_FLAG_NOFS. Thus it\ncan happen that page reclaim is triggered in that function\nand it recurses back into the filesystem (or some other filesystem).\nBut this can lead to various problems as a transaction is already\nstarted at that point. Add the necessary flag.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11688\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "05bf9e839d9de4e8a094274a0a2fd07beb47eaf1",
      "tree": "36dba549ded1f7c7b37bd854fb20d55bff89787d",
      "parents": [
        "20f4d6c3a2a23c5d7d9cc7f42fbb943ca7a03d1f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 21 12:13:24 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 21 12:13:24 2009 -0500"
      },
      "message": "ext4: Add fallback for find_group_flex\n\nThis is a workaround for find_group_flex() which badly needs to be\nreplaced.  One of its problems (besides ignoring the Orlov algorithm)\nis that it is a bit hyperactive about returning failure under\nsuspicious circumstances.  This can lead to spurious ENOSPC failures\neven when there are inodes still available.\n\nWork around this for now by retrying the search using\nfind_group_other() if find_group_flex() returns -1.  If\nfind_group_other() succeeds when find_group_flex() has failed, log a\nwarning message.\n\nA better block/inode allocator that will fix this problem for real has\nbeen queued up for the next merge window.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "710320d57999016729da7c9cfee017b276f553bc",
      "tree": "e881354fc52ef892d564832e7993ec89dad15f7d",
      "parents": [
        "2ec77fc93ca8731368fbe8e71f805c0569d4bcee",
        "eca6acf91552a9b2e997cc76339115c95eac0217"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 09:11:28 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 21 09:11:28 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] Fix multiuser mounts so server does not invalidate earlier security contexts\n  [CIFS] improve posix semantics of file create\n  [CIFS] Fix oops in cifs_strfromUCS_le mounting to servers which do not specify their OS\n  cifs: posix fill in inode needed by posix open\n  cifs: properly handle case where CIFSGetSrvInodeNumber fails\n  cifs: refactor new_inode() calls and inode initialization\n  [CIFS] Prevent OOPs when mounting with remote prefixpath.\n  [CIFS] ipv6_addr_equal for address comparison\n"
    },
    {
      "commit": "4c41bd0ec953954158f92bed5d3062645062b98e",
      "tree": "bd3f4c7fdbcac9bf2cabce557d472d6ed4ae4741",
      "parents": [
        "efab0b5d3eed6aa71f8e3233e4e11774eedc04dc"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 16 21:29:31 2009 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Feb 21 11:09:29 2009 +0100"
      },
      "message": "[JFFS2] fix mount crash caused by removed nodes\n\nAt scan time we observed following scenario:\n\n   node A inserted\n   node B inserted\n   node C inserted -\u003e sets overlapped flag on node B\n\n   node A is removed due to CRC failure -\u003e overlapped flag on node B remains\n\n   while (tn-\u003eoverlapped)\n   \t tn \u003d tn_prev(tn);\n\n   \u003d\u003d\u003e crash, when tn_prev(B) is referenced.\n\nWhen the ultimate node is removed at scan time and the overlapped flag\nis set on the penultimate node, then nothing updates the overlapped\nflag of that node. The overlapped iterators blindly expect that the\nultimate node does not have the overlapped flag set, which causes the\nscan code to crash.\n\nIt would be a huge overhead to go through the node chain on node\nremoval and fix up the overlapped flags, so detecting such a case on\nthe fly in the overlapped iterators is a simpler and reliable\nsolution.\n\nCc: stable@kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "eca6acf91552a9b2e997cc76339115c95eac0217",
      "tree": "2c3c3ef60900d6ee0cb8952f2bd4195abfb92663",
      "parents": [
        "c3b2a0c640bff7df85d79fb4f89674949a267ec2"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Feb 20 05:43:09 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:10 2009 +0000"
      },
      "message": "[CIFS] Fix multiuser mounts so server does not invalidate earlier security contexts\n\nWhen two different users mount the same Windows 2003 Server share using CIFS,\nthe first session mounted can be invalidated.  Some servers invalidate the first\nsmb session when a second similar user (e.g. two users who get mapped by server to \"guest\")\nauthenticates an smb session from the same client.\n\nBy making sure that we set the 2nd and subsequent vc numbers to nonzero values,\nthis ensures that we will not have this problem.\n\nFixes Samba bug 6004, problem description follows:\nHow to reproduce:\n\n- configure an \"open share\" (full permissions to Guest user) on Windows 2003\nServer (I couldn\u0027t reproduce the problem with Samba server or Windows older\nthan 2003)\n- mount the share twice with different users who will be authenticated as guest.\n\n noacl,noperm,user\u003djohn,dir_mode\u003d0700,domain\u003dDOMAIN,rw\n noacl,noperm,user\u003djeff,dir_mode\u003d0700,domain\u003dDOMAIN,rw\n\nResult:\n\n- just the mount point mounted last is accessible:\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c3b2a0c640bff7df85d79fb4f89674949a267ec2",
      "tree": "ed36e11454123d276929b1c470a27409ccf957bb",
      "parents": [
        "69765529d701c838df19ea1f5ad2f33a528261ae"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Feb 20 04:32:45 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:09 2009 +0000"
      },
      "message": "[CIFS] improve posix semantics of file create\n\nSamba server added support for a new posix open/create/mkdir operation\na year or so ago, and we added support to cifs for mkdir to use it,\nbut had not added the corresponding code to file create.\n\nThe following patch helps improve the performance of the cifs create\npath (to Samba and servers which support the cifs posix protocol\nextensions).  Using Connectathon basic test1, with 2000 files, the\nperformance improved about 15%, and also helped reduce network traffic\n(17% fewer SMBs sent over the wire) due to saving a network round trip\nfor the SetPathInfo on every file create.\n\nIt should also help the semantics (and probably the performance) of\nwrite (e.g. when posix byte range locks are on the file) on file\nhandles opened with posix create, and adds support for a few flags\nwhich would have to be ignored otherwise.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "69765529d701c838df19ea1f5ad2f33a528261ae",
      "tree": "229ce1fda799ac8f6553a87ed05516dd675b3eec",
      "parents": [
        "44f68fadd865bb288ebdcea2b602f0b1cab27a0c"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Feb 17 01:29:40 2009 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:09 2009 +0000"
      },
      "message": "[CIFS] Fix oops in cifs_strfromUCS_le mounting to servers which do not specify their OS\n\nFixes kernel bug #10451 http://bugzilla.kernel.org/show_bug.cgi?id\u003d10451\n\nCertain NAS appliances do not set the operating system or network operating system\nfields in the session setup response on the wire.  cifs was oopsing on the unexpected\nzero length response fields (when trying to null terminate a zero length field).\n\nThis fixes the oops.\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCC: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "44f68fadd865bb288ebdcea2b602f0b1cab27a0c",
      "tree": "5b8a7bc718bf9cbb0ae53dd48c95ceaaa98873ce",
      "parents": [
        "950ec52880fab89b957c7dc45e8b8476dd63741f"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Feb 11 08:08:28 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:08 2009 +0000"
      },
      "message": "cifs: posix fill in inode needed by posix open\n\nfunction needed to prepare for posix open\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "950ec52880fab89b957c7dc45e8b8476dd63741f",
      "tree": "dfb8bd4bdf0e455fefd453c4e899276641a60394",
      "parents": [
        "132ac7b77cc95a22d6118d327c96586759fbf006"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Feb 11 08:08:26 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:08 2009 +0000"
      },
      "message": "cifs: properly handle case where CIFSGetSrvInodeNumber fails\n\n...if it does then we pass a pointer to an unintialized variable for\nthe inode number to cifs_new_inode. Have it pass a NULL pointer instead.\n\nAlso tweak the function prototypes to reduce the amount of casting.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "132ac7b77cc95a22d6118d327c96586759fbf006",
      "tree": "37e1211723408f2aef2b71bfdaf34a596e675d8d",
      "parents": [
        "e4cce94c9c8797b08faf6a79396df4d175e377fa"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Feb 10 07:33:57 2009 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:37:07 2009 +0000"
      },
      "message": "cifs: refactor new_inode() calls and inode initialization\n\nMove new inode creation into a separate routine and refactor the\ncallers to take advantage of it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "e4cce94c9c8797b08faf6a79396df4d175e377fa",
      "tree": "6eb306603652bf08ca10fef4f899332f30d71e09",
      "parents": [
        "e1f81c8a417be466e85a38b61679aa6860ec7331"
      ],
      "author": {
        "name": "Igor Mammedov",
        "email": "niallain@gmail.com",
        "time": "Tue Feb 10 14:10:26 2009 +0300"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Feb 21 03:36:21 2009 +0000"
      },
      "message": "[CIFS] Prevent OOPs when mounting with remote prefixpath.\n\nFixes OOPs with message \u0027kernel BUG at fs/cifs/cifs_dfs_ref.c:274!\u0027.\nChecks if the prefixpath in an accesible while we are still in cifs_mount\nand fails with reporting a error if we can\u0027t access the prefixpath\n\nShould fix Samba bugs 6086 and 5861 and kernel bug 12192\n\nSigned-off-by: Igor Mammedov \u003cniallain@gmail.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "264b29900657f53fb4ddc8bf08f447c4c227b2cf",
      "tree": "b45d7a4f57b578cc331dc391b1a4225013136c92",
      "parents": [
        "b6adea334c6c89d5e6c94f9196bbf3a279cb53bd",
        "2cfbd50b536c878e58ab3681c4e944fa3d99b415"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:59:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 20 17:59:14 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: check file pointer in btrfs_sync_file\n"
    },
    {
      "commit": "4e06bdd6cbd5105376e7caf4e683ed131e777389",
      "tree": "20a7b891f7f8f518eb2cd81234e0c9ab5902c6c3",
      "parents": [
        "6a63209fc02d5483371f07e4913ee8abad608051"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Fri Feb 20 10:59:53 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 20 10:59:53 2009 -0500"
      },
      "message": "Btrfs: try committing transaction before returning ENOSPC\n\nThis fixes a problem where we could return -ENOSPC when we may actually have\nplenty of space, the space is just pinned.  Instead of returning -ENOSPC\nimmediately, commit the transaction first and then try and do the allocation\nagain.\n\nThis patch also does chunk allocation for metadata if we pass the 80%\nthreshold for metadata space.  This will help with stack usage since the chunk\nallocation will happen early on, instead of when the allocation is happening.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\n\n\n"
    },
    {
      "commit": "6a63209fc02d5483371f07e4913ee8abad608051",
      "tree": "7595e0df452928b677b66a64baf0cb3b7ec53dfc",
      "parents": [
        "2cfbd50b536c878e58ab3681c4e944fa3d99b415"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Fri Feb 20 11:00:09 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 20 11:00:09 2009 -0500"
      },
      "message": "Btrfs: add better -ENOSPC handling\n\nThis is a step in the direction of better -ENOSPC handling.  Instead of\nchecking the global bytes counter we check the space_info bytes counters to\nmake sure we have enough space.\n\nIf we don\u0027t we go ahead and try to allocate a new chunk, and then if that fails\nwe return -ENOSPC.  This patch adds two counters to btrfs_space_info,\nbytes_delalloc and bytes_may_use.\n\nbytes_delalloc account for extents we\u0027ve actually setup for delalloc and will\nbe allocated at some point down the line. \n\nbytes_may_use is to keep track of how many bytes we may use for delalloc at\nsome point.  When we actually set the extent_bit for the delalloc bytes we\nsubtract the reserved bytes from the bytes_may_use counter.  This keeps us from\nnot actually being able to allocate space for any delalloc bytes.\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\n\n\n\n\n"
    },
    {
      "commit": "2cfbd50b536c878e58ab3681c4e944fa3d99b415",
      "tree": "af29d7c8a094b0560c3ed04aebacdea23ae1177f",
      "parents": [
        "2456242530a21cfee82646ebeeda65d3f74faa4c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 20 10:55:10 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 20 10:55:10 2009 -0500"
      },
      "message": "Btrfs: check file pointer in btrfs_sync_file\n\nfsync can be called by NFS with a null file pointer, and btrfs was\noopsing in this case.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "620565ef5f35f4196e5081417db381c16b0ae791",
      "tree": "6bfbcd9c26de367a64177392e9eb0dc553094f36",
      "parents": [
        "a5e753638874b9caabde01c8774e1a39e31cb614",
        "27e88bf6af7d42adf790f7b2ed7d65475f191cf2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 19 13:09:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 19 13:09:32 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  Revert \"[XFS] remove old vmap cache\"\n  Revert \"[XFS] use scalable vmap API\"\n"
    },
    {
      "commit": "27e88bf6af7d42adf790f7b2ed7d65475f191cf2",
      "tree": "ce135c2daae945a11b7ae0c5869660b7972aa88f",
      "parents": [
        "7fdf582447aa01658b624adc0a51a31e4278b68c"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Feb 18 15:56:51 2009 -0600"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Feb 19 13:15:55 2009 -0600"
      },
      "message": "Revert \"[XFS] remove old vmap cache\"\n\nThis reverts commit d2859751cd0bf586941ffa7308635a293f943c17.\n\nThis commit caused regression. We\u0027ll try to fix use of new\nvmap API for next release.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "7fdf582447aa01658b624adc0a51a31e4278b68c",
      "tree": "dcb0df49afe80e241f470d3850a6bea6c2c0c596",
      "parents": [
        "43f3f057c56d030546145696627f13f95735be95"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Wed Feb 18 15:41:28 2009 -0600"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Feb 19 13:15:44 2009 -0600"
      },
      "message": "Revert \"[XFS] use scalable vmap API\"\n\nThis reverts commit 95f8e302c04c0b0c6de35ab399a5551605eeb006.\n\nThis commit caused regression. We\u0027ll try to fix use of new\nvmap API for next release.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "ba95fd47d177d46743ad94055908d22840370e06",
      "tree": "f29e6921fefba2728c3b7f6854ac7f7729f602b2",
      "parents": [
        "59af0a0b5848caf38f1bf7013905c3e9cdba4d1d",
        "be987fdb55a4726e2fcbab7501f89276bdb57288"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 18:33:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 18:33:04 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list\n  block: fix booting from partitioned md array\n  block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb\n  cciss: PCI power management reset for kexec\n  paride/pg.c: xs(): \u0026\u0026/|| confusion\n  fs/bio: bio_alloc_bioset: pass right object ptr to mempool_free\n  block: fix bad definition of BIO_RW_SYNC\n  bsg: Fix sense buffer bug in SG_IO\n"
    },
    {
      "commit": "f04b30de3c82528f1ab4c58b3dd4c975f5341901",
      "tree": "1d3410190d93a72c0a98961704086ba17c21d326",
      "parents": [
        "be50344e604f956891fc0013f1ba78823a758124"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 18 14:48:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:56 2009 -0800"
      },
      "message": "inotify: fix GFP_KERNEL related deadlock\n\nEnhanced lockdep coverage of __GFP_NOFS turned up this new lockdep\nassert:\n\n[ 1093.677775]\n[ 1093.677781] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ 1093.680031] [ INFO: inconsistent lock state ]\n[ 1093.680031] 2.6.29-rc5-tip-01504-gb49eca1-dirty #1\n[ 1093.680031] ---------------------------------\n[ 1093.680031] inconsistent {RECLAIM_FS-ON-W} -\u003e {IN-RECLAIM_FS-W} usage.\n[ 1093.680031] kswapd0/308 [HC0[0]:SC0[0]:HE1:SE1] takes:\n[ 1093.680031]  (\u0026inode-\u003einotify_mutex){+.+.?.}, at: [\u003cc0205942\u003e] inotify_inode_is_dead+0x20/0x80\n[ 1093.680031] {RECLAIM_FS-ON-W} state was registered at:\n[ 1093.680031]   [\u003cc01696b9\u003e] mark_held_locks+0x43/0x5b\n[ 1093.680031]   [\u003cc016baa4\u003e] lockdep_trace_alloc+0x6c/0x6e\n[ 1093.680031]   [\u003cc01cf8b0\u003e] kmem_cache_alloc+0x20/0x150\n[ 1093.680031]   [\u003cc040d0ec\u003e] idr_pre_get+0x27/0x6c\n[ 1093.680031]   [\u003cc02056e3\u003e] inotify_handle_get_wd+0x25/0xad\n[ 1093.680031]   [\u003cc0205f43\u003e] inotify_add_watch+0x7a/0x129\n[ 1093.680031]   [\u003cc020679e\u003e] sys_inotify_add_watch+0x20f/0x250\n[ 1093.680031]   [\u003cc010389e\u003e] sysenter_do_call+0x12/0x35\n[ 1093.680031]   [\u003cffffffff\u003e] 0xffffffff\n[ 1093.680031] irq event stamp: 60417\n[ 1093.680031] hardirqs last  enabled at (60417): [\u003cc018d5f5\u003e] call_rcu+0x53/0x59\n[ 1093.680031] hardirqs last disabled at (60416): [\u003cc018d5b9\u003e] call_rcu+0x17/0x59\n[ 1093.680031] softirqs last  enabled at (59656): [\u003cc0146229\u003e] __do_softirq+0x157/0x16b\n[ 1093.680031] softirqs last disabled at (59651): [\u003cc0106293\u003e] do_softirq+0x74/0x15d\n[ 1093.680031]\n[ 1093.680031] other info that might help us debug this:\n[ 1093.680031] 2 locks held by kswapd0/308:\n[ 1093.680031]  #0:  (shrinker_rwsem){++++..}, at: [\u003cc01b0502\u003e] shrink_slab+0x36/0x189\n[ 1093.680031]  #1:  (\u0026type-\u003es_umount_key#4){+++++.}, at: [\u003cc01e6d77\u003e] shrink_dcache_memory+0x110/0x1fb\n[ 1093.680031]\n[ 1093.680031] stack backtrace:\n[ 1093.680031] Pid: 308, comm: kswapd0 Not tainted 2.6.29-rc5-tip-01504-gb49eca1-dirty #1\n[ 1093.680031] Call Trace:\n[ 1093.680031]  [\u003cc016947a\u003e] valid_state+0x12a/0x13d\n[ 1093.680031]  [\u003cc016954e\u003e] mark_lock+0xc1/0x1e9\n[ 1093.680031]  [\u003cc016a5b4\u003e] ? check_usage_forwards+0x0/0x3f\n[ 1093.680031]  [\u003cc016ab74\u003e] __lock_acquire+0x2c6/0xac8\n[ 1093.680031]  [\u003cc01688d9\u003e] ? register_lock_class+0x17/0x228\n[ 1093.680031]  [\u003cc016b3d3\u003e] lock_acquire+0x5d/0x7a\n[ 1093.680031]  [\u003cc0205942\u003e] ? inotify_inode_is_dead+0x20/0x80\n[ 1093.680031]  [\u003cc08824c4\u003e] __mutex_lock_common+0x3a/0x4cb\n[ 1093.680031]  [\u003cc0205942\u003e] ? inotify_inode_is_dead+0x20/0x80\n[ 1093.680031]  [\u003cc08829ed\u003e] mutex_lock_nested+0x2e/0x36\n[ 1093.680031]  [\u003cc0205942\u003e] ? inotify_inode_is_dead+0x20/0x80\n[ 1093.680031]  [\u003cc0205942\u003e] inotify_inode_is_dead+0x20/0x80\n[ 1093.680031]  [\u003cc01e6672\u003e] dentry_iput+0x90/0xc2\n[ 1093.680031]  [\u003cc01e67a3\u003e] d_kill+0x21/0x45\n[ 1093.680031]  [\u003cc01e6a46\u003e] __shrink_dcache_sb+0x27f/0x355\n[ 1093.680031]  [\u003cc01e6dc5\u003e] shrink_dcache_memory+0x15e/0x1fb\n[ 1093.680031]  [\u003cc01b05ed\u003e] shrink_slab+0x121/0x189\n[ 1093.680031]  [\u003cc01b0d12\u003e] kswapd+0x39f/0x561\n[ 1093.680031]  [\u003cc01ae499\u003e] ? isolate_pages_global+0x0/0x233\n[ 1093.680031]  [\u003cc0157eae\u003e] ? autoremove_wake_function+0x0/0x43\n[ 1093.680031]  [\u003cc01b0973\u003e] ? kswapd+0x0/0x561\n[ 1093.680031]  [\u003cc0157daf\u003e] kthread+0x41/0x82\n[ 1093.680031]  [\u003cc0157d6e\u003e] ? kthread+0x0/0x82\n[ 1093.680031]  [\u003cc01043ab\u003e] kernel_thread_helper+0x7/0x10\n\ninotify_handle_get_wd() does idr_pre_get() which does a\nkmem_cache_alloc() without __GFP_FS - and is hence deadlockable under\nextreme MM pressure.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2db69a9340da12a4db44edb7506dd68799aeff55",
      "tree": "1d644a26f4ebafeaaa0b8124b60c2875453f775a",
      "parents": [
        "a1a5c3b9237662f326cc730e167e7524b5d05a36"
      ],
      "author": {
        "name": "Bill Nottingham",
        "email": "notting@redhat.com",
        "time": "Wed Feb 18 14:48:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:56 2009 -0800"
      },
      "message": "vt: Declare PIO_CMAP/GIO_CMAP as compatbile ioctls.\n\nOtherwise, these don\u0027t work when called from 32-bit userspace on 64-bit\nkernels.\n\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ada723dcd681e2dffd7d73345cc8fda0eb0df9bd",
      "tree": "5f1b114d225721ae7a65fca08a6d053f89f36c43",
      "parents": [
        "27c0c8e511fa9e2389503926840fac606d90a049"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Feb 18 14:48:30 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:55 2009 -0800"
      },
      "message": "fs/super.c: add lockdep annotation to s_umount\n\nLi Zefan said:\n\nThread 1:\n  for ((; ;))\n  {\n      mount -t cpuset xxx /mnt \u003e /dev/null 2\u003e\u00261\n      cat /mnt/cpus \u003e /dev/null 2\u003e\u00261\n      umount /mnt \u003e /dev/null 2\u003e\u00261\n  }\n\nThread 2:\n  for ((; ;))\n  {\n      mount -t cpuset xxx /mnt \u003e /dev/null 2\u003e\u00261\n      umount /mnt \u003e /dev/null 2\u003e\u00261\n  }\n\n(Note: It is irrelevant which cgroup subsys is used.)\n\nAfter a while a lockdep warning showed up:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible recursive locking detected ]\n2.6.28 #479\n---------------------------------------------\nmount/13554 is trying to acquire lock:\n (\u0026type-\u003es_umount_key#19){--..}, at: [\u003cc049d888\u003e] sget+0x5e/0x321\n\nbut task is already holding lock:\n (\u0026type-\u003es_umount_key#19){--..}, at: [\u003cc049da0c\u003e] sget+0x1e2/0x321\n\nother info that might help us debug this:\n1 lock held by mount/13554:\n #0:  (\u0026type-\u003es_umount_key#19){--..}, at: [\u003cc049da0c\u003e] sget+0x1e2/0x321\n\nstack backtrace:\nPid: 13554, comm: mount Not tainted 2.6.28-mc #479\nCall Trace:\n [\u003cc044ad2e\u003e] validate_chain+0x4c6/0xbbd\n [\u003cc044ba9b\u003e] __lock_acquire+0x676/0x700\n [\u003cc044bb82\u003e] lock_acquire+0x5d/0x7a\n [\u003cc049d888\u003e] ? sget+0x5e/0x321\n [\u003cc061b9b8\u003e] down_write+0x34/0x50\n [\u003cc049d888\u003e] ? sget+0x5e/0x321\n [\u003cc049d888\u003e] sget+0x5e/0x321\n [\u003cc045a2e7\u003e] ? cgroup_set_super+0x0/0x3e\n [\u003cc045959f\u003e] ? cgroup_test_super+0x0/0x2f\n [\u003cc045bcea\u003e] cgroup_get_sb+0x98/0x2e7\n [\u003cc045cfb6\u003e] cpuset_get_sb+0x4a/0x5f\n [\u003cc049dfa4\u003e] vfs_kern_mount+0x40/0x7b\n [\u003cc049e02d\u003e] do_kern_mount+0x37/0xbf\n [\u003cc04af4a0\u003e] do_mount+0x5c3/0x61a\n [\u003cc04addd2\u003e] ? copy_mount_options+0x2c/0x111\n [\u003cc04af560\u003e] sys_mount+0x69/0xa0\n [\u003cc0403251\u003e] sysenter_do_call+0x12/0x31\n\nThe cause is after alloc_super() and then retry, an old entry in list\nfs_supers is found, so grab_super(old) is called, but both functions hold\ns_umount lock:\n\nstruct super_block *sget(...)\n{\n\t...\nretry:\n\tspin_lock(\u0026sb_lock);\n\tif (test) {\n\t\tlist_for_each_entry(old, \u0026type-\u003efs_supers, s_instances) {\n\t\t\tif (!test(old, data))\n\t\t\t\tcontinue;\n\t\t\tif (!grab_super(old))  \u003c--- 2nd: down_write(\u0026old-\u003es_umount);\n\t\t\t\tgoto retry;\n\t\t\tif (s)\n\t\t\t\tdestroy_super(s);\n\t\t\treturn old;\n\t\t}\n\t}\n\tif (!s) {\n\t\tspin_unlock(\u0026sb_lock);\n\t\ts \u003d alloc_super(type);   \u003c--- 1th: down_write(\u0026s-\u003es_umount)\n\t\tif (!s)\n\t\t\treturn ERR_PTR(-ENOMEM);\n\t\tgoto retry;\n\t}\n\t...\n}\n\nIt seems like a false positive, and seems like VFS but not cgroup needs to\nbe fixed.\n\nPeter said:\n\nWe can simply put the new s_umount instance in a but lockdep doesn\u0027t\nparticularly cares about subclass order.\n\nIf there\u0027s any issue with the callers of sget() assuming the s_umount lock\nbeing of sublcass 0, then there is another annotation we can use to fix\nthat, but lets not bother with that if this is sufficient.\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d12673\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cf6e7d83bf334cc5916137862c920a97aabc018",
      "tree": "6bdbc4a98e9b332919beaeba0649797fff544795",
      "parents": [
        "610d18f4128ebbd88845d0fc60cce67b49af881e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Feb 18 14:48:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:54 2009 -0800"
      },
      "message": "mm: task dirty accounting fix\n\nYAMAMOTO-san noticed that task_dirty_inc doesn\u0027t seem to be called properly for\ncases where set_page_dirty is not used to dirty a page (eg. mark_buffer_dirty).\n\nAdditionally, there is some inconsistency about when task_dirty_inc is\ncalled.  It is used for dirty balancing, however it even gets called for\n__set_page_dirty_no_writeback.\n\nSo rather than increment it in a set_page_dirty wrapper, move it down to\nexactly where the dirty page accounting stats are incremented.\n\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "610d18f4128ebbd88845d0fc60cce67b49af881e",
      "tree": "97faea373227afc42c4a8f932fb2fe3fd393a258",
      "parents": [
        "ef35ce231b3cb2a4b1808e826da263bf37ccb38a"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Wed Feb 18 14:48:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:53 2009 -0800"
      },
      "message": "timerfd: add flags check\n\nAs requested by Michael, add a missing check for valid flags in\ntimerfd_settime(), and make it return EINVAL in case some extra bits are\nset.\n\nMichael said:\nIf this is to be any use to userland apps that want to check flag\nsupport (perhaps it is too late already), then the sooner we get it\ninto the kernel the better: 2.6.29 would be good; earlier stables as\nwell would be even better.\n\n[akpm@linux-foundation.org: remove unused TFD_FLAGS_SET]\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f19d472935c83d823fa4cf02bcc0a7b9952db30",
      "tree": "25cabc0b48ad0acb05fa69f92de617cf588fec8d",
      "parents": [
        "55ec82176eca52e4e0530a82a0eb59160a1a95a1"
      ],
      "author": {
        "name": "Eric Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 18 14:48:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:53 2009 -0800"
      },
      "message": "seq_file: properly cope with pread\n\nCurrently seq_read assumes that the offset passed to it is always the\noffset it passed to user space.  In the case pread this assumption is\nbroken and we do the wrong thing when presented with pread.\n\nTo solve this I introduce an offset cache inside of struct seq_file so we\nknow where our logical file position is.  Then in seq_read if we try to\nread from another offset we reset our data structures and attempt to go to\nthe offset user space wanted.\n\n[akpm@linux-foundation.org: restore FMODE_PWRITE]\n[pjt@google.com: seq_open needs its fmode opened up to take advantage of this]\nSigned-off-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78f707bfc723552e8309b7c38a8d0cc51012e813",
      "tree": "67f47d32eac2cb8288a9469b47c1d8cefc6ce42a",
      "parents": [
        "82eb03cfd862a65363fa2826de0dbd5474cfe5e2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Feb 17 13:59:08 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:32:01 2009 +0100"
      },
      "message": "block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb\n\nThe above commit added WRITE_SYNC and switched various places to using\nthat for committing writes that will be waited upon immediately after\nsubmission. However, this causes a performance regression with AS and CFQ\nfor ext3 at least, since sync_dirty_buffer() will submit some writes with\nWRITE_SYNC while ext3 has sumitted others dependent writes without the sync\nflag set. This causes excessive anticipation/idling in the IO scheduler\nbecause sync and async writes get interleaved, causing a big performance\nregression for the below test case (which is meant to simulate sqlite\nlike behaviour).\n\n---- test case ----\n\nint main(int argc, char **argv)\n{\n\n\tint fdes, i;\n\tFILE *fp;\n\tstruct timeval start;\n\tstruct timeval end;\n\tstruct timeval res;\n\n\tgettimeofday(\u0026start, NULL);\n\tfor (i\u003d0; i\u003cROWS; i++) {\n\t\tfp \u003d fopen(\"test_file\", \"a\");\n\t\tfprintf(fp, \"Some Text Data\\n\");\n\t\tfdes \u003d fileno(fp);\n\t\tfsync(fdes);\n\t\tfclose(fp);\n\t}\n\tgettimeofday(\u0026end, NULL);\n\n\ttimersub(\u0026end, \u0026start, \u0026res);\n\tfprintf(stdout, \"time to write %d lines is %ld(msec)\\n\", ROWS,\n\t\t\t(res.tv_sec*1000000 + res.tv_usec)/1000);\n\n\treturn 0;\n}\n\n-------------------\n\nThanks to Sean.White@APCC.com for tracking down this performance\nregression and providing a test case.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a60e78e57a17d55bbd5a96da16fe9649d364b987",
      "tree": "5b7a7c5977ee8862166f743d1aede56278c4971b",
      "parents": [
        "93dbb393503d53cd226e5e1f0088fe8f4dbaa2b8"
      ],
      "author": {
        "name": "Subhash Peddamallu",
        "email": "subhash.peddamallu@gmail.com",
        "time": "Mon Feb 16 10:27:07 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:32:01 2009 +0100"
      },
      "message": "fs/bio: bio_alloc_bioset: pass right object ptr to mempool_free\n\nWhen freeing from bio pool use right ptr to account for bs-\u003efront_pad,\ninstead of bio ptr,\n\nSigned-off-by: Subhash Peddamallu \u003csubhash.peddamallu@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "48c0d9ece360ff6001e2ae36aa9b34446d0388a8",
      "tree": "094987b35e1d6f5ec552bca336de43dd7848c94a",
      "parents": [
        "0637810f24bad641d3d3f80fd3f63f3baffd9536",
        "2456242530a21cfee82646ebeeda65d3f74faa4c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:19:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:19:14 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: hold trans_mutex when using btrfs_record_root_in_trans\n  Btrfs: make a lockdep class for the extent buffer locks\n  Btrfs: fs/btrfs/volumes.c: remove useless kzalloc\n  Btrfs: remove unused code in split_state()\n  Btrfs: remove btrfs_init_path\n  Btrfs: balance_level checks !child after access\n  Btrfs: Avoid using __GFP_HIGHMEM with slab allocator\n  Btrfs: don\u0027t clean old snapshots on sync(1)\n  Btrfs: use larger metadata clusters in ssd mode\n  Btrfs: process mount options on mount -o remount,\n  Btrfs: make sure all pending extent operations are complete\n"
    },
    {
      "commit": "3512a79dbcc90e6edac98717607bd821bba50a14",
      "tree": "9038e3545ccdfec77ec24d982f8cc24701fb532d",
      "parents": [
        "39a65762d4c48fd8a498f34b7fec74a6b0aebd55",
        "090542641de833c6f756895fc2f139f046e298f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:05:05 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:05:05 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Fix NULL dereference in ext4_ext_migrate()\u0027s error handling\n  ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages\n  ext4: Initialize preallocation list_head\u0027s properly\n  ext4: Fix lockdep warning\n  ext4: Fix to read empty directory blocks correctly in 64k\n  jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()\n  Revert \"ext4: wait on all pending commits in ext4_sync_fs()\"\n  jbd2: Fix return value of jbd2_journal_start_commit()\n"
    },
    {
      "commit": "1a88b5364b535edaa321d70a566e358390ff0872",
      "tree": "41c557358a595de85ba8a7a7697901ff21d1de1a",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Mon Feb 16 02:38:12 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:02:08 2009 -0800"
      },
      "message": "Fix incomplete __mntput locking\n\nGetting this wrong caused\n\n\tWARNING: at fs/namespace.c:636 mntput_no_expire+0xac/0xf2()\n\ndue to optimistically checking cpu_writer-\u003emnt outside the spinlock.\n\nHere\u0027s what we really want:\n * we know that nobody will set cpu_writer-\u003emnt to mnt from now on\n * all changes to that sucker are done under cpu_writer-\u003elock\n * we want the laziest equivalent of\n\tspin_lock(\u0026cpu_writer-\u003elock);\n\tif (likely(cpu_writer-\u003emnt !\u003d mnt)) {\n\t\tspin_unlock(\u0026cpu_writer-\u003elock);\n\t\tcontinue;\n\t}\n\t/* do stuff */\n  that would make sure we won\u0027t miss earlier setting of -\u003emnt done by\n  another CPU.\n\nAnyway, for now we just move the spin_lock() earlier and move the test\ninto the properly locked region.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReported-and-tested-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d24fff22d8dba13cc21034144f68f213415cb7c8",
      "tree": "9f199f1d122bb58e78c0dcf7078915b89b8660c0",
      "parents": [
        "51f31cabe3ce5345b51e4a4f82138b38c4d5dc91"
      ],
      "author": {
        "name": "Patrick Ohly",
        "email": "patrick.ohly@intel.com",
        "time": "Thu Feb 12 05:03:40 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Feb 15 22:43:38 2009 -0800"
      },
      "message": "net: pass new SIOCSHWTSTAMP through to device drivers\n\nSigned-off-by: Patrick Ohly \u003cpatrick.ohly@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "090542641de833c6f756895fc2f139f046e298f9",
      "tree": "8a3939e4e72e5107282a5343d2cb50c29e5077a6",
      "parents": [
        "2acf2c261b823d9d9ed954f348b97620297a36b5"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun Feb 15 20:02:19 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 15 20:02:19 2009 -0500"
      },
      "message": "ext4: Fix NULL dereference in ext4_ext_migrate()\u0027s error handling\n\nThis was found through a code checker (http://repo.or.cz/w/smatch.git/). \nIt looks like you might be able to trigger the error by trying to migrate \na readonly file system.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5e30589521518bff36fd2638b3c3d69679c50436",
      "tree": "6ac985658a06b0787e4354d0d16d380ea9b16a5a",
      "parents": [
        "ac178ef0ae9eb44fd527d87aa9b6394e05f56e1f",
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 14 23:12:00 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Feb 14 23:12:00 2009 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/net/wireless/iwlwifi/iwl-agn.c\n\tdrivers/net/wireless/iwlwifi/iwl3945-base.c\n"
    },
    {
      "commit": "2acf2c261b823d9d9ed954f348b97620297a36b5",
      "tree": "01bcc80ee26a9cc25df9b9a215081943f3fcbd6c",
      "parents": [
        "d794bf8e0936dce45104565cd48c571061f4c1e3"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Feb 14 10:42:58 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 14 10:42:58 2009 -0500"
      },
      "message": "ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages\n\nWith delayed allocation we lock the page in write_cache_pages() and\ntry to build an in memory extent of contiguous blocks.  This is needed\nso that we can get large contiguous blocks request.  If range_cyclic\nmode is enabled, write_cache_pages() will loop back to the 0 index if\nno I/O has been done yet, and try to start writing from the beginning\nof the range.  That causes an attempt to take the page lock of lower\nindex page while holding the page lock of higher index page, which can\ncause a dead lock with another writeback thread.\n\nThe solution is to implement the range_cyclic behavior in\next4_da_writepages() instead.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12579\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d794bf8e0936dce45104565cd48c571061f4c1e3",
      "tree": "ad23776b739eb551b520865e837a106a7b628819",
      "parents": [
        "ba4439165f0f0d25b2fe065cf0c1ff8130b802eb"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Feb 14 10:31:16 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 14 10:31:16 2009 -0500"
      },
      "message": "ext4: Initialize preallocation list_head\u0027s properly\n\nWhen creating a new ext4_prealloc_space structure, we have to\ninitialize its list_head pointers before we add them to any prealloc\nlists.  Otherwise, with list debug enabled, we will get list\ncorruption warnings.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "efab0b5d3eed6aa71f8e3233e4e11774eedc04dc",
      "tree": "79906754c394f0e2e081c150ea4494a3bde1b086",
      "parents": [
        "ab00d68276295a1b4da7ad924a35a3566e9c2698"
      ],
      "author": {
        "name": "Andres Salomon",
        "email": "dilinger@queued.net",
        "time": "Wed Feb 11 13:27:02 2009 -0800"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Sat Feb 14 08:59:04 2009 +0000"
      },
      "message": "[JFFS2] force the jffs2 GC daemon to behave a bit better\n\nI\u0027ve noticed some pretty poor behavior on OLPC machines after bootup, when\ngdm/X are starting.  The GCD monopolizes the scheduler (which in turns\nmeans it gets to do more nand i/o), which results in processes taking much\nmuch longer than they should to start.\n\nAs an example, on an OLPC machine going from OFW to a usable X (via\nauto-login gdm) takes 2m 30s.  The majority of this time is consumed by\nthe switch into graphical mode.  With this patch, we cut a full 60s off of\nbootup time.  After bootup, things are much snappier as well.\n\nNote that we have seen a CRC node error with this patch that causes the machine\nto fail to boot, but we\u0027ve also seen that problem without this patch.\n\nSigned-off-by: Andres Salomon \u003cdilinger@debian.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "2456242530a21cfee82646ebeeda65d3f74faa4c",
      "tree": "c0e8f5eda96cefeb44a48f05a248ea22b4259ad2",
      "parents": [
        "4008c04a07c73ec3cb1be4c1391d2159a8f75d6d"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Feb 12 14:14:53 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:14:53 2009 -0500"
      },
      "message": "Btrfs: hold trans_mutex when using btrfs_record_root_in_trans\n\nbtrfs_record_root_in_trans needs the trans_mutex held to make sure two\ncallers don\u0027t race to setup the root in a given transaction.  This adds\nit to all the places that were missing it.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\n\n"
    },
    {
      "commit": "4008c04a07c73ec3cb1be4c1391d2159a8f75d6d",
      "tree": "c0b10a7287ac810bfc406541e32b850ad4580248",
      "parents": [
        "3f3420df505e47751ef76a652b5cb660e5360d6f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:09:45 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:09:45 2009 -0500"
      },
      "message": "Btrfs: make a lockdep class for the extent buffer locks\n\nBtrfs is currently using spin_lock_nested with a nested value based\non the tree depth of the block.  But, this doesn\u0027t quite work because\nthe max tree depth is bigger than what spin_lock_nested can deal with,\nand because locks are sometimes taken before the level field is filled in.\n\nThe solution here is to use lockdep_set_class_and_name instead, and to\nset the class before unlocking the pages when the block is read from the\ndisk and just after init of a freshly allocated tree block.\n\nbtrfs_clear_path_blocking is also changed to take the locks in the proper\norder, and it also makes sure all the locks currently held are properly\nset to blocking before it tries to retake the spinlocks.  Otherwise, lockdep\ngets upset about bad lock orderin.\n\nThe lockdep magic cam from Peter Zijlstra \u003cpeterz@infradead.org\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3f3420df505e47751ef76a652b5cb660e5360d6f",
      "tree": "de413daa777dba47be638c29825c779635a45764",
      "parents": [
        "a48ddf08ba9bab91efd95e458737afa9d7699623"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Thu Feb 12 10:16:03 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 10:16:03 2009 -0500"
      },
      "message": "Btrfs: fs/btrfs/volumes.c: remove useless kzalloc\n\nThe call to kzalloc is followed by a kmalloc whose result is stored in the\nsame variable.\n\nThe semantic match that finds the problem is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nstatement S;\nexpression E;\nidentifier f,l;\nposition p1,p2;\nexpression *ptr !\u003d NULL;\n@@\n\n(\nif ((x@p1 \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...)) \u003d\u003d NULL) S\n|\nx@p1 \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...);\n...\nif (x \u003d\u003d NULL) S\n)\n\u003c... when !\u003d x\n     when !\u003d if (...) { \u003c+...x...+\u003e }\nx-\u003ef \u003d E\n...\u003e\n(\n return \\(0\\|\u003c+...x...+\u003e\\|ptr\\);\n|\n return@p2 ...;\n)\n\n@script:python@\np1 \u003c\u003c r.p1;\np2 \u003c\u003c r.p2;\n@@\n\nprint \"* file: %s kmalloc %s return %s\" % (p1[0].file,p1[0].line,p2[0].line)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "a48ddf08ba9bab91efd95e458737afa9d7699623",
      "tree": "58fb45f4b54d3a18108f636528337a09c0a08cc7",
      "parents": [
        "e00f7308658622fbd483cb0d9fe41165bf9050d0"
      ],
      "author": {
        "name": "Qinghuang Feng",
        "email": "qhfeng.kernel@gmail.com",
        "time": "Thu Feb 12 14:25:23 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:25:23 2009 -0500"
      },
      "message": "Btrfs: remove unused code in split_state()\n\nThese two lines are not used, remove them.\n\nSigned-off-by: Qinghuang Feng \u003cqhfeng.kernel@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "e00f7308658622fbd483cb0d9fe41165bf9050d0",
      "tree": "5baeaee96a3d6789f4cce2ca17d7f4f8afb3431e",
      "parents": [
        "7951f3cefbd711f4429a0cd014aa83a844c399a0"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Feb 12 14:11:25 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 14:11:25 2009 -0500"
      },
      "message": "Btrfs: remove btrfs_init_path\n\nbtrfs_init_path was initially used when the path objects were on the\nstack.  Now all the work is done by btrfs_alloc_path and btrfs_init_path\nisn\u0027t required.\n\nThis patch removes it, and just uses kmem_cache_zalloc to zero out the object.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "7951f3cefbd711f4429a0cd014aa83a844c399a0",
      "tree": "7eec0bc3b933d71f99cad5379ef15bf1e084a572",
      "parents": [
        "b335b0034e252e79ec2e9c6697f5d663c4627bec"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Feb 12 10:06:15 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 10:06:15 2009 -0500"
      },
      "message": "Btrfs: balance_level checks !child after access\n\nThe BUG_ON() is in the wrong spot.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "b335b0034e252e79ec2e9c6697f5d663c4627bec",
      "tree": "f99286083d21fdc298b50d3d47dc96a9f1f54bb8",
      "parents": [
        "e1df36d2f18254d0690a0fbe036cece74ec311b8"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Feb 12 10:06:04 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 10:06:04 2009 -0500"
      },
      "message": "Btrfs: Avoid using __GFP_HIGHMEM with slab allocator\n\nbtrfs_releasepage may call kmem_cache_alloc indirectly,\nand provide same GFP flags it gets to kmem_cache_alloc.\nSo it\u0027s possible to use __GFP_HIGHMEM with the slab\nallocator.\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\n\n"
    },
    {
      "commit": "e1df36d2f18254d0690a0fbe036cece74ec311b8",
      "tree": "34823b4533c7fe2d5a329a03b99faa6bd0a88956",
      "parents": [
        "536ac8ae86e68bb5574d7cc81c7d229a86b82601"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:45:08 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:45:08 2009 -0500"
      },
      "message": "Btrfs: don\u0027t clean old snapshots on sync(1)\n\nCleaning old snapshots can make sync(1) somewhat slow, and some users\nand applications still use it in a global fsync kind of workload.\n\nThis patch changes btrfs not to clean old snapshots during sync, which is\nsafe from a FS consistency point of view.  The major downside is that it\nmakes it difficult to tell when old snapshots have been reaped and\nthe space they were using has been reclaimed.  A new ioctl will be added\nfor this purpose instead.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "536ac8ae86e68bb5574d7cc81c7d229a86b82601",
      "tree": "2ec565edbbe3cf91e864b83f3fbd0a5bf8c088c4",
      "parents": [
        "b288052e1779261ae80138074989ef50358c4e58"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:41:38 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:41:38 2009 -0500"
      },
      "message": "Btrfs: use larger metadata clusters in ssd mode\n\nLarger metadata clusters can significantly improve writeback performance\non ssd drives with large erasure blocks.  The larger clusters make it\nmore likely a given IO will completely overwrite the ssd block, so it\ndoesn\u0027t have to do an internal rwm cycle.\n\nOn spinning media, lager metadata clusters end up spreading out the\nmetadata more over time, which makes fsck slower, so we don\u0027t want this\nto be the default.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "b288052e1779261ae80138074989ef50358c4e58",
      "tree": "58c2a8e3bd4208c9b49f471f33303c88bdc20606",
      "parents": [
        "eb099670895f22970cd143875467c2768d6d87e5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:37:35 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:37:35 2009 -0500"
      },
      "message": "Btrfs: process mount options on mount -o remount,\n\nBtrfs wasn\u0027t parsing any new mount options during remount, making it\ndifficult to set mount options on a root drive.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n\n"
    },
    {
      "commit": "eb099670895f22970cd143875467c2768d6d87e5",
      "tree": "4fc48dad8f0f2c13ff85d9310aa163305a243ef2",
      "parents": [
        "284b066af41579f62649048fdec5c5e7091703e6"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Feb 12 09:27:38 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Feb 12 09:27:38 2009 -0500"
      },
      "message": "Btrfs: make sure all pending extent operations are complete\n\nTheres a slight problem with finish_current_insert, if we set all to 1 and then\ngo through and don\u0027t actually skip any of the extents on the pending list, we\ncould exit right after we\u0027ve added new extents.\n\nThis is a problem because by inserting the new extents we could have gotten new\nCOW\u0027s to happen and such, so we may have some pending updates to do or even\nmore inserts to do after that.\n\nSo this patch will only exit if we have never skipped any of the extents in the\npending list, and we have no extents to insert, this will make sure that all of\nthe pending work is truly done before we return.  I\u0027ve been running with this\npatch for a few days with all of my other testing and have not seen issues.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjbacik@redhat.com\u003e\n\n"
    },
    {
      "commit": "0e4a9b59282914fe057ab17027f55123964bc2e2",
      "tree": "8bf359a1937e809d767f73f7ccdb948420ae72fc",
      "parents": [
        "cfebe563bd0a3ff97e1bc167123120d59c7a84db"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Feb 11 13:04:37 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:36 2009 -0800"
      },
      "message": "ext2/xip: refuse to change xip flag during remount with busy inodes\n\nFor a reason that I was unable to understand in three months of debugging,\nmount ext2 -o remount stopped working properly when remounting from\nregular operation to xip, or the other way around.  According to a git\nbisect search, the problem was introduced with the VM_MIXEDMAP/PTE_SPECIAL\nrework in the vm:\n\ncommit 70688e4dd1647f0ceb502bbd5964fa344c5eb411\nAuthor: Nick Piggin \u003cnpiggin@suse.de\u003e\nDate:   Mon Apr 28 02:13:02 2008 -0700\n\n    xip: support non-struct page backed memory\n\nIn the failing scenario, the filesystem is mounted read only via root\u003d\nkernel parameter on s390x.  During remount (in rc.sysinit), the inodes of\nthe bash binary and its libraries are busy and cannot be invalidated (the\nbash which is running rc.sysinit resides on subject filesystem).\nAfterwards, another bash process (running ifup-eth) recurses into a\nsubshell, runs dup_mm (via fork).  Some of the mappings in this bash\nprocess were created from inodes that could not be invalidated during\nremount.\n\nBoth parent and child process crash some time later due to inconsistencies\nin their address spaces.  The issue seems to be timing sensitive, various\nattempts to recreate it have failed.\n\nThis patch refuses to change the xip flag during remount in case some\ninodes cannot be invalidated.  This patch keeps users from running into\nthat issue.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02ac597c9b86af49b2016aa98aee20ab59dbf0d2",
      "tree": "7ecf4acd955eabb023dba50c0b4ef67d585eb56e",
      "parents": [
        "8fe4cd0dc5ea43760c59eb256404188272cc95dd"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 11 13:04:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "ext3: revert \"ext3: wait on all pending commits in ext3_sync_fs\"\n\nThis reverts commit c87591b719737b4e91eb1a9fa8fd55a4ff1886d6.\n\nSince journal_start_commit() is now fixed to return 1 when we started a\ntransaction commit, there\u0027s some transaction waiting to be committed or\nthere\u0027s a transaction already committing, we don\u0027t need to call\next3_force_commit() in ext3_sync_fs().  Furthermore ext3_force_commit()\ncan unnecessarily create sync transaction which is expensive so it\u0027s\nworthwhile to remove it when we can.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8fe4cd0dc5ea43760c59eb256404188272cc95dd",
      "tree": "f02892b7393c60b98b51202d868fa12b0a2339e2",
      "parents": [
        "fc3501d411d34823fb9be248a95a0c44f945866f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 11 13:04:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:35 2009 -0800"
      },
      "message": "jbd: fix return value of journal_start_commit()\n\njournal_start_commit() returns 1 if either a transaction is committing or\nthe function has queued a transaction commit.  But it returns 0 if we\nraced with somebody queueing the transaction commit as well.  This\nresulted in ext3_sync_fs() not functioning correctly (description from\nArthur Jones): In the case of a data\u003dordered umount with pending long\nsymlinks which are delayed due to a long list of other I/O on the backing\nblock device, this causes the buffer associated with the long symlinks to\nnot be moved to the inode dirty list in the second phase of fsync_super.\nThen, before they can be dirtied again, kjournald exits, seeing the UMOUNT\nflag and the dirty pages are never written to the backing block device,\ncausing long symlink corruption and exposing new or previously freed block\ndata to userspace.\n\nThis can be reproduced with a script created by Eric Sandeen\n\u003csandeen@redhat.com\u003e:\n\n        #!/bin/bash\n\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        rm -f /mnt/test2/*\n        dd if\u003d/dev/zero of\u003d/mnt/test2/bigfile bs\u003d1M count\u003d512\n        touch /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        ln -s /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        /mnt/test2/link\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        ls /mnt/test2/\n\nThis patch fixes journal_start_commit() to always return 1 when there\u0027s\na transaction committing or queued for commit.\n\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Mike Snitzer \u003csnitzer@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a6fe125950676015f5108fb71b2a67441755003",
      "tree": "c985fac46de39392466c4917c497b50bdc9c0757",
      "parents": [
        "4c098bcd55fad34dcf224bf8343db6a9ac58fc68"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Feb 10 14:02:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 10 10:48:42 2009 -0800"
      },
      "message": "Do not account for the address space used by hugetlbfs using VM_ACCOUNT\n\nWhen overcommit is disabled, the core VM accounts for pages used by anonymous\nshared, private mappings and special mappings. It keeps track of VMAs that\nshould be accounted for with VM_ACCOUNT and VMAs that never had a reserve\nwith VM_NORESERVE.\n\nOvercommit for hugetlbfs is much riskier than overcommit for base pages\ndue to contiguity requirements. It avoids overcommiting on both shared and\nprivate mappings using reservation counters that are checked and updated\nduring mmap(). This ensures (within limits) that hugepages exist in the\nfuture when faults occurs or it is too easy to applications to be SIGKILLed.\n\nAs hugetlbfs makes its own reservations of a different unit to the base page\nsize, VM_ACCOUNT should never be set. Even if the units were correct, we would\ndouble account for the usage in the core VM and hugetlbfs. VM_NORESERVE may\nbe set because an application can request no reserves be made for hugetlbfs\nat the risk of getting killed later.\n\nWith commit fc8744adc870a8d4366908221508bb113d8b72ee, VM_NORESERVE and\nVM_ACCOUNT are getting unconditionally set for hugetlbfs-backed mappings. This\nbreaks the accounting for both the core VM and hugetlbfs, can trigger an\nOOM storm when hugepage pools are too small lockups and corrupted counters\notherwise are used. This patch brings hugetlbfs more in line with how the\ncore VM treats VM_NORESERVE but prevents VM_ACCOUNT being set.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba4439165f0f0d25b2fe065cf0c1ff8130b802eb",
      "tree": "242f9aa5cc4fe0ca7d3062aa0a7ec713a4346bb8",
      "parents": [
        "7be2baaa0322c59ba888aa5260a8c130666acd41"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Feb 10 11:14:34 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:14:34 2009 -0500"
      },
      "message": "ext4: Fix lockdep warning\n\nWe should not call ext4_mb_add_n_trim while holding alloc_semp.\n\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    [ INFO: possible recursive locking detected ]\n    2.6.29-rc4-git1-dirty #124\n    ---------------------------------------------\n    ffsb/3116 is trying to acquire lock:\n     (\u0026meta_group_info[i]-\u003ealloc_sem){----}, at: [\u003cffffffff8035a6e8\u003e]\n     ext4_mb_load_buddy+0xd2/0x343\n\n    but task is already holding lock:\n     (\u0026meta_group_info[i]-\u003ealloc_sem){----}, at: [\u003cffffffff8035a6e8\u003e]\n     ext4_mb_load_buddy+0xd2/0x343\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12672\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7be2baaa0322c59ba888aa5260a8c130666acd41",
      "tree": "a1543a38923d60092e06741ab3dee9ce9af32abc",
      "parents": [
        "7f5aa215088b817add9c71914b83650bdd49f8a9"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yjwei@cn.fujitsu.com",
        "time": "Tue Feb 10 09:53:42 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 09:53:42 2009 -0500"
      },
      "message": "ext4: Fix to read empty directory blocks correctly in 64k\n\nThe rec_len field in the directory entry is 16 bits, so there was a\nproblem representing rec_len for filesystems with a 64k block size in\nthe case where the directory entry takes the entire 64k block.\nUnfortunately, there were two schemes that were proposed; one where\nall zeros meant 65536 and one where all ones (65535) meant 65536.\nE2fsprogs used 0, whereas the kernel used 65535.  Oops.  Fortunately\nthis case happens extremely rarely, with the most common case being\nthe lost+found directory, created by mke2fs.\n\nSo we will be liberal in what we accept, and accept both encodings,\nbut we will continue to encode 65536 as 65535.  This will require a\nchange in e2fsprogs, but with fortunately ext4 filesystems normally\nhave the dir_index feature enabled, which precludes having a\ncompletely empty directory block.\n\nSigned-off-by: Wei Yongjun \u003cyjwei@cn.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7f5aa215088b817add9c71914b83650bdd49f8a9",
      "tree": "9b811d1f0b41a2738fc68654ae605bf5d8cf2a72",
      "parents": [
        "9eddacf9e9c03578ef2c07c9534423e823d677f8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 11:15:34 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:15:34 2009 -0500"
      },
      "message": "jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()\n\nIf we race with commit code setting i_transaction to NULL, we could\npossibly dereference it.  Proper locking requires the journal pointer\n(to access journal-\u003ej_list_lock), which we don\u0027t have.  So we have to\nchange the prototype of the function so that filesystem passes us the\njournal pointer.  Also add a more detailed comment about why the\nfunction jbd2_journal_begin_ordered_truncate() does what it does and\nhow it should be used.\n\nThanks to Dan Carpenter \u003cerror27@gmail.com\u003e for pointing to the\nsuspitious code.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCC: linux-ext4@vger.kernel.org\nCC: ocfs2-devel@oss.oracle.com\nCC: mfasheh@suse.de\nCC: Dan Carpenter \u003cerror27@gmail.com\u003e\n"
    },
    {
      "commit": "9eddacf9e9c03578ef2c07c9534423e823d677f8",
      "tree": "6b317bb2e531ba56c9bc7ece8c41ec039d12d309",
      "parents": [
        "c88ccea3143975294f5a52097546bcbb75975f52"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 06:46:05 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 06:46:05 2009 -0500"
      },
      "message": "Revert \"ext4: wait on all pending commits in ext4_sync_fs()\"\n\nThis undoes commit 14ce0cb411c88681ab8f3a4c9caa7f42e97a3184.\n\nSince jbd2_journal_start_commit() is now fixed to return 1 when we\nstarted a transaction commit, there\u0027s some transaction waiting to be\ncommitted or there\u0027s a transaction already committing, we don\u0027t\nneed to call ext4_force_commit() in ext4_sync_fs(). Furthermore\next4_force_commit() can unnecessarily create sync transaction which is\nexpensive so it\u0027s worthwhile to remove it when we can.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12224\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "c88ccea3143975294f5a52097546bcbb75975f52",
      "tree": "b8aad20536941279a7b9bd80dc00729d6ac92da9",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 11:27:46 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:27:46 2009 -0500"
      },
      "message": "jbd2: Fix return value of jbd2_journal_start_commit()\n\nThe function jbd2_journal_start_commit() returns 1 if either a\ntransaction is committing or the function has queued a transaction\ncommit. But it returns 0 if we raced with somebody queueing the\ntransaction commit as well. This resulted in ext4_sync_fs() not\nfunctioning correctly (description from Arthur Jones): \n\n   In the case of a data\u003dordered umount with pending long symlinks\n   which are delayed due to a long list of other I/O on the backing\n   block device, this causes the buffer associated with the long\n   symlinks to not be moved to the inode dirty list in the second\n   phase of fsync_super.  Then, before they can be dirtied again,\n   kjournald exits, seeing the UMOUNT flag and the dirty pages are\n   never written to the backing block device, causing long symlink\n   corruption and exposing new or previously freed block data to\n   userspace.\n\nThis can be reproduced with a script created by Eric Sandeen\n\u003csandeen@redhat.com\u003e:\n\n        #!/bin/bash\n\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        rm -f /mnt/test2/*\n        dd if\u003d/dev/zero of\u003d/mnt/test2/bigfile bs\u003d1M count\u003d512\n        touch /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        ln -s /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n        /mnt/test2/link\n        umount /mnt/test2\n        mount /dev/sdb4 /mnt/test2\n        ls /mnt/test2/\n\nThis patch fixes jbd2_journal_start_commit() to always return 1 when\nthere\u0027s a transaction committing or queued for commit.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCC: Eric Sandeen \u003csandeen@redhat.com\u003e\nCC: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "4c098bcd55fad34dcf224bf8343db6a9ac58fc68",
      "tree": "ba2070fbdb19bc6a2cb648ec5e95d14822ad085d",
      "parents": [
        "d006b2b620ebf87a1d5592fbd7ae75d4a6da8423",
        "284b066af41579f62649048fdec5c5e7091703e6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 14:00:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 14:00:16 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: don\u0027t use spin_is_contended\n"
    },
    {
      "commit": "284b066af41579f62649048fdec5c5e7091703e6",
      "tree": "e34185c911cb50b0ade04f804056ffbe2a6e04ae",
      "parents": [
        "42f15d77df8a7e8a2feb15041d5d30710ee7f951"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 09 16:22:03 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Feb 09 16:22:03 2009 -0500"
      },
      "message": "Btrfs: don\u0027t use spin_is_contended\n\nBtrfs was using spin_is_contended to see if it should drop locks before\ndoing extent allocations during btrfs_search_slot.  The idea was to avoid\nexpensive searches in the tree unless the lock was actually contended.\n\nBut, spin_is_contended is specific to the ticket spinlocks on x86, so this\nis causing compile errors everywhere else.\n\nIn practice, the contention could easily appear some time after we started\ndoing the extent allocation, and it makes more sense to always drop the lock\ninstead.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "896abeb743579fc8be0d16d15d6768a158a3a109",
      "tree": "8b5f6ce348ea00e5f67de8f67001fdbfd248de32",
      "parents": [
        "f06da264cfb0f9444d41ca247213e419f90aa72a",
        "9d9b87c1218be78ddecbc85ec3bb91c79c1d56ab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 10:30:19 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 09 10:30:19 2009 -0800"
      },
      "message": "Merge branch \u0027for-2.6.29\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.29\u0027 of git://linux-nfs.org/~bfields/linux:\n  lockd: fix regression in lockd\u0027s handling of blocked locks\n"
    },
    {
      "commit": "9d9b87c1218be78ddecbc85ec3bb91c79c1d56ab",
      "tree": "e33e637f4fa8b4dd1946c6a29e290078d34a388c",
      "parents": [
        "eda58a85ec3fc05855a26654d97a2b53f0e715b9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 04 17:35:38 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Feb 09 13:19:46 2009 -0500"
      },
      "message": "lockd: fix regression in lockd\u0027s handling of blocked locks\n\nIf a client requests a blocking lock, is denied, then requests it again,\nthen here in nlmsvc_lock() we will call vfs_lock_file() without FL_SLEEP\nset, because we\u0027ve already queued a block and don\u0027t need the locks code\nto do it again.\n\nBut that means vfs_lock_file() will return -EAGAIN instead of\nFILE_LOCK_DENIED.  So we still need to translate that -EAGAIN return\ninto a nlm_lck_blocked error in this case, and put ourselves back on\nlockd\u0027s block list.\n\nThe bug was introduced by bde74e4bc64415b1 \"locks: add special return\nvalue for asynchronous locks\".\n\nThanks to Frank van Maarseveen for the report; his original test\ncase was essentially\n\n\tfor i in `seq 30`; do flock /nfsmount/foo sleep 10 \u0026 done\n\nTested-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nReported-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "766ccb9ed406c230d13c145def08ebea1b932982",
      "tree": "952f74260d8baa66063fd8efa1b29d2dddb45c2b",
      "parents": [
        "f30d5b307c694e03368ab55f2f96b0ca4131e775"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Tue Jan 20 15:31:31 2009 +0100"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Feb 08 09:56:11 2009 -0800"
      },
      "message": "async: Rename _special -\u003e _domain for clarity.\n\nRename the async_*_special() functions to async_*_domain(), which\ndescribes the purpose of these functions much better.\n[Broke up long lines to silence checkpatch]\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "ccfef64621ef1e8c7726581b38eb8b98fd2a8afb",
      "tree": "74d99dcecbd7adad1dcd5d61fac408855b43a267",
      "parents": [
        "ae1a25da8448271a99745da03100d5299575a269",
        "0bf2f3aec5474da80a60e1baca629af87ecb67b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:52:55 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:52:55 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:\n  CRED: Fix SUID exec regression\n"
    },
    {
      "commit": "ae1a25da8448271a99745da03100d5299575a269",
      "tree": "841c931e9eed1003d7d1c8157e9c6214939384c4",
      "parents": [
        "fd9fc842bbab0cb5560b0d52ce4598c898707863",
        "42f15d77df8a7e8a2feb15041d5d30710ee7f951"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:37:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:37:22 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (37 commits)\n  Btrfs: Make sure dir is non-null before doing S_ISGID checks\n  Btrfs: Fix memory leak in cache_drop_leaf_ref\n  Btrfs: don\u0027t return congestion in write_cache_pages as often\n  Btrfs: Only prep for btree deletion balances when nodes are mostly empty\n  Btrfs: fix btrfs_unlock_up_safe to walk the entire path\n  Btrfs: change btrfs_del_leaf to drop locks earlier\n  Btrfs: Change btrfs_truncate_inode_items to stop when it hits the inode\n  Btrfs: Don\u0027t try to compress pages past i_size\n  Btrfs: join the transaction in __btrfs_setxattr\n  Btrfs: Handle SGID bit when creating inodes\n  Btrfs: Make btrfs_drop_snapshot work in larger and more efficient chunks\n  Btrfs: Change btree locking to use explicit blocking points\n  Btrfs: hash_lock is no longer needed\n  Btrfs: disable leak debugging checks in extent_io.c\n  Btrfs: sort references by byte number during btrfs_inc_ref\n  Btrfs: async threads should try harder to find work\n  Btrfs: selinux support\n  Btrfs: make btrfs acls selectable\n  Btrfs: Catch missed bios in the async bio submission thread\n  Btrfs: fix readdir on 32 bit machines\n  ...\n"
    },
    {
      "commit": "fd9fc842bbab0cb5560b0d52ce4598c898707863",
      "tree": "ff8fc9b1c964debf18ba662558b26bf7bb7513cc",
      "parents": [
        "eeb94855beeb7fde5f9e2ed72fe6a8b24cd5a3c7"
      ],
      "author": {
        "name": "Tyler Hicks",
        "email": "tyhicks@linux.vnet.ibm.com",
        "time": "Fri Feb 06 18:06:51 2009 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:36:40 2009 -0800"
      },
      "message": "eCryptfs: Regression in unencrypted filename symlinks\n\nThe addition of filename encryption caused a regression in unencrypted\nfilename symlink support.  ecryptfs_copy_filename() is used when dealing\nwith unencrypted filenames and it reported that the new, copied filename\nwas a character longer than it should have been.\n\nThis caused the return value of readlink() to count the NULL byte of the\nsymlink target.  Most applications don\u0027t care about the extra NULL byte,\nbut a version control system (bzr) helped in discovering the bug.\n\nSigned-off-by: Tyler Hicks \u003ctyhicks@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d87b0d388c65feb890f1e0aa832338a33d0760f",
      "tree": "ca1980ce84f2fb1bc7952738e32f9657dc4d0154",
      "parents": [
        "d4cf109f05ff04c6f5065c3e14165ef01a57dd53",
        "92dc07b1f988e8c237a38e23be660b9b8533e6fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:10:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 18:10:04 2009 -0800"
      },
      "message": "Merge branch \u0027to-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland\n\n* \u0027to-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland:\n  elf core dump: fix get_user use\n"
    },
    {
      "commit": "92dc07b1f988e8c237a38e23be660b9b8533e6fd",
      "tree": "4a689fbb465d7302b105678152170d8665f56ae7",
      "parents": [
        "6cec50838ed04a9833fb5549f698d3756bbe7e72"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Feb 06 17:34:07 2009 -0800"
      },
      "committer": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Feb 06 17:34:07 2009 -0800"
      },
      "message": "elf core dump: fix get_user use\n\nThe elf_core_dump() code does its work with set_fs(KERNEL_DS) in force,\nso vma_dump_size() needs to switch back with set_fs(USER_DS) to safely\nuse get_user() for a normal user-space address.\n\nChecking for VM_READ optimizes out the case where get_user() would fail\nanyway.  The vm_file check here was already superfluous given the control\nflow earlier in the function, so that is a cleanup/optimization unrelated\nto other changes but an obvious and trivial one.\n\nReported-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\n"
    },
    {
      "commit": "0bf2f3aec5474da80a60e1baca629af87ecb67b6",
      "tree": "5c1a7733e24aaacbcf46e0434a11f033cfde43ca",
      "parents": [
        "6cec50838ed04a9833fb5549f698d3756bbe7e72"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Feb 06 11:45:46 2009 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sat Feb 07 08:46:18 2009 +1100"
      },
      "message": "CRED: Fix SUID exec regression\n\nThe patch:\n\n\tcommit a6f76f23d297f70e2a6b3ec607f7aeeea9e37e8d\n\tCRED: Make execve() take advantage of copy-on-write credentials\n\nmoved the place in which the \u0027safeness\u0027 of a SUID/SGID exec was performed to\nbefore de_thread() was called.  This means that LSM_UNSAFE_SHARE is now\ncalculated incorrectly.  This flag is set if any of the usage counts for\nfs_struct, files_struct and sighand_struct are greater than 1 at the time the\ndetermination is made.  All of which are true for threads created by the\npthread library.\n\nHowever, since we wish to make the security calculation before irrevocably\ndamaging the process so that we can return it an error code in the case where\nwe decide we want to reject the exec request on this basis, we have to make the\ndetermination before calling de_thread().\n\nSo, instead, we count up the number of threads (CLONE_THREAD) that are sharing\nour fs_struct (CLONE_FS), files_struct (CLONE_FILES) and sighand_structs\n(CLONE_SIGHAND/CLONE_THREAD) with us.  These will be killed by de_thread() and\nso can be discounted by check_unsafe_exec().\n\nWe do have to be careful because CLONE_THREAD does not imply FS or FILES.\n\nWe _assume_ that there will be no extra references to these structs held by the\nthreads we\u0027re going to kill.\n\nThis can be tested with the attached pair of programs.  Build the two programs\nusing the Makefile supplied, and run ./test1 as a non-root user.  If\nsuccessful, you should see something like:\n\n\t[dhowells@andromeda tmp]$ ./test1\n\t--TEST1--\n\tuid\u003d4043, euid\u003d4043 suid\u003d4043\n\texec ./test2\n\t--TEST2--\n\tuid\u003d4043, euid\u003d0 suid\u003d0\n\tSUCCESS - Correct effective user ID\n\nand if unsuccessful, something like:\n\n\t[dhowells@andromeda tmp]$ ./test1\n\t--TEST1--\n\tuid\u003d4043, euid\u003d4043 suid\u003d4043\n\texec ./test2\n\t--TEST2--\n\tuid\u003d4043, euid\u003d4043 suid\u003d4043\n\tERROR - Incorrect effective user ID!\n\nThe non-root user ID you see will depend on the user you run as.\n\n[test1.c]\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cpthread.h\u003e\n\nstatic void *thread_func(void *arg)\n{\n\twhile (1) {}\n}\n\nint main(int argc, char **argv)\n{\n\tpthread_t tid;\n\tuid_t uid, euid, suid;\n\n\tprintf(\"--TEST1--\\n\");\n\tgetresuid(\u0026uid, \u0026euid, \u0026suid);\n\tprintf(\"uid\u003d%d, euid\u003d%d suid\u003d%d\\n\", uid, euid, suid);\n\n\tif (pthread_create(\u0026tid, NULL, thread_func, NULL) \u003c 0) {\n\t\tperror(\"pthread_create\");\n\t\texit(1);\n\t}\n\n\tprintf(\"exec ./test2\\n\");\n\texeclp(\"./test2\", \"test2\", NULL);\n\tperror(\"./test2\");\n\t_exit(1);\n}\n\n[test2.c]\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cunistd.h\u003e\n\nint main(int argc, char **argv)\n{\n\tuid_t uid, euid, suid;\n\n\tgetresuid(\u0026uid, \u0026euid, \u0026suid);\n\tprintf(\"--TEST2--\\n\");\n\tprintf(\"uid\u003d%d, euid\u003d%d suid\u003d%d\\n\", uid, euid, suid);\n\n\tif (euid !\u003d 0) {\n\t\tfprintf(stderr, \"ERROR - Incorrect effective user ID!\\n\");\n\t\texit(1);\n\t}\n\tprintf(\"SUCCESS - Correct effective user ID\\n\");\n\texit(0);\n}\n\n[Makefile]\nCFLAGS \u003d -D_GNU_SOURCE -Wall -Werror -Wunused\nall: test1 test2\n\ntest1: test1.c\n\tgcc $(CFLAGS) -o test1 test1.c -lpthread\n\ntest2: test2.c\n\tgcc $(CFLAGS) -o test2 test2.c\n\tsudo chown root.root test2\n\tsudo chmod +s test2\n\nReported-by: David Smith \u003cdsmith@redhat.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: David Smith \u003cdsmith@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "d4cf109f05ff04c6f5065c3e14165ef01a57dd53",
      "tree": "898a0d6b4d8934ec4939a8572e1b78dbb9689d93",
      "parents": [
        "6cec50838ed04a9833fb5549f698d3756bbe7e72"
      ],
      "author": {
        "name": "Dave Kleikamp",
        "email": "shaggy@linux.vnet.ibm.com",
        "time": "Fri Feb 06 14:59:26 2009 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 06 13:34:22 2009 -0800"
      },
      "message": "vfs: Don\u0027t call attach_nobh_buffers() with an empty list\n\nThis is a modification of a patch by Bill Pemberton \u003cwfp5p@virginia.edu\u003e\n\nnobh_write_end() could call attach_nobh_buffers() with head \u003d\u003d NULL.\nThis would result in a trap when attach_nobh_buffers() attempted to\naccess bh-\u003eb_this_page.\n\nThis can be illustrated by running the writev01 testcase from LTP on jfs.\n\nThis error was introduced by commit 5b41e74a \"vfs: fix data leak in\nnobh_write_end()\".  That patch did not take into account that if\nPageMappedToDisk() is true upon entry to nobh_write_begin(), then no\nbuffers will be allocated for the page.  In that case, we won\u0027t have to\nworry about a failed write leaving unitialized data in the page.\n\nOf course, head !\u003d NULL implies !page_has_buffers(page), so no need to\ntest both.\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Bill Pemberton \u003cwfp5p@virginia.edu\u003e\nCc: Dmitri Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42f15d77df8a7e8a2feb15041d5d30710ee7f951",
      "tree": "5b6a3cdaab135c41848952874a6fab086b8b9f72",
      "parents": [
        "806638bce99f51deccbfedbe86ab3c5cf55a1d35"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 06 11:35:57 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Feb 06 11:35:57 2009 -0500"
      },
      "message": "Btrfs: Make sure dir is non-null before doing S_ISGID checks\n\nThe S_ISGID check in btrfs_new_inode caused an oops during subvol creation\nbecause sometimes the dir is null.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ff491a7334acfd74e515c896632e37e401f52676",
      "tree": "0e3663706a706029d6fc749ef7f66cdd03925231",
      "parents": [
        "612e244c12215f6f74973ea3b89bff96450dc530"
      ],
      "author": {
        "name": "Pablo Neira Ayuso",
        "email": "pablo@netfilter.org",
        "time": "Thu Feb 05 23:56:36 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 05 23:56:36 2009 -0800"
      },
      "message": "netlink: change return-value logic of netlink_broadcast()\n\nCurrently, netlink_broadcast() reports errors to the caller if no\nmessages at all were delivered:\n\n1) If, at least, one message has been delivered correctly, returns 0.\n2) Otherwise, if no messages at all were delivered due to skb_clone()\n   failure, return -ENOBUFS.\n3) Otherwise, if there are no listeners, return -ESRCH.\n\nWith this patch, the caller knows if the delivery of any of the\nmessages to the listeners have failed:\n\n1) If it fails to deliver any message (for whatever reason), return\n   -ENOBUFS.\n2) Otherwise, if all messages were delivered OK, returns 0.\n3) Otherwise, if no listeners, return -ESRCH.\n\nIn the current ctnetlink code and in Netfilter in general, we can add\nreliable logging and connection tracking event delivery by dropping the\npackets whose events were not successfully delivered over Netlink. Of\ncourse, this option would be settable via /proc as this approach reduces\nperformance (in terms of filtered connections per seconds by a stateful\nfirewall) but providing reliable logging and event delivery (for\nconntrackd) in return.\n\nThis patch also changes some clients of netlink_broadcast() that\nmay report ENOBUFS errors via printk. This error handling is not\nof any help. Instead, the userspace daemons that are listening to\nthose netlink messages should resync themselves with the kernel-side\nif they hit ENOBUFS.\n\nBTW, netlink_broadcast() clients include those that call\ncn_netlink_send(), nlmsg_multicast() and genlmsg_multicast() since they\ninternally call netlink_broadcast() and return its error value.\n\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33dccbb050bbe35b88ca8cf1228dcf3e4d4b3554",
      "tree": "19435e330ac81b77c59a56ceea6c66d7efc0bc97",
      "parents": [
        "4cc7f68d65558f683c702d4fe3a5aac4c5227b97"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Feb 05 21:25:32 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 05 21:25:32 2009 -0800"
      },
      "message": "tun: Limit amount of queued packets per device\n\nUnlike a normal socket path, the tuntap device send path does\nnot have any accounting.  This means that the user-space sender\nmay be able to pin down arbitrary amounts of kernel memory by\ncontinuing to send data to an end-point that is congested.\n\nEven when this isn\u0027t an issue because of limited queueing at\nmost end points, this can also be a problem because its only\nresponse to congestion is packet loss.  That is, when those\nlocal queues at the end-point fills up, the tuntap device will\nstart wasting system time because it will continue to send\ndata there which simply gets dropped straight away.\n\nOf course one could argue that everybody should do congestion\ncontrol end-to-end, unfortunately there are people in this world\nstill hooked on UDP, and they don\u0027t appear to be going away\nanywhere fast.  In fact, we\u0027ve always helped them by performing\naccounting in our UDP code, the sole purpose of which is to\nprovide congestion feedback other than through packet loss.\n\nThis patch attempts to apply the same bandaid to the tuntap device.\nIt creates a pseudo-socket object which is used to account our\npackets just as a normal socket does for UDP.  Of course things\nare a little complex because we\u0027re actually reinjecting traffic\nback into the stack rather than out of the stack.\n\nThe stack complexities however should have been resolved by preceding\npatches.  So this one can simply start using skb_set_owner_w.\n\nFor now the accounting is essentially disabled by default for\nbackwards compatibility.  In particular, we set the cap to INT_MAX.\nThis is so that existing applications don\u0027t get confused by the\nsudden arrival EAGAIN errors.\n\nIn future we may wish (or be forced to) do this by default.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "767b5828ad9a1b435488b5d39b5a66aeef4d25e4",
      "tree": "40dc54bb63899ff8fd2de31dfeb83230bddad935",
      "parents": [
        "082256333f4e879bc4b56e294921aaff6d035da0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Feb 06 00:32:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 16:35:52 2009 -0800"
      },
      "message": "braino in sg_ioctl_trans()\n\n... and yes, gcc is insane enough to eat that without complaint.\nWe probably want sparse to scream on those...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "082256333f4e879bc4b56e294921aaff6d035da0",
      "tree": "ddc5ea679909d19b1c7279907c6ff762bc8ac598",
      "parents": [
        "09cd5b8f9dbdc161aec404eea572fbca7d162920",
        "436443f0f77f730f9f700095799c485356695c08"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 16:12:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 16:12:38 2009 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:\n  Revert \"configfs: Silence lockdep on mkdir(), rmdir() and configfs_depend_item()\"\n"
    },
    {
      "commit": "f01d1d546abb2f4028b5299092f529eefb01253a",
      "tree": "625a9f9923ae53cc9bf75cf46fcebbbeb8ac84a8",
      "parents": [
        "33da8892a2f9e7d4b2d9a35fc80833ba2d2b1aa6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 06 00:30:05 2009 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 14:18:14 2009 -0800"
      },
      "message": "seq_file: fix big-enough lseek() + read()\n\nlseek() further than length of the file will leave stale -\u003eindex\n(second-to-last during iteration). Next seq_read() will not notice\nthat -\u003ef_pos is big enough to return 0, but will print last item\nas if -\u003ef_pos is pointing to it.\n\nIntroduced in commit cb510b8172602a66467f3551b4be1911f5a7c8c2\naka \"seq_file: more atomicity in traverse()\".\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33da8892a2f9e7d4b2d9a35fc80833ba2d2b1aa6",
      "tree": "4261b553653438775461fd408669f1942a383d2e",
      "parents": [
        "361916a943cd9dbda1c0b00879d0225cc919d868"
      ],
      "author": {
        "name": "Eric Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Feb 04 15:12:25 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 05 12:56:49 2009 -0800"
      },
      "message": "seq_file: move traverse so it can be used from seq_read\n\nIn 2.6.25 some /proc files were converted to use the seq_file\ninfrastructure.  But seq_files do not correctly support pread(), which\nbroke some usersapce applications.\n\nTo handle pread correctly we can\u0027t assume that f_pos is where we left it\nin seq_read.  So move traverse() so that we can eventually use it in\nseq_read and do thus some day support pread().\n\nSigned-off-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "806638bce99f51deccbfedbe86ab3c5cf55a1d35"
}
