)]}'
{
  "log": [
    {
      "commit": "b0dd6b70f0fda17ae9762fbb72d98e40a4f66556",
      "tree": "64b75161542ef9d74bb397b82e9cea5b60c9304b",
      "parents": [
        "f8f5701bdaf9134b1f90e5044a82c66324d2073f"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jun 07 18:56:06 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jun 07 18:56:06 2012 -0400"
      },
      "message": "ext4: fix the free blocks calculation for ext3 file systems w/ uninit_bg\n\nExt3 filesystems that are converted to use as many ext4 file system\nfeatures as possible will enable uninit_bg to speed up e2fsck times.\nThese file systems will have a native ext3 layout of inode tables and\nblock allocation bitmaps (as opposed to ext4\u0027s flex_bg layout).\nUnfortunately, in these cases, when first allocating a block in an\nuninitialized block group, ext4 would incorrectly calculate the number\nof free blocks in that block group, and then errorneously report that\nthe file system was corrupt:\n\nEXT4-fs error (device vdd): ext4_mb_generate_buddy:741: group 30, 32254 clusters in bitmap, 32258 in gd\n\nThis problem can be reproduced via:\n\n    mke2fs -q -t ext4 -O ^flex_bg /dev/vdd 5g\n    mount -t ext4 /dev/vdd /mnt\n    fallocate -l 4600m /mnt/test\n\nThe problem was caused by a bone headed mistake in the check to see if a\nparticular metadata block was part of the block group.\n\nMany thanks to Kees Cook for finding and bisecting the buggy commit\nwhich introduced this bug (commit fd034a84e1, present since v3.2).\n\nReported-by: Sander Eikelenboom \u003clinux@eikelenboom.it\u003e\nReported-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "4edebed86690eb8db9af3ab85baf4a34e73266cc",
      "tree": "8ab144b08f490f239fa62be52470860c9311664d",
      "parents": [
        "51eab603f5c86dd1eae4c525df3e7f7eeab401d6",
        "5e44f8c374dc4f8eadf61cd18b2c0d46bc87c1b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:12:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:12:15 2012 -0700"
      },
      "message": "Merge tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\nPull Ext4 updates from Theodore Ts\u0027o:\n \"The major new feature added in this update is Darrick J Wong\u0027s\n  metadata checksum feature, which adds crc32 checksums to ext4\u0027s\n  metadata fields.\n\n  There is also the usual set of cleanups and bug fixes.\"\n\n* tag \u0027ext4_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (44 commits)\n  ext4: hole-punch use truncate_pagecache_range\n  jbd2: use kmem_cache_zalloc wrapper instead of flag\n  ext4: remove mb_groups before tearing down the buddy_cache\n  ext4: add ext4_mb_unload_buddy in the error path\n  ext4: don\u0027t trash state flags in EXT4_IOC_SETFLAGS\n  ext4: let getattr report the right blocks in delalloc+bigalloc\n  ext4: add missing save_error_info() to ext4_error()\n  ext4: add debugging trigger for ext4_error()\n  ext4: protect group inode free counting with group lock\n  ext4: use consistent ssize_t type in ext4_file_write()\n  ext4: fix format flag in ext4_ext_binsearch_idx()\n  ext4: cleanup in ext4_discard_allocated_blocks()\n  ext4: return ENOMEM when mounts fail due to lack of memory\n  ext4: remove redundundant \"(char *) bh-\u003eb_data\" casts\n  ext4: disallow hard-linked directory in ext4_lookup\n  ext4: fix potential integer overflow in alloc_flex_gd()\n  ext4: remove needs_recovery in ext4_mb_init()\n  ext4: force ro mount if ext4_setup_super() fails\n  ext4: fix potential NULL dereference in ext4_free_inodes_counts()\n  ext4/jbd2: add metadata checksumming to the list of supported features\n  ...\n"
    },
    {
      "commit": "08cefc7ab839cf3ece44b8033968a4732eac06d8",
      "tree": "7264efb33cb3d1249f7be3a7ea6dd12d30c313c1",
      "parents": [
        "1523299d5817773e344d135d4b1c485f269400bc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 15:41:49 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue May 15 14:59:27 2012 -0700"
      },
      "message": "userns: Convert ext4 to user kuid/kgid where appropriate\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "feb0ab32a57e4e6c8b24f6fb68f0ce08efe4603c",
      "tree": "6438fc46013c2f5d60e78060c66e2809c6056f1a",
      "parents": [
        "cc8e94fd126ab2d2e4bcb1b65c7316196f0cec8c"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun Apr 29 18:45:10 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 29 18:45:10 2012 -0400"
      },
      "message": "ext4: make block group checksums use metadata_csum algorithm\n\nmetadata_csum supersedes uninit_bg.  Convert the ROCOMPAT uninit_bg\nflag check to a helper function that covers both, and make the\nchecksum calculation algorithm use either crc16 or the metadata_csum\nchosen algorithm depending on which flag is set.  Print a warning if\nwe try to mount a filesystem with both feature flags set.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fa77dcfafeaa6bc73293c646bfc3d5192dcf0be2",
      "tree": "66c4232c2e5c1f59666e05164b77539a9b1dd290",
      "parents": [
        "41a246d1ff75a95d2be3191ca6e6db139dc0f430"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Sun Apr 29 18:35:10 2012 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Apr 29 18:35:10 2012 -0400"
      },
      "message": "ext4: calculate and verify block bitmap checksum\n\nCompute and verify the checksum of the block bitmap; this checksum is\nstored in the block group descriptor.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d4dc462f556afe510d58d3b12b3d66c2cabff539",
      "tree": "83e147cbbac02d1a128f5031c43abef65f3590b3",
      "parents": [
        "c5e8f3f3bc4b5e4a73b075ea7128f48c3f215168"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Feb 20 17:57:24 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:57:24 2012 -0500"
      },
      "message": "ext4: fix balloc.c printk-format-warning\n\nGet rid of this one:\n\nfs/ext4/balloc.c: In function \u0027ext4_wait_block_bitmap\u0027:\nfs/ext4/balloc.c:405:3: warning: format \u0027%llu\u0027 expects argument of\n  type \u0027long long unsigned int\u0027, but argument 6 has type \u0027sector_t\u0027 [-Wformat]\n\nHappens because sector_t is u64 (unsigned long long) or unsigned long\ndependent on CONFIG_64BIT.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "813e57276fd909f7d5a816ef7ca706fca491ee61",
      "tree": "cc2d262c0f6524f1a18d2a168d03e2ae3eb624ab",
      "parents": [
        "119c0d4460b001e44b41dcf73dc6ee794b98bd31"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:52:46 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 20 17:52:46 2012 -0500"
      },
      "message": "ext4: fix race when setting bitmap_uptodate flag\n\nIn ext4_read_{inode,block}_bitmap() we were setting bitmap_uptodate()\nbefore submitting the buffer for read.  The is bad, since we check\nbitmap_uptodate() without locking the buffer, and so if another\nprocess is racing with us, it\u0027s possible that they will think the\nbitmap is uptodate even though the read has not completed yet,\nresulting in inodes and blocks potentially getting allocated more than\nonce if we get really unlucky.\n\nAddresses-Google-Bug: 2828254\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5f163cc759a9fa8844a4efcf1f579dc5b2ca2491",
      "tree": "2a8e127fbe2e807113699de992cd1d248b1f9e3e",
      "parents": [
        "176576dbc8141528557eeeb007af2d5a2a4891ef"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Jan 04 22:33:28 2012 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 04 22:33:28 2012 -0500"
      },
      "message": "ext4: make more symbols static\n\nA couple more functions can reasonably be made static if desired.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6e58ad69efe9f4c91eb15f6bc365293414c397ce",
      "tree": "06c1f88ed4448526234172a2ae9ad2458488920d",
      "parents": [
        "3c1fcb2c24519febd7ca9cf292fa5bdf513b601f"
      ],
      "author": {
        "name": "Yongqiang Yang",
        "email": "xiaoqiangnk@gmail.com",
        "time": "Mon Nov 21 12:09:19 2011 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 21 12:09:19 2011 -0500"
      },
      "message": "ext4: fix up a undefined error in ext4_free_blocks in debugging code\n\nsbi is not defined, so let ext4_free_blocks use EXT4_SB(sb) instead\nwhen EXT4FS_DEBUG is defined.\n\nSigned-off-by: Yongqiang Yang \u003cxiaoqiangnk@gmail.com\u003e\n"
    },
    {
      "commit": "df55c99dc8ee4c3c886a5edc8a4aa6b131c95afc",
      "tree": "6e5ea5a435659fa2dee7410f0b0196bdaf3a2054",
      "parents": [
        "e7d5f3156e6827970f75ab27ad7eb0155826eb0b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:16:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:16:51 2011 -0400"
      },
      "message": "ext4: rename ext4_has_free_blocks() to ext4_has_free_clusters()\n\nRename the function so it is more clear what is going on.  Also rename\nthe various variables so it\u0027s clearer what\u0027s happening.\n\nAlso fix a missing blocks to cluster conversion when reading the\nnumber of reserved blocks for root.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e7d5f3156e6827970f75ab27ad7eb0155826eb0b",
      "tree": "7eab0a0660052e4a3fe1bba57a869138fb29e7f4",
      "parents": [
        "cff1dfd767d1ee3c773fd8b57fe310957e5f8abb"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:14:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:14:51 2011 -0400"
      },
      "message": "ext4: rename ext4_claim_free_blocks() to ext4_claim_free_clusters()\n\nThis function really claims a number of free clusters, not blocks, so\nrename it so it\u0027s clearer what\u0027s going on.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cff1dfd767d1ee3c773fd8b57fe310957e5f8abb",
      "tree": "ace05de33bb5d1e2062724818d57d89eae66004f",
      "parents": [
        "5dee54372c1ea15ab482b959634cda8c01b042bd"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:12:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:12:51 2011 -0400"
      },
      "message": "ext4: rename ext4_free_blocks_after_init() to ext4_free_clusters_after_init()\n\nThis function really returns the number of clusters after initializing\nan uninitalized block bitmap has been initialized.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5dee54372c1ea15ab482b959634cda8c01b042bd",
      "tree": "512da0144f6a9f86b5817569d0521b60cddee4c9",
      "parents": [
        "021b65bb1e4e4b625c80bbb82651e5e155721ef3"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:10:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:10:51 2011 -0400"
      },
      "message": "ext4: rename ext4_count_free_blocks() to ext4_count_free_clusters()\n\nThis function really counts the free clusters reported in the block\ngroup descriptors, so rename it to reduce confusion.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "021b65bb1e4e4b625c80bbb82651e5e155721ef3",
      "tree": "e1826a0ec395ac2acf46c43113f2c6a64a5165d0",
      "parents": [
        "6f16b60690ba04cf476480a6f19b204e4b95b4a6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:08:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:08:51 2011 -0400"
      },
      "message": "ext4: Rename ext4_free_blks_{count,set}() to refer to clusters\n\nThe field bg_free_blocks_count_{lo,high} in the block group\ndescriptor has been repurposed to hold the number of free clusters for\nbigalloc functions.  So rename the functions so it makes it easier to\nread and audit the block allocation and block freeing code.\n\nNote: at this point in bigalloc development we doesn\u0027t support\nonline resize, so this also makes it really obvious all of the places\nwe need to fix up to add support for online resize.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7b415bf60f6afb0499fd3dc0ee33444f54e28567",
      "tree": "9c64fef2b8d60ce64865af6e4c2cc6008026e28c",
      "parents": [
        "27baebb849d46d901e756e6502b0a65a62e43771"
      ],
      "author": {
        "name": "Aditya Kali",
        "email": "adityakali@google.com",
        "time": "Fri Sep 09 19:04:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 19:04:51 2011 -0400"
      },
      "message": "ext4: Fix bigalloc quota accounting and i_blocks value\n\nWith bigalloc changes, the i_blocks value was not correctly set (it was still\nset to number of blocks being used, but in case of bigalloc, we want i_blocks\nto represent the number of clusters being used). Since the quota subsystem sets\nthe i_blocks value, this patch fixes the quota accounting and makes sure that\nthe i_blocks value is set correctly.\n\nSigned-off-by: Aditya Kali \u003cadityakali@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5704265188ffe4290ed73b3cb685206c3ed8209d",
      "tree": "6bc51bea59625b2a7c8e4b74bbb66884371f74dd",
      "parents": [
        "0aa060000e83ca3d09ddc446a7174fb0820d99bc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:56:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:56:51 2011 -0400"
      },
      "message": "ext4: convert s_{dirty,free}blocks_counter to s_{dirty,free}clusters_counter\n\nConvert the percpu counters s_dirtyblocks_counter and\ns_freeblocks_counter in struct ext4_super_info to be\ns_dirtyclusters_counter and s_freeclusters_counter.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3212a80a58062056bb922811071062be58d8fee1",
      "tree": "0ae97cdc351f18e9090c8b33505eabe59c3da21c",
      "parents": [
        "d5b8f31007a93777cfb0603b665858fb7aebebfc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:46:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:46:51 2011 -0400"
      },
      "message": "ext4: convert block group-relative offsets to use clusters\n\nCertain parts of the ext4 code base, primarily in mballoc.c, use a\nblock group number and offset from the beginning of the block group.\nThis offset is invariably used to index into the allocation bitmap, so\nchange the offset to be denominated in units of clusters.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d5b8f31007a93777cfb0603b665858fb7aebebfc",
      "tree": "19d9dfed9314132302b8e3036a2ada26f9809036",
      "parents": [
        "fd034a84e1ea5c8c8d159cd2089c32e792c269b0"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:44:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:44:51 2011 -0400"
      },
      "message": "ext4: bigalloc changes to block bitmap initialization functions\n\nAdd bigalloc support to ext4_init_block_bitmap() and\next4_free_blocks_after_init().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fd034a84e1ea5c8c8d159cd2089c32e792c269b0",
      "tree": "5992d541a005137a57a44921fd1be6311ee841d2",
      "parents": [
        "49f7f9af4bb4d7972f3a35a74877937fec9f622d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:42:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:42:51 2011 -0400"
      },
      "message": "ext4: split out ext4_free_blocks_after_init()\n\nThe function ext4_free_blocks_after_init() used to be a #define of\next4_init_block_bitmap().  This actually made it difficult to\nunderstand how the function worked, and made it hard make changes to\nsupport clusters.  So as an initial cleanup, I\u0027ve separated out the\nfunctionality of initializing block bitmap from calculating the number\nof free blocks in the new block group.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "49f7f9af4bb4d7972f3a35a74877937fec9f622d",
      "tree": "19ef79ae359e6524a1d8d9d303005c9e5dbf813c",
      "parents": [
        "7137d7a48e2213eb1f6d6529da14c2ed3706b795"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:40:51 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Sep 09 18:40:51 2011 -0400"
      },
      "message": "ext4: factor out block group accounting into functions\n\nThis makes it easier to understand how ext4_init_block_bitmap() works,\nand it will assist when we split out ext4_free_blocks_after_init() in\nthe next commit.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f86186b44b4164600cce03d0d93ad48ec21fa429",
      "tree": "48aafabbbe46d22de84e4e9b3ebf7c5b35fd6d1e",
      "parents": [
        "dae1e52cb1267bf8f52e5e47a80fab566d7e8aa4"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Jun 28 10:01:31 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 28 10:01:31 2011 -0400"
      },
      "message": "ext4: refactor duplicated block placement code\n\nI found that ext4_ext_find_goal() and ext4_find_near()\nshare the same code for returning a coloured start block\nbased on i_block_group.\n\nWe can refactor this into a common function so that they\ndon\u0027t diverge in the future.\n\nThanks to adilger for suggesting the new function name.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "55f020db66ce187fb8c8e4002a94b0eb714da450",
      "tree": "e98214511542f57fa93074be12e27c4819520333",
      "parents": [
        "ae81230686282af745ebb7a74c0332349cb9131a"
      ],
      "author": {
        "name": "Allison Henderson",
        "email": "achender@linux.vnet.ibm.com",
        "time": "Wed May 25 07:41:26 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 25 07:41:26 2011 -0400"
      },
      "message": "ext4: add flag to ext4_has_free_blocks\n\nThis patch adds an allocation request flag to the ext4_has_free_blocks\nfunction which enables the use of reserved blocks.  This will allow a\npunch hole to proceed even if the disk is full.  Punching a hole may\nrequire additional blocks to first split the extents.\n\nBecause ext4_has_free_blocks is a low level function, the flag needs\nto be passed down through several functions listed below:\n\next4_ext_insert_extent\next4_ext_create_new_leaf\next4_ext_grow_indepth\next4_ext_split\next4_ext_new_meta_block\next4_mb_new_blocks\next4_claim_free_blocks\next4_has_free_blocks\n\n[ext4 punch hole patch series 1/5 v7]\n\nSigned-off-by: Allison Henderson \u003cachender@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "2846e82004a8d5ef0a63cd3209c84ea5cd796f11",
      "tree": "3b20c08ce64e918d4217bb95228fc597c63bf0e0",
      "parents": [
        "66bb82798d9ff896271d13f5020f7fb9b7d88e1a"
      ],
      "author": {
        "name": "Amir Goldstein",
        "email": "amir73il@users.sf.net",
        "time": "Mon May 09 10:46:41 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 09 10:46:41 2011 -0400"
      },
      "message": "ext4: move ext4_add_groupblocks() to mballoc.c\n\nIn preparation for the next patch, the function ext4_add_groupblocks()\nis moved to mballoc.c, where it could use some static functions.\n\nSigned-off-by: Amir Goldstein \u003camir73il@users.sf.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "dc2070a241cf3f86395afe7b969020d99aad8f00",
      "tree": "d48537695bda850b38037c85851de551ce4e1b5c",
      "parents": [
        "d9f34504e6952e909a6932c5b2d1857716606380"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Sun May 01 18:11:18 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 01 18:11:18 2011 -0400"
      },
      "message": "ext4: remove dead code in ext4_has_free_blocks()\n\npercpu_counter_sum_positive() never returns a negative value.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "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": "0562e0bad483d10e9651fbb8f21dc3d0bad57374",
      "tree": "19f6597f92c028badcb6df360ccac22240378e25",
      "parents": [
        "4596fe07679ff0fae904515691ea747467614871"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Mon Mar 21 21:38:05 2011 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 21 21:38:05 2011 -0400"
      },
      "message": "ext4: add more tracepoints and use dev_t in the trace buffer\n\n- Add more ext4 tracepoints.\n- Change ext4 tracepoints to use dev_t field with MAJOR/MINOR macros\nso that we can save 4 bytes in the ring buffer on some platforms.\n- Add sync_mode to ext4_da_writepages, ext4_da_write_pages, and\next4_da_writepages_result tracepoints. Also remove for_reclaim\nfield from ext4_da_writepages since it is usually not very useful.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\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": "61d08673de1fe68bfba86203258377bf39f234b6",
      "tree": "5cb32998c69eca626df54b50cb01e50a83c4db81",
      "parents": [
        "4a873a472b3bbcfd425d7ae210afdec28c04e2e5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:15 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 27 21:30:15 2010 -0400"
      },
      "message": "ext4: rename mark_bitmap_end() to ext4_mark_bitmap_end()\n\nFix a namespace leak from fs/ext4\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\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": "a0375156ca1041574b5d47cc7e32f10b891151b0",
      "tree": "b791961012b9348f289c3dda5dc071bdf9b736d2",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 11 23:14:04 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jun 11 23:14:04 2010 -0400"
      },
      "message": "ext4: Clean up s_dirt handling\n\nWe don\u0027t need to set s_dirt in most of the ext4 code when journaling\nis enabled.  In ext3/4 some of the summary statistics for # of free\ninodes, blocks, and directories are calculated from the per-block\ngroup statistics when the file system is mounted or unmounted.  As a\nresult the superblock doesn\u0027t have to be updated, either via the\njournal or by setting s_dirt.  There are a few exceptions, most\nnotably when resizing the file system, where the superblock needs to\nbe modified --- and in that case it should be done as a journalled\noperation if possible, and s_dirt set only in no-journal mode.\n\nThis patch will optimize out some unneeded disk writes when using ext4\nwith a journal.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "72b8ab9dde211ea518ff27e631b2046ef90c29a2",
      "tree": "f63fc1894bcc39c81060e2fd8b21bedd07a1e958",
      "parents": [
        "0e05842bc117ea70ceb979cca798fd026879951b"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 11:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 11:00:00 2010 -0400"
      },
      "message": "ext4: don\u0027t use quota reservation for speculative metadata\n\nBecause we can badly over-reserve metadata when we\ncalculate worst-case, it complicates things for quota, since\nwe must reserve and then claim later, retry on EDQUOT, etc.\nQuota is also a generally smaller pool than fs free blocks,\nso this over-reservation hurts more, and more often.\n\nI\u0027m of the opinion that it\u0027s not the worst thing to allow\nmetadata to push a user slightly over quota.  This simplifies\nthe code and avoids the false quota rejections that result\nfrom worst-case speculation.\n\nThis patch stops the speculative quota-charging for\nworst-case metadata requirements, and just charges quota\nwhen the blocks are allocated at writeout.  It also is\nable to remove the try-again loop on EDQUOT.\n\nThis patch has been tested indirectly by running the xfstests\nsuite with a hack to mount \u0026 enable quota prior to the test.\n\nI also did a more specific test of fragmenting freespace\nand then doing a large delalloc write under quota; quota\nstopped me at the right amount of file IO, and then the\nwriteout generated enough metadata (due to the fragmentation)\nthat it put me slightly over quota, as expected.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "731eb1a03a8445cde2cb23ecfb3580c6fa7bb690",
      "tree": "9978388978604207cc78da1c81b97625857256cb",
      "parents": [
        "bda00de7e8569b1fcde27b68fa59e74e14c5f93a"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 03 23:55:01 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 03 23:55:01 2010 -0500"
      },
      "message": "ext4: consolidate in_range() definitions\n\nThere are duplicate macro definitions of in_range() in mballoc.h and\nballoc.c.  This consolidates these two definitions into ext4.h, and\nchanges extents.c to use in_range() as well.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\n"
    },
    {
      "commit": "5661bd6861b7490394e29aaf74dca812188272e4",
      "tree": "34d4e626b9c4abaf98e79fb705ba1e4a21f9e7f9",
      "parents": [
        "9b1d0998d24f9c207d5fbdd0b8bac07284e0eda7"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 03 23:53:39 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 03 23:53:39 2010 -0500"
      },
      "message": "ext4: cleanup to use ext4_group_first_block_no()\n\nThis is a cleanup and simplification patch which takes some open-coded\ncalculations to calculate the first block number of a group and\nconverts them to use the (already defined) ext4_group_first_block_no()\nfunction.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\n"
    },
    {
      "commit": "12062dddda450976b129dcb1bacd91acaf4d8030",
      "tree": "e64590b1147639cd3629f8a977b269410cd6bd13",
      "parents": [
        "f710b4b96ba292dfed2153afc47e9063b0abfd89"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Feb 15 14:19:27 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 15 14:19:27 2010 -0500"
      },
      "message": "ext4: move __func__ into a macro for ext4_warning, ext4_error\n\nJust a pet peeve of mine; we had a mishash of calls with either __func__\nor \"function_name\" and the latter tends to get out of sync.\n\nI think it\u0027s easier to just hide the __func__ in a macro, and it\u0027ll\nbe consistent from then on.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4433871130f36585fde38e7dd817433296648945",
      "tree": "5dd91fbb345f5a4240f4d2df271da49ca1a6037b",
      "parents": [
        "b7e57e7c2a41826e51fe060fae5158bfc7a04e81"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 22 07:44:56 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Nov 22 07:44:56 2009 -0500"
      },
      "message": "ext4: fold ext4_free_blocks() and ext4_mb_free_blocks()\n\next4_mb_free_blocks() is only called by ext4_free_blocks(), and the\nlatter function doesn\u0027t really do much.  So merge the two functions\ntogether, such that ext4_free_blocks() is now found in\nfs/ext4/mballoc.c.  This saves about 200 bytes of compiled text space.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8dadb198cb70ef811916668fe67eeec82e8858dd",
      "tree": "e42f0cc333df6807a47678e41599055b6b2c286e",
      "parents": [
        "3f8fb9490efbd300887470a2a880a64e04dcc3f5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 23 07:24:38 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Nov 23 07:24:38 2009 -0500"
      },
      "message": "ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero\n\nThe number of old-style block group descriptor blocks is\ns_meta_first_bg when the meta_bg feature flag is set.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "0373130d5bc783751c1fbad948886916a21d4559",
      "tree": "a5b4d21b84345354ff965714bd6a6c473bae4b0f",
      "parents": [
        "bf43d84b185e2ff54598f8c58a5a8e63148b6e90"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Aug 17 23:51:29 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Aug 17 23:51:29 2009 -0400"
      },
      "message": "ext4: open-code ext4_mb_update_group_info\n\next4_mb_update_group_info is only called in one place, and it\u0027s\nextremely simple.  There\u0027s no reason to have it in a separate function\nin a separate file as far as I can tell, it just obfuscates what\u0027s\nreally going on.\n\nPerhaps it was intended to keep the grp-\u003ebb_* manipulation local to\nmballoc.c but we\u0027re already accessing other grp-\u003e fields in balloc.c\ndirectly so this seems ok.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "955ce5f5be67dfe0d1d096b543af33fe8a1ce3dd",
      "tree": "68b0bdbef1594a3e43c1ef28ae8e096b40a06ae4",
      "parents": [
        "eefd7f03b86b8a319890e7fac5a6fcc7f8694b76"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat May 02 20:35:09 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat May 02 20:35:09 2009 -0400"
      },
      "message": "ext4: Convert ext4_lock_group to use sb_bgl_lock\n\nWe have sb_bgl_lock() and ext4_group_info.bb_state\nbit spinlock to protech group information. The later is only\nused within mballoc code. Consolidate them to use sb_bgl_lock().\nThis makes the mballoc.c code much simpler and also avoid\nconfusion with two locks protecting same info.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "bb23c20a851a5038b255a3c0d0aa56093c1da3f8",
      "tree": "257211bf2bf5ffd53fe24b0528928ca4d3f2ecba",
      "parents": [
        "596397b77c895d0fa3674f579c94ad5ea88ef01d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 19:44:44 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 19:44:44 2009 -0400"
      },
      "message": "ext4: Move fs/ext4/group.h into ext4.h\n\nMove the function prototypes in group.h into ext4.h so they are all\ndefined in one place.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8df9675f8b498d0bfa1f0b5b06f56bf1ff366dd5",
      "tree": "38fd56a82049f50b4d774af47b9d39f116071755",
      "parents": [
        "9ca92389c5312a51e819c15c762f0abdc7f3129b"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 08:50:38 2009 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 01 08:50:38 2009 -0400"
      },
      "message": "ext4: Avoid races caused by on-line resizing and SMP memory reordering\n\nExt4\u0027s on-line resizing adds a new block group and then, only at the\nlast step adjusts s_groups_count.  However, it\u0027s possible on SMP\nsystems that another CPU could see the updated the s_group_count and\nnot see the newly initialized data structures for the just-added block\ngroup.  For this reason, it\u0027s important to insert a SMP read barrier\nafter reading s_groups_count and before reading any (for example) the\nnew block group descriptors allowed by the increased value of\ns_groups_count.\n\nUnfortunately, we rather blatently violate this locking protocol\ndocumented in fs/ext4/resize.c.  Fortunately, (1) on-line resizes\nhappen relatively rarely, and (2) it seems rare that the filesystem\ncode will immediately try to use just-added block group before any\nmemory ordering issues resolve themselves.  So apparently problems\nhere are relatively hard to hit, since ext3 has been vulnerable to the\nsame issue for years with no one apparently complaining.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9f24e4208f7ee2748f157368b63287dc903fcf60",
      "tree": "255989fe69ebfb2b031dc7cf6dbe975df67c711a",
      "parents": [
        "b713a5ec55bf73c833f9883cdd761b20ee61a1ab"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 04 19:09:10 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 04 19:09:10 2009 -0500"
      },
      "message": "ext4: Use atomic_t\u0027s in struct flex_groups\n\nReduce pressure on the sb_bgl_lock family of locks by using atomic_t\u0027s\nto track the number of free blocks and inodes in each flex_group.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "e187c6588d6ef3169db53c389b3de9dfde3b16cc",
      "tree": "5ac50e38eecb58d8de571af0053331c31eb0a5e2",
      "parents": [
        "074ca44283bf031678e67af7d82668bb03c55a55"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Feb 06 16:23:37 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Feb 06 16:23:37 2009 -0500"
      },
      "message": "ext4: remove call to ext4_group_desc() in ext4_group_used_meta_blocks()\n\nThe static function ext4_group_used_meta_blocks() only has one caller,\nwho already has access to the block group\u0027s group descriptor.  So it\u0027s\nbetter to have ext4_init_block_bitmap() pass the group descriptor to\next4_group_used_meta_blocks(), so it doesn\u0027t need to call\next4_group_desc().  Previously this function did not check if\next4_group_desc() returned NULL due to an error, potentially causing a\nkernel OOPS report.  This avoids the issue entirely.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "a269eb18294d35874c53311acc2cd0b5ef477ce5",
      "tree": "4da256ba45385688bd7f1e8b638ce76f884c8313",
      "parents": [
        "81a052273998f94b098945c4c313e05246956eb2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 17:04:39 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:36 2009 +0100"
      },
      "message": "ext4: Use lowercase names of quota functions\n\nUse lowercase names of quota functions instead of old uppercase ones.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCC: linux-ext4@vger.kernel.org\n"
    },
    {
      "commit": "8f64b32eb73fbfe9f38c4123121b63ee409278a7",
      "tree": "1c856ed32d7a282dbde0cea2e8839e2c2de51ba9",
      "parents": [
        "d8ae4601a4b7ea1fa17fa395c3468c0e144d1275"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Feb 26 00:57:35 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 26 00:57:35 2009 -0500"
      },
      "message": "ext4: don\u0027t call jbd2_journal_force_commit_nested without journal\n\nRunning without a journal, I oopsed when I ran out of space,\nbecause we called jbd2_journal_force_commit_nested() from\next4_should_retry_alloc() without a journal.\n\nThis should take care of it, I think.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9fd9784c91db79e953ea3fe3741f885bdc390a72",
      "tree": "b92c9be3218c6559aed0ff9dc4d61c33a1130093",
      "parents": [
        "fdff73f094e7220602cc3f8959c7230517976412"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Mon Jan 26 19:26:26 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 26 19:26:26 2009 -0500"
      },
      "message": "ext4: Fix building with EXT4FS_DEBUG\n\nWhen bg_free_blocks_count was renamed to bg_free_blocks_count_lo in\n560671a0, its uses under EXT4FS_DEBUG were not changed to the helper\next4_free_blks_count.\n\nAnother commit, 498e5f24, also did not change everything needed under\nEXT4FS_DEBUG, thus making it spill some warnings related to printing\nformat.\n\nThis commit fixes both issues and makes ext4 build again when\nEXT4FS_DEBUG is enabled.\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2ccb5fb9f113dae969d1ae9b6c10e80fa34f8cd3",
      "tree": "d9dc5bca94748d4173a7783e963d20b5a75f8db8",
      "parents": [
        "393418676a7602e1d7d3f6e560159c65c8cbd50e"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 05 21:49:55 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 21:49:55 2009 -0500"
      },
      "message": "ext4: Use new buffer_head flag to check uninit group bitmaps initialization\n\nFor uninit block group, the on-disk bitmap is not initialized. That\nimplies we cannot depend on the uptodate flag on the bitmap\nbuffer_head to find bitmap validity.  Use a new buffer_head flag which\nwould be set after we properly initialize the bitmap.  This also\nprevents (re-)initializing the uninit group bitmap every time we call \next4_read_block_bitmap().\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "3300beda523136f9f87821e4fba85c5c9e319645",
      "tree": "0af91284ffa44b9c8c1b0de26674bca30271561f",
      "parents": [
        "560671a0d3c9ad2d647fa6d09375a262e1f19c4f"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 03 22:33:39 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Jan 03 22:33:39 2009 -0500"
      },
      "message": "ext4: code cleanup\n\nRename some variables.  We also unlock locks in the reverse order we\nacquired as a part of cleanup.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "560671a0d3c9ad2d647fa6d09375a262e1f19c4f",
      "tree": "a52673326726062d53b35643d51a16739cd804fc",
      "parents": [
        "e8134b27e351e813414da3b95aa8eac6d3908088"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 05 22:20:24 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 22:20:24 2009 -0500"
      },
      "message": "ext4: Use high 16 bits of the block group descriptor\u0027s free counts fields\n\nRename the lower bits with suffix _lo and add helper\nto access the values. Also rename bg_itable_unused_hi\nto bg_pad as in e2fsprogs.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "920313a726e04fef0f2c0bcb04ad8229c0e700d8",
      "tree": "7e7644a2fd48586ec2f455e56525565174798e4a",
      "parents": [
        "e21675d4b63975d09eb75c443c48ebe663d23e18"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 05 21:36:19 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 21:36:19 2009 -0500"
      },
      "message": "ext4: Use EXT4_GROUP_INFO_NEED_INIT_BIT during resize\n\nThe new groups added during resize are flagged as\nneed_init group. Make sure we properly initialize these\ngroups. When we have block size \u003c page size and we are adding\nnew groups the page may still be marked uptodate even though\nwe haven\u0027t initialized the group. While forcing the init\nof buddy cache we need to make sure other groups part of the\nsame page of buddy cache is not using the cache.\ngroup_info-\u003ealloc_sem is added to ensure the same.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\ncc: stable@kernel.org\n"
    },
    {
      "commit": "e21675d4b63975d09eb75c443c48ebe663d23e18",
      "tree": "73ace586265c977c2f0b41bbe2ec0b462809aa58",
      "parents": [
        "3a06d778dfeda7eaeeb79bfa49cf97f2aae132b4"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 05 21:36:02 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 21:36:02 2009 -0500"
      },
      "message": "ext4: Add blocks added during resize to bitmap\n\nWith this change new blocks added during resize\nare marked as free in the block bitmap and the\ngroup is flagged with EXT4_GROUP_INFO_NEED_INIT_BIT\nflag.  This makes sure when mballoc tries to allocate\nblocks from the new group we would reload the\nbuddy information using the bitmap present in the disk.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "498e5f24158da7bf8fa48074a70e370e22844492",
      "tree": "1434b349c8eca3b0667af0b385533cbcd599c1c3",
      "parents": [
        "a9df9a49102f3578909cba7bd33784eb3b9caaa4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 05 00:14:04 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Nov 05 00:14:04 2008 -0500"
      },
      "message": "ext4: Change unsigned long to unsigned int\n\nConvert the unsigned longs that are most responsible for bloating the\nstack usage on 64-bit systems.\n\nNearly all places in the ext3/4 code which uses \"unsigned long\" is\nprobably a bug, since on 32-bit systems a ulong a 32-bits, which means\nwe are wasting stack space on 64-bit systems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a9df9a49102f3578909cba7bd33784eb3b9caaa4",
      "tree": "1d383d422bf7185e8e87c1bcfc80f9beb3074cf8",
      "parents": [
        "cde6436004ad9cd8cab5a874b6fa8b01f1da91bf"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 22:18:16 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 22:18:16 2009 -0500"
      },
      "message": "ext4: Make ext4_group_t be an unsigned int\n\nNearly all places in the ext3/4 code which uses \"unsigned long\" is\nprobably a bug, since on 32-bit systems a ulong a 32-bits, which means\nwe are wasting stack space on 64-bit systems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fde4d95ad8711c84a36735a17136c45b19746af9",
      "tree": "e4d4dcaeb18083be204ba8fe55a75400ded699ae",
      "parents": [
        "fd98496f467b3d26d05ab1498f41718b5ef13de5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 22:17:35 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 05 22:17:35 2009 -0500"
      },
      "message": "ext4: remove extraneous newlines from calls to ext4_error() and ext4_warning()\n\nThis removes annoying blank syslog entries emitted by ext4_error() or\next4_warning(), since these functions add their own newline.\n\nSigned-off-by: Nick Warne \u003cnick@ukfsn.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "0390131ba84fd3f726f9e24fc4553828125700bb",
      "tree": "4c90afad4e8690e25aec0ce069fd450e92ab5f96",
      "parents": [
        "ff7ef329b268b603ea4a2303241ef1c3829fd574"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Wed Jan 07 00:06:22 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Jan 07 00:06:22 2009 -0500"
      },
      "message": "ext4: Allow ext4 to run without a journal\n\nA few weeks ago I posted a patch for discussion that allowed ext4 to run\nwithout a journal.  Since that time I\u0027ve integrated the excellent\ncomments from Andreas and fixed several serious bugs.  We\u0027re currently\nrunning with this patch and generating some performance numbers against\nboth ext2 (with backported reservations code) and ext4 with and without\na journal.  It just so happens that running without a journal is\nslightly faster for most everything.\n\nWe did\n\tiozone -T -t 4 s 2g -r 256k -T -I -i0 -i1 -i2\n\nwhich creates 4 threads, each of which create and do reads and writes on\na 2G file, with a buffer size of 256K, using O_DIRECT for all file opens\nto bypass the page cache.  Results:\n\n                     ext2        ext4, default   ext4, no journal\n  initial writes   13.0 MB/s        15.4 MB/s          15.7 MB/s\n  rewrites         13.1 MB/s        15.6 MB/s          15.9 MB/s\n  reads            15.2 MB/s        16.9 MB/s          17.2 MB/s\n  re-reads         15.3 MB/s        16.9 MB/s          17.2 MB/s\n  random readers    5.6 MB/s         5.6 MB/s           5.7 MB/s\n  random writers    5.1 MB/s         5.3 MB/s           5.4 MB/s \n\nSo it seems that, so far, this was a useful exercise.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "97df5d155dee478efe33b001f502e9630e1bba92",
      "tree": "11847bd119be9b68365a2fa4beb5f95f691162b1",
      "parents": [
        "cfe82c856747b7841a3a00d591ce9ed46f579d27"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Dec 12 12:41:28 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Dec 12 12:41:28 2008 -0500"
      },
      "message": "ext4: remove do_blk_alloc()\n\nThe convenience function do_blk_alloc() is a static function with only\none caller, so fold it into ext4_new_meta_blocks() to simplify the\ncode and to make it easier to understand.\n\nTo save more stack space, if count is a null pointer in\next4_new_meta_blocks() assume that caller wanted a single block (and\nif there is an error, no blocks were allocated).\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cfe82c856747b7841a3a00d591ce9ed46f579d27",
      "tree": "b5a306bdb06ead17bf19adc671df149aa9f0895e",
      "parents": [
        "815a1130687ffac2c3e91513ce64aab629d6a54d"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 07 14:10:54 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 07 14:10:54 2008 -0500"
      },
      "message": "ext4: remove ext4_new_meta_block()\n\nThere were only two one callers of the function ext4_new_meta_block(),\nwhich just a very simpler wrapper function around\next4_new_meta_blocks().  Change those two functions to call\next4_new_meta_blocks() directly, to save code and stack space usage.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "815a1130687ffac2c3e91513ce64aab629d6a54d",
      "tree": "9abc15c6e1e44a5e5fcf1feb0f9328b09657ad59",
      "parents": [
        "8e1a4857cd92e32e642b3e7184c7f6bf85c96e2e"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jan 01 23:59:43 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Jan 01 23:59:43 2009 -0500"
      },
      "message": "ext4: remove ext4_new_blocks() and call ext4_mb_new_blocks() directly\n\nThere was only one caller of the compatibility function\next4_new_blocks(), in balloc.c\u0027s ext4_alloc_blocks().  Change it to\ncall ext4_mb_new_blocks() directly, and remove ext4_new_blocks()\naltogether.  This cleans up the code, by removing two extra functions\nfrom the call chain, and hopefully saving some stack usage.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8f72fbdf0d92e6127583cc548bf043c60cd4720f",
      "tree": "1e640222c04efb9cd0e56fccee5a23084d006c38",
      "parents": [
        "fe0bdec68b77020281dc814805edfe594ae89e0f"
      ],
      "author": {
        "name": "Alexander Beregalov",
        "email": "a.beregalov@gmail.com",
        "time": "Wed Oct 29 17:13:08 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 29 17:13:08 2008 -0400"
      },
      "message": "ext4: fix printk format warning\n\nfs/ext4/balloc.c:607: warning: format \u0027%lld\u0027 expects type \u0027long long int\u0027, but argument 2 has type \u0027s64\u0027\nfs/ext4/inode.c:1822: warning: format \u0027%lld\u0027 expects type \u0027long long int\u0027, but argument 2 has type \u0027s64\u0027\nfs/ext4/inode.c:1824: warning: format \u0027%lld\u0027 expects type \u0027long long int\u0027, but argument 2 has type \u0027s64\u0027\n\nSigned-off-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "cbacc2c7f066a1e01b33b0e27ae5efbf534bc2db",
      "tree": "90d1093131d2a3543a8b3b1f3364e7c6f4081a93",
      "parents": [
        "4a6908a3a050aacc9c3a2f36b276b46c0629ad91",
        "74192246910ff4fb95309ba1a683215644beeb62"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 25 11:40:09 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 25 11:40:09 2008 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "02d211688727ad02bb4555b1aa8ae2de16b21b39",
      "tree": "2ee10b2f0cbfb615c40a2df98627426b8543d6cd",
      "parents": [
        "71c5576fbd809f2015f4eddf72e501e298720cf3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "revert \"percpu_counter: new function percpu_counter_sum_and_set\"\n\nRevert\n\n    commit e8ced39d5e8911c662d4d69a342b9d053eaaac4e\n    Author: Mingming Cao \u003ccmm@us.ibm.com\u003e\n    Date:   Fri Jul 11 19:27:31 2008 -0400\n\n        percpu_counter: new function percpu_counter_sum_and_set\n\nAs described in\n\n\trevert \"percpu counter: clean up percpu_counter_sum_and_set()\"\n\nthe new percpu_counter_sum_and_set() is racy against updates to the\ncpu-local accumulators on other CPUs.  Revert that change.\n\nThis means that ext4 will be slow again.  But correct.\n\nReported-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71c5576fbd809f2015f4eddf72e501e298720cf3",
      "tree": "b2d1ac56e6c3c9a60946a180cd45d493fc60738a",
      "parents": [
        "fd3d664fef97cf01f8e28fe0b024ad52f3bbc1bc"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "revert \"percpu counter: clean up percpu_counter_sum_and_set()\"\n\nRevert\n\n    commit 1f7c14c62ce63805f9574664a6c6de3633d4a354\n    Author: Mingming Cao \u003ccmm@us.ibm.com\u003e\n    Date:   Thu Oct 9 12:50:59 2008 -0400\n\n        percpu counter: clean up percpu_counter_sum_and_set()\n\nBefore this patch we had the following:\n\npercpu_counter_sum(): return the percpu_counter\u0027s value\n\npercpu_counter_sum_and_set(): return the percpu_counter\u0027s value, copying\nthat value into the central value and zeroing the per-cpu counters before\nreturning.\n\nAfter this patch, percpu_counter_sum_and_set() has gone, and\npercpu_counter_sum() gets the old percpu_counter_sum_and_set()\nfunctionality.\n\nProblem is, as Eric points out, the old percpu_counter_sum_and_set()\nfunctionality was racy and wrong.  It zeroes out counters on \"other\" cpus,\nwithout holding any locks which will prevent races agaist updates from\nthose other CPUS.\n\nThis patch reverts 1f7c14c62ce63805f9574664a6c6de3633d4a354.  This means\nthat percpu_counter_sum_and_set() still has the race, but\npercpu_counter_sum() does not.\n\nNote that this is not a simple revert - ext4 has since started using\npercpu_counter_sum() for its dirty_blocks counter as well.\n\nNote that this revert patch changes percpu_counter_sum() semantics.\n\nBefore the patch, a call to percpu_counter_sum() will bring the counter\u0027s\ncentral counter mostly up-to-date, so a following percpu_counter_read()\nwill return a close value.\n\nAfter this patch, a call to percpu_counter_sum() will leave the counter\u0027s\ncentral accumulator unaltered, so a subsequent call to\npercpu_counter_read() can now return a significantly inaccurate result.\n\nIf there is any code in the tree which was introduced after\ne8ced39d5e8911c662d4d69a342b9d053eaaac4e was merged, and which depends\nupon the new percpu_counter_sum() semantics, that code will break.\n\nReported-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c9c544e4987efe6643ad5692af47a0abfd4e0d1",
      "tree": "3414afce05e2757f4a21e483d15833c5679df7a2",
      "parents": [
        "6a2f90e9fae0824e8b6b123f1ea7d9fff9079ef3"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:38:51 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:38:51 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the Ext4 filesystem\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Stephen Tweedie \u003csct@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: adilger@sun.com\nCc: linux-ext4@vger.kernel.org\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "a996031c87e093017c0763326a08896a3a4817f4",
      "tree": "74550b7108b1b1fd87393801de56bd9e1e8b1012",
      "parents": [
        "8c3bf8a01c005385e9be0bc992e10abfb355278c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 28 00:08:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 00:08:17 2008 -0400"
      },
      "message": "delay capable() check in ext4_has_free_blocks()\n\nAs reported by Eric Paris, the capable() check in ext4_has_free_blocks()\nsometimes causes SELinux denials.\n\nWe can rearrange the logic so that we only try to use the root-reserved\nblocks when necessary, and even then we can move the capable() test\nto last, to avoid the check most of the time.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8c3bf8a01c005385e9be0bc992e10abfb355278c",
      "tree": "b65516a799256f593b29ad5048aa9a24d2d1b70b",
      "parents": [
        "6c20ec850360bc6e5c66a787f0523a80450d65ab"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 28 00:08:12 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 00:08:12 2008 -0400"
      },
      "message": "merge ext4_claim_free_blocks \u0026 ext4_has_free_blocks\n\nMingming pointed out that ext4_claim_free_blocks \u0026 ext4_has_free_blocks\nare largely cut \u0026 pasted; they can be collapsed/merged as follows.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a1aebc1e2da9a7bee4ff8cce510b08f469d1929e",
      "tree": "b16ea9325a9a6edd0ce66ea20bc3e0b25236a897",
      "parents": [
        "c894058d66637c7720569fbe12957f4de64d9991"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Oct 10 20:13:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 20:13:31 2008 -0400"
      },
      "message": "ext4: Don\u0027t reuse released data blocks until transaction commits\n\nWe need to make sure we don\u0027t reuse the data blocks released\nduring the transaction untill the transaction commits. We force\nthis mode only for ordered and journalled mode. Writeback mode\nalready don\u0027t provided data consistency.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "c806e68f5647109350ec546fee5b526962970fd2",
      "tree": "88f2d467ba95ceb7cbe011c424af83bdfe8a39d6",
      "parents": [
        "c2ea3fde61f1df1dbf062345f23277dcd6f01dfe"
      ],
      "author": {
        "name": "Frederic Bohe",
        "email": "frederic.bohe@bull.net",
        "time": "Fri Oct 10 08:09:18 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 08:09:18 2008 -0400"
      },
      "message": "ext4: fix initialization of UNINIT bitmap blocks\n\nThis fixes a bug which caused on-line resizing of filesystems with a\n1k blocksize to fail.  The root cause of this bug was the fact that if\nan uninitalized bitmap block gets read in by userspace (which\ne2fsprogs does try to avoid, but can happen when the blocksize is less\nthan the pagesize and an adjacent blocks is read into memory)\next4_read_block_bitmap() was erroneously depending on the buffer\nuptodate flag to decide whether it needed to initialize the bitmap\nblock in memory --- i.e., to set the standard set of blocks in use by\na block group (superblock, bitmaps, inode table, etc.).  Essentially,\next4_read_block_bitmap() assumed it was the only routine that might\ntry to read a block containing a block bitmap, which is simply not\ntrue.  \n\nTo fix this, ext4_read_block_bitmap() and ext4_read_inode_bitmap()\nmust always initialize uninitialized bitmap blocks.  Once a block or\ninode is allocated out of that bitmap, it will be marked as\ninitialized in the block group descriptor, so in general this won\u0027t\nresult any extra unnecessary work.\n\nSigned-off-by: Frederic Bohe \u003cfrederic.bohe@bull.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c2ea3fde61f1df1dbf062345f23277dcd6f01dfe",
      "tree": "53ecbf57416326810540494e814c05753bf30874",
      "parents": [
        "240799cdf22bd789ea6852653c3b879d35ad0a6c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 09:40:52 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 09:40:52 2008 -0400"
      },
      "message": "ext4: Remove old legacy block allocator\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "166348dd37a4baacfb6fe495954b56f56b116f0c",
      "tree": "afb36ca25ec3bdbd4397a5b952bc78be1e5feff9",
      "parents": [
        "68629f29c6764c37ebdceec2f6bbef6637eaf420"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Sep 08 23:08:40 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:08:40 2008 -0400"
      },
      "message": "ext4: Don\u0027t add the inode to journal handle until after the block is allocated\n    \nMake sure we don\u0027t add the inode to the journal handle until after the\nblock allocation, so that a journal commit will not include the inode in\ncase of block allocation failure.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "68629f29c6764c37ebdceec2f6bbef6637eaf420",
      "tree": "ed3a3c537c6a3c0dc2e2b1937ca5b66dc4b4e370",
      "parents": [
        "5c79161689aede2d487d707d5931a22eadf66120"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Sep 08 23:09:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:09:17 2008 -0400"
      },
      "message": "ext4: Fix ext4 nomballoc allocator for ENOSPC\n\nWe run into ENOSPC error on nonmballoc ext4, even when there is free blocks\non the filesystem.\n\nThe patch includes two changes:\n\na) Set reservation to NULL if we trying to allocate near group_target_block\nfrom the goal group if the free block in the group is less than windows.\nThis should give us a better chance to allocate near group_target_block.\nThis also ensures that if we are not allocating near group_target_block\nthen we don\u0027t trun off reservation. This should enable us to allocate\nwith reservation from other groups that have large free blocks count.\n\nb) we don\u0027t need to check the window size if the block reservation is off.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5c79161689aede2d487d707d5931a22eadf66120",
      "tree": "994177ca7118a515d23f0375ab080c216159d9c8",
      "parents": [
        "79f0be8d2e6ebde27dfb3beff18eb689d5c4e36c"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Oct 08 23:12:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Oct 08 23:12:24 2008 -0400"
      },
      "message": "ext4: Signed arithmetic fix\n\nThis patch converts some usage of ext4_fsblk_t to s64.  This is needed\nso that some of the sign conversion works as expected in if loops.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "6bc6e63fcd7dac9e633ea29f1fddd9580ab28f3f",
      "tree": "144d53023af5faeb94b9b3aa28e186a33e6c5b98",
      "parents": [
        "030ba6bc67b4f2bc5cd174f57785a1745c929abe"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Oct 10 09:39:00 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Oct 10 09:39:00 2008 -0400"
      },
      "message": "ext4: Add percpu dirty block accounting.\n\nThis patch adds dirty block accounting using percpu_counters.  Delayed\nallocation block reservation is now done by updating dirty block\ncounter.  In a later patch we switch to non delalloc mode if the\nfilesystem free blocks is greater than 150% of total filesystem dirty\nblocks\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao\u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "030ba6bc67b4f2bc5cd174f57785a1745c929abe",
      "tree": "14c57b4f6f8afddac0bd2415bfa050fba8d25980",
      "parents": [
        "a30d542a0035b886ffaafd0057ced0a2b28c3a4f"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Sep 08 23:14:50 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:14:50 2008 -0400"
      },
      "message": "ext4: Retry block reservation\n\nDuring block reservation if we don\u0027t have enough blocks left, retry\nblock reservation with smaller block counts.  This makes sure we try\nfallocate and DIO with smaller request size and don\u0027t fail early.  The\ndelayed allocation reservation cannot try with smaller block count. So\nretry block reservation to handle temporary disk full conditions.  Also\nprint free blocks details if we fail block allocation during writepages.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a30d542a0035b886ffaafd0057ced0a2b28c3a4f",
      "tree": "9e677eaf4eb1611701828554b27a1b0b0ae523fd",
      "parents": [
        "c4a0c46ec92c194c873232b88debce4e1a448483"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu Oct 09 10:56:23 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 09 10:56:23 2008 -0400"
      },
      "message": "ext4: Make sure all the block allocation paths reserve blocks\n\nWith delayed allocation we need to make sure block are reserved before\nwe attempt to allocate them. Otherwise we get block allocation failure\n(ENOSPC) during writepages which cannot be handled. This would mean\nsilent data loss (We do a printk stating data will be lost). This patch\nupdates the DIO and fallocate code path to do block reservation before\nblock allocation. This is needed to make sure parallel DIO and fallocate\nrequest doesn\u0027t take block out of delayed reserve space.\n\nWhen free blocks count go below a threshold we switch to a slow patch\nwhich looks at other CPU\u0027s accumulated percpu counter values.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "af5bc92dded4d98dfeabc8b5b9812571345b263d",
      "tree": "5cfaf27e673a09d3ad1341c175559be0a3ea990d",
      "parents": [
        "e5f8eab8851dff162e7ade46f084cb8575dc45f7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 22:25:24 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 22:25:24 2008 -0400"
      },
      "message": "ext4: Fix whitespace checkpatch warnings/errors\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "4776004f54e4190e104caf620fd0fa5909412236",
      "tree": "ebd37cb847d58d434ad4ea3bd98c77256f05347e",
      "parents": [
        "1f7c14c62ce63805f9574664a6c6de3633d4a354"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:00:52 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Sep 08 23:00:52 2008 -0400"
      },
      "message": "ext4: Add printk priority levels to clean up checkpatch warnings\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "1f7c14c62ce63805f9574664a6c6de3633d4a354",
      "tree": "68f9f5399bc64bf7fe87dae16d8cc287717208bf",
      "parents": [
        "3fa8749e584b55f1180411ab1b51117190bac1e5"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Thu Oct 09 12:50:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Oct 09 12:50:59 2008 -0400"
      },
      "message": "percpu counter: clean up percpu_counter_sum_and_set()\n\npercpu_counter_sum_and_set() and percpu_counter_sum() is the same except\nthe former updates the global counter after accounting.  Since we are\ntaking the fbc-\u003elock to calculate the precise value of the counter in\npercpu_counter_sum() anyway, it should simply set fbc-\u003ecount too, as the\npercpu_counter_sum_and_set() does.\n\nThis patch merges these two interfaces into one.\n \nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "16eb72956496594d023a7d7cd14a86404ad195ad",
      "tree": "1fed199d788b33be4b329a58e5b6946f41ee6a20",
      "parents": [
        "525f4ed8dcb72c71b306a78ecbf06f41d08fe441"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Aug 19 21:16:54 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Aug 19 21:16:54 2008 -0400"
      },
      "message": "ext4: make sure ext4_has_free_blocks returns 0 for ENOSPC\n\nFix ext4_has_free_blocks() to return 0 when we don\u0027t have enough space.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b5f10eed8125702929e57cca7e5956b1b9b6d015",
      "tree": "e5b38a6f654baea3658bf100320a4d66387988a3",
      "parents": [
        "e29d1cde63be0b5f1739416b5574a83c34bf8eeb"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Aug 02 21:21:08 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 21:21:08 2008 -0400"
      },
      "message": "ext4: lock block groups when initializing\n\nI noticed when filling a 1T filesystem with 4 threads using the\nfs_mark benchmark:\n\nfs_mark -d /mnt/test -D 256 -n 100000 -t 4 -s 20480 -F -S 0\n\nthat I occasionally got checksum mismatch errors:\n\nEXT4-fs error (device sdb): ext4_init_inode_bitmap: Checksum bad for group 6935\n\netc.  I\u0027d reliably get 4-5 of them during the run.\n\nIt appears that the problem is likely a race to init the bg\u0027s\nwhen the uninit_bg feature is enabled.\n\nWith the patch below, which adds sb_bgl_locking around initialization,\nI was able to complete several runs with no errors or warnings.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "e29d1cde63be0b5f1739416b5574a83c34bf8eeb",
      "tree": "86f2951e96888a1bd9cdb39ad4b2cb4e88893d95",
      "parents": [
        "8a266467b8c4841ca994d0fe59f39e584650e3df"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sat Aug 02 21:21:02 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Aug 02 21:21:02 2008 -0400"
      },
      "message": "ext4: sync up block and inode bitmap reading functions\n\next4_read_block_bitmap and read_inode_bitmap do essentially\nthe same thing, and yet they are structured quite differently.\nI came across this difference while looking at doing bg locking\nduring bg initialization.\n\nThis patch:\n\n* removes unnecessary casts in the error messages\n* renames read_inode_bitmap to ext4_read_inode_bitmap\n* and more substantially, restructures the inode bitmap\n  reading function to be more like the block bitmap counterpart.\n\nThe change to the inode bitmap reader simplifies the locking\nto be applied in the next patch.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "d2a1763791a634e315ec926b62829c1e88842c86",
      "tree": "75a701a89829ba7d728fdc19c30aa2794b9706b9",
      "parents": [
        "e8ced39d5e8911c662d4d69a342b9d053eaaac4e"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Mon Jul 14 17:52:37 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jul 14 17:52:37 2008 -0400"
      },
      "message": "ext4: delayed allocation ENOSPC handling\n\nThis patch does block reservation for delayed\nallocation, to avoid ENOSPC later at page flush time.\n\nBlocks(data and metadata) are reserved at da_write_begin()\ntime, the freeblocks counter is updated by then, and the number of\nreserved blocks is store in per inode counter.\n        \nAt the writepage time, the unused reserved meta blocks are returned\nback. At unlink/truncate time, reserved blocks are properly released.\n\nUpdated fix from  Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nto fix the oldallocator block reservation accounting with delalloc, added\nlock to guard the counters and also fix the reservation for meta blocks.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "e8ced39d5e8911c662d4d69a342b9d053eaaac4e",
      "tree": "cd4d643bfbd37c67ff9bd2feff2c0b477a56f117",
      "parents": [
        "64769240bd07f446f83660bb143bb609d8ab4910"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "percpu_counter: new function percpu_counter_sum_and_set\n\nDelayed allocation need to check free blocks at every write time.\npercpu_counter_read_positive() is not quit accurate. delayed\nallocation need a more accurate accounting, but using\npercpu_counter_sum_positive() is frequently is quite expensive.\n\nThis patch added a new function to update center counter when sum\nper-cpu counter, to increase the accurate rate for next\npercpu_counter_read() and require less calling expensive\npercpu_counter_sum().\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "07031431072ece801d53d2c03d5e5bb21f4f64a4",
      "tree": "b3075b21242bda4e16c35814fceeaef64a027647",
      "parents": [
        "d755fb384250d6bd7fd18a0930e71965acc8e72e"
      ],
      "author": {
        "name": "Mingming Cao",
        "email": "cmm@us.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: mballoc avoid use root reserved blocks for non root allocation\n\nmballoc allocation missed check for blocks reserved for root users. Add\next4_has_free_blocks() check before allocation. Also modified\next4_has_free_blocks() to support multiple block allocation request.\n\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "654b4908bc17a6318d18f3036fecc5155de92f55",
      "tree": "a77264435aa5ed0386334653fae7624ee423f8cf",
      "parents": [
        "7061eba75ceb0835ba61e7cbd757a6f9c1e4af92"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: cleanup block allocator\n\nMove the code related to block allocation to a single function and add helper\nfuntions to differient allocation for data and meta data blocks\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7061eba75ceb0835ba61e7cbd757a6f9c1e4af92",
      "tree": "9c70df3078c0543573a9f38bb60c6b0f54608c7a",
      "parents": [
        "6afd670713c9e7d5c5550e379dfedca8ffab4c90"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: Use inode preallocation with -o noextents\n\nWhen mballoc is enabled, block allocation for old block-based\nfiles are allocated using mballoc allocator instead of old\nblock-based allocator. The old ext3 block reservation is turned\noff when mballoc is turned on.\n\nHowever, the in-core preallocation is not enabled for block-based/\nnon-extent based file block allocation. This result in performance\nregression, as now we don\u0027t have \"reservation\" ore in-core preallocation\nto prevent interleaved fragmentation in multiple writes workload.\n\nThis patch fix this by enable per inode in-core preallocation\nfor non extent files when mballoc is used.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6afd670713c9e7d5c5550e379dfedca8ffab4c90",
      "tree": "3cf037d9d0f91bef6cebd77523da71d68bb1a7f8",
      "parents": [
        "7477827f6686ce29b6216d9eb26f6b9027742dcc"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: fix ext4_init_block_bitmap() for metablock block group\n\nWhen meta_bg feature is enabled and s_first_meta_bg !\u003d 0, \next4_init_block_bitmap() miscalculates the number of block used by\nthe group descriptor table (0 or 1 for metablock block group)\n\nThis patch fixes this by using ext4_bg_num_gdb()\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Stephen Tweedie \u003csct@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Andreas Dilger \u003cadilger@sun.com\u003e\n"
    },
    {
      "commit": "7477827f6686ce29b6216d9eb26f6b9027742dcc",
      "tree": "43bb05000b155120382066298c3d66a8422852f9",
      "parents": [
        "d9c769b769a8bcd70371c71797fc4e407b37ba75"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: Fix sparse warning\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "772cb7c83ba256a11c7bf99a11bef3858d23767c",
      "tree": "a42b97e5cbd870a76b2646c2dcb658a92c53f637",
      "parents": [
        "736603ab297506f4396cb5af592004499950fcfd"
      ],
      "author": {
        "name": "Jose R. Santos",
        "email": "jrs@us.ibm.com",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: New inode allocation for FLEX_BG meta-data groups.\n\nThis patch mostly controls the way inode are allocated in order to\nmake ialloc aware of flex_bg block group grouping.  It achieves this\nby bypassing the Orlov allocator when block group meta-data are packed\ntoghether through mke2fs.  Since the impact on the block allocator is\nminimal, this patch should have little or no effect on other block\nallocation algorithms. By controlling the inode allocation, it can\nbasically control where the initial search for new block begins and\nthus indirectly manipulate the block allocator.\n\nThis allocator favors data and meta-data locality so the disk will\ngradually be filled from block group zero upward.  This helps improve\nperformance by reducing seek time.  Since the group of inode tables\nwithin one flex_bg are treated as one giant inode table, uninitialized\nblock groups would not need to partially initialize as many inode\ntable as with Orlov which would help fsck time as the filesystem usage\ngoes up.\n\nSigned-off-by: Jose R. Santos \u003cjrs@us.ibm.com\u003e\nSigned-off-by: Valerie Clement \u003cvalerie.clement@bull.net\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "574ca174c97f790086e3e6f2251381420ad38fd0",
      "tree": "9a29a6f69e4f5a84f434f869935e3442eaeed315",
      "parents": [
        "3537576a707c6df98e883b77b854c6083f844602"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: Rename read_block_bitmap() to ext4_read_block_bitmap()\n\nSince this a non-static function, make it be ext4 specific to avoid\nconflicts with potentially other filesystems.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "07d45f126712fea3a9f44068bf65e0a26a162286",
      "tree": "ebec27bdfd455f306fcc20c4f8e8816df090d739",
      "parents": [
        "ed8f9c751feb3aebf7c0dd25e61481a16412bd6e"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jul 11 19:27:31 2008 -0400"
      },
      "message": "ext4: Use BUG_ON() instead of BUG()\n\nif (...) BUG(); should be replaced with BUG_ON(...) when the test has no\nside-effects to allow a definition of BUG_ON that drops the code completely.\n\nThe semantic patch that makes this change is as follows:\n(http://www.emn.fr/x-info/coccinelle/)\n\n// \u003csmpl\u003e\n@ disable unlikely @ expression E,f; @@\n\n(\n  if (\u003c... f(...) ...\u003e) { BUG(); }\n|\n- if (unlikely(E)) { BUG(); }\n+ BUG_ON(E);\n)\n\n@@ expression E,f; @@\n\n(\n  if (\u003c... f(...) ...\u003e) { BUG(); }\n|\n- if (E) { BUG(); }\n+ BUG_ON(E);\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0bf7e8379ce7e0159a2a6bd3d937f2f6ada79799",
      "tree": "2009c826d8baadc1b704af1ae23ddf0b2118be5e",
      "parents": [
        "03cddb80ed2dacaf03c370d38bcc75f8303a03b8"
      ],
      "author": {
        "name": "Jose R. Santos",
        "email": "jrs@us.ibm.com",
        "time": "Tue Jun 03 14:07:29 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jun 03 14:07:29 2008 -0400"
      },
      "message": "ext4: Fix uninit block group initialization with FLEX_BG\n\nWith FLEX_BG block bitmaps, inode bitmaps and inode tables _MAY_ be\nallocated outside the group.  So, when initializing an uninitialized\nblock bitmap, we need to check the location of this blocks before\nsetting the corresponding bits in the block bitmap of the newly\ninitialized group.  Also return the right number of free blocks when\ncounting the available free blocks in uninit group.\n\nTested-by: Aneesh Kumar K.V \u003caneesh.kumar@inux.vnet.ibm.com\u003e\nSigned-off-by: Jose R. Santos \u003cjrs@us.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "519deca0496a4df07d15acf3181ca5d573bffdec",
      "tree": "de86a407e1ea429fde16bc85d4587ebe4aa8194b",
      "parents": [
        "1930479c4b6bbcb6f164a5b3498e0d98329967f4"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Thu May 15 14:43:20 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 15 14:43:20 2008 -0400"
      },
      "message": "ext4: Retry block allocation if new blocks are allocated from system zone.\n\nIf the block allocator gets blocks out of system zone ext4 calls\next4_error. But if the file system is mounted with errors\u003dcontinue\nretry block allocation. We need to mark the system zone blocks as\nin use to make sure retry don\u0027t pick them again\n\nSystem zone is the block range mapping block bitmap, inode bitmap and inode\ntable.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3dcf54515aa4981a647ad74859199032965193a5",
      "tree": "b95d895bb2f6fa15be29411b15d538c21b0de930",
      "parents": [
        "216553c4b7f3e3e2beb4981cddca9b2027523928"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 29 18:13:32 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 29 18:13:32 2008 -0400"
      },
      "message": "ext4: move headers out of include/linux\n\nMove ext4 headers out of include/linux.  This is just the trivial move,\nthere\u0027s some more thing that could be done later. \n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "46e665e9d297525d286989640cf4247cbe941df6",
      "tree": "4858cd21e48cab2b2c51839dd80378f6044d3394",
      "parents": [
        "620de4e19890c623eb4ba293ec19b42e2e391b89"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "ext4: replace remaining __FUNCTION__ occurrences\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d00a6d7b40b44ee6b03f492a6c58f5bc4649c784",
      "tree": "02c3bb7d59efe5a834f75bd9e5f48d494896a9cc",
      "parents": [
        "216c34b2b8a3687afed4d269acec140c8baf23fe"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "ext4: use ext4_group_first_block_no()\n\nUse ext4_group_first_block_no() and assign the return values to\next4_fsblk_t variables.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Stephen Tweedie \u003csct@redhat.com\u003e\nCc: adilger@clusterfs.com\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "e8546d0615542684ca02ba03edebec1a503beb6b",
      "tree": "c0114f0e86278dd1418f5a548b38d5d1c4b157b3",
      "parents": [
        "9a0762c5af40e4aa64fef999967459c98e6ae4c9"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Apr 17 10:38:59 2008 -0400"
      },
      "message": "ext4: le*_add_cpu conversion\n\nreplace all:\nlittle_endian_variable \u003d cpu_to_leX(leX_to_cpu(little_endian_variable) +\n\t\t\t\t\texpression_in_cpu_byteorder);\nwith:\n\tleX_add_cpu(\u0026little_endian_variable, expression_in_cpu_byteorder);\ngenerated with semantic patch\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: linux-ext4@vger.kernel.org\nCc: sct@redhat.com\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: adilger@clusterfs.com\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "859cb93679929edb88642414bf37789ea263bc47",
      "tree": "3dcc640e2d1fcd7b661336efcd22ef4d3104bb03",
      "parents": [
        "fb01bfdac733f1925561eea52c60072f2fbcdc97"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Feb 06 01:40:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:21 2008 -0800"
      },
      "message": "ext[234]: cleanup ext[234]_bg_num_gdb()\n\nUse ext[234]_bg_has_super() to remove duplicate code.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "144704e5227362cbd694b0b3c3aa4ac99a0115c9",
      "tree": "d87b081741724d742514e9b91714ee0aa510ed1e",
      "parents": [
        "1eca93f9cafdec4a332ace9b0fc0d3886d430c28"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Feb 06 01:40:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:21 2008 -0800"
      },
      "message": "ext[234]: fix comment for nonexistent variable\n\nThe comment in ext[234]_new_blocks() describes about \"i\".  But there is no\nlocal variable called \"i\" in that scope.  I guess it has been renamed to\ngroup_no.\n\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9de560ded61faa5b754137b7753da252391c55a",
      "tree": "2c4311377c4aa72450e27f531e198fe3e1c67db0",
      "parents": [
        "1988b51e476bd097d910c9245b53f2e38aedaf0d"
      ],
      "author": {
        "name": "Alex Tomas",
        "email": "alex@clusterfs.com",
        "time": "Tue Jan 29 00:19:52 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Jan 29 00:19:52 2008 -0500"
      },
      "message": "ext4: Add multi block allocator for ext4\n\nSigned-off-by: Alex Tomas \u003calex@clusterfs.com\u003e\nSigned-off-by: Andreas Dilger \u003cadilger@clusterfs.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c549a95d40efd83fc054785dd1634e8b71fba890",
      "tree": "3d4623829ceb02b34f1e8a110eb2b8d741db8b14",
      "parents": [
        "aa22df2cc84011808ad7227437ac8f0e01030480"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:27 2008 -0500"
      },
      "message": "ext4: fix up EXT4FS_DEBUG builds\n\nBuilds with EXT4FS_DEBUG defined (to enable ext4_debug()) fail\nwithout these changes.  Clean up some format warnings too.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\n"
    },
    {
      "commit": "0e855ac8b103ef579052936b59fe7c599ac422a4",
      "tree": "ec29f82e1d7bb1987dcadc00497daf69d6955483",
      "parents": [
        "c278bfecebfb1ed67c326ef472660878baa745cd"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 28 23:58:26 2008 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 28 23:58:26 2008 -0500"
      },
      "message": "ext4: Convert truncate_mutex to read write semaphore.\n\nWe are currently taking the truncate_mutex for every read. This would have\nperformance impact on large CPU configuration. Convert the lock to read write\nsemaphore and take read lock when we are trying to read the file.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    }
  ],
  "next": "abcb2947c91130426539f209f7a473a67a1f6663"
}
