)]}'
{
  "log": [
    {
      "commit": "a80b12c3d08dbbf15e6a551e481c32a2df4911f3",
      "tree": "364989f0fc990496820296b5fc6b655e29416c14",
      "parents": [
        "f9ef178412cab442719c9ffdc659933f5f2fa87e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Apr 25 21:15:53 2012 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 15 23:34:39 2012 +0200"
      },
      "message": "quota: Get rid of nested I_MUTEX_QUOTA locking subclass\n\nSo far i_mutex was ranking above dqonoff_mutex and i_mutex on quota files\nwas special and ranking below dqonoff_mutex (and several other locks).\nHowever there\u0027s no real need for i_mutex on quota files to be special.\nIO on quota files is serialized by dqio_mutex anyway so we don\u0027t need to\ntake i_mutex when writing to quota files. Other places where we take i_mutex\non quota file can accomodate standard i_mutex lock ranking, we only need\nto change the lock ranking to be dqonoff_mutex \u003e i_mutex which is a matter\nof changing documentation because there\u0027s no place which would enforce\nordering in the other direction.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "f9ef178412cab442719c9ffdc659933f5f2fa87e",
      "tree": "fd80b46cb8ac04c97a0df67063fa27a86042298d",
      "parents": [
        "e2a3fde75079efeb22cf1e5098d5689b664bf1d5"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Apr 25 21:10:31 2012 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 15 23:34:39 2012 +0200"
      },
      "message": "quota: Use precomputed value of sb_dqopt in dquot_quota_sync\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d7e9711760a17aef3a94fc6dff4759fa5961de25",
      "tree": "260d71f39f9d876347e53d44467e536e4c09ea90",
      "parents": [
        "fd2cbd4dfa3db477dd6226d387d3f1911d36a6a9"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Apr 24 17:08:41 2012 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue May 15 23:34:37 2012 +0200"
      },
      "message": "quota: Fix double lock in add_dquot_ref() with CONFIG_QUOTA_DEBUG\n\nWhen CONFIG_QUOTA_DEBUG is enabled we call inode_get_rsv_space() from\nadd_dquot_ref() while holding i_lock. But inode_get_rsv_space() is trying\nto get i_lock as well resulting in double lock.\n\nFix the problem by moving inode_get_rsv_space() call out of i_lock.\n\nReported-and-analyzed-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9a7259d5c8978bbeb5fdcf64b168f8470d8208a6",
      "tree": "5c255d4b18622de06c2637c0c4069a384e99466d",
      "parents": [
        "e9c0f1529c9022afbab16a442382aa9a84a79c41",
        "e703c206135acb458adb705ec44bcc5d2615b37d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:00:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 10:00:14 2012 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\nPull ext3, UDF, and quota fixes from Jan Kara:\n \"A couple of ext3 \u0026 UDF fixes and also one improvement in quota\n  locking.\"\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  ext3: fix start and len arguments handling in ext3_trim_fs()\n  udf: Fix deadlock in udf_release_file()\n  udf: Fix file entry logicalBlocksRecorded\n  udf: Fix handling of i_blocks\n  quota: Make quota code not call tty layer with dqptr_sem held\n  udf: Init/maintain file entry checkpoint field\n  ext3: Update ctime in ext3_splice_branch() only when needed\n  ext3: Don\u0027t call dquot_free_block() if we don\u0027t update anything\n  udf: Remove unnecessary OOM messages\n"
    },
    {
      "commit": "49d99a2f9c4d033cc3965958a1397b1fad573dd3",
      "tree": "cda1849d49d40d2f25773e86605c55bc6745cf1f",
      "parents": [
        "1c3ddfe5ab886c4dc0443535e95ad8e41c41d0e5",
        "f074211f6041305b645669464343d504f4e6a290"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:19:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:19:22 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull XFS updates from Ben Myers:\n \"Scalability improvements for dquots, log grant code cleanups, plus\n  bugfixes and cleanups large and small\"\n\nFix up various trivial conflicts that were due to some of the earlier\npatches already having been integrated into v3.3 as bugfixes, and then\nthere were development patches on top of those.  Easily merged by just\ntaking the newer version from the pulled branch.\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs: (45 commits)\n  xfs: fallback to vmalloc for large buffers in xfs_getbmap\n  xfs: fallback to vmalloc for large buffers in xfs_attrmulti_attr_get\n  xfs: remove remaining scraps of struct xfs_iomap\n  xfs: fix inode lookup race\n  xfs: clean up minor sparse warnings\n  xfs: remove the global xfs_Gqm structure\n  xfs: remove the per-filesystem list of dquots\n  xfs: use per-filesystem radix trees for dquot lookup\n  xfs: per-filesystem dquot LRU lists\n  xfs: use common code for quota statistics\n  xfs: reimplement fdatasync support\n  xfs: split in-core and on-disk inode log item fields\n  xfs: make xfs_inode_item_size idempotent\n  xfs: log timestamp updates\n  xfs: log file size updates at I/O completion time\n  xfs: log file size updates as part of unwritten extent conversion\n  xfs: do not require an ioend for new EOF calculation\n  xfs: use per-filesystem I/O completion workqueues\n  quota: make Q_XQUOTASYNC a noop\n  xfs: include reservations in quota reporting\n  ...\n"
    },
    {
      "commit": "3556485f1595e3964ba539e39ea682acbb835cee",
      "tree": "7f5ee254f425b1427ac0059b5f347a307f8538a1",
      "parents": [
        "b8716614a7cc2fc15ea2a518edd04755fb08d922",
        "09f61cdbb32a9d812c618d3922db533542736bb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security\n\nPull security subsystem updates for 3.4 from James Morris:\n \"The main addition here is the new Yama security module from Kees Cook,\n  which was discussed at the Linux Security Summit last year.  Its\n  purpose is to collect miscellaneous DAC security enhancements in one\n  place.  This also marks a departure in policy for LSM modules, which\n  were previously limited to being standalone access control systems.\n  Chromium OS is using Yama, and I believe there are plans for Ubuntu,\n  at least.\n\n  This patchset also includes maintenance updates for AppArmor, TOMOYO\n  and others.\"\n\nFix trivial conflict in \u003cnet/sock.h\u003e due to the jumo_label-\u003estatic_key\nrename.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)\n  AppArmor: Fix location of const qualifier on generated string tables\n  TOMOYO: Return error if fails to delete a domain\n  AppArmor: add const qualifiers to string arrays\n  AppArmor: Add ability to load extended policy\n  TOMOYO: Return appropriate value to poll().\n  AppArmor: Move path failure information into aa_get_name and rename\n  AppArmor: Update dfa matching routines.\n  AppArmor: Minor cleanup of d_namespace_path to consolidate error handling\n  AppArmor: Retrieve the dentry_path for error reporting when path lookup fails\n  AppArmor: Add const qualifiers to generated string tables\n  AppArmor: Fix oops in policy unpack auditing\n  AppArmor: Fix error returned when a path lookup is disconnected\n  KEYS: testing wrong bit for KEY_FLAG_REVOKED\n  TOMOYO: Fix mount flags checking order.\n  security: fix ima kconfig warning\n  AppArmor: Fix the error case for chroot relative path name lookup\n  AppArmor: fix mapping of META_READ to audit and quiet flags\n  AppArmor: Fix underflow in xindex calculation\n  AppArmor: Fix dropping of allowed operations that are force audited\n  AppArmor: Add mising end of structure test to caps unpacking\n  ...\n"
    },
    {
      "commit": "bf097aaff45eba2244ca3a61e531ec6f2801f6b2",
      "tree": "3acf144dfe272c81a54744024b8d7df53855acce",
      "parents": [
        "d5e2cf07c388dbd06579ab39672e1bd8b9754e65"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 14 13:28:01 2012 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Feb 29 21:53:47 2012 +0100"
      },
      "message": "quota: Make quota code not call tty layer with dqptr_sem held\n\ndqptr_sem can be called from slab reclaim. tty layer uses GFP_KERNEL mask for\nallocation so it can end up calling slab reclaim. Given quota code can call\ninto tty layer to print warning this creates possibility for lock inversion\nbetween tty-\u003eatomic_write_lock and dqptr_sem.\n\nUsing direct printing of warnings from quota layer is obsolete but since it\u0027s\neasy enough to change quota code to not hold any locks when printing warnings,\nlet\u0027s just do it. It seems like a good thing to do even when we use netlink\nlayer to transmit warnings to userspace.\n\nReported-by: Markus \u003cM4rkusXXL@web.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4b217ed9e30f94b6e8e5e262020ef0ceab6113af",
      "tree": "7fb82309209f93697c0b8e7cc34529c97a180dc4",
      "parents": [
        "89605011915aec5c6194e53a9f02631d68aea6bc"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Feb 20 02:28:18 2012 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Wed Feb 29 14:10:42 2012 -0600"
      },
      "message": "quota: make Q_XQUOTASYNC a noop\n\nNow that XFS takes quota reservations into account there is no need to flush\nanything before reporting quotas - in addition to beeing fully transactional\nall quota information is also 100% coherent with the rest of the filesystem\nnow.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "dcdbed853d9fbb0547b781ba676049b87f54129a",
      "tree": "6f8f2382e7aef99ec21ae9c4dfbfe18e47d4626c",
      "parents": [
        "6b6dc836a195e077e76977b6c020a73de411b46d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Feb 10 11:03:01 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:39 2012 -0500"
      },
      "message": "quota: Fix deadlock with suspend and quotas\n\nThis script causes a kernel deadlock:\nset -e\nDEVICE\u003d/dev/vg1/linear\nlvchange -ay $DEVICE\nmkfs.ext3 $DEVICE\nmount -t ext3 -o usrquota,grpquota $DEVICE /mnt/test\nquotacheck -gu /mnt/test\numount /mnt/test\nmount -t ext3 -o usrquota,grpquota $DEVICE /mnt/test\nquotaon /mnt/test\ndmsetup suspend $DEVICE\nsetquota -u root 1 2 3 4 /mnt/test \u0026\nsleep 1\ndmsetup resume $DEVICE\n\nsetquota acquired semaphore s_umount for read and then tried to perform a\ntransaction (and waits because the device is suspended).  dmsetup resume tries\nto acquire s_umount for write before resuming the device (and waits for\nsetquota).\n\nFix the deadlock by grabbing a thawed superblock for quota commands which need\nit.\n\nReported-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4040153087478993cbf0809f444400a3c808074c",
      "tree": "2dc7af85b0cf930f1656553bd38410b8c16601a6",
      "parents": [
        "191c542442fdf53cc3c496c00be13367fd9cd42d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Feb 13 03:58:52 2012 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 14 10:45:42 2012 +1100"
      },
      "message": "security: trim security.h\n\nTrim security.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "46fe44ce8777f087aa8ad4a2605fdcfb9c2d63af",
      "tree": "fd33eed190c800f77e41a817f697cd0957d28647",
      "parents": [
        "34b07840565004cfa444e165e88bf77a5cbcdb25"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Nov 16 15:03:59 2011 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 12 13:09:09 2012 +0100"
      },
      "message": "quota: Pass information that quota is stored in system file to userspace\n\nQuota tools need to know whether quota is stored in a system file or in\nclassical aquota.{user|group} files. So pass this information as a flag\nin GETINFO quotactl.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "d8c9584ea2a92879f471fd3a2be3af6c534fb035",
      "tree": "3541b9c6228f820bdc65e4875156eb27b1c91cb1",
      "parents": [
        "ece2ccb668046610189d88d6aaf05aeb09c988a1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 07 18:16:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:16:53 2012 -0500"
      },
      "message": "vfs: prefer -\u003edentry-\u003ed_sb to -\u003emnt-\u003emnt_sb\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ff01bb4832651c6d25ac509a06a10fcbd75c461c",
      "tree": "bbfdebd317db97d346df78293566f36e883b1be9",
      "parents": [
        "94ea4158f1733e3b10cef067d535f504866e0c41"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 16 02:31:11 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:07 2012 -0500"
      },
      "message": "fs: move code out of buffer.c\n\nMove invalidate_bdev, block_sync_page into fs/block_dev.c.  Export\nkill_bdev as well, so brd doesn\u0027t have to open code it.  Reduce\nbuffer_head.h requirement accordingly.\n\nRemoved a rather large comment from invalidate_bdev, as it looked a bit\nobsolete to bother moving.  The small comment replacing it says enough.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "208bca0860406d16398145ddd950036a737c3c9d",
      "tree": "7797a16c17d8bd155120126fa7976727fc6de013",
      "parents": [
        "6aad3738f6a79fd0ca480eaceefe064cc471f6eb",
        "0e175a1835ffc979e55787774e58ec79e41957d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Add a \u0027reason\u0027 to wb_writeback_work\n  writeback: send work item to queue_io, move_expired_inodes\n  writeback: trace event balance_dirty_pages\n  writeback: trace event bdi_dirty_ratelimit\n  writeback: fix ppc compile warnings on do_div(long long, unsigned long)\n  writeback: per-bdi background threshold\n  writeback: dirty position control - bdi reserve area\n  writeback: control dirty pause time\n  writeback: limit max dirty pause time\n  writeback: IO-less balance_dirty_pages()\n  writeback: per task dirty rate limit\n  writeback: stabilize bdi-\u003edirty_ratelimit\n  writeback: dirty rate control\n  writeback: add bg_threshold parameter to __bdi_update_bandwidth()\n  writeback: dirty position control\n  writeback: account per-bdi accumulated dirtied pages\n"
    },
    {
      "commit": "34116645d912f65d7eb4508a1db3c9d0e45facb1",
      "tree": "27283af2d429df5884637d1baa7306116ab26fcb",
      "parents": [
        "de0a5345a55b8dd5a4695181275df0e691176830",
        "ed47a7d00c22b326fc4c97342a73ecd15929732e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:05:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 10:05:22 2011 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  udf: Cleanup metadata flags handling\n  udf: Skip mirror metadata FE loading when metadata FE is ok\n  ext3: Allow quota file use root reservation\n  udf: Remove web reference from UDF MAINTAINERS entry\n  quota: Drop path reference on error exit from quotactl\n  udf: Neaten udf_debug uses\n  udf: Neaten logging output, use vsprintf extension %pV\n  udf: Convert printks to pr_\u003clevel\u003e\n  udf: Rename udf_warning to udf_warn\n  udf: Rename udf_error to udf_err\n  udf: Promote some debugging messages to udf_error\n  ext3: Remove the obsolete broken EXT3_IOC32_WAIT_FOR_READONLY.\n  udf: Add readpages support for udf.\n  ext3/balloc.c: local functions should be static\n  ext2: fix the outdated comment in ext2_nfs_get_inode()\n  ext3: remove deprecated oldalloc\n  fs/ext3/balloc.c: delete useless initialization\n  fs/ext2/balloc.c: delete useless initialization\n  ext3: fix message in ext3_remount for rw-remount case\n  ext3: Remove i_mutex from ext3_sync_file()\n\nFix up trivial (printf format cleanup) conflicts in fs/udf/udfdecl.h\n"
    },
    {
      "commit": "0aaa618863c40e86b543debe002d6f65ff5d61d4",
      "tree": "89b1d65cf43d58a4800e2ba1129e61cdcb5bbdfb",
      "parents": [
        "a983f368f8986c1ecb64f2947fcf594343130215"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Oct 10 18:32:06 2011 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Oct 31 23:43:59 2011 +0100"
      },
      "message": "quota: Drop path reference on error exit from quotactl\n\nOne error exit from quotactl forgot to do path_put(). Fix that.\n\nReported-by: Valerie Aurora \u003cval@vaaconsulting.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0e175a1835ffc979e55787774e58ec79e41957d7",
      "tree": "6ec4b65a8de4e9d1c12d26a1079079ed81d79450",
      "parents": [
        "ad4e38dd6a33bb3a4882c487d7abe621e583b982"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Fri Oct 07 21:54:10 2011 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Oct 31 00:33:36 2011 +0800"
      },
      "message": "writeback: Add a \u0027reason\u0027 to wb_writeback_work\n\nThis creates a new \u0027reason\u0027 field in a wb_writeback_work\nstructure, which unambiguously identifies who initiates\nwriteback activity.  A \u0027wb_reason\u0027 enumeration has been\nadded to writeback.h, to enumerate the possible reasons.\n\nThe \u0027writeback_work_class\u0027 and tracepoint event class and\n\u0027writeback_queue_io\u0027 tracepoints are updated to include the\nsymbolic \u0027reason\u0027 in all trace events.\n\nAnd the \u0027writeback_inodes_sbXXX\u0027 family of routines has had\na wb_stats parameter added to them, so callers can specify\nwhy writeback is being started.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "815d405ceff0d6964683f033e18b9b23a88fba87",
      "tree": "2bec24a44bc3edbdcedf8ae65256a0533ce4e46a",
      "parents": [
        "d94c177beeb4469cd4f6e83354ab0223353e98ed"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Sep 26 20:36:09 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 26 19:16:46 2011 -0700"
      },
      "message": "VFS: Fix the remaining automounter semantics regressions\n\nThe concensus seems to be that system calls such as stat() etc should\nnot trigger an automount.  Neither should the l* versions.\n\nThis patch therefore adds a LOOKUP_AUTOMOUNT flag to tag those lookups\nthat _should_ trigger an automount on the last path element.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n[ Edited to leave out the cases that are already covered by LOOKUP_OPEN,\n  LOOKUP_DIRECTORY and LOOKUP_CREATE - all of which also fundamentally\n  force automounting for their own reasons   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1495f230fa7750479c79e3656286b9183d662077",
      "tree": "e5e233bb9fe1916ccc7281e7dcc71b1572fb22c5",
      "parents": [
        "a09ed5e00084448453c8bada4dcd31e5fbfc2f21"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:26 2011 -0700"
      },
      "message": "vmscan: change shrinker API by passing shrink_control struct\n\nChange each shrinker\u0027s API by consolidating the existing parameters into\nshrink_control struct.  This will simplify any further features added w/o\ntouching each file of shrinker.\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: fix warning]\n[kosaki.motohiro@jp.fujitsu.com: fix up new shrinker API]\n[akpm@linux-foundation.org: fix xfs warning]\n[akpm@linux-foundation.org: update gfs2]\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d762ca1cdf38b5fb7d1774734176d1d4d56bbb7",
      "tree": "2fed11327a86c05ec945c31aa6e1307fbca527c9",
      "parents": [
        "0c3efe54d0165cecf0698b468e253577b555dde6",
        "b03f24567ce7caf2420b8be4c6eb74c191d59a91"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 07:35:17 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 08 07:35:17 2011 -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: Don\u0027t write quota info in dquot_commit()\n  ext3: Fix writepage credits computation for ordered mode\n"
    },
    {
      "commit": "b03f24567ce7caf2420b8be4c6eb74c191d59a91",
      "tree": "f0337cbc006ff57bdaed3d48d60d0054d23afb74",
      "parents": [
        "523334ba508a8baaf5fc9f15fbad9ed04f334f48"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 31 18:36:52 2011 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Apr 01 00:23:46 2011 +0200"
      },
      "message": "quota: Don\u0027t write quota info in dquot_commit()\n\nThere\u0027s no reason to write quota info in dquot_commit(). The writing is a\nrelict from the old days when we didn\u0027t have dquot_acquire() and\ndquot_release() and thus dquot_commit() could have created / removed quota\nstructures from the file. These days dquot_commit() only updates usage counters\n/ limits in quota structure and thus there\u0027s no need to write quota info.\n\nThis also fixes an issue with journaling filesystem which didn\u0027t reserve\nenough space in the transaction for write of quota info (it could have been\ndirty at the time of dquot_commit() because of a race with other operation\nchanging it).\n\nCC: stable@kernel.org\nReported-and-tested-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "55fa6091d83160ca772fc37cebae45d42695a708",
      "tree": "4df49f372032e30449e1a2dd64daf443e20b781c",
      "parents": [
        "f283c86afe6aa70b733d1ecebad5d9464943b774"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:40 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:32 2011 -0400"
      },
      "message": "fs: move i_sb_list out from under inode_lock\n\nProtect the per-sb inode list with a new global lock\ninode_sb_list_lock and use it to protect the list manipulations and\ntraversals. This lock replaces the inode_lock as the inodes on the\nlist can be validity checked while holding the inode-\u003ei_lock and\nhence the inode_lock is no longer needed to protect the list.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "250df6ed274d767da844a5d9f05720b804240197",
      "tree": "b74f49a86c4451d9e3e82f90e3f791163025be21",
      "parents": [
        "3dc8fe4dca9cd3e4aa828ed36451e2bcfd2350da"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:36 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:31 2011 -0400"
      },
      "message": "fs: protect inode-\u003ei_state with inode-\u003ei_lock\n\nProtect inode state transitions and validity checks with the\ninode-\u003ei_lock. This enables us to make inode state transitions\nindependently of the inode_lock and is the first step to peeling\naway the inode_lock from the code.\n\nThis requires that __iget() is done atomically with i_state checks\nduring list traversals so that we don\u0027t race with another thread\nmarking the inode I_FREEING between the state check and grabbing the\nreference.\n\nAlso remove the unlock_new_inode() memory barrier optimisation\nrequired to avoid taking the inode_lock when clearing I_NEW.\nSimplify the code by simply taking the inode-\u003ei_lock around the\nstate change and wakeup. Because the wakeup is no longer tricky,\nremove the wake_up_inode() function and open code the wakeup where\nnecessary.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7a39de1510a3fd07a77530440292735d305fe510",
      "tree": "fea245b4e4548823447acc153018baaae27acc39",
      "parents": [
        "2aa15890f3c191326678f1bd68af61ec6b8753ec"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Thu Jan 20 15:32:05 2011 -0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Feb 24 11:42:44 2011 +0100"
      },
      "message": "quota: return -ENOMEM when memory allocation fails\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "f00c9e44ad1a9660fe8cd3ca15b6cd9497172eab",
      "tree": "cbb47ae0d8aba9d8b3c44714b000156715cdf969",
      "parents": [
        "4162cf64973df51fc885825bc9ca4d055891c49f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 15 17:38:58 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 12 19:14:55 2011 +0100"
      },
      "message": "quota: Fix deadlock during path resolution\n\nAs Al Viro pointed out path resolution during Q_QUOTAON calls to quotactl\nis prone to deadlocks. We hold s_umount semaphore for reading during the\npath resolution and resolution itself may need to acquire the semaphore\nfor writing when e. g. autofs mountpoint is passed.\n\nSolve the problem by performing the resolution before we get hold of the\nsuperblock (and thus s_umount semaphore). The whole thing is complicated\nby the fact that some filesystems (OCFS2) ignore the path argument. So to\ndistinguish between filesystem which want the path and which do not we\nintroduce new .quota_on_meta callback which does not get the path. OCFS2\nthen uses this callback instead of old .quota_on.\n\nCC: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCC: Christoph Hellwig \u003chch@lst.de\u003e\nCC: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCC: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "055adcbd7da75868697e767adc4f3272f6cae76c",
      "tree": "613866918d108adf8536a0d0aab0f1d3bc2c5072",
      "parents": [
        "9c52749232b5cef506877ac633ea14083bd17e02"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Nov 23 18:49:54 2010 -0800"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 10 19:04:05 2011 +0100"
      },
      "message": "quota: Use %pV and __attribute__((format (printf in __quota_error and fix fallout\n\nUse %pV in __quota_error so a single printk can not be\ninterleaved with other logging messages.\nAdd __attribute__((format (printf, 3, 4))) so format\nand arguments can be verified by compiler.\nMake sure printk formats and arguments match.\n\nBlock # needed a pointer dereference.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "4408ea41c0ab4b711d4da44dd954fb06dce6c3f8",
      "tree": "7244e8448303b034e17ab24a835012ae99b33734",
      "parents": [
        "a4c18ad2eed93194a667cb9f6662c3b3e8f0bba9"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Oct 19 00:24:21 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 28 01:30:06 2010 +0200"
      },
      "message": "quota: Fix possible oops in __dquot_initialize()\n\nWhen quotaon(8) races with __dquot_initialize() or dqget() fails because\nof EIO, ENOSPC, or similar error, we could possibly dereference NULL pointer\nin inode-\u003ei_dquot[cnt]. Add proper checking.\n\nReported-by: Dmitry Monakhov \u003cdmonakhov@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "86f3cbec4a193c04d0a31c13132c5956731af6ff",
      "tree": "6bc3f57914b07672b73320dc9604a40b8e3ffea5",
      "parents": [
        "9e32784b71c2c84895016ca6ab271591669c02aa"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Oct 11 15:22:21 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 28 01:30:03 2010 +0200"
      },
      "message": "quota: Fix issuing of warnings from dquot_transfer\n\n__dquot_transfer accidentally called flush_warnings for a wrong set of\ndquots which could result in quota warnings being issued with a wrong\nidentification. Also when operation fails because of EDQUOT, there\u0027s no\nneed check for issuing information message about user getting below limits\n(no transfer has actually happened).\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9e32784b71c2c84895016ca6ab271591669c02aa",
      "tree": "db69a152de57f65666408591a06f15cb865c695f",
      "parents": [
        "a910eefa511f9d1118effc13fba6773163502c4f"
      ],
      "author": {
        "name": "Dmitry",
        "email": "dmonakhov@openvz.org",
        "time": "Sat Oct 09 23:15:30 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 28 01:30:02 2010 +0200"
      },
      "message": "quota: fix dquot_disable vs dquot_transfer race v2\n\nI\u0027ve got following lockup:\ndquot_disable                              dquot_transfer\n                                            -\u003edqget()\n\t\t\t\t\t       sb_has_quota_active\ndqopt-\u003eflags \u0026\u003d ~dquot_state_flag(f, cnt)      atomic_inc(dq-\u003edq_count)\n -\u003edrop_dquot_ref(sb, cnt);\n    down_write(dqptr_sem)\n    inode-\u003ei_dquot[cnt] \u003d NULL              -\u003e__dquot_transfer\ninvalidate_dquots(sb, cnt);\t\t       down_write(\u0026dqptr_sem)\n  -\u003ewait for dq_wait_unused\t\t       inode-\u003ei_dquot \u003d new_dquot\n  /* wait forever */                            ^^^^New quota user^^^^^^\n\nWe cannot allow new references to dquots from inodes after drop_dquot_ref()\nhas removed them.  We have to recheck quota state under dqptr_sem and before\nassignment, as we do it in dquot_initialize().\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@gmail.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "80f44b152c889e592616adf0d33b856107f4bace",
      "tree": "432867c97f855e57a023bbf13c4c81e700393448",
      "parents": [
        "c6ea21e35bf3691cad59647c771e6606067f627d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Aug 17 12:14:44 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Oct 05 12:16:37 2010 +0200"
      },
      "message": "quota: Make QUOTACTL config be selected by its users\n\nRemove \"depends on\" line from QUOTACTL config option and rather select\nthe option explicitely from config options which need it. It makes more\nsense this way and also fixes Kconfig warning due to GFS2 selecting\nQUOTACTL but QUOTACTL not depending on it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "a4ffdde6e56fdf8c34ddadc2674d6eb978083369",
      "tree": "0fa07df92d804cb7d0482135195e4835cb16403a",
      "parents": [
        "b5fc510c48f631882ccec3c0f02a25d5b67de09f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 02 17:38:30 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:44 2010 -0400"
      },
      "message": "simplify checks for I_CLEAR/I_FREEING\n\nadd I_CLEAR instead of replacing I_FREEING with it.  I_CLEAR is\nequivalent to I_FREEING for almost all code looking at either;\nit\u0027s there to keep track of having called clear_inode() exactly\nonce per inode lifetime, at some point after having set I_FREEING.\nI_CLEAR and I_FREEING never get set at the same time with the\ncurrent code, so we can switch to setting i_flags to I_FREEING | I_CLEAR\ninstead of I_CLEAR without loss of information.  As the result of\nsuch change, checks become simpler and the amount of code that needs\nto know about I_CLEAR shrinks a lot.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90e0c225968f0878e090c7ff3f88323973476cee",
      "tree": "30fff5a5cb18b08d40e4d496489be6ce714a6cde",
      "parents": [
        "938a73b959cf77aadc41bded3bf416b618aa20b3",
        "5f11e6a44059f728dddd8d0dbe5b4368ea93575b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:57:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:57:07 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  ext3: Fix dirtying of journalled buffers in data\u003djournal mode\n  ext3: default to ordered mode\n  quota: Use mark_inode_dirty_sync instead of mark_inode_dirty\n  quota: Change quota error message to print out disk and function name\n  MAINTAINERS: Update entries of ext2 and ext3\n  MAINTAINERS: Update address of Andreas Dilger\n  ext3: Avoid filesystem corruption after a crash under heavy delete load\n  ext3: remove vestiges of nobh support\n  ext3: Fix set but unused variables\n  quota: clean up quota active checks\n  quota: Clean up the namespace in dqblk_xfs.h\n  quota: check quota reservation on remove_dquot_ref\n"
    },
    {
      "commit": "43d2932d88e4ab776dd388c20b003ebd5e1d1f1f",
      "tree": "04ace338522936dc7e5ed557397bbff6072b4a20",
      "parents": [
        "fb5ffb0e160c93c3fe08ab83845eb9a2768af812"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 21 14:22:21 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 23 12:50:46 2010 +0200"
      },
      "message": "quota: Use mark_inode_dirty_sync instead of mark_inode_dirty\n\nQuota code never touches file data. It just modifies i_blocks + i_bytes\nof inodes and inode flags of quota files. So use mark_inode_dirty_sync\ninstead of mark_inode_dirty.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "fb5ffb0e160c93c3fe08ab83845eb9a2768af812",
      "tree": "1f3488ab93f21a30f9a60f612de63adce3ce1599",
      "parents": [
        "01971952582068c4eaaef7410f32d16daa178a0d"
      ],
      "author": {
        "name": "Jiaying Zhang",
        "email": "jiayingz@google.com",
        "time": "Tue Jul 20 16:54:43 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 21 16:05:58 2010 +0200"
      },
      "message": "quota: Change quota error message to print out disk and function name\n\nThe current quota error message doesn\u0027t always print the disk name, so\nit is hard to identify the \"bad\" disk when quota error happens.\n\nThis patch changes the standardized quota error message to print out disk name\nand function name. It also uses a combination of cpp macro and inline function\nto provide better type checking and to lower the text size of the message.\n\n[Jan Kara: Export __quota_error]\n\nSigned-off-by: Jiaying Zhang \u003cjiayingz@google.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "189eef59e70e3e56edf726864629f310d114eefb",
      "tree": "eff40faa6d8f4b103f10709892c1b47c8be6ae4e",
      "parents": [
        "ade7ce31c22e961dfbe1a6d57fd362c90c187cbd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 10:56:29 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 21 16:01:47 2010 +0200"
      },
      "message": "quota: clean up quota active checks\n\nThe various quota operations check for any quota beeing active on\na superblock, and the inode not having the noquota flag.\n\nMerge these two checks into a dquot_active check and move that\ninto dquot.c as that\u0027s the only place where it\u0027s needed.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ade7ce31c22e961dfbe1a6d57fd362c90c187cbd",
      "tree": "96a64a3ae76a182e80db8457e49aa30355b54ae3",
      "parents": [
        "7af9cce8ae467bb2fcf3b0b6be3898835bdb984c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 10:56:01 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 21 16:01:46 2010 +0200"
      },
      "message": "quota: Clean up the namespace in dqblk_xfs.h\n\nAlmost all identifiers use the FS_* namespace, so rename the missing few\nXFS_* ones to FS_* as well.  Without this some people might get upset\nabout having too many XFS names in generic code.\n\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "7af9cce8ae467bb2fcf3b0b6be3898835bdb984c",
      "tree": "ee72b3f199b775484ad61a984d5cfd5cb34d6de8",
      "parents": [
        "a9f7f2e74ae0e6a801a2433dc8e9124d73da0cb4"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Jun 01 11:39:48 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 21 16:01:46 2010 +0200"
      },
      "message": "quota: check quota reservation on remove_dquot_ref\n\nReserved space must being claimed before remove_dquot_ref() for a\ngiven inode. Filesystem is responsible for performing force blocks\nallocation in case of dealloc in -\u003equota_off. Let\u0027s add sanity check\nfor that case. Do it similar to add_dquot_ref().\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "7f8275d0d660c146de6ee3017e1e2e594c49e820",
      "tree": "884db927118b44102750b5168ee36ef4b8b5cb4e",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "message": "mm: add context argument to shrinker callback\n\nThe current shrinker implementation requires the registered callback\nto have global state to work from. This makes it difficult to shrink\ncaches that are not global (e.g. per-filesystem caches). Pass the shrinker\nstructure to the callback so that users can embed the shrinker structure\nin the context the shrinker needs to operate on and get back to it in the\ncallback via container_of().\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "d28619f1563140526e2f84eae436f39206f40a69",
      "tree": "d93284016a0983c8f27b745a3c50738617e50995",
      "parents": [
        "021fad8b706849c091f6e682bc5df3ce4f9ab4d7",
        "f32764bd2bbb6ea003c158b1d276b4dc9f900348"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:11:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:11:11 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  quota: Convert quota statistics to generic percpu_counter\n  ext3 uses rb_node \u003d NULL; to zero rb_root.\n  quota: Fixup dquot_transfer\n  reiserfs: Fix resuming of quotas on remount read-write\n  pohmelfs: Remove dead quota code\n  ufs: Remove dead quota code\n  udf: Remove dead quota code\n  quota: rename default quotactl methods to dquot_\n  quota: explicitly set -\u003edq_op and -\u003es_qcop\n  quota: drop remount argument to -\u003equota_on and -\u003equota_off\n  quota: move unmount handling into the filesystem\n  quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers\n  quota: move remount handling into the filesystem\n  ocfs2: Fix use after free on remount read-only\n\nFix up conflicts in fs/ext4/super.c and fs/ufs/file.c\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "ab09203e302b6e526f6930f3e460064b0f253ae9"
}
