)]}'
{
  "log": [
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "ae005cbed12d0b340b04b59d6f5c56e710b3895d",
      "tree": "d464865bcc97bea05eab4eba0d10bcad4ec89b93",
      "parents": [
        "3961cdf85b749f6bab50ad31ee97e9277e7a3b70",
        "0ba0851714beebb800992e5105a79dc3a4c504b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:57:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 09:57:41 2011 -0700"
      },
      "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: (43 commits)\n  ext4: fix a BUG in mb_mark_used during trim.\n  ext4: unused variables cleanup in fs/ext4/extents.c\n  ext4: remove redundant set_buffer_mapped() in ext4_da_get_block_prep()\n  ext4: add more tracepoints and use dev_t in the trace buffer\n  ext4: don\u0027t kfree uninitialized s_group_info members\n  ext4: add missing space in printk\u0027s in __ext4_grp_locked_error()\n  ext4: add FITRIM to compat_ioctl.\n  ext4: handle errors in ext4_clear_blocks()\n  ext4: unify the ext4_handle_release_buffer() api\n  ext4: handle errors in ext4_rename\n  jbd2: add COW fields to struct jbd2_journal_handle\n  jbd2: add the b_cow_tid field to journal_head struct\n  ext4: Initialize fsync transaction ids in ext4_new_inode()\n  ext4: Use single thread to perform DIO unwritten convertion\n  ext4: optimize ext4_bio_write_page() when no extent conversion is needed\n  ext4: skip orphan cleanup if fs has unknown ROCOMPAT features\n  ext4: use the nblocks arg to ext4_truncate_restart_trans()\n  ext4: fix missing iput of root inode for some mount error paths\n  ext4: make FIEMAP and delayed allocation play well together\n  ext4: suppress verbose debugging information if malloc-debug is off\n  ...\n\nFi up conflicts in fs/ext4/super.c due to workqueue changes\n"
    },
    {
      "commit": "21149d611ecd0faf60f4ef94aa2bf8ed872f92bf",
      "tree": "93c1b2cf51747dae66789db0506e94bc02dd0859",
      "parents": [
        "a56e69c28ad0782a99f3f196e93d57ba5a7e2324"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "sanbai@taobao.com",
        "time": "Mon Mar 21 20:39:22 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 21 20:39:22 2011 -0400"
      },
      "message": "ext4: add missing space in printk\u0027s in __ext4_grp_locked_error()\n\nWhen we do performence-testing on ext4 filesystem, we observed a\nwarning like this:\n\nEXT4-fs error (device sda7): ext4_mb_generate_buddy:718: group 259825901 blocks in bitmap, 26057 in gd\n\ninstead, it should be\n\n\"group 2598, 25901 blocks in bitmap, 26057 in gd\"\n\nReviewed-by: Coly Li \u003cbosong.ly@taobao.com\u003e\nCc: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bd2895eeade5f11f3e5906283c630bbdb4b57454",
      "tree": "4d98f4fcd80c7d062afce28823d08aee53e66f82",
      "parents": [
        "016aa2ed1cc9cf704cf76d8df07751b6daa9750f",
        "24d51add7438f9696a7205927bf9de3c5c787a58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: fix build failure introduced by s/freezeable/freezable/\n  workqueue: add system_freezeable_wq\n  rds/ib: use system_wq instead of rds_ib_fmr_wq\n  net/9p: replace p9_poll_task with a work\n  net/9p: use system_wq instead of p9_mux_wq\n  xfs: convert to alloc_workqueue()\n  reiserfs: make commit_wq use the default concurrency level\n  ocfs2: use system_wq instead of ocfs2_quota_wq\n  ext4: convert to alloc_workqueue()\n  scsi/scsi_tgt_lib: scsi_tgtd isn\u0027t used in memory reclaim path\n  scsi/be2iscsi,qla2xxx: convert to alloc_workqueue()\n  misc/iwmc3200top: use system_wq instead of dedicated workqueues\n  i2o: use alloc_workqueue() instead of create_workqueue()\n  acpi: kacpi*_wq don\u0027t need WQ_MEM_RECLAIM\n  fs/aio: aio_wq isn\u0027t used in memory reclaim path\n  input/tps6507x-ts: use system_wq instead of dedicated workqueue\n  cpufreq: use system_wq instead of dedicated workqueues\n  wireless/ipw2x00: use system_wq instead of dedicated workqueues\n  arm/omap: use system_wq in mailbox\n  workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER\n"
    },
    {
      "commit": "f2fa2ffc2046fdc35f96366d1ec8675f4d578522",
      "tree": "b1215682f5fbb99cf975cee3fb827909ee4a1c97",
      "parents": [
        "03cb5f03dcb26846fcad345d8c15aae91579a53d"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:40 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 15 02:21:45 2011 -0400"
      },
      "message": "ext4: Copy fs UUID to superblock\n\nFile system UUID is made available to application\nvia  /proc/\u003cpid\u003e/mountinfo\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "198868f35de99e7197829314076e5465c37e4cc5",
      "tree": "04d6044250667f150787bedf68db6ac3732458c9",
      "parents": [
        "b616844310a6c8a4ab405d3436bbb6e53cfd852f"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Sat Mar 05 11:52:45 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Mar 05 11:52:45 2011 -0500"
      },
      "message": "ext4: Use single thread to perform DIO unwritten convertion\n\nWhile running ext4 testing on multiple core, we found there are per\ncpu ext4-dio-unwritten threads processing conversion from unwritten\nextents to written for IOs completed from async direct IO patch.  Per\nfilesystem is enough, we don\u0027t need per cpu threads to work on\nconversion.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "d39195c33bb1b5fdcb0f416e8a0b34bfdb07a027",
      "tree": "dcea99dcf6ca1b76c0db23fd4e81033440d057b5",
      "parents": [
        "8e8eaabefee3ff645b9551ee32c6c54c7d80ad19"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@gmail.com",
        "time": "Mon Feb 28 00:53:45 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 28 00:53:45 2011 -0500"
      },
      "message": "ext4: skip orphan cleanup if fs has unknown ROCOMPAT features\n\nOrphan cleanup is currently executed even if the file system has some\nnumber of unknown ROCOMPAT features, which deletes inodes and frees\nblocks, which could be very bad for some RO_COMPAT features,\nespecially the SNAPSHOT feature.\n\nThis patch skips the orphan cleanup if it contains readonly compatible\nfeatures not known by this ext4 implementation, which would prevent\nthe fs from being mounted (or remounted) readwrite.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "32a9bb57d7c1fd04ae0f72b8f671501f000a0e9f",
      "tree": "9bab50282f4d17a9710df599170662bda8a9a61d",
      "parents": [
        "6d9c85eb700bd3ac59e63bb9de463dea1aca084c"
      ],
      "author": {
        "name": "Manish Katiyar",
        "email": "mkatiyar@gmail.com",
        "time": "Sun Feb 27 20:42:06 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Feb 27 20:42:06 2011 -0500"
      },
      "message": "ext4: fix missing iput of root inode for some mount error paths\n\nThis assures that the root inode is not leaked, and that sb-\u003es_root is\nNULL, which will prevent generic_shutdown_super() from doing extra\nwork, including call sync_filesystem, which ultimately results in\next4_sync_fs() getting called with an uninitialized struct super,\nwhich is the cause of the crash noted in Kernel Bugzilla #26752.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d26752\n\nSigned-off-by: Manish Katiyar \u003cmkatiyar@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6fd7a46781999c32f423025767e43b349b967d57",
      "tree": "cb324e785e6e00c29ba522c5b76a2bfdfee7b1ab",
      "parents": [
        "c7f5938adce6727b9d17785f289c1146bd88d678"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 13:53:09 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 26 13:53:09 2011 -0500"
      },
      "message": "ext4: enable mblk_io_submit by default\n\nNow that we\u0027ve fixed the file corruption bug in commit d50bdd5aa55,\nit\u0027s time to enable mblk_io_submit by default.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ea6633369458992241599c9d9ebadffaeddec164",
      "tree": "b9d42574ad1dbefb09e527ea9ed4e5d78c3d762c",
      "parents": [
        "5c2ed62fd447e2c696e222dcf71d1322bbbc58d4"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Feb 23 17:51:51 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 23 17:51:51 2011 -0500"
      },
      "message": "ext4: enable acls and user_xattr by default\n\nThere\u0027s no good reason to require the extra step of providing\na mount option for acl or user_xattr once the feature is configured\non; no other filesystem that I know of requires this.\n\nUserspace patches have set these options in default mount options,\nand this patch makes them default in the kernel.  At some point\nwe can start to deprecate the options, perhaps.\n\nFor now I\u0027ve removed default mount option checks in show_options()\nto be explicit about what\u0027s set, since it\u0027s changing the default,\nbut I\u0027m open to alternatives if desired.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0b75a840120b1e647e32342e9cc46631410088d5",
      "tree": "8c6858b3a0a9627f1424fd2b61e0f9d866221340",
      "parents": [
        "5dbd571d875d73e087c1eeb3d840cfc653a97422"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Feb 23 12:22:49 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 23 12:22:49 2011 -0500"
      },
      "message": "ext4: mark file-local functions and variables as static\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5dbd571d875d73e087c1eeb3d840cfc653a97422",
      "tree": "dfad6885fad57fb45f3e1d37d3d2d56fd6c320b0",
      "parents": [
        "7dc576158d7e5cdff3349f78598fdb4080536342"
      ],
      "author": {
        "name": "Alexander V. Lukyanov",
        "email": "lav@netis.ru",
        "time": "Mon Feb 21 21:33:21 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 21 21:33:21 2011 -0500"
      },
      "message": "ext4: allow inode_readahead_blks\u003d0 (linux-2.6.37)\n\nI cannot disable inode-read-ahead feature of ext4 (on 2.6.37):\n\n# echo 0 \u003e /sys/fs/ext4/sda2/inode_readahead_blks \nbash: echo: write error: Invalid argument\n\nOn a server with lots of small files and random access this read-ahead makes\nperformance worse, and I\u0027d like to disable it. I work around this problem\nby using value of 1, but it still reads an extra block.\n\nThis patch fixes the problem by checking for zero explicitly.\n\nSigned-off-by: Alexander V. Lukyanov \u003clav@netis.ru\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7dc576158d7e5cdff3349f78598fdb4080536342",
      "tree": "e7be15a8ee8add729915c81e9cb39cd55d6b572d",
      "parents": [
        "da488945f4bf4096f4ab6091938469bd8822cfec"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Mon Feb 21 21:01:42 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 21 21:01:42 2011 -0500"
      },
      "message": "ext4: Fix sparse warning: Using plain integer as NULL pointer\n\nThis patch fixes the warning \"Using plain integer as NULL pointer\",\ngenerated by sparse, by replacing the offending 0s with NULL.\n\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "43d133c18b44e7d82d82ef0dcc2bddd55d5dfe81",
      "tree": "8de75c837b55874cc8a81a29bdedbc62668d4481",
      "parents": [
        "4149efb22da66e326fc48baf80d628834509f7f0",
        "6f576d57f1fa0d6026b495d8746d56d949989161"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 09:43:56 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Feb 21 09:43:56 2011 +0100"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.39\n"
    },
    {
      "commit": "e9e3bcecf44c04b9e6b505fd8e2eb9cea58fb94d",
      "tree": "9f347a48889a00071dbe1f12be4c50ec7a45542b",
      "parents": [
        "2892c15ddda6a76dc10b7499e56c0f3b892e5a69"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Feb 12 08:17:34 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Feb 12 08:17:34 2011 -0500"
      },
      "message": "ext4: serialize unaligned asynchronous DIO\n\next4 has a data corruption case when doing non-block-aligned\nasynchronous direct IO into a sparse file, as demonstrated\nby xfstest 240.\n\nThe root cause is that while ext4 preallocates space in the\nhole, mappings of that space still look \"new\" and \ndio_zero_block() will zero out the unwritten portions.  When\nmore than one AIO thread is going, they both find this \"new\"\nblock and race to zero out their portion; this is uncoordinated\nand causes data corruption.\n\nDave Chinner fixed this for xfs by simply serializing all\nunaligned asynchronous direct IO.  I\u0027ve done the same here.\nThe difference is that we only wait on conversions, not all IO.\nThis is a very big hammer, and I\u0027m not very pleased with\nstuffing this into ext4_file_write().  But since ext4 is\nDIO_LOCKING, we need to serialize it at this high level.\n\nI tried to move this into ext4_ext_direct_IO, but by then\nwe have the i_mutex already, and we will wait on the\nwork queue to do conversions - which must also take the\ni_mutex.  So that won\u0027t work.\n\nThis was originally exposed by qemu-kvm installing to\na raw disk image with a normal sector-63 alignment.  I\u0027ve\ntested a backport of this patch with qemu, and it does\navoid the corruption.  It is also quite a lot slower\n(14 min for package installs, vs. 8 min for well-aligned)\nbut I\u0027ll take slow correctness over fast corruption any day.\n\nMingming suggested that we can track outstanding\nconversions, and wait on those so that non-sparse\nfiles won\u0027t be affected, and I\u0027ve implemented that here;\nunaligned AIO to nonsparse files won\u0027t take a perf hit.\n\n[tytso@mit.edu: Keep the mutex as a hashed array instead\n of bloating the ext4 inode]\n\n[tytso@mit.edu: Fix up namespace issues so that global\n variables are protected with an \"ext4_\" prefix.]\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dd68314ccf3fb918c1fb6471817edbc60ece4b52",
      "tree": "9faa6b90bfafcd3dbaac1df206df7f56e537030e",
      "parents": [
        "8f021222c1e2756ea4c9dde93b23e1d2a0a4ec37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 03 14:33:49 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 03 14:33:49 2011 -0500"
      },
      "message": "ext4: fix up ext4 error handling\n\nMake sure we the correct cleanup happens if we die while trying to\nload the ext4 file system.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8f021222c1e2756ea4c9dde93b23e1d2a0a4ec37",
      "tree": "8a74b91a0b1dd27fad9c384449bac0c4b8777a74",
      "parents": [
        "8f1f745331c1b560f53c0d60e55a4f4f43f7cce5"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Thu Feb 03 14:33:33 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 03 14:33:33 2011 -0500"
      },
      "message": "ext4: unregister features interface on module unload\n\nExt4 features interface was not properly unregistered which led to\nproblems while unloading/reloading ext4 module. This commit fixes that by\nadding proper kobject unregistration code into ext4_exit_fs() as well as\nfail-path of ext4_init_fs()\n\nReported-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "8f1f745331c1b560f53c0d60e55a4f4f43f7cce5",
      "tree": "d8db8e0e1a067012795372e38fce09dec6bc575a",
      "parents": [
        "1bae4ce27c9c90344f23c65ea6966c50ffeae2f5"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Feb 03 14:33:15 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 03 14:33:15 2011 -0500"
      },
      "message": "ext4: fix panic on module unload when stopping lazyinit thread\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d27652\n\nIf the lazyinit thread is running, the teardown function\next4_destroy_lazyinit_thread() has problems:\n\n        ext4_clear_request_list();\n        while (ext4_li_info-\u003eli_task) {\n                wake_up(\u0026ext4_li_info-\u003eli_wait_daemon);\n                wait_event(ext4_li_info-\u003eli_wait_task,\n                           ext4_li_info-\u003eli_task \u003d\u003d NULL);\n        }\n\nClearing the request list will cause the thread to exit and free\next4_li_info, so then we\u0027re waiting on something which is getting\nfreed.\n\nFix this up by making the thread respond to kthread_stop, and exit,\nwithout the need to wait for that exit in some other homegrown way.\n\nCc: stable@kernel.org\nReported-and-Tested-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fd89d5f2030ac83324330bfd0bc73abf1beadaa6",
      "tree": "5368d06cf6cb5990ff9a58525c9c813d8d73adc3",
      "parents": [
        "40f38ffb72cd58452dc5afc25ca5215bb90538a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 01 11:42:42 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 01 11:42:42 2011 +0100"
      },
      "message": "ext4: convert to alloc_workqueue()\n\nConvert create_workqueue() to alloc_workqueue().  This is an identity\nconversion.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "4843456c5c341eb57f80f9224362a22665d14107",
      "tree": "5656b405a8b1d2596e8eb748b953ee677a261e3c",
      "parents": [
        "2b1caf6ed7b888c95a1909d343799672731651a5",
        "f00c9e44ad1a9660fe8cd3ca15b6cd9497172eab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 21 07:33:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 21 07:33:37 2011 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  quota: Fix deadlock during path resolution\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "f00c9e44ad1a9660fe8cd3ca15b6cd9497172eab",
      "tree": "cbb47ae0d8aba9d8b3c44714b000156715cdf969",
      "parents": [
        "4162cf64973df51fc885825bc9ca4d055891c49f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 15 17:38:58 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 12 19:14:55 2011 +0100"
      },
      "message": "quota: Fix deadlock during path resolution\n\nAs Al Viro pointed out path resolution during Q_QUOTAON calls to quotactl\nis prone to deadlocks. We hold s_umount semaphore for reading during the\npath resolution and resolution itself may need to acquire the semaphore\nfor writing when e. g. autofs mountpoint is passed.\n\nSolve the problem by performing the resolution before we get hold of the\nsuperblock (and thus s_umount semaphore). The whole thing is complicated\nby the fact that some filesystems (OCFS2) ignore the path argument. So to\ndistinguish between filesystem which want the path and which do not we\nintroduce new .quota_on_meta callback which does not get the path. OCFS2\nthen uses this callback instead of old .quota_on.\n\nCC: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCC: Christoph Hellwig \u003chch@lst.de\u003e\nCC: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCC: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e9688f6acad8cb1f2e8d7abb2de06a6a5c9cbcf2",
      "tree": "2f9b89987c57e3395e53d3ca354f9674c0bef369",
      "parents": [
        "40c73abbb37e399eba274fe49e520ffa3dd65bdb",
        "0f0a25bf516843adae479636dc1cf75fd0bd003c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 14:37:31 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 11 14:37:31 2011 -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: (44 commits)\n  ext4: fix trimming starting with block 0 with small blocksize\n  ext4: revert buggy trim overflow patch\n  ext4: don\u0027t pass entire map to check_eofblocks_fl\n  ext4: fix memory leak in ext4_free_branches\n  ext4: remove ext4_mb_return_to_preallocation()\n  ext4: flush the i_completed_io_list during ext4_truncate\n  ext4: add error checking to calls to ext4_handle_dirty_metadata()\n  ext4: fix trimming of a single group\n  ext4: fix uninitialized variable in ext4_register_li_request\n  ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary\n  ext4: drop i_state_flags on architectures with 64-bit longs\n  ext4: reorder ext4_inode_info structure elements to remove unneeded padding\n  ext4: drop ec_type from the ext4_ext_cache structure\n  ext4: use ext4_lblk_t instead of sector_t for logical blocks\n  ext4: replace i_delalloc_reserved_flag with EXT4_STATE_DELALLOC_RESERVED\n  ext4: fix 32bit overflow in ext4_ext_find_goal()\n  ext4: add more error checks to ext4_mkdir()\n  ext4: ext4_ext_migrate should use NULL not 0\n  ext4: Use ext4_error_file() to print the pathname to the corrupted inode\n  ext4: use IS_ERR() to check for errors in ext4_error_file\n  ...\n"
    },
    {
      "commit": "6c5a6cb998854f3c579ecb2bc1423d302bcb1b76",
      "tree": "c3c3b895f39a2d555a12ab6307fbad82e5ee63ab",
      "parents": [
        "8aefcd557d26d0023a36f9ec5afbf55e59f8f26b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Jan 10 12:30:17 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:30:17 2011 -0500"
      },
      "message": "ext4: fix uninitialized variable in ext4_register_li_request\n\nfs/ext4/super.c: In function \u0027ext4_register_li_request\u0027:\nfs/ext4/super.c:2936: warning: \u0027ret\u0027 may be used uninitialized in this function\n\nIt looks buggy to me, too.\n\nCc: Lukas Czerner \u003clczerner@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8aefcd557d26d0023a36f9ec5afbf55e59f8f26b",
      "tree": "e13143306cd64525cddd2cc2513c448275a1d95a",
      "parents": [
        "353eb83c1422c6326eaab30ce044a179c6018169"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:29:43 2011 -0500"
      },
      "message": "ext4: dynamically allocate the jbd2_inode in ext4_inode_info as necessary\n\nReplace the jbd2_inode structure (which is 48 bytes) with a pointer\nand only allocate the jbd2_inode when it is needed --- that is, when\nthe file system has a journal present and the inode has been opened\nfor writing.  This allows us to further slim down the ext4_inode_info\nstructure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f232109773ff5b0c840a6761d74940b9cf0d66ec",
      "tree": "a32da5ebd1a3e074e9f52107f3bdc23babb6340c",
      "parents": [
        "ad4fb9cafe100a4a9de6e0529015e584d94ac8dc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:12:36 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:12:36 2011 -0500"
      },
      "message": "ext4: replace i_delalloc_reserved_flag with EXT4_STATE_DELALLOC_RESERVED\n\nRemove the short element i_delalloc_reserved_flag from the\next4_inode_info structure and replace it a new bit in i_state_flags.\nSince we have an ext4_inode_info for every ext4 inode cached in the\ninode cache, any savings we can produce here is a very good thing from\na memory utilization perspective.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f7c21177af0b32a2cd9ee36189637f0c1f0e1e17",
      "tree": "ba83d4ddcd4b7e15ff575f0b75013ba9ed62f249",
      "parents": [
        "f9a62d090cf47fae2fe6f6bd8eb9f24482573fd8"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:55 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:55 2011 -0500"
      },
      "message": "ext4: Use ext4_error_file() to print the pathname to the corrupted inode\n\nWhere the file pointer is available, use ext4_error_file() instead of\next4_error_inode().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f9a62d090cf47fae2fe6f6bd8eb9f24482573fd8",
      "tree": "018b35b669705055963d09c7e2a07c90cc36ade5",
      "parents": [
        "13195184a8bc119dbd2f905db325a453047971cb"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Jan 10 12:10:50 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 10 12:10:50 2011 -0500"
      },
      "message": "ext4: use IS_ERR() to check for errors in ext4_error_file\n\nd_path() returns an ERR_PTR and it doesn\u0027t return NULL.  This is in\next4_error_file() and no one actually calls ext4_error_file().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\n\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "0ff2ea7d84e31176a046a1eabea59d6e4eecd998",
      "tree": "6aafc9e97bc6fc15923039d0039c8acfd6311722",
      "parents": [
        "94de56ab2062be59d80e2efb7c0dc60ecf616075"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Dec 19 22:43:19 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 19 22:43:19 2010 -0500"
      },
      "message": "ext4: Use printf extension %pV\n\nUsing %pV reduces the number of printk calls and eliminates any\npossible message interleaving from other printk calls.\n\nIn function __ext4_grp_locked_error also added KERN_CONT to some\nprintks.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "94de56ab2062be59d80e2efb7c0dc60ecf616075",
      "tree": "ec2049ff864708b04fd1d109af0b28cd288884c5",
      "parents": [
        "af0b44a1970fed1cda31d2969c99c46ffc515160"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Dec 19 22:21:02 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 19 22:21:02 2010 -0500"
      },
      "message": "ext4: Use vzalloc in ext4_fill_flex_info()\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a2595b8aa67011419dae26b47e474f46df902989",
      "tree": "d44d79256f92f32b7958a04e89907f7e1a755767",
      "parents": [
        "673c610033a8202c037ecd068c7a235495acda17"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 15 20:30:48 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 15 20:30:48 2010 -0500"
      },
      "message": "ext4: Add second mount options field since the s_mount_opt is full up\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "673c610033a8202c037ecd068c7a235495acda17",
      "tree": "e47ca541bf33f1d43d4ced9b72d6100853896236",
      "parents": [
        "fd8c37eccdda21153298997417144b38b1623196"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 15 20:28:48 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 15 20:28:48 2010 -0500"
      },
      "message": "ext4: Move struct ext4_mount_options from ext4.h to super.c\n\nMove the ext4_mount_options structure definition from ext4.h, since it\nis only used in super.c.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fd8c37eccdda21153298997417144b38b1623196",
      "tree": "313e022d9d82f890e728dce66ce6e115ea3970b1",
      "parents": [
        "b0c3844d8af6b9f3f18f31e1b0502fbefa2166be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 15 20:26:48 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 15 20:26:48 2010 -0500"
      },
      "message": "ext4: Simplify the usage of clear_opt() and set_opt() macros\n\nChange clear_opt() and set_opt() to take a superblock pointer instead\nof a pointer to EXT4_SB(sb)-\u003es_mount_opt.  This makes it easier for us\nto support a second mount option field.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1449032be17abb69116dbc393f67ceb8bd034f92",
      "tree": "f62757457241c2fdc14105afc12cb2718f7a2e68",
      "parents": [
        "e8a7e48bb248a1196484d3f8afa53bded2b24e71"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 14 15:27:50 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 14 15:27:50 2010 -0500"
      },
      "message": "ext4: Turn off multiple page-io submission by default\n\nJon Nelson has found a test case which causes postgresql to fail with\nthe error:\n\npsql:t.sql:4: ERROR: invalid page header in block 38269 of relation base/16384/16581\n\nUnder memory pressure, it looks like part of a file can end up getting\nreplaced by zero\u0027s.  Until we can figure out the cause, we\u0027ll roll\nback the change and use block_write_full_page() instead of\next4_bio_write_page().  The new, more efficient writing function can\nbe used via the mount option mblk_io_submit, so we can test and fix\nthe new page I/O code.\n\nTo reproduce the problem, install postgres 8.4 or 9.0, and pin enough\nmemory such that the system just at the end of triggering writeback\nbefore running the following sql script:\n\nbegin;\ncreate temporary table foo as select x as a, ARRAY[x] as b FROM\ngenerate_series(1, 10000000 ) AS x;\ncreate index foo_a_idx on foo (a);\ncreate index foo_b_idx on foo USING GIN (b);\nrollback;\n\nIf the temporary table is created on a hard drive partition which is\nencrypted using dm_crypt, then under memory pressure, approximately\n30-40% of the time, pgsql will issue the above failure.\n\nThis patch should fix this problem, and the problem will come back if\nthe file system is mounted with the mblk_io_submit mount option.\n\nReported-by: Jon Nelson \u003cjnelson@jamponi.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "93bb41f4f8b89ac8b4d0a734bc59634cb0a29a89",
      "tree": "16ed3163dbbdb5b46ed0f3a12d059b4c2c467e95",
      "parents": [
        "5a9ae68a349aa076bc8557ee2fcf865574459282"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Fri Nov 19 21:18:35 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Nov 19 21:18:35 2010 -0500"
      },
      "message": "fs: Do not dispatch FITRIM through separate super_operation\n\nThere was concern that FITRIM ioctl is not common enough to be included\nin core vfs ioctl, as Christoph Hellwig pointed out there\u0027s no real point\nin dispatching this out to a separate vector instead of just through\n-\u003eioctl.\n\nSo this commit removes ioctl_fstrim() from vfs ioctl and trim_fs\nfrom super_operation structure.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a9ae68a349aa076bc8557ee2fcf865574459282",
      "tree": "484c26f74f13a0c5962ac634c90462d98dea8e1a",
      "parents": [
        "0587aa3d11f9769a301b21bff2c3ed8365606b8d"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Fri Nov 19 09:56:44 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Nov 19 09:56:44 2010 -0500"
      },
      "message": "ext4: ext4_fill_super shouldn\u0027t return 0 on corruption\n\nAt the start of ext4_fill_super, ret is set to -EINVAL, and any failure path\nout of that function returns ret.  However, the generic_check_addressable\nclause sets ret \u003d 0 (if it passes), which means that a subsequent failure (e.g.\na group checksum error) returns 0 even though the mount should fail.  This\ncauses vfs_kern_mount in turn to think that the mount succeeded, leading to an\noops.\n\nA simple fix is to avoid using ret for the generic_check_addressable check,\nwhich was last changed in commit 30ca22c70e3ef0a96ff84de69cd7e8561b416cb2.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f4c8cc652d9f70680dd91be60a7a455040d0a282",
      "tree": "15464ab1cfa63b2e7b7c83006aa09e605aa7099a",
      "parents": [
        "08da1193d2c8c7a25d0cef7f85d0b9f1ad7c583a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Wed Nov 17 21:46:25 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 17 21:46:25 2010 -0500"
      },
      "message": "ext4: missing unlock in ext4_clear_request_list()\n\nIf the the li_request_list was empty then it returned with the lock\nheld.  Instead of adding a \"goto unlock\" I just removed that special\ncase and let it go past the empty list_for_each_safe().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d4d77629953eabd3c14f6fa5746f6b28babfc55f",
      "tree": "38cce0d4764ecb34a9f7f49332959780e28bb786",
      "parents": [
        "75f1dc0d076d1c1168f2115f1941ea627d38bd5a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "message": "block: clean up blkdev_get() wrappers and their users\n\nAfter recent blkdev_get() modifications, open_by_devnum() and\nopen_bdev_exclusive() are simple wrappers around blkdev_get().\nReplace them with blkdev_get_by_dev() and blkdev_get_by_path().\n\nblkdev_get_by_dev() is identical to open_by_devnum().\nblkdev_get_by_path() is slightly different in that it doesn\u0027t\nautomatically add %FMODE_EXCL to @mode.\n\nAll users are converted.  Most conversions are mechanical and don\u0027t\nintroduce any behavior difference.  There are several exceptions.\n\n* btrfs now sets FMODE_EXCL in btrfs_device-\u003emode, so there\u0027s no\n  reason to OR it explicitly on blkdev_put().\n\n* gfs2, nilfs2 and the generic mount_bdev() now set FMODE_EXCL in\n  sb-\u003es_mode.\n\n* With the above changes, sb-\u003es_mode now always should contain\n  FMODE_EXCL.  WARN_ON_ONCE() added to kill_block_super() to detect\n  errors.\n\nThe new blkdev_get_*() functions are with proper docbook comments.\nWhile at it, add function description to blkdev_get() too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Joern Engel \u003cjoern@lazybastard.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: xfs-masters@oss.sgi.com\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e525fd89d380c4a94c0d63913a1dd1a593ed25e7",
      "tree": "d226ef40d3f99e42fcf272ad432585cbd641ebec",
      "parents": [
        "e09b457bdb7e8d23fc54dcef0930ac697d8de895"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "message": "block: make blkdev_get/put() handle exclusive access\n\nOver time, block layer has accumulated a set of APIs dealing with bdev\nopen, close, claim and release.\n\n* blkdev_get/put() are the primary open and close functions.\n\n* bd_claim/release() deal with exclusive open.\n\n* open/close_bdev_exclusive() are combination of open and claim and\n  the other way around, respectively.\n\n* bd_link/unlink_disk_holder() to create and remove holder/slave\n  symlinks.\n\n* open_by_devnum() wraps bdget() + blkdev_get().\n\nThe interface is a bit confusing and the decoupling of open and claim\nmakes it impossible to properly guarantee exclusive access as\nin-kernel open + claim sequence can disturb the existing exclusive\nopen even before the block layer knows the current open if for another\nexclusive access.  Reorganize the interface such that,\n\n* blkdev_get() is extended to include exclusive access management.\n  @holder argument is added and, if is @FMODE_EXCL specified, it will\n  gain exclusive access atomically w.r.t. other exclusive accesses.\n\n* blkdev_put() is similarly extended.  It now takes @mode argument and\n  if @FMODE_EXCL is set, it releases an exclusive access.  Also, when\n  the last exclusive claim is released, the holder/slave symlinks are\n  removed automatically.\n\n* bd_claim/release() and close_bdev_exclusive() are no longer\n  necessary and either made static or removed.\n\n* bd_link_disk_holder() remains the same but bd_unlink_disk_holder()\n  is no longer necessary and removed.\n\n* open_bdev_exclusive() becomes a simple wrapper around lookup_bdev()\n  and blkdev_get().  It also has an unexpected extra bdev_read_only()\n  test which probably should be moved into blkdev_get().\n\n* open_by_devnum() is modified to take @holder argument and pass it to\n  blkdev_get().\n\nMost of bdev open/close operations are unified into blkdev_get/put()\nand most exclusive accesses are tested atomically at the open time (as\nit should).  This cleans up code and removes some, both valid and\ninvalid, but unnecessary all the same, corner cases.\n\nopen_bdev_exclusive() and open_by_devnum() can use further cleanup -\nrename to blkdev_get_by_path() and blkdev_get_by_devt() and drop\nspecial features.  Well, let\u0027s leave them for another day.\n\nMost conversions are straight-forward.  drbd conversion is a bit more\ninvolved as there was some reordering, but the logic should stay the\nsame.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: dm-devel@redhat.com\nCc: drbd-dev@lists.linbit.com\nCc: Leo Chen \u003cleochen@broadcom.com\u003e\nCc: Scott Branden \u003csbranden@broadcom.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ff9c073dd4d7200399076554f7ab9b876f196f6",
      "tree": "6ca4eb4ca9b2f6f7b11e8197bd8a9417d7307b00",
      "parents": [
        "b56ff9d397cecdaad6c98c9d57cc6fea475e1f50"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 08 13:51:33 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 08 13:51:33 2010 -0500"
      },
      "message": "ext4: Add new ext4 inode tracepoints\n\nAdd ext4_evict_inode, ext4_drop_inode, ext4_mark_inode_dirty, and\next4_begin_ordered_truncate()\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "87009d86dc045d228e21242467a67a5f99347553",
      "tree": "2c24052844da18e7a736680b5af9ea97581cebd0",
      "parents": [
        "83668e7141c7a0aa4035bde94344b81f9cf966ab"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Nov 08 13:47:33 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 08 13:47:33 2010 -0500"
      },
      "message": "ext4: do not try to grab the s_umount semaphore in ext4_quota_off\n\nIt\u0027s not needed to sync the filesystem, and it fixes a lock_dep complaint.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\n\n"
    },
    {
      "commit": "f7ad6d2e9201a6e1c9ee6530a291452eb695feb8",
      "tree": "006cdcfd487404fb61986e3030d96cb33866755d",
      "parents": [
        "ce7e010aef63dc6b37a2354f7c9f5f4aedb37978"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 08 13:43:33 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 08 13:43:33 2010 -0500"
      },
      "message": "ext4: handle writeback of inodes which are being freed\n\nThe following BUG can occur when an inode which is getting freed when\nit still has dirty pages outstanding, and it gets deleted (in this\nbecause it was the target of a rename).  In ordered mode, we need to\nmake sure the data pages are written just in case we crash before the\nrename (or unlink) is committed.  If the inode is being freed then\nwhen we try to igrab the inode, we end up tripping the BUG_ON at\nfs/ext4/page-io.c:146.\n\nTo solve this problem, we need to keep track of the number of io\ncallbacks which are pending, and avoid destroying the inode until they\nhave all been completed.  That way we don\u0027t have to bump the inode\ncount to keep the inode from being destroyed; an approach which\ndoesn\u0027t work because the count could have already been dropped down to\nzero before the inode writeback has started (at which point we\u0027re not\nallowed to bump the count back up to 1, since it\u0027s already started\ngetting freed).\n\nThanks to Dave Chinner for suggesting this approach, which is also\nused by XFS.\n\n  kernel BUG at /scratch_space/linux-2.6/fs/ext4/page-io.c:146!\n  Call Trace:\n   [\u003cffffffff811075b1\u003e] ext4_bio_write_page+0x172/0x307\n   [\u003cffffffff811033a7\u003e] mpage_da_submit_io+0x2f9/0x37b\n   [\u003cffffffff811068d7\u003e] mpage_da_map_and_submit+0x2cc/0x2e2\n   [\u003cffffffff811069b3\u003e] mpage_add_bh_to_extent+0xc6/0xd5\n   [\u003cffffffff81106c66\u003e] write_cache_pages_da+0x2a4/0x3ac\n   [\u003cffffffff81107044\u003e] ext4_da_writepages+0x2d6/0x44d\n   [\u003cffffffff81087910\u003e] do_writepages+0x1c/0x25\n   [\u003cffffffff810810a4\u003e] __filemap_fdatawrite_range+0x4b/0x4d\n   [\u003cffffffff810815f5\u003e] filemap_fdatawrite_range+0xe/0x10\n   [\u003cffffffff81122a2e\u003e] jbd2_journal_begin_ordered_truncate+0x7b/0xa2\n   [\u003cffffffff8110615d\u003e] ext4_evict_inode+0x57/0x24c\n   [\u003cffffffff810c14a3\u003e] evict+0x22/0x92\n   [\u003cffffffff810c1a3d\u003e] iput+0x212/0x249\n   [\u003cffffffff810bdf16\u003e] dentry_iput+0xa1/0xb9\n   [\u003cffffffff810bdf6b\u003e] d_kill+0x3d/0x5d\n   [\u003cffffffff810be613\u003e] dput+0x13a/0x147\n   [\u003cffffffff810b990d\u003e] sys_renameat+0x1b5/0x258\n   [\u003cffffffff81145f71\u003e] ? _atomic_dec_and_lock+0x2d/0x4c\n   [\u003cffffffff810b2950\u003e] ? cp_new_stat+0xde/0xea\n   [\u003cffffffff810b29c1\u003e] ? sys_newlstat+0x2d/0x38\n   [\u003cffffffff810b99c6\u003e] sys_rename+0x16/0x18\n   [\u003cffffffff81002a2b\u003e] system_call_fastpath+0x16/0x1b\n\nReported-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\n"
    },
    {
      "commit": "ce7e010aef63dc6b37a2354f7c9f5f4aedb37978",
      "tree": "458ee0c4887e989522e62701350edf9571dfce48",
      "parents": [
        "b2c78cd09b6ef78c8f20190f0b3e6df1d3651b70"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 03 12:03:21 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 03 12:03:21 2010 -0400"
      },
      "message": "ext4: initialize the percpu counters before replaying the journal\n\nWe now initialize the percpu counters before replaying the journal,\nbut after the journal, we recalculate the global counters, to deal\nwith the possibility of the per-blockgroup counts getting updated by\nthe journal replay.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b2c78cd09b6ef78c8f20190f0b3e6df1d3651b70",
      "tree": "d137e42bb765f5ea2b9bf9692ab7f965422447ec",
      "parents": [
        "f4245bd4ebf903541ba758ad06c118626d8c6f18"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 02 14:19:30 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 02 14:19:30 2010 -0400"
      },
      "message": "ext4: \"ret\" may be used uninitialized in ext4_lazyinit_thread()\n\nNewer GCC\u0027s reported the following build warning:\n\n   fs/ext4/super.c: In function \u0027ext4_lazyinit_thread\u0027:\n   fs/ext4/super.c:2702: warning: \u0027ret\u0027 may be used uninitialized in this function\n\nFix it by removing the need for the ret variable in the first place.\n\nSigned-off-by: \"Lukas Czerner\" \u003clczerner@redhat.com\u003e\nReported-by: \"Stefan Richter\" \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f4245bd4ebf903541ba758ad06c118626d8c6f18",
      "tree": "a599839d8d3ed672d147036b885d4fec548adf65",
      "parents": [
        "c8ddb2713c624f432fa5fe3c7ecffcdda46ea0d4"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue Nov 02 14:07:17 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Nov 02 14:07:17 2010 -0400"
      },
      "message": "ext4: fix lazyinit hang after removing request\n\nWhen the request has been removed from the list and no other request\nhas been issued, we will end up with next wakeup scheduled to\nMAX_JIFFY_OFFSET which is bad. So check for that.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "152a08366671080f27b32e0c411ad620c5f88b57",
      "tree": "d13d16028f74839c678bce355ba8aac75d939fa8",
      "parents": [
        "c96e41e92b4aaf11e1f9775ecf0d1c8cbff829ed"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 00:46:55 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:13 2010 -0400"
      },
      "message": "new helper: mount_bdev()\n\n... and switch of the obvious get_sb_bdev() users to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a107e5a3a473a2ea62bd5af24e11b84adf1486ff",
      "tree": "d36c2cb38d8be88d4d75cdebc354aa140aa0e470",
      "parents": [
        "e3e1288e86a07cdeb0aee5860a2dff111c6eff79",
        "a269029d0e2192046be4c07ed78a45022469ee4c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 23:44:47 2010 -0400"
      },
      "message": "Merge branch \u0027next\u0027 into upstream-merge\n\nConflicts:\n\tfs/ext4/inode.c\n\tfs/ext4/mballoc.c\n\tinclude/trace/events/ext4.h\n"
    },
    {
      "commit": "beed5ecbaa377fa8bb6a54a6608e8725a21efdbc",
      "tree": "c8e76b2af5f0ccdc64d53907238947540de7d182",
      "parents": [
        "a6371b636f9f007ee5c90f85de048bc1b675424a"
      ],
      "author": {
        "name": "Nicolas Kaiser",
        "email": "nikai@nikai.net",
        "time": "Wed Oct 27 22:08:42 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 22:08:42 2010 -0400"
      },
      "message": "ext4: fix unbalanced mutex unlock in error path of ext4_li_request_new\n\nSigned-off-by: Nicolas Kaiser \u003cnikai@nikai.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1f109d5a17b438c4a54cbf6fd87a249e3d72fb21",
      "tree": "f58c6fd431975bf900b502b80122e175065da657",
      "parents": [
        "5dabfc78dcedbe46cb2e4872dde448de3cec2979"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "message": "ext4: make various ext4 functions be static\n\nThese functions have no need to be exported beyond file context.\n\nNo functions needed to be moved for this commit; just some function\ndeclarations changed to be static and removed from header files.\n\n(A similar patch was submitted by Eric Sandeen, but I wanted to handle\ncode movement in separate patches to make sure code changes didn\u0027t\naccidentally get dropped.)\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5dabfc78dcedbe46cb2e4872dde448de3cec2979",
      "tree": "804ef3e76289978ef6690c2b8f379a14a60b15f0",
      "parents": [
        "7f93cff90fa9be6ed45f6189e136153d1d8631b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:14 2010 -0400"
      },
      "message": "ext4: rename {exit,init}_ext4_*() to ext4_{exit,init}_*()\n\nThis is a cleanup to avoid namespace leaks out of fs/ext4\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7f93cff90fa9be6ed45f6189e136153d1d8631b0",
      "tree": "e48cbf01bc646e63df2fea10a2208015e028b95b",
      "parents": [
        "72f84e6560d18d60a091df27edf81409be6641cb"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:13 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:13 2010 -0400"
      },
      "message": "ext4: fix kernel oops if the journal superblock has a non-zero j_errno\n\nCommit 84061e0 fixed an accounting bug only to introduce the\npossibility of a kernel OOPS if the journal has a non-zero j_errno\nfield indicating that the file system had detected a fs inconsistency.\nAfter the journal replay, if the journal superblock indicates that the\nfile system has an error, this indication is transfered to the file\nsystem and then ext4_commit_super() is called to write this to the\ndisk.\n\nBut since the percpu counters are now initialized after the journal\nreplay, the call to ext4_commit_super() will cause a kernel oops since\nit needs to use the percpu counters the ext4 superblock structure.\n\nThe fix is to skip setting the ext4 free block and free inode fields\nif the percpu counter has not been set.\n\nThanks to Ken Sumrall for reporting and analyzing the root causes of\nthis bug.\n\nAddresses-Google-Bug: #3054080\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "27ee40df2b17c84aa7855907df12befe6869b7a7",
      "tree": "9ff6c98b2e2a715234b9a9ebd91232fd7ca7f558",
      "parents": [
        "7360d1731e5dc78aec867e65e55f9fb58782b5fe"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "message": "ext4: add batched_discard into ext4 feature list\n\nShould be applied on the top of \"lazy inode table initialization\"\nand \"batched discard support\" patch-sets.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7360d1731e5dc78aec867e65e55f9fb58782b5fe",
      "tree": "2cc0d139ec129c19150ef481d6adb9b0fd947c89",
      "parents": [
        "367a51a339020ba4d9edb0ce0f21d65bd50b00c9"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:12 2010 -0400"
      },
      "message": "ext4: Add batched discard support for ext4\n\nWalk through allocation groups and trim all free extents. It can be\ninvoked through FITRIM ioctl on the file system. The main idea is to\nprovide a way to trim the whole file system if needed, since some SSD\u0027s\nmay suffer from performance loss after the whole device was filled (it\ndoes not mean that fs is full!).\n\nIt search for free extents in allocation groups specified by Byte range\nstart -\u003e start+len. When the free extent is within this range, blocks\nare marked as used and then trimmed. Afterwards these blocks are marked\nas free in per-group bitmap.\n\nSince fstrim is a long operation it is good to have an ability to\ninterrupt it by a signal. This was added by Dmitry Monakhov.\nThanks Dimitry.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bd2d0210cf22f2bd0cef72eb97cf94fc7d31d8cc",
      "tree": "f0d1902b7ff4294114614cc706855c3d6b131f73",
      "parents": [
        "1de3e3df917459422cb2aecac440febc8879d410"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:10 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:10 2010 -0400"
      },
      "message": "ext4: use bio layer instead of buffer layer in mpage_da_submit_io\n\nCall the block I/O layer directly instad of going through the buffer\nlayer.  This should give us much better performance and scalability,\nas well as lowering our CPU utilization when doing buffered writeback.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "c41303ced67c4ebf51bf2e7d0f139155e09e0939",
      "tree": "6593e7d580d48c2229df94bac0412654a1a7f76e",
      "parents": [
        "2407518de63a2f80d9b850fb525f35df93bbbe53"
      ],
      "author": {
        "name": "Maciej Żenczykowski",
        "email": "zenczykowski@gmail.com",
        "time": "Wed Oct 27 21:30:06 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:06 2010 -0400"
      },
      "message": "ext4: don\u0027t update sb journal_devnum when RO dev\n\nAn ext4 filesystem on a read-only device, with an external journal\nwhich is at a different device number then recorded in the superblock\nwill fail to honor the read-only setting of the device and trigger\na superblock update (write).\n\nFor example:\n  - ext4 on a software raid which is in read-only mode\n  - external journal on a read-write device which has changed device num\n  - attempt to mount with -o journal_dev\u003d\u003cnew_number\u003e\n  - hits BUG_ON(mddev-\u003ero \u003d 1) in md.c\n\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Maciej Żenczykowski \u003czenczykowski@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "857ac889cce8a486d47874db4d2f9620e7e9e5de",
      "tree": "12401895197d819fcbf2335244d91259f4640aa2",
      "parents": [
        "bfff68738f1cb5c93dab1114634cea02aae9e7ba"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "message": "ext4: add interface to advertise ext4 features in sysfs\n\nUser-space should have the opportunity to check what features doest ext4\nsupport in each particular copy. This adds easy interface by creating new\n\"features\" directory in sys/fs/ext4/. In that directory files\nadvertising feature names can be created.\n\nAdd lazy_itable_init to the feature list.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bfff68738f1cb5c93dab1114634cea02aae9e7ba",
      "tree": "b6cdf3f26e86464c7088cab62d837eb32f559fb9",
      "parents": [
        "e6fa0be699449d28a20e815bfe9ce26725ec4962"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:05 2010 -0400"
      },
      "message": "ext4: add support for lazy inode table initialization\n\nWhen the lazy_itable_init extended option is passed to mke2fs, it\nconsiderably speeds up filesystem creation because inode tables are\nnot zeroed out.  The fact that parts of the inode table are\nuninitialized is not a problem so long as the block group descriptors,\nwhich contain information regarding how much of the inode table has\nbeen initialized, has not been corrupted However, if the block group\nchecksums are not valid, e2fsck must scan the entire inode table, and\nthe the old, uninitialized data could potentially cause e2fsck to\nreport false problems.\n\nHence, it is important for the inode tables to be initialized as soon\nas possble.  This commit adds this feature so that mke2fs can safely\nuse the lazy inode table initialization feature to speed up formatting\nfile systems.\n\nThis is done via a new new kernel thread called ext4lazyinit, which is\ncreated on demand and destroyed, when it is no longer needed.  There\nis only one thread for all ext4 filesystems in the system. When the\nfirst filesystem with inititable mount option is mounted, ext4lazyinit\nthread is created, then the filesystem can register its request in the\nrequest list.\n\nThis thread then walks through the list of requests picking up\nscheduled requests and invoking ext4_init_inode_table(). Next schedule\ntime for the request is computed by multiplying the time it took to\nzero out last inode table with wait multiplier, which can be set with\nthe (init_itable\u003dn) mount option (default is 10).  We are doing\nthis so we do not take the whole I/O bandwidth. When the thread is no\nlonger necessary (request list is empty) it frees the appropriate\nstructures and exits (and can be created later later by another\nfilesystem).\n\nWe do not disturb regular inode allocations in any way, it just do not\ncare whether the inode table is, or is not zeroed. But when zeroing, we\nhave to skip used inodes, obviously. Also we should prevent new inode\nallocations from the group, while zeroing is on the way. For that we\ntake write alloc_sem lock in ext4_init_inode_table() and read alloc_sem\nin the ext4_claim_inode, so when we are unlucky and allocator hits the\ngroup which is currently being zeroed, it just has to wait.\n\nThis can be suppresed using the mount option no_init_itable.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a1c6c5698d53db4c47a25c3a8d11731a4d7b8370",
      "tree": "4c0b46a74ea1699f8a5e2765a432fec35fb38bcb",
      "parents": [
        "53fdcf992d616484d388a8ab9dad07dc8b8f1178"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:04 2010 -0400"
      },
      "message": "ext4: fix NULL pointer dereference in print_daily_error_info()\n\nFix NULL pointer dereference in print_daily_error_info, when   \ncalled on unmounted fs (EXT4_SB(sb) returns NULL), by removing error \nreporting timer in ext4_put_super.\n\nGoogle-Bug-Id: 3017663\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
      "tree": "3bb53b7806c1baba6cc24b91724a9264cceccd39",
      "parents": [
        "c37927d4359e81b85de644f8fb08878717cf5f3f",
        "6d7bccc2215c37205ede6c9cf84db64e7c4f9443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "message": "Merge branch \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: (30 commits)\n  BKL: remove BKL from freevxfs\n  BKL: remove BKL from qnx4\n  autofs4: Only declare function when CONFIG_COMPAT is defined\n  autofs: Only declare function when CONFIG_COMPAT is defined\n  ncpfs: Lock socket in ncpfs while setting its callbacks\n  fs/locks.c: prepare for BKL removal\n  BKL: Remove BKL from ncpfs\n  BKL: Remove BKL from OCFS2\n  BKL: Remove BKL from squashfs\n  BKL: Remove BKL from jffs2\n  BKL: Remove BKL from ecryptfs\n  BKL: Remove BKL from afs\n  BKL: Remove BKL from USB gadgetfs\n  BKL: Remove BKL from autofs4\n  BKL: Remove BKL from isofs\n  BKL: Remove BKL from fat\n  BKL: Remove BKL from ext2 filesystem\n  BKL: Remove BKL from do_new_mount()\n  BKL: Remove BKL from cgroup\n  BKL: Remove BKL from NTFS\n  ...\n"
    },
    {
      "commit": "f2143c4e2ebc6be3f07b7c7527dae7313fde23e1",
      "tree": "5911d66d2c443d66e20639f0ff9f6c4830384245",
      "parents": [
        "77b54a46a83232d172d55013c3af838190615260"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@infradead.org",
        "time": "Wed Feb 24 13:25:30 2010 +0100"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:38 2010 +0200"
      },
      "message": "BKL: Remove BKL from ext4 filesystem\n\nThe BKL is still used in ext4_put_super(), ext4_fill_super() and\next4_remount(). All three calles are protected against concurrent calls by\nthe s_umount rw semaphore of struct super_block.\n\nTherefore the BKL is protecting nothing in this case.\n\nSigned-off-by: Jan Blunck \u003cjblunck@infradead.org\u003e\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\n"
    },
    {
      "commit": "db71922217a214e5c9268448e537b54fc1f301ea",
      "tree": "9c9afbf29411547891f6968e5ade29ce59d66c07",
      "parents": [
        "899611ee7d373e5eeda08e9a8632684e1ebbbf00"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@infradead.org",
        "time": "Sun Aug 15 22:51:10 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:10 2010 +0200"
      },
      "message": "BKL: Explicitly add BKL around get_sb/fill_super\n\nThis patch is a preparation necessary to remove the BKL from do_new_mount().\nIt explicitly adds calls to lock_kernel()/unlock_kernel() around\nget_sb/fill_super operations for filesystems that still uses the BKL.\n\nI\u0027ve read through all the code formerly covered by the BKL inside\ndo_kern_mount() and have satisfied myself that it doesn\u0027t need the BKL\nany more.\n\ndo_kern_mount() is already called without the BKL when mounting the rootfs\nand in nfsctl. do_kern_mount() calls vfs_kern_mount(), which is called\nfrom various places without BKL: simple_pin_fs(), nfs_do_clone_mount()\nthrough nfs_follow_mountpoint(), afs_mntpt_do_automount() through\nafs_mntpt_follow_link(). Both later functions are actually the filesystems\nfollow_link inode operation. vfs_kern_mount() is calling the specified\nget_sb function and lets the filesystem do its job by calling the given\nfill_super function.\n\nTherefore I think it is safe to push down the BKL from the VFS to the\nlow-level filesystems get_sb/fill_super operation.\n\n[arnd: do not add the BKL to those file systems that already\n       don\u0027t use it elsewhere]\n\nSigned-off-by: Jan Blunck \u003cjblunck@infradead.org\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "30ca22c70e3ef0a96ff84de69cd7e8561b416cb2",
      "tree": "0da339bf657ae19a39baf3c4d31ebfb0ae6c09ce",
      "parents": [
        "729963a1ff8d069d05dab6a024bfd59805ac622c"
      ],
      "author": {
        "name": "Patrick J. LoPresti",
        "email": "lopresti@gmail.com",
        "time": "Thu Jul 22 15:03:41 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 10 08:41:42 2010 -0700"
      },
      "message": "ext3/ext4: Factor out disk addressability check\n\nAs part of adding support for OCFS2 to mount huge volumes, we need to\ncheck that the sector_t and page cache of the system are capable of\naddressing the entire volume.\n\nAn identical check already appears in ext3 and ext4.  This patch moves\nthe addressability check into its own function in fs/libfs.c and\nmodifies ext3 and ext4 to invoke it.\n\n[Edited to -EINVAL instead of BUG_ON() for bad blocksize_bits -- Joel]\n\nSigned-off-by: Patrick LoPresti \u003clopresti@gmail.com\u003e\nCc: linux-ext4@vger.kernel.org\nAcked-by: Andreas Dilger \u003cadilger@dilger.ca\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "0930fcc1ee2f0a810b938bc283a3a262d7adccbb",
      "tree": "5e5d10894f1e31a7aede75110b43d7a41347631d",
      "parents": [
        "7da08fd17a6e42d80f0f3897a5cbd682e77bcdb4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 07 13:16:22 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:30 2010 -0400"
      },
      "message": "convert ext4 to -\u003eevict_inode()\n\npretty much brute-force...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "09dc942c2a767e2d298f1cc9294bc19c7d7208c5",
      "tree": "d310c118467c90c264e953bdc320ae08394c662a",
      "parents": [
        "90e0c225968f0878e090c7ff3f88323973476cee",
        "6c7a120ac6c62316ab1fc78dfc0a7b13f3bfcbff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)\n  ext4: Adding error check after calling ext4_mb_regular_allocator()\n  ext4: Fix dirtying of journalled buffers in data\u003djournal mode\n  ext4: re-inline ext4_rec_len_(to|from)_disk functions\n  jbd2: Remove t_handle_lock from start_this_handle()\n  jbd2: Change j_state_lock to be a rwlock_t\n  jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop\n  ext4: Add mount options in superblock\n  ext4: force block allocation on quota_off\n  ext4: fix freeze deadlock under IO\n  ext4: drop inode from orphan list if ext4_delete_inode() fails\n  ext4: check to make make sure bd_dev is set before dereferencing it\n  jbd2: Make barrier messages less scary\n  ext4: don\u0027t print scary messages for allocation failures post-abort\n  ext4: fix EFBIG edge case when writing to large non-extent file\n  ext4: fix ext4_get_blocks references\n  ext4: Always journal quota file modifications\n  ext4: Fix potential memory leak in ext4_fill_super\n  ext4: Don\u0027t error out the fs if the user tries to make a file too big\n  ext4: allocate stripe-multiple IOs on stripe boundaries\n  ext4: move aio completion after unwritten extent conversion\n  ...\n\nFix up conflicts in fs/ext4/inode.c as per Ted.\n\nFix up xfs conflicts as per earlier xfs merge.\n"
    },
    {
      "commit": "a931da6ac9331a6c80dd91c199105806f2336188",
      "tree": "2d4ea766def9a98d21c2379f41e796b0e57ccd6b",
      "parents": [
        "a51dca9cd3bb4ec5a05bfb6feabf024a5c808a37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:35:12 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 03 21:35:12 2010 -0400"
      },
      "message": "jbd2: Change j_state_lock to be a rwlock_t\n\nLockstat reports have shown that j_state_lock is a major source of\nlock contention, especially on systems with more than 4 CPU cores.  So\nchange it to be a read/write spinlock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8b67f04ab9de5d8f3a71aef72bf02c995a506db5",
      "tree": "dd05968730762f5b18de4c6b0720843669e4e9db",
      "parents": [
        "ca0e05e4b15193aeba72b995e90de990db7f8304"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Aug 01 23:14:20 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Aug 01 23:14:20 2010 -0400"
      },
      "message": "ext4: Add mount options in superblock\n\nAllow mount options to be stored in the superblock.  Also add default\nmount option bits for nobarrier, block_validity, discard, and nodelalloc.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ca0e05e4b15193aeba72b995e90de990db7f8304",
      "tree": "85320333eb1832221225711a4b7bc0f970981c79",
      "parents": [
        "437f88cc031ffe7f37f3e705367f4fe1f4be8b0f"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun Aug 01 17:48:36 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Aug 01 17:48:36 2010 -0400"
      },
      "message": "ext4: force block allocation on quota_off\n\nPerform full sync procedure so that any delayed allocation blocks are\nallocated so quota will be consistent.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "437f88cc031ffe7f37f3e705367f4fe1f4be8b0f",
      "tree": "0b3ab55db25c0ac8695b27858013388ff4bcc8a9",
      "parents": [
        "4538821993f4486c76090dfb377c60c0a0e71ba3"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@sandeen.net",
        "time": "Sun Aug 01 17:33:29 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Aug 01 17:33:29 2010 -0400"
      },
      "message": "ext4: fix freeze deadlock under IO\n\nCommit 6b0310fbf087ad6 caused a regression resulting in deadlocks\nwhen freezing a filesystem which had active IO; the vfs_check_frozen\nlevel (SB_FREEZE_WRITE) did not let the freeze-related IO syncing\nthrough.  Duh.\n\nChanging the test to FREEZE_TRANS should let the normal freeze\nsyncing get through the fs, but still block any transactions from\nstarting once the fs is completely frozen.\n\nI tested this by running fsstress in the background while periodically\nsnapshotting the fs and running fsck on the result.  I ran into\noccasional deadlocks, but different ones.  I think this is a\nfine fix for the problem at hand, and the other deadlocky things\nwill need more investigation.\n\nReported-by: Phillip Susi \u003cpsusi@cfl.rr.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f613dfcb3345dacb8cf99b7bb359acc1c18a1157",
      "tree": "a2e437f59acbd87d0d2a63c7bd20b016a844f5cb",
      "parents": [
        "cc937db74bd5fe75f4cfebbfc4a04c1da10f0695"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:08 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:08 2010 -0400"
      },
      "message": "ext4: check to make make sure bd_dev is set before dereferencing it\n\nThere are some drivers which may not set bdev-\u003ebd_dev.  So make sure\nit is non-NULL before dereferencing it.\n\nGoogle-Bug-Id: 1773557\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "62d2b5f2dcd3707b070efb16bbfdf6947c38c194",
      "tree": "4e721db0ab4893f6d619d20d10c1a635da079700",
      "parents": [
        "dcc7dae3cb21184a317f10a12250bd8d6f458077"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jul 27 11:56:07 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:07 2010 -0400"
      },
      "message": "ext4: Always journal quota file modifications\n\nWhen journaled quota options are not specified, we do writes\nto quota files just in data\u003dordered mode. This actually causes\nwarnings from JBD2 about dirty journaled buffer because ext4_getblk\nunconditionally treats a block allocated by it as metadata. Since\nquota actually is filesystem metadata, the easiest way to get rid\nof the warning is to always treat quota writes as metadata...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dcc7dae3cb21184a317f10a12250bd8d6f458077",
      "tree": "1f40c22059a9ccbb0ef3ea6fde0e015290db2765",
      "parents": [
        "0c095c7f113e9fd05913d6e1b2cccbe356be039e"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Jul 27 11:56:07 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:07 2010 -0400"
      },
      "message": "ext4: Fix potential memory leak in ext4_fill_super\n\nUnder heavy memory pressure we may hit out of memory\nsituation and as result kstrdup\u0027ed options will not be\nfreed. Fix it.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "66e61a9e9504f61b9a928c9055368c81da613a50",
      "tree": "afcd8147b4e4771103f75f5a03b836950882dece",
      "parents": [
        "1c13d5c0872870cca3e612aa045d492ead9ab004"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:04 2010 -0400"
      },
      "message": "ext4: Once a day, printk file system error information to dmesg\n\nThis allows us to grab any file system error messages by scraping\n/var/log/messages.  This will make it easy for us to do error analysis\nacross the very large number of machines as we deploy ext4 across the\nfleet.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1c13d5c0872870cca3e612aa045d492ead9ab004",
      "tree": "6e3dd0d3f49ff56dda9fc6cd72c233759bc24e09",
      "parents": [
        "c398eda0e43a791be0fca6f197a1e2bbb9f16070"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:03 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:03 2010 -0400"
      },
      "message": "ext4: Save error information to the superblock for analysis\n\nSave number of file system errors, and the time function name, line\nnumber, block number, and inode number of the first and most recent\nerrors reported on the file system in the superblock.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c398eda0e43a791be0fca6f197a1e2bbb9f16070",
      "tree": "d7b2b95490f96a75e116a3aa13c17767aa630342",
      "parents": [
        "60fd4da34d55a9cc0d857fc76dc12cf8cab4ed02"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:40 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jul 27 11:56:40 2010 -0400"
      },
      "message": "ext4: Pass line numbers to ext4_error() and friends\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "90c7201b97bb7ac5a4e2605abc0efb5fdfb957f0",
      "tree": "76eb6c66e45ae325d6c394b0534289da692fd2af",
      "parents": [
        "e29136f80e775b0310273932b4297a62f5574a29"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 29 14:53:24 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 29 14:53:24 2010 -0400"
      },
      "message": "ext4: Pass line number to ext4_journal_abort_handle()\n\nThis allows the error messages to include the line number\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e29136f80e775b0310273932b4297a62f5574a29",
      "tree": "d10d56b15b7968744ea0becdf61440aae7e609c5",
      "parents": [
        "c67d859e39896e4286249da89c4ca0ef8bd949cb"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 29 12:54:28 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 29 12:54:28 2010 -0400"
      },
      "message": "ext4: Enhance ext4_grp_locked_error() to take block and function numbers\n\nAlso use a macro definition so that __func__ and __LINE__ is implicit.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c67d859e39896e4286249da89c4ca0ef8bd949cb",
      "tree": "e483a8e61fe876506d8ed819fbfe29eac6c493a7",
      "parents": [
        "4a9cdec73f79b2858e9ecf0b6cfac7f6b200bf3a"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 29 11:07:07 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 29 11:07:07 2010 -0400"
      },
      "message": "ext4: clean up ext4_abort() so __func__ is now implicit\n\nUse a macro definition for ext4_abort() to clean up the .c files a wee\nbit.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f1bbbb6912662b9f6070c5bfc4ca9eb1f06a9d5b",
      "tree": "c2c130a74be25b0b2dff992e1a195e2728bdaadd",
      "parents": [
        "fd0961ff67727482bb20ca7e8ea97b83e9de2ddb",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "421f91d21ad6f799dc7b489bb33cc560ccc56f98",
      "tree": "aaf9f6385233fdf9277e634603156c89ede7f770",
      "parents": [
        "65155b3708137fabee865dc4da822763c0c41208"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Jun 11 12:17:00 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:05:05 2010 +0200"
      },
      "message": "fix typos concerning \"initiali[zs]e\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "206f7ab4f49a2021fcb8687f25395be77711ddee",
      "tree": "19764d36a25ec1e088d32572a1c0936eeaf19636",
      "parents": [
        "5a0790c2c4a18435759a70e1562450035d778339"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 14 14:42:49 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jun 14 14:42:49 2010 -0400"
      },
      "message": "ext4: remove vestiges of nobh support\n\nThe nobh option was only supported for writeback mode, but given that all\nwrite paths actually create buffer heads it effectively was a no-op already.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d28619f1563140526e2f84eae436f39206f40a69",
      "tree": "d93284016a0983c8f27b745a3c50738617e50995",
      "parents": [
        "021fad8b706849c091f6e682bc5df3ce4f9ab4d7",
        "f32764bd2bbb6ea003c158b1d276b4dc9f900348"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:11:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:11:11 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  quota: Convert quota statistics to generic percpu_counter\n  ext3 uses rb_node \u003d NULL; to zero rb_root.\n  quota: Fixup dquot_transfer\n  reiserfs: Fix resuming of quotas on remount read-write\n  pohmelfs: Remove dead quota code\n  ufs: Remove dead quota code\n  udf: Remove dead quota code\n  quota: rename default quotactl methods to dquot_\n  quota: explicitly set -\u003edq_op and -\u003es_qcop\n  quota: drop remount argument to -\u003equota_on and -\u003equota_off\n  quota: move unmount handling into the filesystem\n  quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers\n  quota: move remount handling into the filesystem\n  ocfs2: Fix use after free on remount read-only\n\nFix up conflicts in fs/ext4/super.c and fs/ufs/file.c\n"
    },
    {
      "commit": "287a80958cf63fc5c68d5bf6e89a3669dd66234a",
      "tree": "8e6883881709ffbbe3b1d6cb7a5b4dcef3428380",
      "parents": [
        "123e9caf1e85008ab7eb5f6cd58c44f9a5d73b2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:45 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:10:17 2010 +0200"
      },
      "message": "quota: rename default quotactl methods to dquot_\n\nFollow the dquot_* style used elsewhere in dquot.c.\n\n[Jan Kara: Fixed up missing conversion of ext2]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "307ae18a56e5b706056a2050d52e8cc01b5171c0",
      "tree": "c4efc57bb8f0fd1d2aa9e416d81c0c7ba87aaf22",
      "parents": [
        "e0ccfd959cd8907bcb66cc2042e0f4fd7fcbff2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:43 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:09:12 2010 +0200"
      },
      "message": "quota: drop remount argument to -\u003equota_on and -\u003equota_off\n\nRemount handling has fully moved into the filesystem, so all this is\nsuperflous now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e0ccfd959cd8907bcb66cc2042e0f4fd7fcbff2b",
      "tree": "a62a84034243e75e07bb063526e10ea0b837062f",
      "parents": [
        "0f0dd62fddcbd0f6830ed8ef3d3426ccc46b9250"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:42 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:09:12 2010 +0200"
      },
      "message": "quota: move unmount handling into the filesystem\n\nCurrently the VFS calls into the quotactl interface for unmounting\nfilesystems.  This means filesystems with their own quota handling\ncan\u0027t easily distinguish between user-space originating quotaoff\nand an unount.  Instead move the responsibily of the unmount handling\ninto the filesystem to be consistent with all other dquot handling.\n\nNote that we do call dquot_disable a lot later now, e.g. after\na sync_filesystem.  But this is fine as the quota code does all its\nwrites via blockdev\u0027s mapping and that is synced even later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0f0dd62fddcbd0f6830ed8ef3d3426ccc46b9250",
      "tree": "295ac31b109f78873cb191867603943d8562ead0",
      "parents": [
        "c79d967de3741ceb60c5bbbf1b6f97eab9a89838"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:41 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:06:40 2010 +0200"
      },
      "message": "quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers\n\nInstead of having wrappers in the VFS namespace export the dquot_suspend\nand dquot_resume helpers directly.  Also rename vfs_quota_disable to\ndquot_disable while we\u0027re at it.\n\n[Jan Kara: Moved dquot_suspend to quotaops.h and made it inline]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c79d967de3741ceb60c5bbbf1b6f97eab9a89838",
      "tree": "5494e7b504cffb0ddc6942d1542c2b4a472207ed",
      "parents": [
        "eea7feb072f5914ecafa95b3d83be0c229244d90"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:40 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:06:39 2010 +0200"
      },
      "message": "quota: move remount handling into the filesystem\n\nCurrently do_remount_sb calls into the dquot code to tell it about going\nfrom rw to ro and ro to rw.  Move this code into the filesystem to\nnot depend on the dquot code in the VFS - note ocfs2 already ignores\nthese calls and handles remount by itself.  This gets rid of overloading\nthe quotactl calls and allows to unify the VFS and XFS codepaths in\nthat area later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "60e6679e28518ccd67169c4a539d8cc7490eb8a6",
      "tree": "65f39d1e9da3006df5bc5532d0c8a7ec365599f0",
      "parents": [
        "4d92dc0f00a775dc2e1267b0e00befb783902fe7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 07:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 07:00:00 2010 -0400"
      },
      "message": "ext4: Drop whitespace at end of lines\n\nThis patch was generated using:\n\n#!/usr/bin/perl -i\nwhile (\u003c\u003e) {\n    s/[ \t]+$//;\n    print;\n}\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "12e9b892002d9af057655d35b44db8ee9243b0dc",
      "tree": "c5831b4bcf98eebdd39158d08dab97c198f5c683",
      "parents": [
        "24676da469f50f433baa347845639662c561d1f6"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 22:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 22:00:00 2010 -0400"
      },
      "message": "ext4: Use bitops to read/modify i_flags in struct ext4_inode_info\n\nAt several places we modify EXT4_I(inode)-\u003ei_flags without holding\ni_mutex (ext4_do_update_inode, ...). These modifications are racy and\nwe can lose updates to i_flags. So convert handling of i_flags to use\nbitops which are atomic.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d15792\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39a4bade8c1826b658316d66ee81c09b0a4d7d42",
      "tree": "3f61798e2e0b7b8ba74b4257ff207eb31166762e",
      "parents": [
        "291dae472a8976ff461f24c848fee2a03f9ea3c8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 16 17:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 17:00:00 2010 -0400"
      },
      "message": "ext4: Show journal_checksum option\n\nWe failed to show journal_checksum option in /proc/mounts. Fix it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fbe845ddf368f77f86aa7500f8fd2690f54c66a8",
      "tree": "81e62af0c35794a4c0a2802d0528cacb43f2b4de",
      "parents": [
        "d4c402d9fd97a54bb7ed89f9e9869897eb4f6e1f"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun May 16 13:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 13:00:00 2010 -0400"
      },
      "message": "ext4: Remove extraneous newlines in ext4_msg() calls\n\nAddresses-Google-Bug: #2562325\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d4c402d9fd97a54bb7ed89f9e9869897eb4f6e1f",
      "tree": "6469b5d8aa9e18db0d689f79ab8e40ae5ff3064d",
      "parents": [
        "72b8ab9dde211ea518ff27e631b2046ef90c29a2"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun May 16 12:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 12:00:00 2010 -0400"
      },
      "message": "ext4: Print mount options in when mounting and add a remount message\n\nThis adds a \"re-mounted\" message to ext4_remount(), and both it and\nthe mount message in ext4_fill_super() now have the original mount\noptions data string.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "84061e07c5fbbbf9dc8aef8fb750fc3a2dfc31f3",
      "tree": "91f3e08999ea72b51b246c521ffc31d2c55eea90",
      "parents": [
        "d17413c08cd2b1dd2bf2cfdbb0f7b736b2b2b15c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 08:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 08:00:00 2010 -0400"
      },
      "message": "ext4: init statistics after journal recovery\n\nCurrently block/inode/dir counters initialized before journal was\nrecovered. In fact after journal recovery this info will probably\nchange. And freeblocks it critical for correct delalloc mode\naccounting.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d15768\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6b0310fbf087ad6e9e3b8392adca97cd77184084",
      "tree": "6c15fad6ca442d92e8075578a9b04811ca093bda",
      "parents": [
        "256a453546f1cf2c29a639c79fe0d603761a8e25"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 02:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 02:00:00 2010 -0400"
      },
      "message": "ext4: don\u0027t return to userspace after freezing the fs with a mutex held\n\next4_freeze() used jbd2_journal_lock_updates() which takes\nthe j_barrier mutex, and then returns to userspace.  The\nkernel does not like this:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ BUG: lock held when returning to user space! ]\n------------------------------------------------\nlvcreate/1075 is leaving the kernel with locks still held!\n1 lock held by lvcreate/1075:\n #0:  (\u0026journal-\u003ej_barrier){+.+...}, at: [\u003cffffffff811c6214\u003e]\njbd2_journal_lock_updates+0xe1/0xf0\n\nUse vfs_check_frozen() added to ext4_journal_start_sb() and\next4_force_commit() instead.\n\nAddresses-Red-Hat-Bugzilla: #568503\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39f1cd635cbe8a42c3c74fa6bf9f61c1156bd27b",
      "tree": "481d09761cdc5bb63592afeefa904175336cc1ee",
      "parents": [
        "126a031e437a4ab56a162e9cff7fc04b9f7efeec",
        "c4caae25187ff3f5e837c6f04eb1acc2723c72d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 25 14:10:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 25 14:10:53 2010 -0700"
      },
      "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: Fixed inode allocator to correctly track a flex_bg\u0027s used_dirs\n  ext4: Don\u0027t use delayed allocation by default when used instead of ext3\n  ext4: Fix spelling of CONTIG_FS_EXT3 to CONFIG_FS_EXT3\n  ext4: Fix estimate of # of blocks needed to write indirect-mapped files\n"
    },
    {
      "commit": "ba69f9ab7df844125898104e854e063b47c26637",
      "tree": "d986b7fd25251f703d1f030f9eaa072b2daf55f2",
      "parents": [
        "37f328eb60a94779dd020084209fc4db2d6444a0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Mar 24 20:18:37 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 24 20:18:37 2010 -0400"
      },
      "message": "ext4: Don\u0027t use delayed allocation by default when used instead of ext3\n\nWhen ext4 driver is used to mount a filesystem instead of the ext3 file\nsystem driver (through CONFIG_EXT4_USE_FOR_EXT23), do not enable delayed\nallocation by default since some ext3 users and application writers have\ndeveloped unfortunate expectations about the safety of writing files on\nsystems subject to sudden and violent death without using fsync().\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "37f328eb60a94779dd020084209fc4db2d6444a0",
      "tree": "dce9767d5c53375b2b92deeadb5adf8a07951121",
      "parents": [
        "d330a5befb88875a9b3d2db62f9b74dadf660b13"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 24 20:06:41 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 24 20:06:41 2010 -0400"
      },
      "message": "ext4: Fix spelling of CONTIG_FS_EXT3 to CONFIG_FS_EXT3\n\nOops.  (Blush.)\n\nThanks to Sedat Dilek for pointing this out.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c32da02342b7521df25fefc2ef20aee0e61cf887",
      "tree": "7e38f664fa3e13602c357d37f77d8adcf82fccc2",
      "parents": [
        "dca1d9f6d7ae428c193f32bd3e9a4ca13176648b",
        "318ae2edc3b29216abd8a2510f3f80b764f06858"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits)\n  doc: fix typo in comment explaining rb_tree usage\n  Remove fs/ntfs/ChangeLog\n  doc: fix console doc typo\n  doc: cpuset: Update the cpuset flag file\n  Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed\n  Remove drivers/parport/ChangeLog\n  Remove drivers/char/ChangeLog\n  doc: typo - Table 1-2 should refer to \"status\", not \"statm\"\n  tree-wide: fix typos \"ass?o[sc]iac?te\" -\u003e \"associate\" in comments\n  No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h\n  devres/irq: Fix devm_irq_match comment\n  Remove reference to kthread_create_on_cpu\n  tree-wide: Assorted spelling fixes\n  tree-wide: fix \u0027lenght\u0027 typo in comments and code\n  drm/kms: fix spelling in error message\n  doc: capitalization and other minor fixes in pnp doc\n  devres: typo fix s/dev/devm/\n  Remove redundant trailing semicolons from macros\n  fix typo \"definetly\" -\u003e \"definitely\" in comment\n  tree-wide: s/widht/width/g typo in comments\n  ...\n\nFix trivial conflict in Documentation/laptops/00-INDEX\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    }
  ],
  "next": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e"
}
