)]}'
{
  "log": [
    {
      "commit": "d28619f1563140526e2f84eae436f39206f40a69",
      "tree": "d93284016a0983c8f27b745a3c50738617e50995",
      "parents": [
        "021fad8b706849c091f6e682bc5df3ce4f9ab4d7",
        "f32764bd2bbb6ea003c158b1d276b4dc9f900348"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:11:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:11:11 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  quota: Convert quota statistics to generic percpu_counter\n  ext3 uses rb_node \u003d NULL; to zero rb_root.\n  quota: Fixup dquot_transfer\n  reiserfs: Fix resuming of quotas on remount read-write\n  pohmelfs: Remove dead quota code\n  ufs: Remove dead quota code\n  udf: Remove dead quota code\n  quota: rename default quotactl methods to dquot_\n  quota: explicitly set -\u003edq_op and -\u003es_qcop\n  quota: drop remount argument to -\u003equota_on and -\u003equota_off\n  quota: move unmount handling into the filesystem\n  quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers\n  quota: move remount handling into the filesystem\n  ocfs2: Fix use after free on remount read-only\n\nFix up conflicts in fs/ext4/super.c and fs/ufs/file.c\n"
    },
    {
      "commit": "1b061d9247f71cd15edc4c4c4600191a903642c0",
      "tree": "30d92ca82d8286e7a45fba108230ecd23e61673b",
      "parents": [
        "7ea8085910ef3dd4f3cad6845aaa2b580d39b115"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:41 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:06:06 2010 -0400"
      },
      "message": "rename the generic fsync implementations\n\nWe don\u0027t name our generic fsync implementations very well currently.\nThe no-op implementation for in-memory filesystems currently is called\nsimple_sync_file which doesn\u0027t make too much sense to start with,\nthe the generic one for simple filesystems is called simple_fsync\nwhich can lead to some confusion.\n\nThis patch renames the generic file fsync method to generic_file_fsync\nto match the other generic_file_* routines it is supposed to be used\nwith, and the no-op implementation to noop_fsync to make it obvious\nwhat to expect.  In addition add some documentation for both methods.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e4ce30f3779c2ddaa7dfaa4042209e5dbacbada5",
      "tree": "cc64c1dcd16b5dbf71ebc8338b339e6fb04abaee",
      "parents": [
        "b899ebeb05da4287ce845976727e3e83dadd25d5",
        "14ece1028b3ed53ffec1b1213ffc6acaf79ad77c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:26:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:26:37 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: (40 commits)\n  ext4: Make fsync sync new parent directories in no-journal mode\n  ext4: Drop whitespace at end of lines\n  ext4: Fix compat EXT4_IOC_ADD_GROUP\n  ext4: Conditionally define compat ioctl numbers\n  tracing: Convert more ext4 events to DEFINE_EVENT\n  ext4: Add new tracepoints to track mballoc\u0027s buddy bitmap loads\n  ext4: Add a missing trace hook\n  ext4: restart ext4_ext_remove_space() after transaction restart\n  ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted\n  ext4: Avoid crashing on NULL ptr dereference on a filesystem error\n  ext4: Use bitops to read/modify i_flags in struct ext4_inode_info\n  ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE()\n  ext4: Convert callers of ext4_get_blocks() to use ext4_map_blocks()\n  ext4: Add new abstraction ext4_map_blocks() underneath ext4_get_blocks()\n  ext4: Use our own write_cache_pages()\n  ext4: Show journal_checksum option\n  ext4: Fix for ext4_mb_collect_stats()\n  ext4: check for a good block group before loading buddy pages\n  ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate\n  ext4: Remove extraneous newlines in ext4_msg() calls\n  ...\n\nFixed up trivial conflict in fs/ext4/fsync.c\n"
    },
    {
      "commit": "287a80958cf63fc5c68d5bf6e89a3669dd66234a",
      "tree": "8e6883881709ffbbe3b1d6cb7a5b4dcef3428380",
      "parents": [
        "123e9caf1e85008ab7eb5f6cd58c44f9a5d73b2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:45 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:10:17 2010 +0200"
      },
      "message": "quota: rename default quotactl methods to dquot_\n\nFollow the dquot_* style used elsewhere in dquot.c.\n\n[Jan Kara: Fixed up missing conversion of ext2]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "307ae18a56e5b706056a2050d52e8cc01b5171c0",
      "tree": "c4efc57bb8f0fd1d2aa9e416d81c0c7ba87aaf22",
      "parents": [
        "e0ccfd959cd8907bcb66cc2042e0f4fd7fcbff2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:43 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:09:12 2010 +0200"
      },
      "message": "quota: drop remount argument to -\u003equota_on and -\u003equota_off\n\nRemount handling has fully moved into the filesystem, so all this is\nsuperflous now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e0ccfd959cd8907bcb66cc2042e0f4fd7fcbff2b",
      "tree": "a62a84034243e75e07bb063526e10ea0b837062f",
      "parents": [
        "0f0dd62fddcbd0f6830ed8ef3d3426ccc46b9250"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:42 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:09:12 2010 +0200"
      },
      "message": "quota: move unmount handling into the filesystem\n\nCurrently the VFS calls into the quotactl interface for unmounting\nfilesystems.  This means filesystems with their own quota handling\ncan\u0027t easily distinguish between user-space originating quotaoff\nand an unount.  Instead move the responsibily of the unmount handling\ninto the filesystem to be consistent with all other dquot handling.\n\nNote that we do call dquot_disable a lot later now, e.g. after\na sync_filesystem.  But this is fine as the quota code does all its\nwrites via blockdev\u0027s mapping and that is synced even later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0f0dd62fddcbd0f6830ed8ef3d3426ccc46b9250",
      "tree": "295ac31b109f78873cb191867603943d8562ead0",
      "parents": [
        "c79d967de3741ceb60c5bbbf1b6f97eab9a89838"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:41 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:06:40 2010 +0200"
      },
      "message": "quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers\n\nInstead of having wrappers in the VFS namespace export the dquot_suspend\nand dquot_resume helpers directly.  Also rename vfs_quota_disable to\ndquot_disable while we\u0027re at it.\n\n[Jan Kara: Moved dquot_suspend to quotaops.h and made it inline]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c79d967de3741ceb60c5bbbf1b6f97eab9a89838",
      "tree": "5494e7b504cffb0ddc6942d1542c2b4a472207ed",
      "parents": [
        "eea7feb072f5914ecafa95b3d83be0c229244d90"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:40 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:06:39 2010 +0200"
      },
      "message": "quota: move remount handling into the filesystem\n\nCurrently do_remount_sb calls into the dquot code to tell it about going\nfrom rw to ro and ro to rw.  Move this code into the filesystem to\nnot depend on the dquot code in the VFS - note ocfs2 already ignores\nthese calls and handles remount by itself.  This gets rid of overloading\nthe quotactl calls and allows to unify the VFS and XFS codepaths in\nthat area later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d",
      "tree": "c0d82cbd11daaf579b74121c6641d58947091094",
      "parents": [
        "6109e2ce2600e2db26cd0424bb9c6ed019723288",
        "82f3952c02add60b15eea9151d4d99b6b82066c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (69 commits)\n  fix handling of offsets in cris eeprom.c, get rid of fake on-stack files\n  get rid of home-grown mutex in cris eeprom.c\n  switch ecryptfs_write() to struct inode *, kill on-stack fake files\n  switch ecryptfs_get_locked_page() to struct inode *\n  simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n  AFS: Don\u0027t put struct file on the stack\n  Ban ecryptfs over ecryptfs\n  logfs: replace inode uid,gid,mode initialization with helper function\n  ufs: replace inode uid,gid,mode initialization with helper function\n  udf: replace inode uid,gid,mode init with helper\n  ubifs: replace inode uid,gid,mode initialization with helper function\n  sysv: replace inode uid,gid,mode initialization with helper function\n  reiserfs: replace inode uid,gid,mode initialization with helper function\n  ramfs: replace inode uid,gid,mode initialization with helper function\n  omfs: replace inode uid,gid,mode initialization with helper function\n  bfs: replace inode uid,gid,mode initialization with helper function\n  ocfs2: replace inode uid,gid,mode initialization with helper function\n  nilfs2: replace inode uid,gid,mode initialization with helper function\n  minix: replace inode uid,gid,mode init with helper\n  ext4: replace inode uid,gid,mode init with helper\n  ...\n\nTrivial conflict in fs/fs-writeback.c (mark bitfields unsigned)\n"
    },
    {
      "commit": "b10b8520903204c9a1e4ef4a6827c2f1569aae9b",
      "tree": "49b78527451cf32cfc16be194261308b8c27a6be",
      "parents": [
        "aab99c2c26f74d90f615fcca534172dfc1c8bec2"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Mar 04 17:31:51 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:24 2010 -0400"
      },
      "message": "ext4: replace inode uid,gid,mode init with helper\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "11e27528076e7dee63f1db78bffbef6310f076f4",
      "tree": "e8b3ce42cb10d5172fe5caf2b302a09e272e6b27",
      "parents": [
        "d1f21049f9185e589849051d94c9a50151c6a7dc"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:18 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:19 2010 -0400"
      },
      "message": "ext4: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ee9a3607fb03e804ddf624544105f4e34260c380",
      "tree": "ce41b6e0fa10982a306f6c142a92dbf3c9961284",
      "parents": [
        "b492e95be0ae672922f4734acf3f5d35c30be948",
        "d515e86e639890b33a09390d062b0831664f04a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 21 21:27:26 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/ext3/fsync.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "12755627bdcddcdb30a1bfb9a09395a52b1d6838",
      "tree": "b2d69696975d5457648020324f683a45302fbf3c",
      "parents": [
        "fcbc59f96e38a0999e827be9d04d46b62b53b20a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Apr 08 22:04:20 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: unify quota init condition in setattr\n\nQuota must being initialized if size or uid/git changes requested.\nBut initialization performed in two different places:\nin case of i_size file system is responsible for dquot init\n, but in case of uid/gid init will be called internally in\ndquot_transfer().\nThis ambiguity makes code harder to understand.\nLet\u0027s move this logic to one common helper function.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "14ece1028b3ed53ffec1b1213ffc6acaf79ad77c",
      "tree": "8f5a13487139c68ef775c9d39b7be83386fdae06",
      "parents": [
        "60e6679e28518ccd67169c4a539d8cc7490eb8a6"
      ],
      "author": {
        "name": "Frank Mayhar",
        "email": "fmayhar@google.com",
        "time": "Mon May 17 08:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 08:00:00 2010 -0400"
      },
      "message": "ext4: Make fsync sync new parent directories in no-journal mode\n\nAdd a new ext4 state to tell us when a file has been newly created; use\nthat state in ext4_sync_file in no-journal mode to tell us when we need\nto sync the parent directory as well as the inode and data itself.  This\nfixes a problem in which a panic or power failure may lose the entire\nfile even when using fsync, since the parent directory entry is lost.\n\nAddresses-Google-Bug: #2480057\n\nSigned-off-by: Frank Mayhar \u003cfmayhar@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "60e6679e28518ccd67169c4a539d8cc7490eb8a6",
      "tree": "65f39d1e9da3006df5bc5532d0c8a7ec365599f0",
      "parents": [
        "4d92dc0f00a775dc2e1267b0e00befb783902fe7"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 07:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 07:00:00 2010 -0400"
      },
      "message": "ext4: Drop whitespace at end of lines\n\nThis patch was generated using:\n\n#!/usr/bin/perl -i\nwhile (\u003c\u003e) {\n    s/[ \t]+$//;\n    print;\n}\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "4d92dc0f00a775dc2e1267b0e00befb783902fe7",
      "tree": "07bb835871dfcc290f5909fe6635ab420ff61420",
      "parents": [
        "899ad0cea6ad7ff4ba24b16318edbc3cbbe03fad"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Mon May 17 06:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 06:00:00 2010 -0400"
      },
      "message": "ext4: Fix compat EXT4_IOC_ADD_GROUP\n\nstruct ext4_new_group_input needs to be converted because u64 has\nonly 32-bit alignment on some 32-bit architectures, notably i386.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "899ad0cea6ad7ff4ba24b16318edbc3cbbe03fad",
      "tree": "5a9b5b84cf47321fbf1ac10bde64bbf3ff75a269",
      "parents": [
        "f084db932e6fe877bf8362bc256fc850de196deb"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Mon May 17 05:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 05:00:00 2010 -0400"
      },
      "message": "ext4: Conditionally define compat ioctl numbers\n\nIt is unnecessary, and in general impossible, to define the compat\nioctl numbers except when building the filesystem with CONFIG_COMPAT\ndefined.\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "f307333e14f6b18045eb4198fe646d9b6028f3ed",
      "tree": "71611b08a95f4f07de9b4c19100474188027e62e",
      "parents": [
        "5a58ec8766e0ce98fd585eb404b3e56935afafe6"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 03:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 03:00:00 2010 -0400"
      },
      "message": "ext4: Add new tracepoints to track mballoc\u0027s buddy bitmap loads\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "5a58ec8766e0ce98fd585eb404b3e56935afafe6",
      "tree": "191f9457a05ffe7803712f62d40d848d58987765",
      "parents": [
        "0617b83fa239db9743a18ce6cc0e556f4d0fd567"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Mon May 17 02:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 02:00:00 2010 -0400"
      },
      "message": "ext4: Add a missing trace hook\n\nCommit f8ec9d6837241865cf99bed97bb99f4399fd5a03 added a\ntrace event ext4_da_release_space, but didn\u0027t add some\ncorresponding trace hook.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "0617b83fa239db9743a18ce6cc0e556f4d0fd567",
      "tree": "46d646c2d1af9d706848520a4657877d4cff768f",
      "parents": [
        "786ec7915e530936b9eb2e3d12274145cab7aa7d"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon May 17 01:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 01:00:00 2010 -0400"
      },
      "message": "ext4: restart ext4_ext_remove_space() after transaction restart\n\nIf i_data_sem was internally dropped due to transaction restart, it is\nnecessary to restart path look-up because extents tree was possibly\nmodified by ext4_get_block().\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d15827\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "786ec7915e530936b9eb2e3d12274145cab7aa7d",
      "tree": "bbdfd4189ef769196808698e68862d4a192595e6",
      "parents": [
        "f70f362b4a6fe47c239dbfb3efc0cc2c10e4f09c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 00:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 17 00:00:00 2010 -0400"
      },
      "message": "ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted\n\nDimitry Monakhov discovered an edge case where it was possible for the\nEXT4_EOFBLOCKS_FL flag could get cleared unnecessarily.  This is true;\nI have a test case that can be exercised via downloading and\ndecompressing the file:\n\nwget ftp://ftp.kernel.org/pub/linux/kernel/people/tytso/ext4-testcases/eofblocks-fl-test-case.img.bz2\nbunzip2 eofblocks-fl-test-case.img\ndd if\u003d/dev/zero of\u003deofblocks-fl-test-case.img bs\u003d1k seek\u003d17925 bs\u003d1k count\u003d1 conv\u003dnotrunc\n\nHowever, triggering it in real life is highly unlikely since it\nrequires an extremely fragmented sparse file with a hole in exactly\nthe right place in the extent tree.  (It actually took quite a bit of\nwork to generate this test case.)  Still, it\u0027s nice to get even\nextreme corner cases to be correct, so this patch makes sure that we\ndon\u0027t clear the EXT4_EOFBLOCKS_FL incorrectly even in this corner\ncase.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n\n"
    },
    {
      "commit": "f70f362b4a6fe47c239dbfb3efc0cc2c10e4f09c",
      "tree": "b9db08f3675d1cc0ed7d1af08418f5f5ba554ca6",
      "parents": [
        "12e9b892002d9af057655d35b44db8ee9243b0dc"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 23:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 23:00:00 2010 -0400"
      },
      "message": "ext4: Avoid crashing on NULL ptr dereference on a filesystem error\n\nIf the EOFBLOCK_FL flag is set when it should not be and the inode is\nzero length, then eh_entries is zero, and ex is NULL, so dereferencing\nex to print ex-\u003eee_block causes a kernel OOPS in\next4_ext_map_blocks().\n\nOn top of that, the error message which is printed isn\u0027t very helpful.\nSo we fix this by printing something more explanatory which doesn\u0027t\ninvolve trying to print ex-\u003eee_block.\n\nAddresses-Google-Bug: #2655740\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "12e9b892002d9af057655d35b44db8ee9243b0dc",
      "tree": "c5831b4bcf98eebdd39158d08dab97c198f5c683",
      "parents": [
        "24676da469f50f433baa347845639662c561d1f6"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 22:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 22:00:00 2010 -0400"
      },
      "message": "ext4: Use bitops to read/modify i_flags in struct ext4_inode_info\n\nAt several places we modify EXT4_I(inode)-\u003ei_flags without holding\ni_mutex (ext4_do_update_inode, ...). These modifications are racy and\nwe can lose updates to i_flags. So convert handling of i_flags to use\nbitops which are atomic.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d15792\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "24676da469f50f433baa347845639662c561d1f6",
      "tree": "b4b8205f8b50376af286193d0dcbe76f2bc2d1e1",
      "parents": [
        "2ed886852adfcb070bf350e66a0da0d98b2f3ab5"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 21:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 21:00:00 2010 -0400"
      },
      "message": "ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE()\n\nEXT4_ERROR_INODE() tends to provide better error information and in a\nmore consistent format.  Some errors were not even identifying the inode\nor directory which was corrupted, which made them not very useful.\n\nAddresses-Google-Bug: #2507977\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "2ed886852adfcb070bf350e66a0da0d98b2f3ab5",
      "tree": "bcec0a1004f413b70087e2c43097892f87f21cc3",
      "parents": [
        "e35fd6609b2fee54484d520deccb8f18bf7d38f3"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 20:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 20:00:00 2010 -0400"
      },
      "message": "ext4: Convert callers of ext4_get_blocks() to use ext4_map_blocks()\n\nThis saves a huge amount of stack space by avoiding unnecesary struct\nbuffer_head\u0027s from being allocated on the stack.\n\nIn addition, to make the code easier to understand, collapse and\nrefactor ext4_get_block(), ext4_get_block_write(),\nnoalloc_get_block_write(), into a single function.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "e35fd6609b2fee54484d520deccb8f18bf7d38f3",
      "tree": "9b786445602819074f599c282b31bead166e8c03",
      "parents": [
        "8e48dcfbd7c0892b4cfd064d682cc4c95a29df32"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 19:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 19:00:00 2010 -0400"
      },
      "message": "ext4: Add new abstraction ext4_map_blocks() underneath ext4_get_blocks()\n\nJack up ext4_get_blocks() and add a new function, ext4_map_blocks()\nwhich uses a much smaller structure, struct ext4_map_blocks which is\n20 bytes, as opposed to a struct buffer_head, which nearly 5 times\nbigger on an x86_64 machine.  By switching things to use\next4_map_blocks(), we can save stack space by using ext4_map_blocks()\nsince we can avoid allocating a struct buffer_head on the stack.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8e48dcfbd7c0892b4cfd064d682cc4c95a29df32",
      "tree": "653f12cc4eea9606c80142752612ad28f1ccdb45",
      "parents": [
        "39a4bade8c1826b658316d66ee81c09b0a4d7d42"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 18:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 18:00:00 2010 -0400"
      },
      "message": "ext4: Use our own write_cache_pages()\n\nMake a copy of write_cache_pages() for the benefit of\next4_da_writepages().  This allows us to simplify the code some, and\nwill allow us to further customize the code in future patches.\n\nThere are some nasty hacks in write_cache_pages(), which Linus has\n(correctly) characterized as vile.  I\u0027ve just copied it into\nwrite_cache_pages_da(), without trying to clean those bits up lest I\nbreak something in the ext4\u0027s delalloc implementation, which is a bit\nfragile right now.  This will allow Dave Chinner to clean up\nwrite_cache_pages() in mm/page-writeback.c, without worrying about\nbreaking ext4.  Eventually write_cache_pages_da() will go away when I\nrewrite ext4\u0027s delayed allocation and create a general\next4_writepages() which is used for all of ext4\u0027s writeback.  Until\nnow this is the lowest risk way to clean up the core\nwrite_cache_pages() function.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\n"
    },
    {
      "commit": "39a4bade8c1826b658316d66ee81c09b0a4d7d42",
      "tree": "3f61798e2e0b7b8ba74b4257ff207eb31166762e",
      "parents": [
        "291dae472a8976ff461f24c848fee2a03f9ea3c8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun May 16 17:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 17:00:00 2010 -0400"
      },
      "message": "ext4: Show journal_checksum option\n\nWe failed to show journal_checksum option in /proc/mounts. Fix it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "291dae472a8976ff461f24c848fee2a03f9ea3c8",
      "tree": "74926cf247344af2ad825a71f25787d61a0d503e",
      "parents": [
        "8a57d9d61a6e361c7bb159dda797672c1df1a691"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun May 16 16:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 16:00:00 2010 -0400"
      },
      "message": "ext4: Fix for ext4_mb_collect_stats()\n\nFix ext4_mb_collect_stats() to use the correct test for s_bal_success; it\nshould be testing \"best-extent.fe_len \u003e\u003d orig-extent.fe_len\" , not\n\"orig-extent.fe_len \u003e\u003d goal-extent.fe_len\" .\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8a57d9d61a6e361c7bb159dda797672c1df1a691",
      "tree": "39a01022ed2294f0acc94b45554c9a292db671dc",
      "parents": [
        "6d19c42b7cf81c39632b6d4dbc514e8449bcd346"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun May 16 15:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 15:00:00 2010 -0400"
      },
      "message": "ext4: check for a good block group before loading buddy pages\n\nThis adds a new field in ext4_group_info to cache the largest available\nblock range in a block group; and don\u0027t load the buddy pages until *after*\nwe\u0027ve done a sanity check on the block group.\n\nWith large allocation requests (e.g., fallocate(), 8MiB) and relatively full\npartitions, it\u0027s easy to have no block groups with a block extent large\nenough to satisfy the input request length.  This currently causes the loop\nduring cr \u003d\u003d 0 in ext4_mb_regular_allocator() to load the buddy bitmap pages\nfor EVERY block group.  That can be a lot of pages.  The patch below allows\nus to call ext4_mb_good_group() BEFORE we load the buddy pages (although we\nhave check again after we lock the block group).\n\nAddresses-Google-Bug: #2578108\nAddresses-Google-Bug: #2704453\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6d19c42b7cf81c39632b6d4dbc514e8449bcd346",
      "tree": "f390fca28758e63c8be0530a2c8656ff27f5320b",
      "parents": [
        "fbe845ddf368f77f86aa7500f8fd2690f54c66a8"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Sun May 16 14:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 14:00:00 2010 -0400"
      },
      "message": "ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate\n\nCurrently using posix_fallocate one can bypass an RLIMIT_FSIZE limit\nand create a file larger than the limit. Add a check for that.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Amit Arora \u003caarora@in.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "fbe845ddf368f77f86aa7500f8fd2690f54c66a8",
      "tree": "81e62af0c35794a4c0a2802d0528cacb43f2b4de",
      "parents": [
        "d4c402d9fd97a54bb7ed89f9e9869897eb4f6e1f"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun May 16 13:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 13:00:00 2010 -0400"
      },
      "message": "ext4: Remove extraneous newlines in ext4_msg() calls\n\nAddresses-Google-Bug: #2562325\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d4c402d9fd97a54bb7ed89f9e9869897eb4f6e1f",
      "tree": "6469b5d8aa9e18db0d689f79ab8e40ae5ff3064d",
      "parents": [
        "72b8ab9dde211ea518ff27e631b2046ef90c29a2"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Sun May 16 12:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 12:00:00 2010 -0400"
      },
      "message": "ext4: Print mount options in when mounting and add a remount message\n\nThis adds a \"re-mounted\" message to ext4_remount(), and both it and\nthe mount message in ext4_fill_super() now have the original mount\noptions data string.\n\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "72b8ab9dde211ea518ff27e631b2046ef90c29a2",
      "tree": "f63fc1894bcc39c81060e2fd8b21bedd07a1e958",
      "parents": [
        "0e05842bc117ea70ceb979cca798fd026879951b"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 11:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 11:00:00 2010 -0400"
      },
      "message": "ext4: don\u0027t use quota reservation for speculative metadata\n\nBecause we can badly over-reserve metadata when we\ncalculate worst-case, it complicates things for quota, since\nwe must reserve and then claim later, retry on EDQUOT, etc.\nQuota is also a generally smaller pool than fs free blocks,\nso this over-reservation hurts more, and more often.\n\nI\u0027m of the opinion that it\u0027s not the worst thing to allow\nmetadata to push a user slightly over quota.  This simplifies\nthe code and avoids the false quota rejections that result\nfrom worst-case speculation.\n\nThis patch stops the speculative quota-charging for\nworst-case metadata requirements, and just charges quota\nwhen the blocks are allocated at writeout.  It also is\nable to remove the try-again loop on EDQUOT.\n\nThis patch has been tested indirectly by running the xfstests\nsuite with a hack to mount \u0026 enable quota prior to the test.\n\nI also did a more specific test of fragmenting freespace\nand then doing a large delalloc write under quota; quota\nstopped me at the right amount of file IO, and then the\nwriteout generated enough metadata (due to the fragmentation)\nthat it put me slightly over quota, as expected.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "84061e07c5fbbbf9dc8aef8fb750fc3a2dfc31f3",
      "tree": "91f3e08999ea72b51b246c521ffc31d2c55eea90",
      "parents": [
        "d17413c08cd2b1dd2bf2cfdbb0f7b736b2b2b15c"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 08:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 08:00:00 2010 -0400"
      },
      "message": "ext4: init statistics after journal recovery\n\nCurrently block/inode/dir counters initialized before journal was\nrecovered. In fact after journal recovery this info will probably\nchange. And freeblocks it critical for correct delalloc mode\naccounting.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d15768\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "d17413c08cd2b1dd2bf2cfdbb0f7b736b2b2b15c",
      "tree": "af5c4e2e0c7e7d188dd5b8fac61d39ee7984f3c6",
      "parents": [
        "21ca087a3891efab4d45488db8febee474d26c68"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 07:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 07:00:00 2010 -0400"
      },
      "message": "ext4: clean up inode bitmaps manipulation in ext4_free_inode\n\n- Reorganize locking scheme to batch two atomic operation in to one.\n  This also allow us to state what healthy group must obey following rule\n  ext4_free_inodes_count(sb, gdp) \u003d\u003d ext4_count_free(inode_bitmap, NUM);\n- Fix possible undefined pointer dereference.\n- Even if group descriptor stats aren\u0027t accessible we have to update\n  inode bitmaps.\n- Move non-group members update out of group_lock.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "21ca087a3891efab4d45488db8febee474d26c68",
      "tree": "343af5d07c11d614835eac004be36382cec27dc0",
      "parents": [
        "c35a56a090eacefca07afeb994029b57d8dd8025"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 06:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 06:00:00 2010 -0400"
      },
      "message": "ext4: Do not zero out uninitialized extents beyond i_size\n\nThe extents code will sometimes zero out blocks and mark them as\ninitialized instead of splitting an extent into several smaller ones.\nThis optimization however, causes problems if the extent is beyond\ni_size because fsck will complain if there are uninitialized blocks\nafter i_size as this can not be distinguished from an inode that has\nan incorrect i_size field.\n\nhttps://bugzilla.kernel.org/show_bug.cgi?id\u003d15742\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c445e3e0a5c2804524dec6e55f66d63f6bc5bc3e",
      "tree": "e4839825628b6d3aa3a9141e32370d5edebcc546",
      "parents": [
        "a30eec2a8650a77f754e84b2e15f062fe652baa7"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 04:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 04:00:00 2010 -0400"
      },
      "message": "ext4: don\u0027t scan/accumulate more pages than mballoc will allocate\n\nThere was a bug reported on RHEL5 that a 10G dd on a 12G box\nhad a very, very slow sync after that.\n\nAt issue was the loop in write_cache_pages scanning all the way\nto the end of the 10G file, even though the subsequent call\nto mpage_da_submit_io would only actually write a smallish amt; then\nwe went back to the write_cache_pages loop ... wasting tons of time\nin calling __mpage_da_writepage for thousands of pages we would\njust revisit (many times) later.\n\nUpstream it\u0027s not such a big issue for sys_sync because we get\nto the loop with a much smaller nr_to_write, which limits the loop.\n\nHowever, talking with Aneesh he realized that fsync upstream still\ngets here with a very large nr_to_write and we face the same problem.\n\nThis patch makes mpage_add_bh_to_extent stop the loop after we\u0027ve\naccumulated 2048 pages, by setting mpd-\u003eio_done \u003d 1; which ultimately\ncauses the write_cache_pages loop to break.\n\nRepeating the test with a dirty_ratio of 80 (to leave something for\nfsync to do), I don\u0027t see huge IO performance gains, but the reduction\nin cpu usage is striking: 80% usage with stock, and 2% with the\nbelow patch.  Instrumenting the loop in write_cache_pages clearly\nshows that we are wasting time here.\n\nEventually we need to change mpage_da_map_pages() also submit its I/O\nto the block layer, subsuming mpage_da_submit_io(), and then change it\ncall ext4_get_blocks() multiple times.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "a30eec2a8650a77f754e84b2e15f062fe652baa7",
      "tree": "7b20063513e534c5c13608df572c77c6975ff900",
      "parents": [
        "6b0310fbf087ad6e9e3b8392adca97cd77184084"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 03:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 03:00:00 2010 -0400"
      },
      "message": "ext4: stop issuing discards if not supported by device\n\nTurn off issuance of discard requests if the device does\nnot support it - similar to the action we take for barriers.\nThis will save a little computation time if a non-discardable\ndevice is mounted with -o discard, and also makes it obvious\nthat it\u0027s not doing what was asked at mount time ...\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6b0310fbf087ad6e9e3b8392adca97cd77184084",
      "tree": "6c15fad6ca442d92e8075578a9b04811ca093bda",
      "parents": [
        "256a453546f1cf2c29a639c79fe0d603761a8e25"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 02:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 02:00:00 2010 -0400"
      },
      "message": "ext4: don\u0027t return to userspace after freezing the fs with a mutex held\n\next4_freeze() used jbd2_journal_lock_updates() which takes\nthe j_barrier mutex, and then returns to userspace.  The\nkernel does not like this:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ BUG: lock held when returning to user space! ]\n------------------------------------------------\nlvcreate/1075 is leaving the kernel with locks still held!\n1 lock held by lvcreate/1075:\n #0:  (\u0026journal-\u003ej_barrier){+.+...}, at: [\u003cffffffff811c6214\u003e]\njbd2_journal_lock_updates+0xe1/0xf0\n\nUse vfs_check_frozen() added to ext4_journal_start_sb() and\next4_force_commit() instead.\n\nAddresses-Red-Hat-Bugzilla: #568503\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "256a453546f1cf2c29a639c79fe0d603761a8e25",
      "tree": "e9514f94d7a7e549b065f9ee7b08dbbd3da913ec",
      "parents": [
        "42007efd569f1cf3bfb9a61da60ef6c2179508ca"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 02:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 02:00:00 2010 -0400"
      },
      "message": "ext4: symlink must be handled via filesystem specific operation\n\ngeneric setattr implementation is no longer responsible for\nquota transfer so synlinks must be handled via ext4_setattr.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "42007efd569f1cf3bfb9a61da60ef6c2179508ca",
      "tree": "70db30db1fcf756d95db1ef02452e4cb062ebdd4",
      "parents": [
        "35121c9860316d7799cea0fbc359a9186e7c2747"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 01:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 01:00:00 2010 -0400"
      },
      "message": "ext4: check s_log_groups_per_flex in online resize code\n\nIf groups_per_flex \u003c 2, sbi-\u003es_flex_groups[] doesn\u0027t get filled out,\nand every other access to this first tests s_log_groups_per_flex;\nsame thing needs to happen in resize or we\u0027ll wander off into\na null pointer when doing an online resize of the file system.\n\nThanks to Christoph Biedl, who came up with the trivial testcase:\n\n# truncate --size 128M fsfile\n# mkfs.ext3 -F fsfile\n# tune2fs -O extents,uninit_bg,dir_index,flex_bg,huge_file,dir_nlink,extra_isize fsfile\n# e2fsck -yDf -C0 fsfile\n# truncate --size 132M fsfile\n# losetup /dev/loop0 fsfile\n# mount /dev/loop0 mnt\n# resize2fs -p /dev/loop0\n\n\thttps://bugzilla.kernel.org/show_bug.cgi?id\u003d13549\n\nReported-by: Alessandro Polverini \u003calex@nibbles.it\u003e\nTest-case-by: Christoph Biedl  \u003cbugzilla.kernel.bpeb@manchmal.in-ulm.de\u003e\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "35121c9860316d7799cea0fbc359a9186e7c2747",
      "tree": "6deb327895e42708a491a3b5d7a66b95cfb18003",
      "parents": [
        "b684b2ee9409f2890a8b3aea98525bbe5f84e276"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sun May 16 00:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 00:00:00 2010 -0400"
      },
      "message": "ext4: fix quota accounting in case of fallocate\n\nallocated_meta_data is already included in \u0027used\u0027 variable.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "b684b2ee9409f2890a8b3aea98525bbe5f84e276",
      "tree": "7b8e2776e542bf0a695b38c2aa09a0b9bbd32c20",
      "parents": [
        "e39e07fdfd98be8650385f12a7b81d6adc547510"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Sat May 15 00:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat May 15 00:00:00 2010 -0400"
      },
      "message": "ext4: allow defrag (EXT4_IOC_MOVE_EXT) in 32bit compat mode\n\nI have an x86_64 kernel with i386 userspace. e4defrag fails on the\nEXT4_IOC_MOVE_EXT ioctl because it is not wired up for the compat\ncase. It seems that struct move_extent is compat save, only types\nwith fixed widths are used:\n{\n        __u32 reserved;         /* should be zero */\n        __u32 donor_fd;         /* donor file descriptor */\n        __u64 orig_start;       /* logical start offset in block for orig */\n        __u64 donor_start;      /* logical start offset in block for donor */\n        __u64 len;              /* block length to be moved */\n        __u64 moved_len;        /* moved block length */\n};\n\nLets just wire up EXT4_IOC_MOVE_EXT for the compat case.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nCC: Akira Fujita \u003ca-fujita@rs.jp.nec.com\u003e \n"
    },
    {
      "commit": "e39e07fdfd98be8650385f12a7b81d6adc547510",
      "tree": "9d948eab23a943e3c3092f52f1db6cfbd54a51cd",
      "parents": [
        "62e823a2cba18509ee826d775270e8ef9071b5bc"
      ],
      "author": {
        "name": "Jing Zhang",
        "email": "zj.barak@gmail.com",
        "time": "Fri May 14 00:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri May 14 00:00:00 2010 -0400"
      },
      "message": "ext4: rename ext4_mb_release_desc() to ext4_mb_unload_buddy()\n\nThis function cleans up after ext4_mb_load_buddy(), so the renaming\nmakes the code clearer.\n\nSigned-off-by: Jing Zhang \u003czj.barak@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n\n"
    },
    {
      "commit": "62e823a2cba18509ee826d775270e8ef9071b5bc",
      "tree": "f31bade5a792c962ba4c91b56c248228658fbc2a",
      "parents": [
        "b720303df7352d4a7a1f61e467e0a124913c0d41"
      ],
      "author": {
        "name": "Jing Zhang",
        "email": "zj.barak@gmail.com",
        "time": "Thu May 13 00:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 13 00:00:00 2010 -0400"
      },
      "message": "ext4: Remove unnecessary call to ext4_get_group_desc() in mballoc\n\nSigned-off-by: Jing Zhang \u003czj.barak@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\n"
    },
    {
      "commit": "b720303df7352d4a7a1f61e467e0a124913c0d41",
      "tree": "d0c102111ed28ced2d3a0dbfed987f9b8ed5db37",
      "parents": [
        "c26d0bad3d0e951487e5dee36632dd3817f42b10"
      ],
      "author": {
        "name": "Jing Zhang",
        "email": "zj.barak@gmail.com",
        "time": "Wed May 12 00:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed May 12 00:00:00 2010 -0400"
      },
      "message": "ext4: fix memory leaks in error path handling of ext4_ext_zeroout()\n\nWhen EIO occurs after bio is submitted, there is no memory free\noperation for bio, which results in memory leakage. And there is also\nno check against bio_alloc() for bio.\n\nAcked-by: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nSigned-off-by: Jing Zhang \u003czj.barak@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "c26d0bad3d0e951487e5dee36632dd3817f42b10",
      "tree": "2c442a1cc78b875b7d991f0efedc34eaf788b3ee",
      "parents": [
        "0671e704658b9f26f85e78d51176daa861f955c7"
      ],
      "author": {
        "name": "Steven Liu",
        "email": "lingjiujianke@gmail.com",
        "time": "Tue May 11 00:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 11 00:00:00 2010 -0400"
      },
      "message": "ext4: Fix coding style in fs/ext4/move_extent.c\n\nMaking sure ee_block is initialized to zero to prevent gcc from\nkvetching.  It\u0027s harmless (although it\u0027s not obvious that it\u0027s\nharmless) from code inspection:\n\nfs/ext4/move_extent.c:478: warning: \u0027start_ext.ee_block\u0027 may be used\nuninitialized in this function\n\nThanks to Stefan Richter for first bringing this to the attention of\nlinux-ext4@vger.kernel.org.\n\nSigned-off-by: LiuQi \u003clingjiujianke@gmail.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0671e704658b9f26f85e78d51176daa861f955c7",
      "tree": "412b4ec94b565eabaab74312c5b7fd04341a6d4f",
      "parents": [
        "b57f95a38233a2e73b679bea4a5453a1cc2a1cc9"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon May 10 00:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon May 10 00:00:00 2010 -0400"
      },
      "message": "ext4: check missed return value in ext4_sync_file()\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "7407cf355fdf5500430be966dbbde84a27293bad",
      "tree": "922861288ff38558ed721a79653f52b17b13bb95",
      "parents": [
        "6a47dc1418682c83d603b491df1d048f73aa973e",
        "79dba2eaa771c3173957eccfd288e0e0d12e4d3f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 09:36:24 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 09:36:24 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/block_dev.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fbd9b09a177a481eda256447c881f014f29034fe",
      "tree": "ef7e213045382f82a1e3e3cf134d196a1045dd7a",
      "parents": [
        "6b4517a7913a09d3259bb1d21c9cb300f12294bd"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Apr 28 17:55:06 2010 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 28 19:47:36 2010 +0200"
      },
      "message": "blkdev: generalize flags for blkdev_issue_fn functions\n\nThe patch just convert all blkdev_issue_xxx function to common\nset of flags. Wait/allocation semantics preserved.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "003cb608a2533d0927a83bc4e07e46d7a622eda9"
}
