)]}'
{
  "log": [
    {
      "commit": "202f2bb0708e968099a23fead4598a4c3f8f8637",
      "tree": "d014d6222ea90af157cfb0fcbf5677447353b95e",
      "parents": [
        "ddc9b34c3b3bc063a7d9eb891ae09b8f49cfb27e",
        "b90f687018e6d6c77d981b09203780f7001407e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 25 10:01:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 25 10:01:51 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Issue the discard operation *before* releasing the blocks to be reused\n  ext4: Fix buffer head leaks after calls to ext4_get_inode_loc()\n  ext4: Fix possible lost inode write in no journal mode\n"
    },
    {
      "commit": "b90f687018e6d6c77d981b09203780f7001407e5",
      "tree": "d2e2b36b4d88d2098000fcb56cc56e5d2e74fdf1",
      "parents": [
        "fd2dd9fbaf9e498ec63eef298921e36556f7214c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 20 16:51:59 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Apr 20 16:51:59 2010 -0400"
      },
      "message": "ext4: Issue the discard operation *before* releasing the blocks to be reused\n\nOtherwise, we can end up having data corruption because the blocks\ncould get reused and then discarded!\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d15579\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fd2dd9fbaf9e498ec63eef298921e36556f7214c",
      "tree": "fddd099cf65844f2d7d3498e25f83ec4c55fac52",
      "parents": [
        "8b472d739b2ddd8ab7fb278874f696cd95b25a5e"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sat Apr 03 17:44:16 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 03 17:44:16 2010 -0400"
      },
      "message": "ext4: Fix buffer head leaks after calls to ext4_get_inode_loc()\n\nCalls to ext4_get_inode_loc() returns with a reference to a buffer\nhead in iloc-\u003ebh.  The callers of this function in ext4_write_inode()\nwhen in no journal mode and in ext4_xattr_fiemap() don\u0027t release the\nbuffer head after using it.\n\nAddresses-Google-Bug: #2548165\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8b472d739b2ddd8ab7fb278874f696cd95b25a5e",
      "tree": "c820b44837a7e6130bbf7710e09ce5c06118e764",
      "parents": [
        "2eaa9cfdf33b8d7fb7aff27792192e0019ae8fc6"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sat Apr 03 16:45:06 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Apr 03 16:45:06 2010 -0400"
      },
      "message": "ext4: Fix possible lost inode write in no journal mode\n\nIn the no-journal case, ext4_write_inode() will fetch the bh and call\nsync_dirty_buffer() on it.  However, if the bh has already been\nwritten and the bh reclaimed for some other purpose, AND if the inode\nis the only one in the inode table block in use, then\next4_get_inode_loc() will not read the inode table block from disk,\nbut as an optimization, fill the block with zero\u0027s assuming that its\ncaller will copy in the on-disk version of the inode.  This is not\ndone by ext4_write_inode(), so the contents of the inode can simply\nget lost.  The fix is to use __ext4_get_inode_loc() with in_mem set to\n0, instead of ext4_get_inode_loc().  Long term the API needs to be\nfixed so it\u0027s obvious why latter is not safe.\n\nAddresses-Google-Bug: #2526446\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "39f1cd635cbe8a42c3c74fa6bf9f61c1156bd27b",
      "tree": "481d09761cdc5bb63592afeefa904175336cc1ee",
      "parents": [
        "126a031e437a4ab56a162e9cff7fc04b9f7efeec",
        "c4caae25187ff3f5e837c6f04eb1acc2723c72d3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 25 14:10:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 25 14:10:53 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  ext4: Fixed inode allocator to correctly track a flex_bg\u0027s used_dirs\n  ext4: Don\u0027t use delayed allocation by default when used instead of ext3\n  ext4: Fix spelling of CONTIG_FS_EXT3 to CONFIG_FS_EXT3\n  ext4: Fix estimate of # of blocks needed to write indirect-mapped files\n"
    },
    {
      "commit": "c4caae25187ff3f5e837c6f04eb1acc2723c72d3",
      "tree": "530f3dac932045e288366e260e446e96dd7f2fb7",
      "parents": [
        "ba69f9ab7df844125898104e854e063b47c26637"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Mar 23 21:32:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 23 21:32:00 2010 -0400"
      },
      "message": "ext4: Fixed inode allocator to correctly track a flex_bg\u0027s used_dirs\n\nWhen used_dirs was introduced for the flex_groups struct, it looks\nlike the accounting was not put into place properly, in some places\nmanipulating free_inodes rather than used_dirs.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ba69f9ab7df844125898104e854e063b47c26637",
      "tree": "d986b7fd25251f703d1f030f9eaa072b2daf55f2",
      "parents": [
        "37f328eb60a94779dd020084209fc4db2d6444a0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Mar 24 20:18:37 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 24 20:18:37 2010 -0400"
      },
      "message": "ext4: Don\u0027t use delayed allocation by default when used instead of ext3\n\nWhen ext4 driver is used to mount a filesystem instead of the ext3 file\nsystem driver (through CONFIG_EXT4_USE_FOR_EXT23), do not enable delayed\nallocation by default since some ext3 users and application writers have\ndeveloped unfortunate expectations about the safety of writing files on\nsystems subject to sudden and violent death without using fsync().\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "37f328eb60a94779dd020084209fc4db2d6444a0",
      "tree": "dce9767d5c53375b2b92deeadb5adf8a07951121",
      "parents": [
        "d330a5befb88875a9b3d2db62f9b74dadf660b13"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 24 20:06:41 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 24 20:06:41 2010 -0400"
      },
      "message": "ext4: Fix spelling of CONTIG_FS_EXT3 to CONFIG_FS_EXT3\n\nOops.  (Blush.)\n\nThanks to Sedat Dilek for pointing this out.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d330a5befb88875a9b3d2db62f9b74dadf660b13",
      "tree": "1d3d59cd0e35cf08519ecac6f086eb69f157cb20",
      "parents": [
        "57d54889cd00db2752994b389ba714138652e60c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Mar 14 18:17:54 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Mar 14 18:17:54 2010 -0400"
      },
      "message": "ext4: Fix estimate of # of blocks needed to write indirect-mapped files\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d15420\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c32da02342b7521df25fefc2ef20aee0e61cf887",
      "tree": "7e38f664fa3e13602c357d37f77d8adcf82fccc2",
      "parents": [
        "dca1d9f6d7ae428c193f32bd3e9a4ca13176648b",
        "318ae2edc3b29216abd8a2510f3f80b764f06858"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 16:04:50 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits)\n  doc: fix typo in comment explaining rb_tree usage\n  Remove fs/ntfs/ChangeLog\n  doc: fix console doc typo\n  doc: cpuset: Update the cpuset flag file\n  Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed\n  Remove drivers/parport/ChangeLog\n  Remove drivers/char/ChangeLog\n  doc: typo - Table 1-2 should refer to \"status\", not \"statm\"\n  tree-wide: fix typos \"ass?o[sc]iac?te\" -\u003e \"associate\" in comments\n  No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h\n  devres/irq: Fix devm_irq_match comment\n  Remove reference to kthread_create_on_cpu\n  tree-wide: Assorted spelling fixes\n  tree-wide: fix \u0027lenght\u0027 typo in comments and code\n  drm/kms: fix spelling in error message\n  doc: capitalization and other minor fixes in pnp doc\n  devres: typo fix s/dev/devm/\n  Remove redundant trailing semicolons from macros\n  fix typo \"definetly\" -\u003e \"definitely\" in comment\n  tree-wide: s/widht/width/g typo in comments\n  ...\n\nFix trivial conflict in Documentation/laptops/00-INDEX\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "52cf25d0ab7f78eeecc59ac652ed5090f69b619e",
      "tree": "031d1ffb3890bd69c0260c864c512e0be62ac05c",
      "parents": [
        "6c1733aca0b48db4d0e660d54976a1cca25b5eaf"
      ],
      "author": {
        "name": "Emese Revfy",
        "email": "re.emese@gmail.com",
        "time": "Tue Jan 19 02:58:23 2010 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:49 2010 -0800"
      },
      "message": "Driver core: Constify struct sysfs_ops in struct kobj_type\n\nConstify struct sysfs_ops.\n\nThis is part of the ops structure constification\neffort started by Arjan van de Ven et al.\n\nBenefits of this constification:\n\n * prevents modification of data that is shared\n   (referenced) by many other structure instances\n   at runtime\n\n * detects/prevents accidental (but not intentional)\n   modification attempts on archs that enforce\n   read-only kernel data at runtime\n\n * potentially better optimized code as the compiler\n   can assume that the const data cannot be changed\n\n * the compiler/linker move const data into .rodata\n   and therefore exclude them from false sharing\n\nSigned-off-by: Emese Revfy \u003cre.emese@gmail.com\u003e\nAcked-by: David Teigland \u003cteigland@redhat.com\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nAcked-by: Maciej Sosnowski \u003cmaciej.sosnowski@intel.com\u003e\nAcked-by: Hans J. Koch \u003chjk@linutronix.de\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
      "tree": "6e26fbdbb842b387697d73daf6e70cf718269a77",
      "parents": [
        "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
        "efd8f0e6f6c1faa041f228d7113bd3a9db802d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)\n  quota: stop using QUOTA_OK / NO_QUOTA\n  dquot: cleanup dquot initialize routine\n  dquot: move dquot initialization responsibility into the filesystem\n  dquot: cleanup dquot drop routine\n  dquot: move dquot drop responsibility into the filesystem\n  dquot: cleanup dquot transfer routine\n  dquot: move dquot transfer responsibility into the filesystem\n  dquot: cleanup inode allocation / freeing routines\n  dquot: cleanup space allocation / freeing routines\n  ext3: add writepage sanity checks\n  ext3: Truncate allocated blocks if direct IO write fails to update i_size\n  quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n  quota: generalize quota transfer interface\n  quota: sb_quota state flags cleanup\n  jbd: Delay discarding buffers in journal_unmap_buffer\n  ext3: quota_write cross block boundary behaviour\n  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n  quota: split out compat_sys_quotactl support from quota.c\n  quota: split out netlink notification support from quota.c\n  quota: remove invalid optimization from quota_sync_all\n  ...\n\nFixed trivial conflicts in fs/namei.c and fs/ufs/inode.c\n"
    },
    {
      "commit": "9467c4fdd66f6810cecef0f1173330f3c6e67d45",
      "tree": "5fea180a10127c893b288dff2c8788b72d2eaea3",
      "parents": [
        "35c2e967d067ff02dc944f2434f024419c2fe83a",
        "a9185b41a4f84971b930c519f0c63bd450c4810d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:53:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:53:53 2010 -0800"
      },
      "message": "Merge branch \u0027write_inode2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027write_inode2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  pass writeback_control to -\u003ewrite_inode\n  make sure data is on disk before calling -\u003ewrite_inode\n"
    },
    {
      "commit": "1f63b9c15b17d5af360c180f5c71537e954d5d3b",
      "tree": "4da17d6f2035ae093680fa2caa3e1c84b44bb237",
      "parents": [
        "b24bc1e61cec2174faf5dfa632da16b6ca17144f",
        "64e290ec69be39f1887fa0b403c1e417b6b038e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:47:00 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:47:00 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (36 commits)\n  ext4: fix up rb_root initializations to use RB_ROOT\n  ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl\n  ext4: Fix the NULL reference in double_down_write_data_sem()\n  ext4: Fix insertion point of extent in mext_insert_across_blocks()\n  ext4: consolidate in_range() definitions\n  ext4: cleanup to use ext4_grp_offs_to_block()\n  ext4: cleanup to use ext4_group_first_block_no()\n  ext4: Release page references acquired in ext4_da_block_invalidatepages\n  ext4: Fix ext4_quota_write cross block boundary behaviour\n  ext4: Convert BUG_ON checks to use ext4_error() instead\n  ext4: Use direct_IO_no_locking in ext4 dio read\n  ext4: use ext4_get_block_write in buffer write\n  ext4: mechanical rename some of the direct I/O get_block\u0027s identifiers\n  ext4: make \"offset\" consistent in ext4_check_dir_entry()\n  ext4: Handle non empty on-disk orphan link\n  ext4: explicitly remove inode from orphan list after failed direct io\n  ext4: fix error handling in migrate\n  ext4: deprecate obsoleted mount options\n  ext4: Fix fencepost error in chosing choosing group vs file preallocation.\n  jbd2: clean up an assertion in jbd2_journal_commit_transaction()\n  ...\n"
    },
    {
      "commit": "a9185b41a4f84971b930c519f0c63bd450c4810d",
      "tree": "268cf4e206cca12fb9e1dd68984e7c190e465b46",
      "parents": [
        "26821ed40b4230259e770c9911180f38fcaa6f59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:37 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:52 2010 -0500"
      },
      "message": "pass writeback_control to -\u003ewrite_inode\n\nThis gives the filesystem more information about the writeback that\nis happening.  Trond requested this for the NFS unstable write handling,\nand other filesystems might benefit from this too by beeing able to\ndistinguish between the different callers in more detail.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "64e290ec69be39f1887fa0b403c1e417b6b038e7",
      "tree": "8c7f87a2a4baa357e0cc04ab10b5af0b06273160",
      "parents": [
        "c437b2733520599a2c6e0dbcdeae611319f84707"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Mar 04 22:25:21 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 04 22:25:21 2010 -0500"
      },
      "message": "ext4: fix up rb_root initializations to use RB_ROOT\n\next4 uses rb_node \u003d NULL; to zero rb_root at few places.  Using\nRB_ROOT as the initializer is more portable in case the underlying\nimplementation of rbtrees changes in the future.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "871a293155a24554e153538d36e3a80fa169aefb",
      "tree": "7e38f5a2f9e87f63cbc4bc1077a4bb49dde441b0",
      "parents": [
        "907f4554e2521cb28b0009d17167760650a9561c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:07 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot initialize routine\n\nGet rid of the initialize dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_initialize helper to __dquot_initialize\nand vfs_dq_init to dquot_initialize to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9f7547580263d4a55efe06ce5cfd567f568be6e8",
      "tree": "6f926a075eeed815d0a6680c06f235da0e5ea6d9",
      "parents": [
        "257ba15cedf1288f0c96118d7e63947231d27278"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:05 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot drop routine\n\nGet rid of the drop dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_drop helper to __dquot_drop\nand vfs_dq_drop to dquot_drop to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "257ba15cedf1288f0c96118d7e63947231d27278",
      "tree": "7a977a0ea08a324ce74aedce19406cb0688f15e2",
      "parents": [
        "b43fa8284d7790d9cca32c9c55e24f29be2fa33b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:04 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: move dquot drop responsibility into the filesystem\n\nCurrently clear_inode calls vfs_dq_drop directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the drop inside the -\u003eclear_inode\nsuperblock operation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b43fa8284d7790d9cca32c9c55e24f29be2fa33b",
      "tree": "acb7f205fe2a1ae324e0e11c50f43baaa6b8dfab",
      "parents": [
        "759bfee658beab14af7b357156461d0eb852be2c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:03 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: cleanup dquot transfer routine\n\nGet rid of the transfer dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_transfer helper to __dquot_transfer\nand vfs_dq_transfer to dquot_transfer to have a consistent namespace,\nand make the new dquot_transfer return a normal negative errno value\nwhich all callers expect.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "63936ddaa16b9486e2d426ed7b09f559a5c60f87",
      "tree": "4cb1c4581799e10c26dd71d1a7d420de3c2cfd05",
      "parents": [
        "5dd4056db84387975140ff2568eaa0406f07985e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:01 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:28 2010 +0100"
      },
      "message": "dquot: cleanup inode allocation / freeing routines\n\nGet rid of the alloc_inode and free_inode dquot operations - they are\nalways called from the filesystem and if a filesystem really needs\ntheir own (which none currently does) it can just call into it\u0027s\nown routine directly.\n\nAlso get rid of the vfs_dq_alloc/vfs_dq_free wrappers and always\ncall the lowlevel dquot_alloc_inode / dqout_free_inode routines\ndirectly, which now lose the number argument which is always 1.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5dd4056db84387975140ff2568eaa0406f07985e",
      "tree": "03c26d7f6e3367b167bfeeb1a01654c6619573f4",
      "parents": [
        "49792c806d0bfd53afc789dcdf50dc9bed2c5b83"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:00 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:28 2010 +0100"
      },
      "message": "dquot: cleanup space allocation / freeing routines\n\nGet rid of the alloc_space, free_space, reserve_space, claim_space and\nrelease_rsv dquot operations - they are always called from the filesystem\nand if a filesystem really needs their own (which none currently does)\nit can just call into it\u0027s own routine directly.\n\nMove shared logic into the common __dquot_alloc_space,\ndquot_claim_space_nodirty and __dquot_free_space low-level methods,\nand rationalize the wrappers around it to move as much as possible\ncode into the common block for CONFIG_QUOTA vs not.  Also rename\nall these helpers to be named dquot_* instead of vfs_dq_*.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0f2cc4ecd81dc1917a041dc93db0ada28f8356fa",
      "tree": "f128b50f48f50f0cda6d2b20b53e9ad6e2dfded3",
      "parents": [
        "1fae4cfb97302289bb5df6a8195eb28385d0b002",
        "9643f5d94aadd47a5fa9754fb60f2c957de05903"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 04 08:15:33 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 04 08:15:33 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)\n  init: Open /dev/console from rootfs\n  mqueue: fix typo \"failues\" -\u003e \"failures\"\n  mqueue: only set error codes if they are really necessary\n  mqueue: simplify do_open() error handling\n  mqueue: apply mathematics distributivity on mq_bytes calculation\n  mqueue: remove unneeded info-\u003emessages initialization\n  mqueue: fix mq_open() file descriptor leak on user-space processes\n  fix race in d_splice_alias()\n  set S_DEAD on unlink() and non-directory rename() victims\n  vfs: add NOFOLLOW flag to umount(2)\n  get rid of -\u003emnt_parent in tomoyo/realpath\n  hppfs can use existing proc_mnt, no need for do_kern_mount() in there\n  Mirror MS_KERNMOUNT in -\u003emnt_flags\n  get rid of useless vfsmount_lock use in put_mnt_ns()\n  Take vfsmount_lock to fs/internal.h\n  get rid of insanity with namespace roots in tomoyo\n  take check for new events in namespace (guts of mounts_poll()) to namespace.c\n  Don\u0027t mess with generic_permission() under -\u003ed_lock in hpfs\n  sanitize const/signedness for udf\n  nilfs: sanitize const/signedness in dealing with -\u003ed_name.name\n  ...\n\nFix up fairly trivial (famous last words...) conflicts in\ndrivers/infiniband/core/uverbs_main.c and security/tomoyo/realpath.c\n"
    },
    {
      "commit": "c437b2733520599a2c6e0dbcdeae611319f84707",
      "tree": "539c7b820d955f810912da7bcd82a7fb3b496501",
      "parents": [
        "7247c0caa23d94a1cb6b307edba9dc45fb0798d4"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Thu Mar 04 00:39:24 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 04 00:39:24 2010 -0500"
      },
      "message": "ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl\n\na) Fix sparse warning in ext4_ioctl()\nb) Remove unneeded variable in mext_leaf_block()\nc) Fix spelling typo in mext_check_arguments()\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7247c0caa23d94a1cb6b307edba9dc45fb0798d4",
      "tree": "435dd65425ea98ce4e10396f27c7a2f02dde15c8",
      "parents": [
        "5fd5249aa36fad98c9fd5edced352939e54f9324"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Thu Mar 04 00:34:58 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 04 00:34:58 2010 -0500"
      },
      "message": "ext4: Fix the NULL reference in double_down_write_data_sem()\n\nIf EXT4_IOC_MOVE_EXT ioctl is called with NULL donor_fd, fget() in\next4_ioctl() gets inappropriate file structure for donor; so we need\nto do this check earlier, before calling double_down_write_data_sem().\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5fd5249aa36fad98c9fd5edced352939e54f9324",
      "tree": "ee8add19d98cc2fc47133b3346b5e55ecc68478e",
      "parents": [
        "731eb1a03a8445cde2cb23ecfb3580c6fa7bb690"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Thu Mar 04 00:31:06 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 04 00:31:06 2010 -0500"
      },
      "message": "ext4: Fix insertion point of extent in mext_insert_across_blocks()\n\nIf the leaf node has 2 extent space or fewer and EXT4_IOC_MOVE_EXT\nioctl is called with the file offset where after the 2nd extent\ncovers, mext_insert_across_blocks() always tries to insert extent into\nthe first extent.  As a result, the file gets corrupted because of\nwrong extent order.  The patch fixes this problem.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.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": "bda00de7e8569b1fcde27b68fa59e74e14c5f93a",
      "tree": "a27ac13a211b9adc56621ca28e2f801c33304788",
      "parents": [
        "5661bd6861b7490394e29aaf74dca812188272e4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed Mar 03 23:53:25 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 03 23:53:25 2010 -0500"
      },
      "message": "ext4: cleanup to use ext4_grp_offs_to_block()\n\nMore cleanup to convert open-coded calculations of the first block\nnumber of a free extent to use ext4_grp_offs_to_block() instead.\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": "9b1d0998d24f9c207d5fbdd0b8bac07284e0eda7",
      "tree": "0670c100d74086884c772e72d3e4135b57118515",
      "parents": [
        "67eeb5685d2a211c0252ac7884142e503c759500"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Mar 03 16:19:32 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Mar 03 16:19:32 2010 -0500"
      },
      "message": "ext4: Release page references acquired in ext4_da_block_invalidatepages\n\nWe forget to release page references we acquire in\next4_da_block_invalidatepages.  Luckily, this function gets called only if we\nare not able to allocate blocks for delay-allocated data so that function\nshould better never be called.\n\nAlso cleanup handling of index variable.\n\nReported-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "3899167dbd6832a3d8d7171b425257ad46b6c40c",
      "tree": "2a3bc9562e061c03c444e4ab1d5df2a3d9e15680",
      "parents": [
        "f598f9f1252b33410ffc52f51e117645ac5116c4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 23 20:10:29 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 03 14:07:54 2010 -0500"
      },
      "message": "Get rid of mnt_mountpoint abuses in ext4\n\npath to mnt/mnt-\u003emnt_root is no worse than that to\nmnt-\u003emnt_parent/mnt-\u003emnt_mountpoint *and* needs no\npinning the sucker down (mnt is not going away and\nmnt-\u003emnt_root won\u0027t change)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "67eeb5685d2a211c0252ac7884142e503c759500",
      "tree": "48f01e99b3cd52e20d5ac253ddd87e45a0a61af0",
      "parents": [
        "273df556b6ee2065bfe96edab5888d3dc9b108d8"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Mar 02 08:08:51 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 02 08:08:51 2010 -0500"
      },
      "message": "ext4: Fix ext4_quota_write cross block boundary behaviour\n\nWe always assume what dquot update result in changes in one data block\nBut ext4_quota_write() function may handle cross block boundary writes\nIn fact if this ever happen it will result in incorrect journal\ncredits reservation, and later a BUG_ON.  As soon this never happen\nthe boundary cross loop is NOOP.  In order to make things straight\nlet\u0027s remove this loop and assert cross boundary condition.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "273df556b6ee2065bfe96edab5888d3dc9b108d8",
      "tree": "19c73685fce581e4ed85ff845e0b2fc485cedf9c",
      "parents": [
        "b7adc1f363e72e9131a582cc2cb00eaf83f51a39"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Tue Mar 02 11:46:09 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 02 11:46:09 2010 -0500"
      },
      "message": "ext4: Convert BUG_ON checks to use ext4_error() instead\n\nConvert a bunch of BUG_ONs to emit a ext4_error() message and return\nEIO.  This is a first pass and most notably does _not_ cover\nmballoc.c, which is a morass of void functions.\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b7adc1f363e72e9131a582cc2cb00eaf83f51a39",
      "tree": "9316acb7855ef64f051b4ee4c01f431c15cb4c1e",
      "parents": [
        "744692dc059845b2a3022119871846e74d4f6e11"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Tue Mar 02 13:26:36 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 02 13:26:36 2010 -0500"
      },
      "message": "ext4: Use direct_IO_no_locking in ext4 dio read\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "744692dc059845b2a3022119871846e74d4f6e11",
      "tree": "ed246651aebcb8dae57de8c58dc20983064ee017",
      "parents": [
        "c7064ef13b2181a489836349f9baf87df0dab28f"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Thu Mar 04 16:14:02 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 04 16:14:02 2010 -0500"
      },
      "message": "ext4: use ext4_get_block_write in buffer write\n\nAllocate uninitialized extent before ext4 buffer write and\nconvert the extent to initialized after io completes.\nThe purpose is to make sure an extent can only be marked\ninitialized after it has been written with new data so\nwe can safely drop the i_mutex lock in ext4 DIO read without\nexposing stale data. This helps to improve multi-thread DIO\nread performance on high-speed disks.\n\nSkip the nobh and data\u003djournal mount cases to make things simple for now.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c7064ef13b2181a489836349f9baf87df0dab28f",
      "tree": "433d86d9ed4285e5c5e7f24fbbaa7f48fad09381",
      "parents": [
        "b8b8afe236e97b6359d46d3a3f8c46455e192271"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Tue Mar 02 13:28:44 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 02 13:28:44 2010 -0500"
      },
      "message": "ext4: mechanical rename some of the direct I/O get_block\u0027s identifiers\n\nThis commit renames some of the direct I/O\u0027s block allocation flags,\nvariables, and functions introduced in Mingming\u0027s \"Direct IO for holes\nand fallocate\" patches so that they can be used by ext4\u0027s buffered\nwrite path as well.  Also changed the related function comments\naccordingly to cover both direct write and buffered write cases.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b8b8afe236e97b6359d46d3a3f8c46455e192271",
      "tree": "efa7221c7c14ae20b5b5e1f66bee12c253b9fc26",
      "parents": [
        "6e3617e579e070d3655a93ee9ed7149113e795e0"
      ],
      "author": {
        "name": "Toshiyuki Okajima",
        "email": "toshi.okajima@jp.fujitsu.com",
        "time": "Tue Mar 02 00:21:35 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Mar 02 00:21:35 2010 -0500"
      },
      "message": "ext4: make \"offset\" consistent in ext4_check_dir_entry()\n\nThe callers of ext4_check_dir_entry() usually pass in the \"file\noffset\" (ext4_readdir, htree_dirblock_to_tree, search_dirblock,\next4_dx_find_entry, empty_dir), but a few callers (add_dirent_to_buf,\next4_delete_entry) only pass in the buffer offset.\n\nTo accomodate those last two (which would be hard to fix otherwise),\nthis patch changes ext4_check_dir_entry() to print the physical block\nnumber and the relative offset as well as the passed-in offset.\n\nSigned-off-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "6e3617e579e070d3655a93ee9ed7149113e795e0",
      "tree": "d27c90ac6366e5c9018aeae5d6052f3ae1a4243b",
      "parents": [
        "da1dafca84413145f5ac59998b4cdd06fb89f721"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Mar 01 23:29:39 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 01 23:29:39 2010 -0500"
      },
      "message": "ext4: Handle non empty on-disk orphan link\n\nIn case of truncate errors we explicitly remove inode from in-core\norphan list via orphan_del(NULL, inode) without modifying the on-disk list.\n\nBut later on, the same inode may be inserted in the orphan list again\nwhich will result the on-disk linked list getting corrupted.  If inode\ni_dtime contains valid value, then skip on-disk list modification.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "da1dafca84413145f5ac59998b4cdd06fb89f721",
      "tree": "60582ee94c6867f234bb15bb18af8dd9be4f1693",
      "parents": [
        "f39490bcd1691d65dc33689222a12e1fc13dd824"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Mar 01 23:15:02 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 01 23:15:02 2010 -0500"
      },
      "message": "ext4: explicitly remove inode from orphan list after failed direct io\n\nOtherwise non-empty orphan list will be triggered on umount.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f39490bcd1691d65dc33689222a12e1fc13dd824",
      "tree": "721c46882dadb0ca8d3a4ab7d42e58f9eeead2da",
      "parents": [
        "437ca0fda3b442dff9e591581b5e1ffdfec24660"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Mar 01 23:14:36 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 01 23:14:36 2010 -0500"
      },
      "message": "ext4: fix error handling in migrate\n\nSet i_nlink to zero for temporary inode from very beginning.\notherwise we may fail to start new journal handle and this\ninode will be unreferenced but with i_nlink \u003d\u003d 1\nSince we hold inode reference it can not be pruned.\n\nAlso add missed journal_start retval check.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "437ca0fda3b442dff9e591581b5e1ffdfec24660",
      "tree": "863f6e2d47abf48ce6513cb860a8fda0166b7edb",
      "parents": [
        "cc483f102c3f703e853c96f95a654f0106fb2603"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Mar 01 22:29:21 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 01 22:29:21 2010 -0500"
      },
      "message": "ext4: deprecate obsoleted mount options\n\nDeclare following list of mount options as deprecated:\n - bsddf, miniddf\n - grpid, bsdgroups, nogrpid, sysvgroups\n\nDeclare following list of default mount options as deprecated:\n - bsdgroups\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cc483f102c3f703e853c96f95a654f0106fb2603",
      "tree": "82f340b2301b01dfd5d6aca693808f9f1a774b8e",
      "parents": [
        "23e2af3518facab6838d7aac1f46fbd7a5a290ce"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Mar 01 19:06:35 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 01 19:06:35 2010 -0500"
      },
      "message": "ext4: Fix fencepost error in chosing choosing group vs file preallocation.\n\nThe ext4 multiblock allocator decides whether to use group or file\npreallocation based on the file size.  When the file size reaches\ns_mb_stream_request (default is 16 blocks), it changes to use a\nfile-specific preallocation. This is cool, but it has a tiny problem.\n\nSee a simple script:\nmkfs.ext4 -b 1024 /dev/sda8 1000000\nmount -t ext4 -o nodelalloc /dev/sda8 /mnt/ext4\nfor((i\u003d0;i\u003c5;i++))\ndo\ncat /mnt/4096\u003e\u003e/mnt/ext4/a\t#4096 is a file with 4096 characters.\ncat /mnt/4096\u003e\u003e/mnt/ext4/b\ndone\ndebuge4fs -R \u0027stat a\u0027 /dev/sda8|grep BLOCKS -A 1\n\nAnd you get\nBLOCKS:\n(0-14):8705-8719, (15):2356, (16-19):8465-8468\n\nSo there are 3 extents, a bit strange for the lonely 15th logical\nblock.  As we write to the 16 blocks, we choose file preallocation in\next4_mb_group_or_file, but in ext4_mb_normalize_request, we meet with\nthe 16*1024 range, so no preallocation will be carried. file b then\nreserves the space after \u00272356\u0027, so when when write 16, we start from\nanother part.\n\nThis patch just change the check in ext4_mb_group_or_file, so\nthat for the lonely 15 we will still use group preallocation.\nAfter the patch, we will get:\ndebuge4fs -R \u0027stat a\u0027 /dev/sda8|grep BLOCKS -A 1\nBLOCKS:\n(0-15):8705-8720, (16-19):8465-8468\n\nLooks more sane. Thanks.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "56c50f11f4d11cb14d78fe52330efb69d219c62f",
      "tree": "1abc6e33a0e4c8e59346d630856753674ae58cfa",
      "parents": [
        "482a74258fd08d30bf2ab0f5549afab5a5c9daba"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Mar 01 23:28:41 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Mar 01 23:28:41 2010 -0500"
      },
      "message": "ext4: trivial quota cleanup\n\nThe patch is aimed to reorganize and simplify quota code a bit.\nQuota code is itself complex enough, but we can make it more readable\nin some places:\n- Move quota option parsing to separate functions.\n- Simplify old-quota and journaled-quota mix check.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "482a74258fd08d30bf2ab0f5549afab5a5c9daba",
      "tree": "6a1bae7df6861f7bdb7d21e1bab3385d352c92f7",
      "parents": [
        "c8d46e41bc744c8fa0092112af3942fcd46c8b18"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Feb 24 11:35:32 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 24 11:35:32 2010 -0500"
      },
      "message": "ext4: mount flags manipulation cleanup\n\nReplace intermediate EXT4_MOUNT_XXX flags manipulation to\ncorresponding macro.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c8d46e41bc744c8fa0092112af3942fcd46c8b18",
      "tree": "fd8bad55c3c9903b6c798b838396bc832bbf7f4b",
      "parents": [
        "73b50c1c92666d326b5fa2c945d46509f2f6d91f"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Wed Feb 24 09:52:53 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Feb 24 09:52:53 2010 -0500"
      },
      "message": "ext4: Add flag to files with blocks intentionally past EOF\n\nfallocate() may potentially instantiate blocks past EOF, depending\non the flags used when it is called.\n\ne2fsck currently has a test for blocks past i_size, and it\nsometimes trips up - noticeably on xfstests 013 which runs fsstress.\n\nThis patch from Jiayang does fix it up - it (along with\ne2fsprogs updates and other patches recently from Aneesh) has\nsurvived many fsstress runs in a row.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "003cb608a2533d0927a83bc4e07e46d7a622eda9",
      "tree": "19347ffcec1c09cda9c4fd01addd8797cf8e31c4",
      "parents": [
        "43cf38eb5cea91245502df3fcee4dbfc1c74dd1c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:39:01 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 17 11:17:38 2010 +0900"
      },
      "message": "percpu: add __percpu sparse annotations to fs\n\nAdd __percpu sparse annotations to fs.\n\nThese annotations are to make sparse consider percpu variables to be\nin a different address space and warn if accessed without going\nthrough percpu accessors.  This patch doesn\u0027t affect normal builds.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "73b50c1c92666d326b5fa2c945d46509f2f6d91f",
      "tree": "87e2cc6fed3259a83364ede33d8f4d68173f8175",
      "parents": [
        "ba869023eac8354b17acdcff82b851ea8e7b1809"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Tue Feb 16 15:06:29 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 16 15:06:29 2010 -0500"
      },
      "message": "ext4: Fix BUG_ON at fs/buffer.c:652 in no journal mode\n\nCalls to ext4_handle_dirty_metadata should only pass in an inode\npointer for inode-specific metadata, and not for shared metadata\nblocks such as inode table blocks, block group descriptors, the\nsuperblock, etc.\n\nThe BUG_ON can get tripped when updating a special device (such as a\nblock device) that is opened (so that i_mapping is set in\nfs/block_dev.c) and the file system is mounted in no journal mode.\n\nAddresses-Google-Bug: #2404870\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "aca92ff6f57c000d1b4523e383c8bd6b8269b8b1",
      "tree": "c810b72c091b8bf596a21ee4d56c830b9d0c4c50",
      "parents": [
        "9aaab0589baa61d637a52badddbff2d74f35a955"
      ],
      "author": {
        "name": "Leonard Michlmayr",
        "email": "leonard.michlmayr@gmail.com",
        "time": "Thu Mar 04 17:07:28 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 04 17:07:28 2010 -0500"
      },
      "message": "ext4: correctly calculate number of blocks for fiemap\n\next4_fiemap() rounds the length of the requested range down to\nblocksize, which is is not the true number of blocks that cover the\nrequested region.  This problem is especially impressive if the user\nrequests only the first byte of a file: not a single extent will be\nreported.\n\nWe fix this by calculating the last block of the region and then\nsubtract to find the number of blocks in the extents.\n\nSigned-off-by: Leonard Michlmayr \u003cleonard.michlmayr@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "9aaab0589baa61d637a52badddbff2d74f35a955",
      "tree": "64b52a1a7ced85f468545d7ef5f4dd2762ecd2ff",
      "parents": [
        "12062dddda450976b129dcb1bacd91acaf4d8030"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Mon Feb 15 14:26:16 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 15 14:26:16 2010 -0500"
      },
      "message": "ext4: add missing error checking to ext4_expand_extra_isize_ea()\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.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": "3ad2f3fbb961429d2aa627465ae4829758bc7e07",
      "tree": "f365c513e8f5b477a61336a600ff54f32b7ad6e1",
      "parents": [
        "1537a3638cbf741d3826c1002026cce487a6bee0"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Wed Feb 03 08:01:28 2010 +0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 09 11:13:56 2010 +0100"
      },
      "message": "tree-wide: Assorted spelling fixes\n\nIn particular, several occurances of funny versions of \u0027success\u0027,\n\u0027unknown\u0027, \u0027therefore\u0027, \u0027acknowledge\u0027, \u0027argument\u0027, \u0027achieve\u0027, \u0027address\u0027,\n\u0027beginning\u0027, \u0027desirable\u0027, \u0027separate\u0027 and \u0027necessary\u0027 are fixed.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "1537a3638cbf741d3826c1002026cce487a6bee0",
      "tree": "ccb28bc0cbad64686c7cff704a6e7ee898aff35f",
      "parents": [
        "b5218a87cbe0f01d551b2dae90b54cad8ded72df"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Fri Jan 29 15:57:49 2010 +0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Feb 05 12:22:45 2010 +0100"
      },
      "message": "tree-wide: fix \u0027lenght\u0027 typo in comments and code\n\nSome misspelled occurences of \u0027octet\u0027 and some comments were also fixed\nas I was on it.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d6b198bc8a67deee5984fb9506f000ae4fce9d75",
      "tree": "443b1ddaf619a87674bf42bc18360789f4a8b812",
      "parents": [
        "db18efac0bd644e4b7af757394ca0bef8d91dcee"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Sun Jan 17 19:10:07 2010 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Feb 05 12:22:36 2010 +0100"
      },
      "message": "fix ext3/ext4 comment typo compain -\u003e complain\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@holoscopio.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "f710b4b96ba292dfed2153afc47e9063b0abfd89",
      "tree": "fdfdc979eb03c41c5785b4153e6337d61a4c89e2",
      "parents": [
        "19f5fb7ad679bb361222c7916086435020c37cce"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 25 03:31:32 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 25 03:31:32 2010 -0500"
      },
      "message": "ext4: Reserve INCOMPAT_EA_INODE and INCOMPAT_DIRDATA feature codepoints\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "19f5fb7ad679bb361222c7916086435020c37cce",
      "tree": "9e301163075c4faaf340cf50afd51855c76acd8c",
      "parents": [
        "d2eecb03936878ec574ade5532fa83df7d75dde7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jan 24 14:34:07 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Jan 24 14:34:07 2010 -0500"
      },
      "message": "ext4: Use bitops to read/modify EXT4_I(inode)-\u003ei_state\n\nAt several places we modify EXT4_I(inode)-\u003ei_state without holding\ni_mutex (ext4_release_file, ext4_bmap, ext4_journalled_writepage,\next4_do_update_inode, ...). These modifications are racy and we can\nlose updates to i_state. So convert handling of i_state to use bitops\nwhich are atomic.\n\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1296cc85c26e94eb865d03f82140f27d598de467",
      "tree": "b8a2bc06ecd992a86179ebcd9c087994c676c291",
      "parents": [
        "5f634d064c709ea02c3cdaa850a08323a4a4bf28"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jan 15 01:27:59 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 15 01:27:59 2010 -0500"
      },
      "message": "ext4: Drop EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE flag\n\nWe should update reserve space if it is delalloc buffer\nand that is indicated by EXT4_GET_BLOCKS_DELALLOC_RESERVE flag.\nSo use EXT4_GET_BLOCKS_DELALLOC_RESERVE in place of\nEXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "5f634d064c709ea02c3cdaa850a08323a4a4bf28",
      "tree": "3f81e9c56cd8348b7bb94f1d54efff696374c929",
      "parents": [
        "1db913823c0f8360fccbd24ca67eb073966a5ffd"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Jan 25 04:00:31 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Jan 25 04:00:31 2010 -0500"
      },
      "message": "ext4: Fix quota accounting error with fallocate\n\nWhen we fallocate a region of the file which we had recently written,\nand which is still in the page cache marked as delayed allocated blocks\nwe need to make sure we don\u0027t do the quota update on writepage path.\nThis is because the needed quota updated would have already be done\nby fallocate.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "1db913823c0f8360fccbd24ca67eb073966a5ffd",
      "tree": "ec5f7be2cfa884b04ca3d26c2dee53283fe16ca7",
      "parents": [
        "74d2e4f8d79ae0c4b6ec027958d5b18058662eea"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Jan 22 17:06:20 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 22 17:06:20 2010 -0500"
      },
      "message": "ext4: Handle -EDQUOT error on write\n\nWe need to release the journal before we do a write_inode.  Otherwise\nwe could deadlock.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "9d0be50230b333005635967f7ecd4897dbfd181b",
      "tree": "59aefe29e33284e1d904b23eaf2cc98994431374",
      "parents": [
        "ee5f4d9cdf32fd99172d11665c592a288c2b1ff4"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 01 02:41:30 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 01 02:41:30 2010 -0500"
      },
      "message": "ext4: Calculate metadata requirements more accurately\n\nIn the past, ext4_calc_metadata_amount(), and its sub-functions\next4_ext_calc_metadata_amount() and ext4_indirect_calc_metadata_amount()\nbadly over-estimated the number of metadata blocks that might be\nrequired for delayed allocation blocks.  This didn\u0027t matter as much\nwhen functions which managed the reserved metadata blocks were more\naggressive about dropping reserved metadata blocks as delayed\nallocation blocks were written, but unfortunately they were too\naggressive.  This was fixed in commit 0637c6f, but as a result the\nover-estimation by ext4_calc_metadata_amount() would lead to reserving\n2-3 times the number of pending delayed allocation blocks as\npotentially required metadata blocks.  So if there are 1 megabytes of\nblocks which have been not yet been allocation, up to 3 megabytes of\nspace would get reserved out of the user\u0027s quota and from the file\nsystem free space pool until all of the inode\u0027s data blocks have been\nallocated.\n\nThis commit addresses this problem by much more accurately estimating\nthe number of metadata blocks that will be required.  It will still\nsomewhat over-estimate the number of blocks needed, since it must make\na worst case estimate not knowing which physical blocks will be\nneeded, but it is much more accurate than before.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "ee5f4d9cdf32fd99172d11665c592a288c2b1ff4",
      "tree": "a1ae2af609d49524d6b807890852bc549889821f",
      "parents": [
        "0637c6f4135f592f094207c7c21e7c0fc5557834"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 01 02:36:15 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 01 02:36:15 2010 -0500"
      },
      "message": "ext4: Fix accounting of reserved metadata blocks\n\nCommit 0637c6f had a typo which caused the reserved metadata blocks to\nnot be released correctly.   Fix this.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0637c6f4135f592f094207c7c21e7c0fc5557834",
      "tree": "ee76fc861dffa902e80d0d11c681f5dfa2fcc569",
      "parents": [
        "515f41c33a9d44a964264c9511ad2c869af1fac3"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 30 14:20:45 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 30 14:20:45 2009 -0500"
      },
      "message": "ext4: Patch up how we claim metadata blocks for quota purposes\n\nAs reported in Kernel Bugzilla #14936, commit d21cd8f triggered a BUG\nin the function ext4_da_update_reserve_space() found in\nfs/ext4/inode.c.  The root cause of this BUG() was caused by the fact\nthat ext4_calc_metadata_amount() can severely over-estimate how many\nmetadata blocks will be needed, especially when using direct\nblock-mapped files.\n\nIn addition, it can also badly *under* estimate how much space is\nneeded, since ext4_calc_metadata_amount() assumes that the blocks are\ncontiguous, and this is not always true.  If the application is\nwriting blocks to a sparse file, the number of metadata blocks\nnecessary can be severly underestimated by the functions\next4_da_reserve_space(), ext4_da_update_reserve_space() and\next4_da_release_space().  This was the cause of the dq_claim_space\nreports found on kerneloops.org.\n\nUnfortunately, doing this right means that we need to massively\nover-estimate the amount of free space needed.  So in some cases we\nmay need to force the inode to be written to disk asynchronously in\nto avoid spurious quota failures.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d14936\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "515f41c33a9d44a964264c9511ad2c869af1fac3",
      "tree": "bd1790a9787ec171168a87268d3218122e087f2e",
      "parents": [
        "2faf2e19dd0e060eeb32442858ef495ac3083277"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Tue Dec 29 23:39:06 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 29 23:39:06 2009 -0500"
      },
      "message": "ext4: Ensure zeroout blocks have no dirty metadata\n\nThis fixes a bug (found by Curt Wohlgemuth) in which new blocks\nreturned from an extent created with ext4_ext_zeroout() can have dirty\nmetadata still associated with them.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2faf2e19dd0e060eeb32442858ef495ac3083277",
      "tree": "cd8c28414036f2d8ad45663371e1544d4efad5d4",
      "parents": [
        "6d3b82f2d31f22085e5711b28dddcb9fb3d97a25"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Fri Dec 25 15:46:07 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Dec 25 15:46:07 2009 -0500"
      },
      "message": "ext4: return correct wbc.nr_to_write in ext4_da_writepages\n\nWhen ext4_da_writepages increases the nr_to_write in writeback_control\nthen it must always re-base the return value.  Originally there was a\n(misguided) attempt prevent wbc.nr_to_write from going negative.  In\nfact, it\u0027s necessary to allow nr_to_write to be negative so that\nwb_writeback() can correctly calculate how many pages were actually\nwritten.  \n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c8afb44682fcef6273e8b8eb19fab13ddd05b386",
      "tree": "44c170427e54b611d7f02a31bbd5733cc9cf1dd0",
      "parents": [
        "17bd55d037a02b04d9119511cfd1a4b985d20f63"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Dec 23 07:58:12 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 07:58:12 2009 -0500"
      },
      "message": "ext4: flush delalloc blocks when space is low\n\nCreating many small files in rapid succession on a small\nfilesystem can lead to spurious ENOSPC; on a 104MB filesystem:\n\nfor i in `seq 1 22500`; do\n    echo -n \u003e $SCRATCH_MNT/$i\n    echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \u003e $SCRATCH_MNT/$i\ndone\n\nleads to ENOSPC even though after a sync, 40% of the fs is free\nagain.\n\nThis is because we reserve worst-case metadata for delalloc writes,\nand when data is allocated that worst-case reservation is not\nusually needed.\n\nWhen freespace is low, kicking off an async writeback will start\nconverting that worst-case space usage into something more realistic,\nalmost always freeing up space to continue.\n\nThis resolves the testcase for me, and survives all 4 generic\nENOSPC tests in xfstests.\n\nWe\u0027ll still need a hard synchronous sync to squeeze out the last bit,\nbut this fixes things up to a large degree.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d3533d72e7478a61a3e1936956fc825289a2acf4",
      "tree": "5932e890fa8185bd792a94730725665a26a6102a",
      "parents": [
        "a6b43e382568a49cc64291bfaddf896652d44f70"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Dec 23 07:52:31 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 07:52:31 2009 -0500"
      },
      "message": "ext4: Eliminate potential double free on error path\n\nb_entry_name and buffer are initially NULL, are initialized within a loop\nto the result of calling kmalloc, and are freed at the bottom of this loop.\nThe loop contains gotos to cleanup, which also frees b_entry_name and\nbuffer.  Some of these gotos are before the reinitializations of\nb_entry_name and buffer.  To maintain the invariant that b_entry_name and\nbuffer are NULL at the top of the loop, and thus acceptable arguments to\nkfree, these variables are now set to NULL after the kfrees.\n\nThis seems to be the simplest solution.  A more complicated solution\nwould be to introduce more labels in the error handling code at the end of\nthe function.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@r@\nidentifier E;\nexpression E1;\niterator I;\nstatement S;\n@@\n\n*kfree(E);\n... when !\u003d E \u003d E1\n    when !\u003d I(E,...) S\n    when !\u003d \u0026E\n*kfree(E);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a6b43e382568a49cc64291bfaddf896652d44f70",
      "tree": "b7ef950c5d704dc72e054ad621fa34d82ae4f9cf",
      "parents": [
        "cc3e1bea5d87635c519da657303690f5538bb4eb"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Dec 23 07:48:08 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 07:48:08 2009 -0500"
      },
      "message": "ext4: fix unsigned long long printk warning in super.c\n\nsparc64 allmodconfig:\n\nfs/ext4/super.c: In function `lifetime_write_kbytes_show\u0027:\nfs/ext4/super.c:2174: warning: long long unsigned int format, long unsigned int arg (arg 4)\nfs/ext4/super.c:2174: warning: long long unsigned int format, long unsigned int arg (arg 4)\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "cc3e1bea5d87635c519da657303690f5538bb4eb",
      "tree": "727b348d0389a2fe6618fb224fe1d81d207668c4",
      "parents": [
        "034fb4c95fc0fed4ec4a50778127b92c6f2aec01"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 06:52:08 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 23 06:52:08 2009 -0500"
      },
      "message": "ext4, jbd2: Add barriers for file systems with exernal journals\n\nThis is a bit complicated because we are trying to optimize when we\nsend barriers to the fs data disk.  We could just throw in an extra\nbarrier to the data disk whenever we send a barrier to the journal\ndisk, but that\u0027s not always strictly necessary.\n\nWe only need to send a barrier during a commit when there are data\nblocks which are must be written out due to an inode written in\nordered mode, or if fsync() depends on the commit to force data blocks\nto disk.  Finally, before we drop transactions from the beginning of\nthe journal during a checkpoint operation, we need to guarantee that\nany blocks that were flushed out to the data disk are firmly on the\nrust platter before we drop the transaction from the journal.\n\nThanks to Oleg Drokin for pointing out this flaw in ext3/ext4.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "034fb4c95fc0fed4ec4a50778127b92c6f2aec01",
      "tree": "663bf0c4d0123f6aeeda8fd7124a5921433101ba",
      "parents": [
        "51b7e3c9fbe7d22d4e355101e9a73b44fc5c9feb"
      ],
      "author": {
        "name": "Surbhi Palande",
        "email": "surbhi.palande@canonical.com",
        "time": "Mon Dec 14 09:53:52 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 14 09:53:52 2009 -0500"
      },
      "message": "ext4: replace BUG() with return -EIO in ext4_ext_get_blocks\n\nThis patch fixes the Kernel BZ #14286.  When the address of an extent\ncorresponding to a valid block is corrupted, a -EIO should be reported\ninstead of a BUG().  This situation should not normally not occur\nexcept in the case of a corrupted filesystem.  If however it does,\nthen the system should not panic directly but depending on the mount\ntime options appropriate action should be taken. If the mount options\nso permit, the I/O should be gracefully aborted by returning a -EIO.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d14286\n\nSigned-off-by: Surbhi Palande \u003csurbhi.palande@canonical.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "51b7e3c9fbe7d22d4e355101e9a73b44fc5c9feb",
      "tree": "490f2fd007d657a09ad33820c85ff75ee15bce96",
      "parents": [
        "84c664730374248adaf420c0846a6158d64413c7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 21 10:56:09 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 21 10:56:09 2009 -0500"
      },
      "message": "ext4: add module aliases for ext2 and ext3\n\nAdd module aliases for ext2 and ext3 when CONFIG_EXT4_USE_FOR_EXT23 is\nset.  This makes the existing user-space stuff like mkinitrd working\nas is.\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "84c664730374248adaf420c0846a6158d64413c7",
      "tree": "cdc27d790695d6c59c58ce9201a1232c02947ae1",
      "parents": [
        "149feb00d7c3f4f06896b245533c957b54e3e052"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Mon Dec 21 10:54:09 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 21 10:54:09 2009 -0500"
      },
      "message": "ext4: Don\u0027t ask about supporting ext2/3 in ext4 if ext4 is not configured\n\nDon\u0027t offer to build ext2/3 support into ext4 if ext4 itself is not\nconfigured on.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "149feb00d7c3f4f06896b245533c957b54e3e052",
      "tree": "116556a8e8943d1b315235e960a1d0c806466318",
      "parents": [
        "6b7b284958d47b77d06745b36bc7f36dab769d9b"
      ],
      "author": {
        "name": "Huang Weiyi",
        "email": "weiyi.huang@gmail.com",
        "time": "Mon Dec 14 09:24:20 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Dec 14 09:24:20 2009 -0500"
      },
      "message": "ext4: remove unused #include \u003clinux/version.h\u003e\n\nRemove unused #include \u003clinux/version.h\u003e(\u0027s) in\n  fs/ext4/block_validity.c\n  fs/ext4/mballoc.h\n\nSigned-off-by: Huang Weiyi \u003cweiyi.huang@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "39bc680a8160bb9d6743f7873b535d553ff61058",
      "tree": "6aac2c11b09870bffb877dcaf6ae44b34b56d4db",
      "parents": [
        "d21cd8f163ac44b15c465aab7306db931c606908"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Dec 10 16:36:27 2009 +0000"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 23 13:44:12 2009 +0100"
      },
      "message": "ext4: fix sleep inside spinlock issue with quota and dealloc (#14739)\n\nUnlock i_block_reservation_lock before vfs_dq_reserve_block().\nThis patch fixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d14739\n\nCC: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d21cd8f163ac44b15c465aab7306db931c606908",
      "tree": "72cbe30f358c93ed7cdae7d4061fc4fdb317959d",
      "parents": [
        "82fdfa928cfa19d9627526b2ce164a27f8e9d34b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Dec 10 03:31:45 2009 +0000"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 23 13:44:12 2009 +0100"
      },
      "message": "ext4: Fix potential quota deadlock\n\nWe have to delay vfs_dq_claim_space() until allocation context destruction.\nCurrently we have following call-trace:\next4_mb_new_blocks()\n  /* task is already holding ac-\u003ealloc_semp */\n -\u003eext4_mb_mark_diskspace_used\n    -\u003evfs_dq_claim_space()  /*  acquire dqptr_sem here. Possible deadlock */\n -\u003eext4_mb_release_context() /* drop ac-\u003ealloc_semp here */\n\nLet\u0027s move quota claiming to ext4_da_update_reserve_space()\n\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n [ INFO: possible circular locking dependency detected ]\n 2.6.32-rc7 #18\n -------------------------------------------------------\n write-truncate-/3465 is trying to acquire lock:\n  (\u0026s-\u003es_dquot.dqptr_sem){++++..}, at: [\u003cc025e73b\u003e] dquot_claim_space+0x3b/0x1b0\n\n but task is already holding lock:\n  (\u0026meta_group_info[i]-\u003ealloc_sem){++++..}, at: [\u003cc02ce962\u003e] ext4_mb_load_buddy+0xb2/0x370\n\n which lock already depends on the new lock.\n\n the existing dependency chain (in reverse order) is:\n\n -\u003e #3 (\u0026meta_group_info[i]-\u003ealloc_sem){++++..}:\n        [\u003cc017d04b\u003e] __lock_acquire+0xd7b/0x1260\n        [\u003cc017d5ea\u003e] lock_acquire+0xba/0xd0\n        [\u003cc0527191\u003e] down_read+0x51/0x90\n        [\u003cc02ce962\u003e] ext4_mb_load_buddy+0xb2/0x370\n        [\u003cc02d0c1c\u003e] ext4_mb_free_blocks+0x46c/0x870\n        [\u003cc029c9d3\u003e] ext4_free_blocks+0x73/0x130\n        [\u003cc02c8cfc\u003e] ext4_ext_truncate+0x76c/0x8d0\n        [\u003cc02a8087\u003e] ext4_truncate+0x187/0x5e0\n        [\u003cc01e0f7b\u003e] vmtruncate+0x6b/0x70\n        [\u003cc022ec02\u003e] inode_setattr+0x62/0x190\n        [\u003cc02a2d7a\u003e] ext4_setattr+0x25a/0x370\n        [\u003cc022ee81\u003e] notify_change+0x151/0x340\n        [\u003cc021349d\u003e] do_truncate+0x6d/0xa0\n        [\u003cc0221034\u003e] may_open+0x1d4/0x200\n        [\u003cc022412b\u003e] do_filp_open+0x1eb/0x910\n        [\u003cc021244d\u003e] do_sys_open+0x6d/0x140\n        [\u003cc021258e\u003e] sys_open+0x2e/0x40\n        [\u003cc0103100\u003e] sysenter_do_call+0x12/0x32\n\n -\u003e #2 (\u0026ei-\u003ei_data_sem){++++..}:\n        [\u003cc017d04b\u003e] __lock_acquire+0xd7b/0x1260\n        [\u003cc017d5ea\u003e] lock_acquire+0xba/0xd0\n        [\u003cc0527191\u003e] down_read+0x51/0x90\n        [\u003cc02a5787\u003e] ext4_get_blocks+0x47/0x450\n        [\u003cc02a74c1\u003e] ext4_getblk+0x61/0x1d0\n        [\u003cc02a7a7f\u003e] ext4_bread+0x1f/0xa0\n        [\u003cc02bcddc\u003e] ext4_quota_write+0x12c/0x310\n        [\u003cc0262d23\u003e] qtree_write_dquot+0x93/0x120\n        [\u003cc0261708\u003e] v2_write_dquot+0x28/0x30\n        [\u003cc025d3fb\u003e] dquot_commit+0xab/0xf0\n        [\u003cc02be977\u003e] ext4_write_dquot+0x77/0x90\n        [\u003cc02be9bf\u003e] ext4_mark_dquot_dirty+0x2f/0x50\n        [\u003cc025e321\u003e] dquot_alloc_inode+0x101/0x180\n        [\u003cc029fec2\u003e] ext4_new_inode+0x602/0xf00\n        [\u003cc02ad789\u003e] ext4_create+0x89/0x150\n        [\u003cc0221ff2\u003e] vfs_create+0xa2/0xc0\n        [\u003cc02246e7\u003e] do_filp_open+0x7a7/0x910\n        [\u003cc021244d\u003e] do_sys_open+0x6d/0x140\n        [\u003cc021258e\u003e] sys_open+0x2e/0x40\n        [\u003cc0103100\u003e] sysenter_do_call+0x12/0x32\n\n -\u003e #1 (\u0026sb-\u003es_type-\u003ei_mutex_key#7/4){+.+...}:\n        [\u003cc017d04b\u003e] __lock_acquire+0xd7b/0x1260\n        [\u003cc017d5ea\u003e] lock_acquire+0xba/0xd0\n        [\u003cc0526505\u003e] mutex_lock_nested+0x65/0x2d0\n        [\u003cc0260c9d\u003e] vfs_load_quota_inode+0x4bd/0x5a0\n        [\u003cc02610af\u003e] vfs_quota_on_path+0x5f/0x70\n        [\u003cc02bc812\u003e] ext4_quota_on+0x112/0x190\n        [\u003cc026345a\u003e] sys_quotactl+0x44a/0x8a0\n        [\u003cc0103100\u003e] sysenter_do_call+0x12/0x32\n\n -\u003e #0 (\u0026s-\u003es_dquot.dqptr_sem){++++..}:\n        [\u003cc017d361\u003e] __lock_acquire+0x1091/0x1260\n        [\u003cc017d5ea\u003e] lock_acquire+0xba/0xd0\n        [\u003cc0527191\u003e] down_read+0x51/0x90\n        [\u003cc025e73b\u003e] dquot_claim_space+0x3b/0x1b0\n        [\u003cc02cb95f\u003e] ext4_mb_mark_diskspace_used+0x36f/0x380\n        [\u003cc02d210a\u003e] ext4_mb_new_blocks+0x34a/0x530\n        [\u003cc02c83fb\u003e] ext4_ext_get_blocks+0x122b/0x13c0\n        [\u003cc02a5966\u003e] ext4_get_blocks+0x226/0x450\n        [\u003cc02a5ff3\u003e] mpage_da_map_blocks+0xc3/0xaa0\n        [\u003cc02a6ed6\u003e] ext4_da_writepages+0x506/0x790\n        [\u003cc01de272\u003e] do_writepages+0x22/0x50\n        [\u003cc01d766d\u003e] __filemap_fdatawrite_range+0x6d/0x80\n        [\u003cc01d7b9b\u003e] filemap_flush+0x2b/0x30\n        [\u003cc02a40ac\u003e] ext4_alloc_da_blocks+0x5c/0x60\n        [\u003cc029e595\u003e] ext4_release_file+0x75/0xb0\n        [\u003cc0216b59\u003e] __fput+0xf9/0x210\n        [\u003cc0216c97\u003e] fput+0x27/0x30\n        [\u003cc02122dc\u003e] filp_close+0x4c/0x80\n        [\u003cc014510e\u003e] put_files_struct+0x6e/0xd0\n        [\u003cc01451b7\u003e] exit_files+0x47/0x60\n        [\u003cc0146a24\u003e] do_exit+0x144/0x710\n        [\u003cc0147028\u003e] do_group_exit+0x38/0xa0\n        [\u003cc0159abc\u003e] get_signal_to_deliver+0x2ac/0x410\n        [\u003cc0102849\u003e] do_notify_resume+0xb9/0x890\n        [\u003cc01032d2\u003e] work_notifysig+0x13/0x21\n\n other info that might help us debug this:\n\n 3 locks held by write-truncate-/3465:\n  #0:  (jbd2_handle){+.+...}, at: [\u003cc02e1f8f\u003e] start_this_handle+0x38f/0x5c0\n  #1:  (\u0026ei-\u003ei_data_sem){++++..}, at: [\u003cc02a57f6\u003e] ext4_get_blocks+0xb6/0x450\n  #2:  (\u0026meta_group_info[i]-\u003ealloc_sem){++++..}, at: [\u003cc02ce962\u003e] ext4_mb_load_buddy+0xb2/0x370\n\n stack backtrace:\n Pid: 3465, comm: write-truncate- Not tainted 2.6.32-rc7 #18\n Call Trace:\n  [\u003cc0524cb3\u003e] ? printk+0x1d/0x22\n  [\u003cc017ac9a\u003e] print_circular_bug+0xca/0xd0\n  [\u003cc017d361\u003e] __lock_acquire+0x1091/0x1260\n  [\u003cc016bca2\u003e] ? sched_clock_local+0xd2/0x170\n  [\u003cc0178fd0\u003e] ? trace_hardirqs_off_caller+0x20/0xd0\n  [\u003cc017d5ea\u003e] lock_acquire+0xba/0xd0\n  [\u003cc025e73b\u003e] ? dquot_claim_space+0x3b/0x1b0\n  [\u003cc0527191\u003e] down_read+0x51/0x90\n  [\u003cc025e73b\u003e] ? dquot_claim_space+0x3b/0x1b0\n  [\u003cc025e73b\u003e] dquot_claim_space+0x3b/0x1b0\n  [\u003cc02cb95f\u003e] ext4_mb_mark_diskspace_used+0x36f/0x380\n  [\u003cc02d210a\u003e] ext4_mb_new_blocks+0x34a/0x530\n  [\u003cc02c601d\u003e] ? ext4_ext_find_extent+0x25d/0x280\n  [\u003cc02c83fb\u003e] ext4_ext_get_blocks+0x122b/0x13c0\n  [\u003cc016bca2\u003e] ? sched_clock_local+0xd2/0x170\n  [\u003cc016be60\u003e] ? sched_clock_cpu+0x120/0x160\n  [\u003cc016beef\u003e] ? cpu_clock+0x4f/0x60\n  [\u003cc0178fd0\u003e] ? trace_hardirqs_off_caller+0x20/0xd0\n  [\u003cc052712c\u003e] ? down_write+0x8c/0xa0\n  [\u003cc02a5966\u003e] ext4_get_blocks+0x226/0x450\n  [\u003cc016be60\u003e] ? sched_clock_cpu+0x120/0x160\n  [\u003cc016beef\u003e] ? cpu_clock+0x4f/0x60\n  [\u003cc017908b\u003e] ? trace_hardirqs_off+0xb/0x10\n  [\u003cc02a5ff3\u003e] mpage_da_map_blocks+0xc3/0xaa0\n  [\u003cc01d69cc\u003e] ? find_get_pages_tag+0x16c/0x180\n  [\u003cc01d6860\u003e] ? find_get_pages_tag+0x0/0x180\n  [\u003cc02a73bd\u003e] ? __mpage_da_writepage+0x16d/0x1a0\n  [\u003cc01dfc4e\u003e] ? pagevec_lookup_tag+0x2e/0x40\n  [\u003cc01ddf1b\u003e] ? write_cache_pages+0xdb/0x3d0\n  [\u003cc02a7250\u003e] ? __mpage_da_writepage+0x0/0x1a0\n  [\u003cc02a6ed6\u003e] ext4_da_writepages+0x506/0x790\n  [\u003cc016beef\u003e] ? cpu_clock+0x4f/0x60\n  [\u003cc016bca2\u003e] ? sched_clock_local+0xd2/0x170\n  [\u003cc016be60\u003e] ? sched_clock_cpu+0x120/0x160\n  [\u003cc016be60\u003e] ? sched_clock_cpu+0x120/0x160\n  [\u003cc02a69d0\u003e] ? ext4_da_writepages+0x0/0x790\n  [\u003cc01de272\u003e] do_writepages+0x22/0x50\n  [\u003cc01d766d\u003e] __filemap_fdatawrite_range+0x6d/0x80\n  [\u003cc01d7b9b\u003e] filemap_flush+0x2b/0x30\n  [\u003cc02a40ac\u003e] ext4_alloc_da_blocks+0x5c/0x60\n  [\u003cc029e595\u003e] ext4_release_file+0x75/0xb0\n  [\u003cc0216b59\u003e] __fput+0xf9/0x210\n  [\u003cc0216c97\u003e] fput+0x27/0x30\n  [\u003cc02122dc\u003e] filp_close+0x4c/0x80\n  [\u003cc014510e\u003e] put_files_struct+0x6e/0xd0\n  [\u003cc01451b7\u003e] exit_files+0x47/0x60\n  [\u003cc0146a24\u003e] do_exit+0x144/0x710\n  [\u003cc017b163\u003e] ? lock_release_holdtime+0x33/0x210\n  [\u003cc0528137\u003e] ? _spin_unlock_irq+0x27/0x30\n  [\u003cc0147028\u003e] do_group_exit+0x38/0xa0\n  [\u003cc017babb\u003e] ? trace_hardirqs_on+0xb/0x10\n  [\u003cc0159abc\u003e] get_signal_to_deliver+0x2ac/0x410\n  [\u003cc0102849\u003e] do_notify_resume+0xb9/0x890\n  [\u003cc0178fd0\u003e] ? trace_hardirqs_off_caller+0x20/0xd0\n  [\u003cc017b163\u003e] ? lock_release_holdtime+0x33/0x210\n  [\u003cc0165b50\u003e] ? autoremove_wake_function+0x0/0x50\n  [\u003cc017ba54\u003e] ? trace_hardirqs_on_caller+0x134/0x190\n  [\u003cc017babb\u003e] ? trace_hardirqs_on+0xb/0x10\n  [\u003cc0300ba4\u003e] ? security_file_permission+0x14/0x20\n  [\u003cc0215761\u003e] ? vfs_write+0x131/0x190\n  [\u003cc0214f50\u003e] ? do_sync_write+0x0/0x120\n  [\u003cc0103115\u003e] ? sysenter_do_call+0x27/0x32\n  [\u003cc01032d2\u003e] work_notifysig+0x13/0x21\n\nCC: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a9e7f4472075fb6937c545af3f6329e9946bbe66",
      "tree": "399e294982e1c9691332eca72942910a7f74e9f8",
      "parents": [
        "fd8fbfc1709822bd94247c5b2ab15a5f5041e103"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Dec 14 15:21:14 2009 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 23 13:33:55 2009 +0100"
      },
      "message": "ext4: Convert to generic reserved quota\u0027s space management.\n\nThis patch also fixes write vs chown race condition.\n\nAcked-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b6e3224fb20954f155e41ec5709b2ab70b50ae2d",
      "tree": "96302d1b564c879779b9cc5d7aae7c3c4471ed14",
      "parents": [
        "a2770d86b33024f71df269fde2de096df89d6a48"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 13:23:24 2009 -0800"
      },
      "message": "Revert \"task_struct: make journal_info conditional\"\n\nThis reverts commit e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319, as\nrequested by Alexey:\n\n \"I think I gave a good enough arguments to not merge it.\n  To iterate:\n   * patch makes impossible to start using ext3 on EXT3_FS\u003dn kernels\n     without reboot.\n   * this is done only for one pointer on task_struct\"\n\n  None of config options which define task_struct are tristate directly\n  or effectively.\"\n\nRequested-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "431547b3c4533b8c7fd150ab36980b9a3147797b",
      "tree": "807ff2790f3c13c7c91ed2afd6d833032899482d",
      "parents": [
        "ef26ca97e83052790940cbc444b01b0d17a813c1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Nov 13 09:52:56 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:49 2009 -0500"
      },
      "message": "sanitize xattr handler prototypes\n\nAdd a flags argument to struct xattr_handler and pass it to all xattr\nhandler methods.  This allows using the same methods for multiple\nhandlers, e.g. for the ACL methods which perform exactly the same action\nfor the access and default ACLs, just using a different underlying\nattribute.  With a little more groundwork it\u0027ll also allow sharing the\nmethods for the regular user/trusted/secure handlers in extN, ocfs2 and\njffs2 like it\u0027s already done for xfs in this patch.\n\nAlso change the inode argument to the handlers to a dentry to allow\nusing the handlers mechnism for filesystems that require it later,\ne.g. cifs.\n\n[with GFS2 bits updated by Steven Whitehouse \u003cswhiteho@redhat.com\u003e]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7d2860b690d4f3bed6824757c540579638e3d1e",
      "tree": "84268ee28893256fd6a6a7e1d4474f61dbee74e7",
      "parents": [
        "84c95c9acf088c99d8793d78036b67faa5d0b851"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Mon Dec 14 18:01:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:32 2009 -0800"
      },
      "message": "tree-wide: convert open calls to remove spaces to skip_spaces() lib function\n\nMakes use of skip_spaces() defined in lib/string.c for removing leading\nspaces from strings all over the tree.\n\nIt decreases lib.a code size by 47 bytes and reuses the function tree-wide:\n   text    data     bss     dec     hex filename\n  64688     584     592   65864   10148 (TOTALS-BEFORE)\n  64641     584     592   65817   10119 (TOTALS-AFTER)\n\nAlso, while at it, if we see (*str \u0026\u0026 isspace(*str)), we can be sure to\nremove the first condition (*str) as the second one (isspace(*str)) also\nevaluates to 0 whenever *str \u003d\u003d 0, making it redundant. In other words,\n\"a char equals zero is never a space\".\n\nJulia Lawall tried the semantic patch (http://coccinelle.lip6.fr) below,\nand found occurrences of this pattern on 3 more files:\n    drivers/leds/led-class.c\n    drivers/leds/ledtrig-timer.c\n    drivers/video/output.c\n\n@@\nexpression str;\n@@\n\n( // ignore skip_spaces cases\nwhile (*str \u0026\u0026  isspace(*str)) { \\(str++;\\|++str;\\) }\n|\n- *str \u0026\u0026\nisspace(*str)\n)\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Samuel Ortiz \u003csamuel@sortiz.org\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4c570c4cb7a95dbfafa3d016d2739bf3fdfe319",
      "tree": "ce2be0a79fa2e8d8271426f0fc27b25e83c050b4",
      "parents": [
        "8420e7efa1cf155765c6d77c91d3e3547c7aa557"
      ],
      "author": {
        "name": "Hiroshi Shimamoto",
        "email": "h-shimamoto@ct.jp.nec.com",
        "time": "Mon Dec 14 18:00:26 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:27 2009 -0800"
      },
      "message": "task_struct: make journal_info conditional\n\njournal_info in task_struct is used in journaling file system only.  So\nintroduce CONFIG_FS_JOURNAL_INFO and make it conditional.\n\nSigned-off-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0316554d3586cbea60592a41391b5def2553d6f",
      "tree": "5e7418f0bacbc68cec5dfd1541e03eb56870aa02",
      "parents": [
        "fb0bbb92d42d5bd0ab224605444efdfed06d6934",
        "51e99be00ce2713cbb841cedc997cafa6e26c7f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 14 09:58:24 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (34 commits)\n  m68k: rename global variable vmalloc_end to m68k_vmalloc_end\n  percpu: add missing per_cpu_ptr_to_phys() definition for UP\n  percpu: Fix kdump failure if booted with percpu_alloc\u003dpage\n  percpu: make misc percpu symbols unique\n  percpu: make percpu symbols in ia64 unique\n  percpu: make percpu symbols in powerpc unique\n  percpu: make percpu symbols in x86 unique\n  percpu: make percpu symbols in xen unique\n  percpu: make percpu symbols in cpufreq unique\n  percpu: make percpu symbols in oprofile unique\n  percpu: make percpu symbols in tracer unique\n  percpu: make percpu symbols under kernel/ and mm/ unique\n  percpu: remove some sparse warnings\n  percpu: make alloc_percpu() handle array types\n  vmalloc: fix use of non-existent percpu variable in put_cpu_var()\n  this_cpu: Use this_cpu_xx in trace_functions_graph.c\n  this_cpu: Use this_cpu_xx for ftrace\n  this_cpu: Use this_cpu_xx in nmi handling\n  this_cpu: Use this_cpu operations in RCU\n  this_cpu: Use this_cpu ops for VM statistics\n  ...\n\nFix up trivial (famous last words) global per-cpu naming conflicts in\n\tarch/x86/kvm/svm.c\n\tmm/slab.c\n"
    },
    {
      "commit": "3126c136bc30225d7a43af741778aa50e95e467a",
      "tree": "71e6f0de6e1f4cde200dd632da4d2f61180289bf",
      "parents": [
        "f4d544ee5720d336a8c64f9fd33efb888c302309",
        "8e0eb4011bd73d5f91b215b532f74eef478ef795"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:31:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:31:13 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (21 commits)\n  ext3: PTR_ERR return of wrong pointer in setup_new_group_blocks()\n  ext3: Fix data / filesystem corruption when write fails to copy data\n  ext4: Support for 64-bit quota format\n  ext3: Support for vfsv1 quota format\n  quota: Implement quota format with 64-bit space and inode limits\n  quota: Move definition of QFMT_OCFS2 to linux/quota.h\n  ext2: fix comment in ext2_find_entry about return values\n  ext3: Unify log messages in ext3\n  ext2: clear uptodate flag on super block I/O error\n  ext2: Unify log messages in ext2\n  ext3: make \"norecovery\" an alias for \"noload\"\n  ext3: Don\u0027t update the superblock in ext3_statfs()\n  ext3: journal all modifications in ext3_xattr_set_handle\n  ext2: Explicitly assign values to on-disk enum of filetypes\n  quota: Fix WARN_ON in lookup_one_len\n  const: struct quota_format_ops\n  ubifs: remove manual O_SYNC handling\n  afs: remove manual O_SYNC handling\n  kill wait_on_page_writeback_range\n  vfs: Implement proper O_SYNC semantics\n  ...\n"
    },
    {
      "commit": "4515c3069da5bfb6f08dbfca499464b4cbdfcb50",
      "tree": "0f067045a0e31f126aebcf3087028639ceb237b4",
      "parents": [
        "a5eba3f66f812cbc076a1170b3f888ad63f850b2",
        "fab3a549e204172236779f502eccb4f9bf0dc87d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 10 09:33:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 10 09:33:29 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (47 commits)\n  ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)\n  ext4: Do not override ext2 or ext3 if built they are built as modules\n  jbd2: Export jbd2_log_start_commit to fix ext4 build\n  ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT\n  ext4: Wait for proper transaction commit on fsync\n  ext4: fix incorrect block reservation on quota transfer.\n  ext4: quota macros cleanup\n  ext4: ext4_get_reserved_space() must return bytes instead of blocks\n  ext4: remove blocks from inode prealloc list on failure\n  ext4: wait for log to commit when umounting\n  ext4: Avoid data / filesystem corruption when write fails to copy data\n  ext4: Use ext4 file system driver for ext2/ext3 file system mounts\n  ext4: Return the PTR_ERR of the correct pointer in setup_new_group_blocks()\n  jbd2: Add ENOMEM checking in and for jbd2_journal_write_metadata_buffer()\n  ext4: remove unused parameter wbc from __ext4_journalled_writepage()\n  ext4: remove encountered_congestion trace\n  ext4: move_extent_per_page() cleanup\n  ext4: initialize moved_len before calling ext4_move_extents()\n  ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT\n  ext4: use ext4_data_block_valid() in ext4_free_blocks()\n  ...\n"
    },
    {
      "commit": "5a20bdfcdc5c5e5f0647d8d99a998066ef5496ac",
      "tree": "30f50f2655dd17681169e4cf825a1849265bf3b7",
      "parents": [
        "1aeec43432d6bfb7a300bb0363f2723b8c4c706d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Nov 30 23:58:32 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:54 2009 +0100"
      },
      "message": "ext4: Support for 64-bit quota format\n\nAdd support for new 64-bit quota format. It is enough to add proper\nmount options handling. The rest is done by the generic code.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "fab3a549e204172236779f502eccb4f9bf0dc87d",
      "tree": "5d478a2a583459832b9c5999ccd07b3b6a5569a7",
      "parents": [
        "a214238d3bb03723f820b0a398928d8e1637c987"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 09 21:30:02 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 09 21:30:02 2009 -0500"
      },
      "message": "ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)\n\nFix the following potential circular locking dependency between\nmm-\u003emmap_sem and ei-\u003ei_data_sem:\n\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    [ INFO: possible circular locking dependency detected ]\n    2.6.32-04115-gec044c5 #37\n    -------------------------------------------------------\n    ureadahead/1855 is trying to acquire lock:\n     (\u0026mm-\u003emmap_sem){++++++}, at: [\u003cffffffff81107224\u003e] might_fault+0x5c/0xac\n\n    but task is already holding lock:\n     (\u0026ei-\u003ei_data_sem){++++..}, at: [\u003cffffffff811be1fd\u003e] ext4_fiemap+0x11b/0x159\n\n    which lock already depends on the new lock.\n\n    the existing dependency chain (in reverse order) is:\n\n    -\u003e #1 (\u0026ei-\u003ei_data_sem){++++..}:\n           [\u003cffffffff81099bfa\u003e] __lock_acquire+0xb67/0xd0f\n           [\u003cffffffff81099e7e\u003e] lock_acquire+0xdc/0x102\n           [\u003cffffffff81516633\u003e] down_read+0x51/0x84\n           [\u003cffffffff811a2414\u003e] ext4_get_blocks+0x50/0x2a5\n           [\u003cffffffff811a3453\u003e] ext4_get_block+0xab/0xef\n           [\u003cffffffff81154f39\u003e] do_mpage_readpage+0x198/0x48d\n           [\u003cffffffff81155360\u003e] mpage_readpages+0xd0/0x114\n           [\u003cffffffff811a104b\u003e] ext4_readpages+0x1d/0x1f\n           [\u003cffffffff810f8644\u003e] __do_page_cache_readahead+0x12f/0x1bc\n           [\u003cffffffff810f86f2\u003e] ra_submit+0x21/0x25\n           [\u003cffffffff810f0cfd\u003e] filemap_fault+0x19f/0x32c\n           [\u003cffffffff81107b97\u003e] __do_fault+0x55/0x3a2\n           [\u003cffffffff81109db0\u003e] handle_mm_fault+0x327/0x734\n           [\u003cffffffff8151aaa9\u003e] do_page_fault+0x292/0x2aa\n           [\u003cffffffff81518205\u003e] page_fault+0x25/0x30\n           [\u003cffffffff812a34d8\u003e] clear_user+0x38/0x3c\n           [\u003cffffffff81167e16\u003e] padzero+0x20/0x31\n           [\u003cffffffff81168b47\u003e] load_elf_binary+0x8bc/0x17ed\n           [\u003cffffffff81130e95\u003e] search_binary_handler+0xc2/0x259\n           [\u003cffffffff81166d64\u003e] load_script+0x1b8/0x1cc\n           [\u003cffffffff81130e95\u003e] search_binary_handler+0xc2/0x259\n           [\u003cffffffff8113255f\u003e] do_execve+0x1ce/0x2cf\n           [\u003cffffffff81027494\u003e] sys_execve+0x43/0x5a\n           [\u003cffffffff8102918a\u003e] stub_execve+0x6a/0xc0\n\n    -\u003e #0 (\u0026mm-\u003emmap_sem){++++++}:\n           [\u003cffffffff81099aa4\u003e] __lock_acquire+0xa11/0xd0f\n           [\u003cffffffff81099e7e\u003e] lock_acquire+0xdc/0x102\n           [\u003cffffffff81107251\u003e] might_fault+0x89/0xac\n           [\u003cffffffff81139382\u003e] fiemap_fill_next_extent+0x95/0xda\n           [\u003cffffffff811bcb43\u003e] ext4_ext_fiemap_cb+0x138/0x157\n           [\u003cffffffff811be069\u003e] ext4_ext_walk_space+0x178/0x1f1\n           [\u003cffffffff811be21e\u003e] ext4_fiemap+0x13c/0x159\n           [\u003cffffffff811390e6\u003e] do_vfs_ioctl+0x348/0x4d6\n           [\u003cffffffff811392ca\u003e] sys_ioctl+0x56/0x79\n           [\u003cffffffff81028cb2\u003e] system_call_fastpath+0x16/0x1b\n\n    other info that might help us debug this:\n\n    1 lock held by ureadahead/1855:\n     #0:  (\u0026ei-\u003ei_data_sem){++++..}, at: [\u003cffffffff811be1fd\u003e] ext4_fiemap+0x11b/0x159\n\n    stack backtrace:\n    Pid: 1855, comm: ureadahead Not tainted 2.6.32-04115-gec044c5 #37\n    Call Trace:\n     [\u003cffffffff81098c70\u003e] print_circular_bug+0xa8/0xb7\n     [\u003cffffffff81099aa4\u003e] __lock_acquire+0xa11/0xd0f\n     [\u003cffffffff8102f229\u003e] ? sched_clock+0x9/0xd\n     [\u003cffffffff81099e7e\u003e] lock_acquire+0xdc/0x102\n     [\u003cffffffff81107224\u003e] ? might_fault+0x5c/0xac\n     [\u003cffffffff81107251\u003e] might_fault+0x89/0xac\n     [\u003cffffffff81107224\u003e] ? might_fault+0x5c/0xac\n     [\u003cffffffff81124b44\u003e] ? __kmalloc+0x13b/0x18c\n     [\u003cffffffff81139382\u003e] fiemap_fill_next_extent+0x95/0xda\n     [\u003cffffffff811bcb43\u003e] ext4_ext_fiemap_cb+0x138/0x157\n     [\u003cffffffff811bca0b\u003e] ? ext4_ext_fiemap_cb+0x0/0x157\n     [\u003cffffffff811be069\u003e] ext4_ext_walk_space+0x178/0x1f1\n     [\u003cffffffff811be21e\u003e] ext4_fiemap+0x13c/0x159\n     [\u003cffffffff81107224\u003e] ? might_fault+0x5c/0xac\n     [\u003cffffffff811390e6\u003e] do_vfs_ioctl+0x348/0x4d6\n     [\u003cffffffff8129f6d0\u003e] ? __up_read+0x8d/0x95\n     [\u003cffffffff81517fb5\u003e] ? retint_swapgs+0x13/0x1b\n     [\u003cffffffff811392ca\u003e] sys_ioctl+0x56/0x79\n     [\u003cffffffff81028cb2\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a214238d3bb03723f820b0a398928d8e1637c987",
      "tree": "d4ca39dc2701279f815a7b4f4b47b1ac339ed35e",
      "parents": [
        "3b799d15f2622c44bae93961892d90ab012ea2be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 09 21:09:58 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Dec 09 21:09:58 2009 -0500"
      },
      "message": "ext4: Do not override ext2 or ext3 if built they are built as modules\n\nThe CONFIG_EXT4_USE_FOR_EXT23 option must not try to take over the\next2 or ext3 file systems if the those file system drivers are\nconfigured to be built as mdoules.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d014d043869cdc591f3a33243d3481fa4479c2d0",
      "tree": "63626829498e647ba058a1ce06419fe7e4d5f97d",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "6070d81eb5f2d4943223c96e7609a53cdc984364"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Dec 07 18:36:35 2009 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\n\tkernel/irq/chip.c\n"
    },
    {
      "commit": "f8ec9d6837241865cf99bed97bb99f4399fd5a03",
      "tree": "f1198366ae4c9c2db3c8869813f061ee85d3b243",
      "parents": [
        "71f2be213a0009098819e5c04f75ff19f84f2122"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 01 01:00:21 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 01 01:00:21 2010 -0500"
      },
      "message": "ext4: Add new tracepoints to debug delayed allocation space functions\n\nAdd tracepoints for ext4_da_reserve_space(),\next4_da_update_reserve_space(), and ext4_da_release_space().\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "1f2acb6017d8528135ec3b01ab7cd2be6ea0630b",
      "tree": "7263a5c1402237166cf425bc8f5336426159622c",
      "parents": [
        "15121c18a22ae483279f76dc9e554334b800d0f7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 22 17:40:42 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Jan 22 17:40:42 2010 -0500"
      },
      "message": "ext4: Add block validity check when truncating indirect block mapped inodes\n\nAdd checks to ext4_free_branches() to make sure a block number found\nin an indirect block are valid before trying to free it.  If a bad\nblock number is found, stop freeing the indirect block immediately,\nsince the file system is corrupt and we will need to run fsck anyway.\nThis also avoids spamming the logs, and specifically avoids\ndriver-level \"attempt to access beyond end of device\" errors obscure\nwhat is really going on.\n\nIf you get *really*, *really*, *really* unlucky, without this patch, a\nsupposed indirect block containing garbage might contain a reference\nto a primary block group descriptor, in which case\next4_free_branches() could end up zero\u0027ing out a block group\ndescriptor block, and if then one of the block bitmaps for a block\ngroup described by that bg descriptor block is not in memory, and is\nread in by ext4_read_block_bitmap().  This function calls\next4_valid_block_bitmap(), which assumes that bg_inode_table() was\nvalidated at mount time and hasn\u0027t been modified since.  Since this\nassumption is no longer valid, it\u0027s possible for the value\n(ext4_inode_table(sb, desc) - group_first_block) to go negative, which\nwill cause ext4_find_next_zero_bit() to trigger a kernel GPF.\n\nAddresses-Google-Bug: #2220436\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "15121c18a22ae483279f76dc9e554334b800d0f7",
      "tree": "50861d9444cd21945a6086fa03c2bdd1a7f8c354",
      "parents": [
        "a1de02dccf906faba2ee2d99cac56799bda3b96a"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Mon Feb 15 20:17:55 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Feb 15 20:17:55 2010 -0500"
      },
      "message": "ext4: Fix optional-arg mount options\n\nWe have 2 mount options, \"barrier\" and \"auto_da_alloc\" which may or\nmay not take a 1/0 argument.  This causes the ext4 superblock mount\ncode to subtract uninitialized pointers and pass the result to\nkmalloc, which results in very noisy failures.\n\nPer Ted\u0027s suggestion, initialize the args struct so that\nwe know whether match_token() found an argument for the\noption, and skip match_int() if not.\n\nAlso, return error (0) from parse_options if we thought\nwe found an argument, but match_int() Fails.\n\nReported-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a1de02dccf906faba2ee2d99cac56799bda3b96a",
      "tree": "9871a11252e9a7d39882206c2057ec3080517365",
      "parents": [
        "724e6d3fe8003c3f60bf404bf22e4e331327c596"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Feb 04 23:58:38 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Feb 04 23:58:38 2010 -0500"
      },
      "message": "ext4: fix async i/o writes beyond 4GB to a sparse file\n\nThe \"offset\" member in ext4_io_end holds bytes, not blocks, so\next4_lblk_t is wrong - and too small (u32).\n\nThis caused the async i/o writes to sparse files beyond 4GB to fail\nwhen they wrapped around to 0.\n\nAlso fix up the type of arguments to ext4_convert_unwritten_extents(),\nit gets ssize_t from ext4_end_aio_dio_nolock() and\next4_ext_direct_IO().\n\nReported-by: Giel de Nijs \u003cgiel@vectorwise.com\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\n"
    },
    {
      "commit": "4a58579b9e4e2a35d57e6c9c8483e52f6f1b7fd6",
      "tree": "f3a7f898a081d0917f7fe7f051aba687308cbf0a",
      "parents": [
        "b436b9bef84de6893e86346d8fbf7104bc520645"
      ],
      "author": {
        "name": "Akira Fujita",
        "email": "a-fujita@rs.jp.nec.com",
        "time": "Sun Dec 06 23:38:31 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun Dec 06 23:38:31 2009 -0500"
      },
      "message": "ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT\n\nThis patch fixes three problems in the handling of the\nEXT4_IOC_MOVE_EXT ioctl:\n\n1. In current EXT4_IOC_MOVE_EXT, there are read access mode checks for\noriginal and donor files, but they allow the illegal write access to\ndonor file, since donor file is overwritten by original file data.  To\nfix this problem, change access mode checks of original (r-\u003er/w) and\ndonor (r-\u003ew) files.\n\n2.  Disallow the use of donor files that have a setuid or setgid bits.\n\n3.  Call mnt_want_write() and mnt_drop_write() before and after\next4_move_extents() calling to get write access to a mount.\n\nSigned-off-by: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b436b9bef84de6893e86346d8fbf7104bc520645",
      "tree": "50fb9ae167bcd622e9adf47646bcf3b4c7dd111d",
      "parents": [
        "194074acacebc169ded90a4657193f5180015051"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Dec 08 23:51:10 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 08 23:51:10 2009 -0500"
      },
      "message": "ext4: Wait for proper transaction commit on fsync\n\nWe cannot rely on buffer dirty bits during fsync because pdflush can come\nbefore fsync is called and clear dirty bits without forcing a transaction\ncommit. What we do is that we track which transaction has last changed\nthe inode and which transaction last changed allocation and force it to\ndisk on fsync.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "194074acacebc169ded90a4657193f5180015051",
      "tree": "6661f85c6ef4548abe348c2611ad8a43b17ec320",
      "parents": [
        "5aca07eb7d8f14d90c740834d15ca15277f4820c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Dec 08 22:42:28 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 08 22:42:28 2009 -0500"
      },
      "message": "ext4: fix incorrect block reservation on quota transfer.\n\nInside -\u003esetattr() call both ATTR_UID and ATTR_GID may be valid\nThis means that we may end-up with transferring all quotas. Add\nwe have to reserve QUOTA_DEL_BLOCKS for all quotas, as we do in\ncase of QUOTA_INIT_BLOCKS.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5aca07eb7d8f14d90c740834d15ca15277f4820c",
      "tree": "362ab7bb56cf0920ee27bbaf97e2657c022eb4b4",
      "parents": [
        "8aa6790f876e81f5a2211fe1711a5fe3fe2d7b20"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Dec 08 22:42:15 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 08 22:42:15 2009 -0500"
      },
      "message": "ext4: quota macros cleanup\n\nCurrently all quota block reservation macros contains hard-coded \"2\"\naka MAXQUOTAS value. This is no good because in some places it is not\nobvious to understand what does this digit represent. Let\u0027s introduce\nnew macro with self descriptive name.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nAcked-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8aa6790f876e81f5a2211fe1711a5fe3fe2d7b20",
      "tree": "d82eef7f6753858a08640b226bece35dfca3c52d",
      "parents": [
        "b844167edc7fcafda9623955c05e4c1b3c32ebc7"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Dec 08 22:41:52 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 08 22:41:52 2009 -0500"
      },
      "message": "ext4: ext4_get_reserved_space() must return bytes instead of blocks\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nAcked-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b844167edc7fcafda9623955c05e4c1b3c32ebc7",
      "tree": "60b204901afb6393ace94bd5c8d39246d0a87383",
      "parents": [
        "d4edac314e9ad0b21ba20ba8bc61b61f186f79e1"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Tue Dec 08 22:18:25 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 08 22:18:25 2009 -0500"
      },
      "message": "ext4: remove blocks from inode prealloc list on failure\n\nThis fixes a leak of blocks in an inode prealloc list if device failures\ncause ext4_mb_mark_diskspace_used() to fail.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nAcked-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d4edac314e9ad0b21ba20ba8bc61b61f186f79e1",
      "tree": "af44b291976308b9db6c215cb2dc03bbe020d6fc",
      "parents": [
        "b9a4207d5e911b938f73079a83cc2ae10524ec7f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Dec 08 21:48:58 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 08 21:48:58 2009 -0500"
      },
      "message": "ext4: wait for log to commit when umounting\n\nThere is a potential race when a transaction is committing right when\nthe file system is being umounting.  This could reduce in a race\nbecause EXT4_SB(sb)-\u003es_group_info could be freed in ext4_put_super\nbefore the commit code calls a callback so the mballoc code can\nrelease freed blocks in the transaction, resulting in a panic trying\nto access the freed s_group_info.\n\nThe fix is to wait for the transaction to finish committing before we\nshutdown the multiblock allocator.  \n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b9a4207d5e911b938f73079a83cc2ae10524ec7f",
      "tree": "6926354a2c6cc8e5f0e930845774ffe73d3766b8",
      "parents": [
        "24b584240a0006ea7436cd35f5e8983eb76f1e6f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Dec 08 21:24:33 2009 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Dec 08 21:24:33 2009 -0500"
      },
      "message": "ext4: Avoid data / filesystem corruption when write fails to copy data\n\nWhen ext4_write_begin fails after allocating some blocks or\ngeneric_perform_write fails to copy data to write, we truncate blocks\nalready instantiated beyond i_size.  Although these blocks were never\ninside i_size, we have to truncate the pagecache of these blocks so\nthat corresponding buffers get unmapped.  Otherwise subsequent\n__block_prepare_write (called because we are retrying the write) will\nfind the buffers mapped, not call -\u003eget_block, and thus the page will\nbe backed by already freed blocks leading to filesystem and data\ncorruption.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    }
  ],
  "next": "24b584240a0006ea7436cd35f5e8983eb76f1e6f"
}
