)]}'
{
  "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": "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": "f32764bd2bbb6ea003c158b1d276b4dc9f900348",
      "tree": "7fbabde3796a97b8b121349ea76b22b23238230a",
      "parents": [
        "1513b02c8b537af275ea74fdfb380c618b9e6778"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed May 26 23:21:58 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 27 18:56:27 2010 +0200"
      },
      "message": "quota: Convert quota statistics to generic percpu_counter\n\nGeneric per-cpu counter has some memory overhead but it is negligible for\nmodern systems and embedded systems compile without quota support.  And code\nreuse is a good thing. This patch should fix complain from preemptive kernels\nwhich was introduced by dde9588853b1bde.\n\n[Jan Kara: Fixed patch to work on 32-bit archs as well]\n\nReported-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4dea496974e41814cc715db0268226c6f71f7c8a",
      "tree": "84ab5468169b41176a56ee65b6f05bfa881057ea",
      "parents": [
        "f4b113ae6f772b3c25fdcd73d15e9d8b17c89dcc"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 12:39:49 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 27 17:39:36 2010 +0200"
      },
      "message": "quota: Fixup dquot_transfer\n\nCommit bc8e5f07392f05c47c8bdeff4f7098db440d065c had a typo which caused\nquota miscomputation when changing owner group of a file. Linus will hate\nme.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\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": "123e9caf1e85008ab7eb5f6cd58c44f9a5d73b2b",
      "tree": "a7a49a9aabb2136e8d19a3d86096bb525a16e0b9",
      "parents": [
        "307ae18a56e5b706056a2050d52e8cc01b5171c0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:44 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:10:17 2010 +0200"
      },
      "message": "quota: explicitly set -\u003edq_op and -\u003es_qcop\n\nOnly set the quota operation vectors if the filesystem actually supports\nquota instead of doing it for all filesystems in alloc_super().\n\n[Jan Kara: Export dquot_operations and vfs_quotactl_ops]\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": "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": "01a05b337a5b647909e1d6670f57e7202318a5fb",
      "tree": "7877f08db14877d06346c8e1ef52aa17f2483e93",
      "parents": [
        "35cf7ba0b46dc3582a01c3860b14bff122662aa3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 06:06:58 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "new helper: iterate_supers()\n\n... and switch the simple \"loop over superblocks and do something\"\nloops to it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "35cf7ba0b46dc3582a01c3860b14bff122662aa3",
      "tree": "2b38e9333600f468f0c8371c657c02e3aa8ec43b",
      "parents": [
        "79893c17b45dec0d3c25bc22d28d9f319b14f573"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 21:13:53 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:16 2010 -0400"
      },
      "message": "Bury __put_super_and_need_restart()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6754af64641e8224c281ee5714e012e3ed41f701",
      "tree": "248a8c01aae46f98505d8c196393fae629f9691a",
      "parents": [
        "8edd64bd6089e21f47dcdebb14b598b713213ddc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 20:09:33 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:15 2010 -0400"
      },
      "message": "Convert simple loops over superblocks to list_for_each_entry_safe\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "551de6f34dfeefbeeadb32909c387d393114ecc8",
      "tree": "822af803e7e75ed476b0a176639c162e0395910d",
      "parents": [
        "1712ac8fda7d8bc4dc921f5777b7423aacad7263"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 22 19:36:35 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:14 2010 -0400"
      },
      "message": "Leave superblocks on s_list until the end\n\nWe used to remove from s_list and s_instances at the same\ntime.  So let\u0027s *not* do the former and skip superblocks\nthat have empty s_instances in the loops over s_list.\n\nThe next step, of course, will be to get rid of rescan logics\nin those loops.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1907131bbeabb33db313bad34f3ec1a5faedbd64",
      "tree": "e5561fce158ea6f17406f8f17871af0c61d5cbd5",
      "parents": [
        "c06bcbfa1ed8daaeb2a262f372b411207891e229"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Mon May 17 18:36:03 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:49 2010 +0200"
      },
      "message": "dquot: Detect partial write error to quota file in write_blk() and add printk_ratelimit for quota error messages\n\nThis patch changes quota_tree.c:write_blk() to detect error caused by partial\nwrite to quota file and add a macro to limit control printed quota error\nmessages so we won\u0027t fill up dmesg with a corrupted quota file.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "bc8e5f07392f05c47c8bdeff4f7098db440d065c",
      "tree": "5ab56dabd75912267764849a594ec2f271fd4352",
      "parents": [
        "12755627bdcddcdb30a1bfb9a09395a52b1d6838"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 19:58:50 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: Refactor dquot_transfer code so that OCFS2 can pass in its references\n\nCurrently, __dquot_transfer() acquires its own references of dquot structures\nthat will be put into inode. But for OCFS2, this creates a lock inversion\nbetween dq_lock (waited on in dqget) and transaction start (started in\nocfs2_setattr). Currently, deadlock is impossible because dq_lock is acquired\nonly during dquot_acquire and dquot_release and we already hold a reference to\ndquot structures in ocfs2_setattr so neither of these functions can be called\nwhile we call dquot_transfer. But this is rather subtle and it is hard to teach\nlockdep about it. So provide __dquot_transfer function that can be passed dquot\nreferences directly. OCFS2 can then pass acquired dquot references directly to\n__dquot_transfer with proper locking.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\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": "fcbc59f96e38a0999e827be9d04d46b62b53b20a",
      "tree": "240b623a67251f2c2cbfcfee2b65667c148d1cbb",
      "parents": [
        "c472b43275976512e4c1c32da5ced03f339cb380"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri May 07 12:35:40 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: remove sb_has_quota_active in get/set_info\n\nThe methods already do these checks, so remove them in the quotactl\nimplementation to allow non-VFS quota implementations to also support\nthese calls.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c472b43275976512e4c1c32da5ced03f339cb380",
      "tree": "9159fbfd1190456e8b3e699b856022c23f6ec10c",
      "parents": [
        "b9b2dd36c1bc64430f8e13990ab135cbecc10076"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu May 06 17:05:17 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:44 2010 +0200"
      },
      "message": "quota: unify -\u003eset_dqblk\n\nPass the larger struct fs_disk_quota to the -\u003eset_dqblk operation so\nthat the Q_SETQUOTA and Q_XSETQUOTA operations can be implemented\nwith a single filesystem operation and we can retire the -\u003eset_xquota\noperation.  The additional information (RT-subvolume accounting and\nwarn counts) are left zero for the VFS quota implementation.\n\nAdd new fieldmask values for setting the numer of blocks and inodes\nvalues which is required for the VFS quota, but wasn\u0027t for XFS.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b9b2dd36c1bc64430f8e13990ab135cbecc10076",
      "tree": "051bb6a238c9ff98fe135de3e8591c65cf242d46",
      "parents": [
        "0636c73ee7b129f77f577aaaefc8dde057be6d18"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu May 06 17:04:58 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:43 2010 +0200"
      },
      "message": "quota: unify -\u003eget_dqblk\n\nPass the larger struct fs_disk_quota to the -\u003eget_dqblk operation so\nthat the Q_GETQUOTA and Q_XGETQUOTA operations can be implemented\nwith a single filesystem operation and we can retire the -\u003eget_xquota\noperation.  The additional information (RT-subvolume accounting and\nwarn counts) are left zero for the VFS quota implementation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "dde9588853b1bde542eab247f8838c472806688f",
      "tree": "9f9c68bf63120056517bbfce78b75e6820cc4c4b",
      "parents": [
        "da8d1ba22fa1fd0c0e541a43d75ebb062589b14b"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Apr 26 20:03:33 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:41 2010 +0200"
      },
      "message": "quota: Make quota stat accounting lockless.\n\nQuota stats is mostly writable data structure. Let\u0027s alloc percpu\nbucket for each value.\n\nNOTE: dqstats_read() function is racy against dqstats_{inc,dec}\nand may return inconsistent value. But this is ok since absolute\naccuracy is not required.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "da8d1ba22fa1fd0c0e541a43d75ebb062589b14b",
      "tree": "b0ad042e14aea09a16dc400d14decd8c882e9bc1",
      "parents": [
        "5277970878a32e437b27296e34c592e5d351f11d"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Mon Apr 26 12:09:26 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:41 2010 +0200"
      },
      "message": "suppress warning: \"quotatypes\" defined but not used\n\nSuppress compilation warning: \"quotatypes\" defined but not used.\nquotatypes is used only when CONFIG_QUOTA_DEBUG or CONFIG_PRINT_QUOTA_WARNING\nis/are defined.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "eabf290d1470921f0ce5a9b22464ae30646a0677",
      "tree": "ba3a4ae74101a2ca31fabdbfa3576776cbddf2ed",
      "parents": [
        "46891532370e862d6bddedef9e6ca22a59a51fa4"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Mar 27 15:15:38 2010 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:37 2010 +0200"
      },
      "message": "quota: optimize mark_dirty logic\n\n- Skip locking if quota is dirty already.\n- Return old quota state to help fs-specciffic implementation to optimize\n  case where quota was dirty already.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0e05842bc117ea70ceb979cca798fd026879951b",
      "tree": "9cac03004706c912b15a859d9e35fedd496653b2",
      "parents": [
        "56246f9ae4cfa95b460f9dfbcfb1b772d85db046"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 10:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 10:00:00 2010 -0400"
      },
      "message": "quota: add the option to not fail with EDQUOT in block\n\nTo simplify metadata tracking for delalloc writes, ext4\nwill simply claim metadata blocks at allocation time, without\nfirst speculatively reserving the worst case and then freeing\nwhat was not used.\n\nTo do this, we need a mechanism to track allocations in\nthe quota subsystem, but potentially allow that allocation\nto actually go over quota.\n\nThis patch adds a DQUOT_SPACE_NOFAIL flag and function\nvariants for this purpose.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "56246f9ae4cfa95b460f9dfbcfb1b772d85db046",
      "tree": "2a11530806fd384c7a482d7d05f7966af773fef2",
      "parents": [
        "84061e07c5fbbbf9dc8aef8fb750fc3a2dfc31f3"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Sun May 16 09:00:00 2010 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sun May 16 09:00:00 2010 -0400"
      },
      "message": "quota: use flags interface for dquot alloc/free space\n\nSwitch __dquot_alloc_space and __dquot_free_space to take flags\nto indicate whether to warn and/or to reserve (or free reserve).\n\nThis is slightly more readable at the callpoints, and makes it\ncleaner to add a \"nofail\" option in the next patch.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "62af9b520513d78484f22f874916dfacbc889ce0",
      "tree": "e5c13d868166380105c3d491b8d380fe220e6484",
      "parents": [
        "08261673cb6dc638c39f44d69b76fffb57b92a8b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 19 16:47:20 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Apr 20 18:25:25 2010 +0200"
      },
      "message": "quota: Convert __DQUOT_PARANOIA symbol to standard config option\n\nMake __DQUOT_PARANOIA define from the old days a standard config option\nand turn it off by default.\n\nThis gets rid of a quota warning about writes before quota is turned on\nfor systems with ext4 root filesystem. Currently there\u0027s no way to legally\nsolve this because /etc/mtab has to be written before quota is turned on\non most systems.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "08261673cb6dc638c39f44d69b76fffb57b92a8b",
      "tree": "752b396f409897a4357ca29bc2f9c3384d29e07d",
      "parents": [
        "4c5e6c0e70fd6ca2fa67184fd36a261b3b7b38d0"
      ],
      "author": {
        "name": "Andrew Perepechko",
        "email": "andrew.perepechko@sun.com",
        "time": "Mon Apr 12 22:16:50 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 12 21:12:36 2010 +0200"
      },
      "message": "quota: Fix possible dq_flags corruption\n\ndq_flags are modified non-atomically in do_set_dqblk via __set_bit calls and\natomically for example in mark_dquot_dirty or clear_dquot_dirty.  Hence a\nchange done by an atomic operation can be overwritten by a change done by a\nnon-atomic one. Fix the problem by using atomic bitops even in do_set_dqblk.\n\nSigned-off-by: Andrew Perepechko \u003candrew.perepechko@sun.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4c5e6c0e70fd6ca2fa67184fd36a261b3b7b38d0",
      "tree": "989f00937056222c6672a888b6670e570826442d",
      "parents": [
        "774f03fb2cf89951b5f5f363b7739a2835d5924e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Apr 06 18:52:47 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 12 21:12:19 2010 +0200"
      },
      "message": "quota: Hide warnings about writes to the filesystem before quota was turned on\n\nFor a root filesystem write to the filesystem before quota is turned on happens\nregularly and there\u0027s no way around it because of writes to syslog, /etc/mtab,\nand similar. So the warning is rather pointless for ordinary users. It\u0027s\nstill useful during development so we just hide the warning behind\n__DQUOT_PARANOIA config option.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\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": "efd8f0e6f6c1faa041f228d7113bd3a9db802d49",
      "tree": "81dbe5e0db3651227466f18283fd640edda080f2",
      "parents": [
        "871a293155a24554e153538d36e3a80fa169aefb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:08 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:31 2010 +0100"
      },
      "message": "quota: stop using QUOTA_OK / NO_QUOTA\n\nJust use 0 / -EDQUOT directly - that\u0027s what it translates to anyway.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\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": "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": "ab94c39b6fa076d4f6d2903dcc54cda35d938776",
      "tree": "d90042ad0c903e6f9034017906dfddd4dca49d62",
      "parents": [
        "8ddd69d6df4758bf0cab981481af24cc84419567"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Feb 22 21:07:17 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:27 2010 +0100"
      },
      "message": "quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n\nSometimes invalidate_bdev() can fail to invalidate a part of block\ndevice cache because of dirty data. If the filesystem has blocksize\nsmaller than page size, this can happen even for pages containing\nquota files and thus kernel would operate on stale data. Fix the\nissue by syncing the filesystem before invalidating the cache.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "8ddd69d6df4758bf0cab981481af24cc84419567",
      "tree": "126eb5877e092963b7ed1cf143e3ce0bac6a7c85",
      "parents": [
        "ad1e6e8da9fe8cb7ecfde8eabacedc3b50fceae4"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Feb 16 08:31:50 2010 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:26 2010 +0100"
      },
      "message": "quota: generalize quota transfer interface\n\nCurrent quota transfer interface support only uid/gid.\nThis patch extend interface in order to support various quotas types\nThe goal is accomplished without changes in most frequently used\nvfs_dq_transfer() func.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ad1e6e8da9fe8cb7ecfde8eabacedc3b50fceae4",
      "tree": "0971e2039c2d6feb6763ba018e9c73123d207ddb",
      "parents": [
        "86963918965eb8fe0c8ae009e7c1b4c630f533d5"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Feb 16 08:31:49 2010 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:26 2010 +0100"
      },
      "message": "quota: sb_quota state flags cleanup\n\n- remove hardcoded USRQUOTA/GRPQUOTA flags\n- convert int to bool for appropriate functions\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5582c76f901d240f57329212b59b4d957ea8d6cf",
      "tree": "3709746be14e89eebbd4099b59dff2aefc348167",
      "parents": [
        "799a9d44023c069f46bc5933a930eab0bd37d0df"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:55 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:25 2010 +0100"
      },
      "message": "quota: split out compat_sys_quotactl support from quota.c\n\nInstead of adding ifdefs just split it into a new file.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "799a9d44023c069f46bc5933a930eab0bd37d0df",
      "tree": "8c8a752f85ae5801e26e93be977491ea0cbb1fae",
      "parents": [
        "a56fca23f67282467c08e75c40081da2345dfdbf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:54 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:25 2010 +0100"
      },
      "message": "quota: split out netlink notification support from quota.c\n\nInstead of adding ifdefs just split it into a new file.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a56fca23f67282467c08e75c40081da2345dfdbf",
      "tree": "73d50c7b2be8c1435fbaa915fa4bf882824a51a7",
      "parents": [
        "5fb324ad24febe57a8a2e62903dcb7bad546ea71"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:53 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:24 2010 +0100"
      },
      "message": "quota: remove invalid optimization from quota_sync_all\n\nChecking the \"VFS\" quota enabled and dirty bits from generic code means\nthis code will never get called for other implementations, e.g. XFS and\nGFS2.  Grabbing the reference on the superblock really isn\u0027t much overhead\nfor a global Q_SYNC call, so just drop this optimization.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5fb324ad24febe57a8a2e62903dcb7bad546ea71",
      "tree": "f49d1b8b7fe9feffbdd1afba18047001f5d7228f",
      "parents": [
        "8c4e4acd660a09e571a71583b5bbe1eee700c9ad"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:52 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:24 2010 +0100"
      },
      "message": "quota: move code from sync_quota_sb into vfs_quota_sync\n\nCurrenly sync_quota_sb does a lot of sync and truncate action that only\napplies to \"VFS\" style quotas and is actively harmful for the sync\nperformance in XFS.  Move it into vfs_quota_sync and add a wait parameter\nto -\u003equota_sync to tell if we need it or not.\n\nMy audit of the GFS2 code says it\u0027s also not needed given the way GFS2\nimplements quotas, but I\u0027d be happy if this can get a detailed review.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "8c4e4acd660a09e571a71583b5bbe1eee700c9ad",
      "tree": "05d1208e70d96dfa6857dbb84de7f3554a721992",
      "parents": [
        "c988afb5fa3fc450207c3dfc0ce535f4bfdae4d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:51 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:24 2010 +0100"
      },
      "message": "quota: clean up Q_XQUOTASYNC\n\nCurrently Q_XQUOTASYNC calls into the quota_sync method, but XFS does something\nentirely different in it than the rest of the filesystems.  xfs_quota which\ncalls Q_XQUOTASYNC expects an asynchronous data writeout to flush delayed\nallocations, while the \"VFS\" quota support wants to flush changes to the quota\nfile.\n\nSo make Q_XQUOTASYNC call into the writeback code directly and make the\nquota_sync method optional as XFS doesn\u0027t need in the sense expected by the\nrest of the quota code.\n\nGFS2 was using limited XFS-style quota and has a quota_sync method fitting\nneither the style used by vfs_quota_sync nor xfs_fs_quota_sync.  I left it\nin for now as per discussion with Steve it expects to be called from the\nsync path this way.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c988afb5fa3fc450207c3dfc0ce535f4bfdae4d1",
      "tree": "dcb9b4e11c4429ee79198ee3a7de43d734c1cbfe",
      "parents": [
        "6ae09575b3c951ad77c07d068b8dbbc09031b2d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:50 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:22 2010 +0100"
      },
      "message": "quota: simplify permission checking\n\nStop having complicated different routines for checking permissions for\nXQM vs \"VFS\" quotas.  Instead do the checks for having sb-\u003es_qcop and\na valid type directly in do_quotactl, and munge the *quotactl_valid functions\ninto a check_quotactl_permission helper that only checks for permissions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "6ae09575b3c951ad77c07d068b8dbbc09031b2d1",
      "tree": "772a3cccbe12d98ecc33acb31f7fdb05c4e4b957",
      "parents": [
        "f450d4fee42c52e8045131a355b2de03094aa066"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:49 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:22 2010 +0100"
      },
      "message": "quota: special case Q_SYNC without device name\n\nThe Q_SYNC command can be called without the path to a device, in which case\nit iterates over all superblocks.  Special case this variant directly in\nsys_quotactl so that the other code always gets a superblock and doesn\u0027t\nneed to deal with this case.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "f450d4fee42c52e8045131a355b2de03094aa066",
      "tree": "07fadb1b4c868ad9eb571f68e32a44a6bbd2599c",
      "parents": [
        "c411e5f66a5dd36827a5f9d1392a1afdf69ff075"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:48 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:21 2010 +0100"
      },
      "message": "quota: clean up checks for supported quota methods\n\nMove the checks for sb-\u003es_qcop-\u003efoo next to the actual calls for them, same\nfor sb_has_quota_active checks where applicable.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c411e5f66a5dd36827a5f9d1392a1afdf69ff075",
      "tree": "ec15fda09302f281785675f4b9878e5360a49788",
      "parents": [
        "0a5a9c725512461d19397490f3adf29931dca1f2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:47 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:21 2010 +0100"
      },
      "message": "quota: split do_quotactl\n\nSplit out a helper for each non-trivial command from do_quotactl.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0a5a9c725512461d19397490f3adf29931dca1f2",
      "tree": "8df303b6fe335d825cedbfa8cde5bd76c7f53742",
      "parents": [
        "c469070aea5a0ada45a836937c776fd3083dae2b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 09 18:20:39 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:21 2010 +0100"
      },
      "message": "quota: Fix warning when a delayed write happens before quota is enabled\n\nIf a delayed-allocation write happens before quota is enabled, the\nkernel spits out a warning:\nWARNING: at fs/quota/dquot.c:988 dquot_claim_space+0x77/0x112()\n\nbecause the fact that user has some delayed allocation is not recorded\nin quota structure.\n\nMake dquot_initialize() update amount of reserved space for user if it sees\ninode has some space reserved. Also make sure that reserved quota space does\nnot go negative and we warn about the filesystem bug just once.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c469070aea5a0ada45a836937c776fd3083dae2b",
      "tree": "8c36117b34aba28a73c2fe4e03c7e89c2f43aef3",
      "parents": [
        "c7e8d4d6dceeb6fd236991f590d3fa6f97c59874"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Feb 09 17:53:36 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:21 2010 +0100"
      },
      "message": "quota: manage reserved space when quota is not active [v2]\n\nSince we implemented generic reserved space management interface,\nthen it is possible to account reserved space even when quota\nis not active (similar to i_blocks/i_bytes).\n\nWithout this patch following testcase result in massive comlain from\nWARN_ON in dquot_claim_space()\n\nTEST_CASE:\nmount /dev/sdb /mnt -oquota\ndd if\u003d/dev/zero of\u003d/mnt/test bs\u003d1M count\u003d1\nquotaon /mnt\n# fs_reserved_spave \u003d\u003d 1Mb\n# quota_reserved_space \u003d\u003d 0, because quota was disabled\ndd if\u003d/dev/zero of\u003d/mnt/test seek\u003d1 bs\u003d1M count\u003d1\n# fs_reserved_spave \u003d\u003d 2Mb\n# quota_reserved_space \u003d\u003d 1Mb\nsync  # -\u003edquot_claim_space() -\u003e WARN_ON\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "26245c949c8473ea7352907b5a54bc34487eb87f",
      "tree": "1b20554c273b42f179f96a8beca9d9314e652847",
      "parents": [
        "3a5b27bf6f29574d667230c7e76e4b83fe3014e0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 06 17:20:35 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:19 2010 +0100"
      },
      "message": "quota: Cleanup S_NOQUOTA handling\n\nCleanup handling of S_NOQUOTA inode flag and document it a bit. The flag\ndoes not have to be set under dqptr_sem. Only functions modifying inode\u0027s\ndquot pointers have to check the flag under dqptr_sem before going forward\nwith the modification. This way we are sure that we cannot add new dquot\npointers to the inode which is just becoming a quota file.\n\nThe good thing about this cleanup is that there are no more places in quota\ncode which enforce i_mutex vs. dqptr_sem lock ordering (in particular that\ndqptr_sem -\u003e i_mutex of quota file). This should silence some (false) lockdep\nwarnings with ext4 + quota and generally make life of some filesystems easier.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "05b5d898235401c489c68e1f3bc5706a29ad5713",
      "tree": "2f8efc6ff1152ed53d297843891b6232a3e14eb1",
      "parents": [
        "3c8ad49b015eb115fbd6982f56d530f53cf57f84"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 06 18:03:36 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 11 13:06:41 2010 +0100"
      },
      "message": "quota: Fix dquot_transfer for filesystems different from ext4\n\nCommit fd8fbfc1 modified the way we find amount of reserved space\nbelonging to an inode. The amount of reserved space is checked\nfrom dquot_transfer and thus inode_reserved_space gets called\neven for filesystems that don\u0027t provide get_reserved_space callback\nwhich results in a BUG.\n\nFix the problem by checking get_reserved_space callback and return 0 if\nthe filesystem does not provide it.\n\nCC: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "869835dfad3eb6f7d90c3255a24b084fea82f30d",
      "tree": "738e438bcbab1330e8585ad6ee59dd8a66263a2c",
      "parents": [
        "765f8361902d015c864d5e62019b2f139452d7ef"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Dec 21 21:57:04 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 23 13:44:13 2009 +0100"
      },
      "message": "quota: Improve checking of quota file header\n\nWhen we are asked for vfsv0 quota format and the file is in vfsv1\nformat (or vice versa), refuse to use the quota file. Also return\nwith error when we don\u0027t like the header of quota file.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "82fdfa928cfa19d9627526b2ce164a27f8e9d34b",
      "tree": "f47d4b812103a2e93f401fce7f9e1f07c1f7ef87",
      "parents": [
        "96d2a495c25d525873529b736cdb63ad502b101c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Dec 15 22:24:36 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 23 13:44:12 2009 +0100"
      },
      "message": "quota: Fix 64-bit limits setting on 32-bit archs\n\nFix warnings:\nfs/quota/quota_v2.c: In function ‘v2_read_file_info’:\nfs/quota/quota_v2.c:123: warning: integer constant is too large for ‘long’ type\nfs/quota/quota_v2.c:124: warning: integer constant is too large for ‘long’ type\n\nReported-by: Jerry Leo \u003cjerryleo860202@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "dc52dd3a3a800e70b3440ea4424f8c87ab043e42",
      "tree": "1a4a0ba723065b8308db6597fe19cd0f73d5713a",
      "parents": [
        "a9e7f4472075fb6937c545af3f6329e9946bbe66"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Dec 14 15:21:15 2009 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 23 13:33:55 2009 +0100"
      },
      "message": "quota: Move duplicated code to separate functions\n\n- for(..) { mark_dquot_dirty(); } -\u003e mark_all_dquot_dirty()\n- for(..) { dput(); }             -\u003e dqput_all()\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "fd8fbfc1709822bd94247c5b2ab15a5f5041e103",
      "tree": "225be57d6afafcd7c893c5b9026719f9b23def69",
      "parents": [
        "b462707e7ccad058ae151e5c5b06eb5cadcb737f"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Mon Dec 14 15:21:13 2009 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 23 13:33:54 2009 +0100"
      },
      "message": "quota: decouple fs reserved space from quota reservation\n\nCurrently inode_reservation is managed by fs itself and this\nreservation is transfered on dquot_transfer(). This means what\ninode_reservation must always be in sync with\ndquot-\u003edq_dqb.dqb_rsvspace. Otherwise dquot_transfer() will result\nin incorrect quota(WARN_ON in dquot_claim_reserved_space() will be\ntriggered)\nThis is not easy because of complex locking order issues\nfor example http://bugzilla.kernel.org/show_bug.cgi?id\u003d14739\n\nThe patch introduce quota reservation field for each fs-inode\n(fs specific inode is used in order to prevent bloating generic\nvfs inode). This reservation is managed by quota code internally\nsimilar to i_blocks/i_bytes and may not be always in sync with\ninternal fs reservation.\n\nAlso perform some code rearrangement:\n- Unify dquot_reserve_space() and dquot_reserve_space()\n- Unify dquot_release_reserved_space() and dquot_free_space()\n- Also this patch add missing warning update to release_rsv()\n  dquot_release_reserved_space() must call flush_warnings() as\n  dquot_free_space() does.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "498c60153ebb8889d8944591383c5c12af1127d4",
      "tree": "cda08502f8aac382fa46893da3c1c1db116c7164",
      "parents": [
        "30673930051e5203d0b826b8b8f2454cab453b94"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Nov 16 18:09:47 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:54 2009 +0100"
      },
      "message": "quota: Implement quota format with 64-bit space and inode limits\n\nSo far the maximum quota space limit was 4TB. Apparently this isn\u0027t enough\nfor Lustre guys anymore. So implement new quota format which raises block\nlimits to 2^64 bytes. Also store number of inodes and inode limits in\n64-bit variables as 2^32 files isn\u0027t that insanely high anymore.\n\nThe first version of the patch has been developed by Andrew Perepechko\n\u003cAndrew.Perepechko@Sun.COM\u003e.\n\nCC: Andrew.Perepechko@Sun.COM\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c56818d7dc976a7392be82e8e04fe26347d591f3",
      "tree": "28c40dcb53198dc6870bb75b0250458579ade727",
      "parents": [
        "1472da5fdc65f0cd286c655758d629346001e126"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Nov 12 15:42:08 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:51 2009 +0100"
      },
      "message": "quota: Fix WARN_ON in lookup_one_len\n\nWe should hold i_mutex when looking up quota files for journaled quotas,\notherwise a WARN_ON in lookup_one_len triggers. The fact that we didn\u0027t\nhold i_mutex previously probably could not lead to a real bug since the\nfilesystem is just being mounted / remounted read-write and thus the\nroot directory cannot change anyway but it\u0027s definitely cleaner with\ni_mutex.\n\nReported-by: Bastien ROUCARIES \u003croucaries.bastien@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "1472da5fdc65f0cd286c655758d629346001e126",
      "tree": "6ac8b6e9a1994ae1de2eef2aededaec612039cc5",
      "parents": [
        "5ced58f73554e9d9609a790c5164d10ef91ce8ff"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 16 15:26:03 2009 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 10 15:02:51 2009 +0100"
      },
      "message": "const: struct quota_format_ops\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "1557d33007f63dd96e5d15f33af389378e5f2e54",
      "tree": "06d05722b2ba5d2a67532f779fa8a88efe3c88f1",
      "parents": [
        "6ec22f9b037fc0c2e00ddb7023fad279c365324d",
        "c656ae95d1c5c8ed5763356263ace2d03087efec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:38:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 07:38:50 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl-2.6: (43 commits)\n  security/tomoyo: Remove now unnecessary handling of security_sysctl.\n  security/tomoyo: Add a special case to handle accesses through the internal proc mount.\n  sysctl: Drop \u0026 in front of every proc_handler.\n  sysctl: Remove CTL_NONE and CTL_UNNUMBERED\n  sysctl: kill dead ctl_handler definitions.\n  sysctl: Remove the last of the generic binary sysctl support\n  sysctl net: Remove unused binary sysctl code\n  sysctl security/tomoyo: Don\u0027t look at ctl_name\n  sysctl arm: Remove binary sysctl support\n  sysctl x86: Remove dead binary sysctl support\n  sysctl sh: Remove dead binary sysctl support\n  sysctl powerpc: Remove dead binary sysctl support\n  sysctl ia64: Remove dead binary sysctl support\n  sysctl s390: Remove dead sysctl binary support\n  sysctl frv: Remove dead binary sysctl support\n  sysctl mips/lasat: Remove dead binary sysctl support\n  sysctl drivers: Remove dead binary sysctl support\n  sysctl crypto: Remove dead binary sysctl support\n  sysctl security/keys: Remove dead binary sysctl support\n  sysctl kernel: Remove binary sysctl logic\n  ...\n"
    },
    {
      "commit": "86e931a35e93d94e6e91b57cc76456e16d188ea9",
      "tree": "55078897d1c3dfa43fed6458a7721af17362b4a3",
      "parents": [
        "e285c100362762f7440643be637dd332460fdc75"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 28 12:35:17 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:53:02 2009 +0000"
      },
      "message": "VFS: Export dquot_send_warning\n\nSending a message to userspace in a generic format to warn\nof events (e.g. quota exceeded) in the quota subsystem is\na generically useful feature. This patch makes some minor\nchanges to the send_message function from dquot.c renaming\nit quota_send_message, moving it to quota.c and exporting it\nfor use by filesystems which do not use the dquot code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6d4561110a3e9fa742aeec6717248a491dfb1878",
      "tree": "689e2abf19940416ce597ba56ed31026ff59bd21",
      "parents": [
        "86926d0096279b9739ceeff40f68d3c33b9119a9"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Mon Nov 16 03:11:48 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 18 08:37:40 2009 -0800"
      },
      "message": "sysctl: Drop \u0026 in front of every proc_handler.\n\nFor consistency drop \u0026 in front of every proc_handler.  Explicity\ntaking the address is unnecessary and it prevents optimizations\nlike stubbing the proc_handlers to NULL.\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "ab09203e302b6e526f6930f3e460064b0f253ae9",
      "tree": "bc95bfaba78ba30613d57c676eca42818b8a3293",
      "parents": [
        "2bc4657c15e4a33d9a192579c7627a397dbcbebc"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 05 14:25:10 2009 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Nov 12 02:04:55 2009 -0800"
      },
      "message": "sysctl fs: Remove dead binary sysctl support\n\nNow that sys_sysctl is a generic wrapper around /proc/sys  .ctl_name\nand .strategy members of sysctl tables are dead code.  Remove them.\n\nCc: Jan Harkes \u003cjaharkes@cs.cmu.edu\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "0d54b217a247f39605361f867fefbb9e099a5432",
      "tree": "5af6a2cc4cbc6c327e735ac5edb642d47a1f0013",
      "parents": [
        "61e225dc341107be304fd1088146c2a5e88ff9e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: make struct super_block::s_qcop const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61e225dc341107be304fd1088146c2a5e88ff9e0",
      "tree": "e6d3e1dc5506e232497f17721175a081a5306b5b",
      "parents": [
        "00d3803b656a5f0935518d746f6bb27d5181d29d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: make struct super_block::dq_op const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dee865656f2d8b866f8ac22c60d6363b914e9f12",
      "tree": "1fd24f795884c2cfd2b9d06fee104f08236011c7",
      "parents": [
        "658874f05d040ca96eb5ba9b1c30ce0ff287d762"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 22 18:12:17 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jul 30 17:31:23 2009 +0200"
      },
      "message": "quota: Silence lockdep on quota_on\n\nCommit d01730d74d2b0155da50d44555001706294014f7 didn\u0027t completely fix\nthe problem since we still take dqio_mutex and i_mutex in the wrong\norder. Move taking of i_mutex further down (luckily it\u0027s needed only\nfor updating inode flags) below where dqio_mutex is taken.\n\nTested-by: Valdis Kletnieks \u003cvaldis.kletnieks@vt.edu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d01730d74d2b0155da50d44555001706294014f7",
      "tree": "a6de6075c054b6f253be19062d7f8efc973d55dc",
      "parents": [
        "faf80d62e44dc627efb741f48db50c1858d1667c"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Tue Jul 07 18:15:21 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jul 07 18:15:21 2009 +0200"
      },
      "message": "quota: Fix possible deadlock during parallel quotaon and quotaoff\n\nThe following test script triggers a deadlock on ext2 filesystem:\nwhile true; do quotaon /dev/hda \u003e\u0026/dev/null; usleep $RANDOM; done \u0026\nwhile true; do quotaoff /dev/hda \u003e\u0026/dev/null; usleep $RANDOM; done \u0026\n\nI found there is a potential deadlock between quotaon and quotaoff (or\nquotasync). Basically, all of quotactl operations need to be protected by\ndqonoff_mutex. vfs_quota_off and vfs_quota_sync also call sb-\u003es_op-\u003equota_write\nthat needs to grab the i_mutex of the quota file.  But in vfs_quota_on_inode\n(called from quotaon operation), the current code tries to grab  the i_mutex of\nthe quota file first before getting quonoff_mutex.\n\nReverse the order in which we take locks in vfs_quota_on_inode().\n\nJan Kara: Changed changelog to be more readable, made lockdep happy with\n  I_MUTEX_QUOTA.\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "850b201b087f5525a0a7278551c2bcd0423c3b26",
      "tree": "a076f135430380d2ffaeb041ee53d09352cb2752",
      "parents": [
        "60b0680fa236ac4e17ce31a50048c9d75f9ec831"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Apr 27 16:43:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "quota: cleanup dquota sync functions (version 4)\n\nCurrently the VFS calls vfs_dq_sync to sync out disk quotas for a given\nsuperblock.  This is a small wrapper around sync_dquots which for the\ncase of a non-NULL superblock is a small wrapper around quota_sync_sb.\n\nJust make quota_sync_sb global (rename it to sync_quota_sb) and call it\ndirectly.  Also call it directly for those cases in quota.c that have a\nsuperblock and leave sync_dquots purely an iterator over sync_quota_sb and\nremove it\u0027s superblock argument.\n\nTo make this nicer move the check for the lack of a quota_sync method\nfrom the callers into sync_quota_sb.\n\n[folded build fix from Alexander Beregalov \u003ca.beregalov@gmail.com\u003e]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fd1b52435a6d9663de896e8437ef067372916ef3",
      "tree": "29ca8e641eba57647260b92afd4406e54f280876",
      "parents": [
        "ce8a7424d23a36f043d0de8484f888971c831119"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 07 18:10:06 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:49:52 2009 +0200"
      },
      "message": "quota: remove obsolete comments in fs/quota/Makefile\n\nGet rid of useless comments and the equally useless obj-y\ninitialization.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b6fac63cc1f52ec27f29fe6c6c8494a2ffac33fd",
      "tree": "78b4da8231fb80ea05fffc65c4647957b5a858fb",
      "parents": [
        "33e5d76979cf01e3834814fe0aea569d1d602c1a"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Thu Apr 02 16:56:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "vfs: skip I_CLEAR state inodes\n\nclear_inode() will switch inode state from I_FREEING to I_CLEAR, and do so\n_outside_ of inode_lock.  So any I_FREEING testing is incomplete without a\ncoupled testing of I_CLEAR.\n\nSo add I_CLEAR tests to drop_pagecache_sb(), generic_sync_sb_inodes() and\nadd_dquot_ref().\n\nMasayoshi MIZUMA discovered the bug in drop_pagecache_sb() and Jan Kara\nreminds fixing the other two cases.\n\nMasayoshi MIZUMA has a nice panic flow:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            [process A]               |        [process B]\n |                                    |\n |    prune_icache()                  | drop_pagecache()\n |      spin_lock(\u0026inode_lock)        |   drop_pagecache_sb()\n |      inode-\u003ei_state |\u003d I_FREEING;  |       |\n |      spin_unlock(\u0026inode_lock)      |       V\n |          |                         |     spin_lock(\u0026inode_lock)\n |          V                         |         |\n |      dispose_list()                |         |\n |        list_del()                  |         |\n |        clear_inode()               |         |\n |          inode-\u003ei_state \u003d I_CLEAR  |         |\n |            |                       |         V\n |            |                       |      if (inode-\u003ei_state \u0026 (I_FREEING|I_WILL_FREE))\n |            |                       |              continue;           \u003c\u003d\u003d\u003d\u003d NOT MATCH\n |            |                       |\n |            |                       | (DANGER from here on! Accessing disposing inode!)\n |            |                       |\n |            |                       |      __iget()\n |            |                       |        list_move() \u003c\u003d\u003d\u003d\u003d\u003d PANIC on poisoned list !!\n V            V                       |\n(time)\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nReported-by: Masayoshi MIZUMA \u003cm.mizuma@jp.fujitsu.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ae5080f4c2e293229508dabe7c8a90af4e4c460",
      "tree": "9cb11f26905a82b7fac9d3b8f9d61d58bc5c94b0",
      "parents": [
        "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
        "aabb8fdb41128705fd1627f56fdd571e45fdbcdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -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: (37 commits)\n  fs: avoid I_NEW inodes\n  Merge code for single and multiple-instance mounts\n  Remove get_init_pts_sb()\n  Move common mknod_ptmx() calls into caller\n  Parse mount options just once and copy them to super block\n  Unroll essentials of do_remount_sb() into devpts\n  vfs: simple_set_mnt() should return void\n  fs: move bdev code out of buffer.c\n  constify dentry_operations: rest\n  constify dentry_operations: configfs\n  constify dentry_operations: sysfs\n  constify dentry_operations: JFS\n  constify dentry_operations: OCFS2\n  constify dentry_operations: GFS2\n  constify dentry_operations: FAT\n  constify dentry_operations: FUSE\n  constify dentry_operations: procfs\n  constify dentry_operations: ecryptfs\n  constify dentry_operations: CIFS\n  constify dentry_operations: AFS\n  ...\n"
    },
    {
      "commit": "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
      "tree": "6d9b27a07f88ad4509dcd86aa74a2cdecd0d5f4b",
      "parents": [
        "805de022b100bcf796860fe88d7db4164066d1c3",
        "c16831b4cc9b0805adf8ca3001752a7ec10a17bf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 14:48:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 14:48:34 2009 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6: (27 commits)\n  ext2: Zero our b_size in ext2_quota_read()\n  trivial: fix typos/grammar errors in fs/Kconfig\n  quota: Coding style fixes\n  quota: Remove superfluous inlines\n  quota: Remove uppercase aliases for quota functions.\n  nfsd: Use lowercase names of quota functions\n  jfs: Use lowercase names of quota functions\n  udf: Use lowercase names of quota functions\n  ufs: Use lowercase names of quota functions\n  reiserfs: Use lowercase names of quota functions\n  ext4: Use lowercase names of quota functions\n  ext3: Use lowercase names of quota functions\n  ext2: Use lowercase names of quota functions\n  ramfs: Remove quota call\n  vfs: Use lowercase names of quota functions\n  quota: Remove dqbuf_t and other cleanups\n  quota: Remove NODQUOT macro\n  quota: Make global quota locks cacheline aligned\n  quota: Move quota files into separate directory\n  ext4: quota reservation for delayed allocation\n  ...\n"
    },
    {
      "commit": "620372a9ffc6f1239a4f379ff145de9e4b5d23ba",
      "tree": "9cbd28499871cf86fd253b1d8a4d62e322b75be6",
      "parents": [
        "268157ba673e2a868c167211e39fcad4ada5fd1e"
      ],
      "author": {
        "name": "Matt LaPlante",
        "email": "kernel1@cyberdogtech.com",
        "time": "Tue Feb 10 14:50:34 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:38 2009 +0100"
      },
      "message": "trivial: fix typos/grammar errors in fs/Kconfig\n\nSigned-off-by: Matt LaPlante \u003ckernel1@cyberdogtech.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "268157ba673e2a868c167211e39fcad4ada5fd1e",
      "tree": "d6747ab0c15cd0f9daf986f6e749a56d062e1e7f",
      "parents": [
        "7a2435d874388271cfe5046d180751352a1d30a2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jan 27 15:47:22 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:38 2009 +0100"
      },
      "message": "quota: Coding style fixes\n\nWrap long lines, remove assignments from conditions, rewrite two\novercomplicated for loops.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "7a2435d874388271cfe5046d180751352a1d30a2",
      "tree": "57dbb588ea29976db10246add0b7d7e836d1e6a0",
      "parents": [
        "bf84c82d000b9820b01f516d13d328f354f8a8ee"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jan 27 01:47:11 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:37 2009 +0100"
      },
      "message": "quota: Remove superfluous inlines\n\nRemove inlines of large functions to decrease code size (saved 1543\nbytes).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d26ac1a8128f6e1fc467f145acaa9f9bf9e16b75",
      "tree": "8098d9b093ebd16ec92a11774f560f260b0ae386",
      "parents": [
        "dd6f3c6d5a26a282521f15a183fdc2d6f35cfa0f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 16:17:50 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:35 2009 +0100"
      },
      "message": "quota: Remove dqbuf_t and other cleanups\n\nRemove bogus typedef which is just a definition of char *.\nRemove unnecessary type casts.\nSubstitute freedqbuf() with kfree.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "dd6f3c6d5a26a282521f15a183fdc2d6f35cfa0f",
      "tree": "bf10e23743f9399c7c36c0137356df1b14affc3e",
      "parents": [
        "c516610cfec5c50f84ff8cc315628548481f4990"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 16:01:43 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:35 2009 +0100"
      },
      "message": "quota: Remove NODQUOT macro\n\nRemove this macro which is just a definition of NULL. Fix a few coding style\nissues along the way.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c516610cfec5c50f84ff8cc315628548481f4990",
      "tree": "82d1a46721528dfd088a3edcfe5761a4d62fac26",
      "parents": [
        "884d179dff3aa98a73c3ba9dee05fd6050d664f0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 15:32:46 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:35 2009 +0100"
      },
      "message": "quota: Make global quota locks cacheline aligned\n\nAndrew Morton has suggested that three global quota locks can end up in the\nsame cacheline which can result in bad cacheline ping-pong on SMP machines.\nMake locks cacheline aligned so that we avoid this problem (thanks goes to\nAndrew for the idea).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCC: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "884d179dff3aa98a73c3ba9dee05fd6050d664f0",
      "tree": "68c18e3ff8decd2af861e807bed96cca2dea30d4",
      "parents": [
        "60e58e0f30e723464c2a7d34b71b8675566c572d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 15:28:09 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:35 2009 +0100"
      },
      "message": "quota: Move quota files into separate directory\n\nQuota subsystem has more and more files. It\u0027s time to create a dir for it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    }
  ]
}
