)]}'
{
  "log": [
    {
      "commit": "1b8e94993c4752d98c33903aa836acc15f7e6d5c",
      "tree": "b78cba208f0a193ce6ceebbc146021af4425b4e1",
      "parents": [
        "12ff47e7f5fb64c566f62e6cf6a3b291c51bd337",
        "206d440f64030b6425841bf7cb38e26a5ea0c382"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:48:31 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 01 13:48:31 2011 -1000"
      },
      "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:\n  xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set\n  VFS: Reorganise shrink_dcache_for_umount_subtree() after demise of dcache_lock\n  VFS: Remove dentry-\u003ed_lock locking from shrink_dcache_for_umount_subtree()\n  VFS: Remove detached-dentry counter from shrink_dcache_for_umount_subtree()\n  switch posix_acl_chmod() to umode_t\n  switch posix_acl_from_mode() to umode_t\n  switch posix_acl_equiv_mode() to umode_t *\n  switch posix_acl_create() to umode_t *\n  block: initialise bd_super in bdget()\n  vfs: avoid call to inode_lru_list_del() if possible\n  vfs: avoid taking inode_hash_lock on pipes and sockets\n  vfs: conditionally call inode_wb_list_del()\n  VFS: Fix automount for negative autofs dentries\n  Btrfs: load the key from the dir item in readdir into a fake dentry\n  devtmpfs: missing initialialization in never-hit case\n  hppfs: missing include\n"
    },
    {
      "commit": "d6952123b53cc8b334df69bba2cd0063b0d88f68",
      "tree": "b1ccaa7e3d65dbf4af093202044da65bc4deb34e",
      "parents": [
        "d3fb612076eebec6f67257db0c7a9666ac7e5892"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 18:56:36 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 02:10:06 2011 -0400"
      },
      "message": "switch posix_acl_equiv_mode() to umode_t *\n\n... so that \u0026inode-\u003ei_mode could be passed to it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3fb612076eebec6f67257db0c7a9666ac7e5892",
      "tree": "5265fca258a74ffa75b845998492abb9446db72c",
      "parents": [
        "782b94cdf577b4df1feb376f372dccc28e66a771"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 18:37:50 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 02:09:42 2011 -0400"
      },
      "message": "switch posix_acl_create() to umode_t *\n\nso we can pass \u0026inode-\u003ei_mode to it\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "333c066bb76f1f270ca77f16afe198e54e352c83",
      "tree": "07343bcb01b28ca48c4e364a5da7dcacc0c37439",
      "parents": [
        "75623437167d9d1ef14acaf6b3fb4ccd38fcbc84",
        "19237039919088781b4191a00bdc1284d8fea1dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:26:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:26:22 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: Fix mount hang caused by certain access pattern to sysfs files\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19237039919088781b4191a00bdc1284d8fea1dd",
      "tree": "2d1fb1d68caa6eb642fa6b201163619bd616b559",
      "parents": [
        "e08dc1325feaf49eec392ee52feb2974ec3f5155"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 26 09:15:45 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 26 10:18:37 2011 +0100"
      },
      "message": "GFS2: Fix mount hang caused by certain access pattern to sysfs files\n\nDepending upon the order of userspace/kernel during the\nmount process, this can result in a hang without the\n_all version of the completion.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4e34e719e457f2e031297175410fc0bd4016a085",
      "tree": "ab969a371e0d2efc6bfbf503ca6cdfce3af3bf6c",
      "parents": [
        "edde854e8bb34a7f32fa993d721f1da0faf64165"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jul 23 17:37:31 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:30:23 2011 -0400"
      },
      "message": "fs: take the ACL checks to common code\n\nReplace the -\u003echeck_acl method with a -\u003eget_acl method that simply reads an\nACL from disk after having a cache miss.  This means we can replace the ACL\nchecking boilerplate code with a single implementation in namei.c.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "826cae2f2b4d726b925f43bc208a571639da4761",
      "tree": "b7f83eecf3bde8c4e455d89c7c535988b3e8bd59",
      "parents": [
        "95203befa8887997f14077d8557e67d78457ee02"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 03:10:32 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:27:32 2011 -0400"
      },
      "message": "kill boilerplates around posix_acl_create_masq()\n\nnew helper: posix_acl_create(\u0026acl, gfp, mode_p).  Replaces acl with\nmodified clone, on failure releases acl and replaces with NULL.\nReturns 0 or -ve on error.  All callers of posix_acl_create_masq()\nswitched.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bc26ab5f65ae41b71df86ea46df3c3833d1d8d83",
      "tree": "85bbc4e0da4fac99ccf31b3609c61e2b148a8498",
      "parents": [
        "4482a087d4c5a6ffbc385c56b4a4e2f694d9fd5d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 00:18:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:27:30 2011 -0400"
      },
      "message": "kill boilerplate around posix_acl_chmod_masq()\n\nnew helper: posix_acl_chmod(\u0026acl, gfp, mode).  Replaces acl with modified\nclone or with NULL if that has failed; returns 0 or -ve on error.  All\ncallers of posix_acl_chmod_masq() switched to that - they\u0027d been doing\nexactly the same thing.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e77819e57f0817c6dc7cadd061acd70c604cbce2",
      "tree": "f5d7aba2dfbb747a97d783b7cc6a486922c42559",
      "parents": [
        "3ca30d40a91fb9b9871e61d5dea2c1a895906a15"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:30:19 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:23:39 2011 -0400"
      },
      "message": "vfs: move ACL cache lookup into generic code\n\nThis moves logic for checking the cached ACL values from low-level\nfilesystems into generic code.  The end result is a streamlined ACL\ncheck that doesn\u0027t need to load the inode-\u003ei_op-\u003echeck_acl pointer at\nall for the common cached case.\n\nThe filesystems also don\u0027t need to check for a non-blocking RCU walk\ncase in their acl_check() functions, because that is all handled at a\nVFS layer.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -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: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "6c673ab393bc18e8bff729cd04cf384d15e72a04",
      "tree": "e1eed0667626c8b092d27500560808d834d21e8d",
      "parents": [
        "79ac5a46c5c1c17476fbf84b4d4600d6d565defd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 10:22:27 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:48:02 2011 -0400"
      },
      "message": "simplify gfs2_lookup()\n\nd_splice_alias() will DTRT when given NULL or ERR_PTR\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "562c72aa57c36b178eacc3500a0215651eca9429",
      "tree": "2c522c53ab26fc72e85e08747a08e3dca1207c87",
      "parents": [
        "11b80f459adaf91a712f95e7734a17655a36bf30"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:45 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:47 2011 -0400"
      },
      "message": "fs: move inode_dio_wait calls into -\u003esetattr\n\nLet filesystems handle waiting for direct I/O requests themselves instead\nof doing it beforehand.  This means filesystem-specific locks to prevent\nnew dio referenes from appearing can be held.  This is important to allow\ngeneralizing i_dio_count to non-DIO_LOCKING filesystems.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10556cb21a0d0b24d95f00ea6df16f599a3345b2",
      "tree": "3d7d8dfba807805a55c154f1850717bf3b49f343",
      "parents": [
        "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:28:19 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:24 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003epermission()\n\nnot used by the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890",
      "tree": "bbcebc14bffd000f1dfcbf37e64f56d2f49581ac",
      "parents": [
        "7e40145eb111a5192e6d819f764db9d6828d1abb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:16:29 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:22 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to generic_permission()\n\nredundant; all callers get it duplicated in mask \u0026 MAY_NOT_BLOCK and none of\nthem removes that bit.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7e40145eb111a5192e6d819f764db9d6828d1abb",
      "tree": "3249952a751de12465e8d66c63328445e9242f3a",
      "parents": [
        "9c2c703929e4c41210cfa6e3f599514421bab8dc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:12:17 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:21 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003echeck_acl()\n\nnot used in the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c2c703929e4c41210cfa6e3f599514421bab8dc",
      "tree": "2086738f22755ad18ba18ab2ee0f2b23d651da60",
      "parents": [
        "1fc0f78ca9f311c6277e2f1b7655bb4d43ceb311"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:06:22 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:19 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: pass MAY_NOT_BLOCK to -\u003echeck_acl()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "178ea73521d64ba41d7aa5488fb9f549c6d4507d",
      "tree": "7fb6bfb6483577752e307a5bb2e3905658d44294",
      "parents": [
        "07b8ce1ee87d291ff564c02cf878fae973317a52"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 11:31:30 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:16 2011 -0400"
      },
      "message": "kill check_acl callback of generic_permission()\n\nits value depends only on inode and does not change; we might as\nwell store it in -\u003ei_op-\u003echeck_acl and be done with that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "46fcb2ed29ff7a9ec34c4ae67b631743eb7e756f",
      "tree": "f28487201dd8fe815192b75d1b29426a7882a01b",
      "parents": [
        "9964afbb797329e4c6e5d05ebc199c39af618c5f"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Jun 23 10:39:34 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 15 09:32:52 2011 +0100"
      },
      "message": "GFS2: combine duplicated block freeing routines\n\n__gfs2_free_data and __gfs2_free_meta are almost identical, and\ncan be trivially combined.\n\n[This is as per Eric\u0027s original patch minus gfs2_free_data() which had\n no callers left and plus the conversion of the bmap.c calls to these\n functions. All in all, a nice clean up]\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9964afbb797329e4c6e5d05ebc199c39af618c5f",
      "tree": "c0877e423f5dff8b722869bd3f21622a88889220",
      "parents": [
        "7cf8dcd3b68a760d66fbc7f0d75d3fbb8f21775d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 16 14:06:55 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 15 09:32:35 2011 +0100"
      },
      "message": "GFS2: Add S_NOSEC support\n\nThis adds S_NOSEC support to GFS2. We set/reset the flag either when\na user calls setattr or when we have just regained the glock\nfrom another node. The flag is only set if there are no xattrs\non the inode and there is no suid bit set.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\n"
    },
    {
      "commit": "7cf8dcd3b68a760d66fbc7f0d75d3fbb8f21775d",
      "tree": "f529dace79c044e6128e9cf283a5c1a584fed5db",
      "parents": [
        "17d539f0499fa2c0321b7c260831cca2bb36d119"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jun 15 11:41:48 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 15 09:32:11 2011 +0100"
      },
      "message": "GFS2: Automatically adjust glock min hold time\n\nThis patch is a performance improvement for GFS2 in a clustered\nenvironment. It makes the glock hold time self-adjusting.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "17d539f0499fa2c0321b7c260831cca2bb36d119",
      "tree": "28b960ad670a0112d45afbab120f855b8e95b146",
      "parents": [
        "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 15 10:29:37 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jul 15 09:31:48 2011 +0100"
      },
      "message": "GFS2: Cache dir hash table in a contiguous buffer\n\nThis patch adds a cache for the hash table to the directory code\nin order to help simplify the way in which the hash table is\naccessed. This is intended to be a first step towards introducing\nsome performance improvements in the directory code.\n\nThere are two follow ups that I\u0027m hoping to see fairly shortly. One\nis to simplify the hash table reading code now that we always read the\ncomplete hash table, whether we want one entry or all of them. The\nother is to introduce readahead on the heads of the hash chains\nwhich are referred to from the table.\n\nThe hash table is a maximum of 128k in size, so it is not worth trying\nto read it in small chunks.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "380f7c65a7eb3288e4b6812acf3474a1de230707",
      "tree": "7abe4b4ce390afc6b4d2bc7cae0ec298fe2efa3c",
      "parents": [
        "3942ae5319640ced5844b75f44884e4bcb8a2f16"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "message": "GFS2: Resolve inode eviction and ail list interaction bug\n\nThis patch contains a few misc fixes which resolve a recently\nreported issue. This patch has been a real team effort and has\nreceived a lot of testing.\n\nThe first issue is that the ail lock needs to be held over a few\nmore operations. The lock thats added into gfs2_releasepage() may\npossibly be a candidate for replacing with RCU at some future\npoint, but at this stage we\u0027ve gone for the obvious fix.\n\nThe second issue is that gfs2_write_inode() can end up calling\na glock recursively when called from gfs2_evict_inode() via the\nsyncing code, so it needs a guard added.\n\nThe third issue is that we either need to not truncate the metadata\npages of inodes which have zero link count, but which we cannot\ndeallocate due to them still being in use by other nodes, or we need\nto ensure that those pages have all made it through the journal and\nail lists first. This patch takes the former approach, but the\nlatter has also been tested and there is nothing to choose between\nthem performance-wise. So again, we could revise that decision\nin the future.\n\nAlso, the inode eviction process is now better documented.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nTested-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nReported-by: Barry J. Marson \u003cbmarson@redhat.com\u003e\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "3942ae5319640ced5844b75f44884e4bcb8a2f16",
      "tree": "cc9eee61c37d18e1887f0723d338b121561dc0b9",
      "parents": [
        "1ce533686c7d40bf900dc346a7279c17a9ee8e0e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 11 08:53:30 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 12 09:15:46 2011 +0100"
      },
      "message": "GFS2: Fix race during filesystem mount\n\nThere is a potential race during filesystem mounting which has recently\nbeen reported. It occurs when the userland gfs_controld is able to\nprocess requests fast enough that it tries to use the sysfs interface\nbefore the lock module is properly initialised. This is a pretty\nunusual case as normally the lock module initialisation is very quick\ncompared with gfs_controld.\n\nThis patch adds an interruptible completion which is used to ensure that\nuserland will wait for the initialisation of the lock module to\ncomplete.\n\nThere are other potential solutions to this problem, but this is the\nquickest at this stage and has been tested both with and without\nmount.gfs2 present in the system.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-by: David Booher \u003cdbooher@adams.net\u003e\n"
    },
    {
      "commit": "1ce533686c7d40bf900dc346a7279c17a9ee8e0e",
      "tree": "fceea4beb94bb819577ea410919c2b603ddef30f",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Jun 13 14:27:40 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 12 09:15:24 2011 +0100"
      },
      "message": "GFS2: force a log flush when invalidating the rindex glock\n\nRight now, there is nothing that forces the log to get flushed when a node\ndrops its rindex glock so that another node can grow the filesystem. If the\nlog doesn\u0027t get flushed, GFS2 can corrupt the sd_log_le_rg list in the\nfollowing way.\n\nA node puts an rgd on the list in rg_lo_add(), and then the rindex glock is\ndropped so the other node can grow the filesystem. When the node reacquires the\nrindex glock, that rgd gets deleted in clear_rgrpdi() before ever being\nremoved from the list by gfs2_log_flush().\n\nThis code simply forces a log flush when the rindex glock is invalidated,\nsolving the problem.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d205df9955feb9c2ae63ac1387804e225ff22605",
      "tree": "abae84cb6fc082f14072089bb0058b1bbd88c97a",
      "parents": [
        "24210071e0dd7da1a945a2a1686b93f2b2f3b410",
        "f90e5b5b136ede1f0fd15999e95f13124d6b0dbd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 18:44:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 07 18:44:10 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: Processes waiting on inode glock that no processes are holding\n"
    },
    {
      "commit": "b7c2f036284452627d793af981877817b37d4351",
      "tree": "c96bbf7558512b27f4802994c9271ccd0f1c19f3",
      "parents": [
        "14587a2a25447813996e6fb9e48d48627cb75a5d",
        "8d2c50e3b65c8d48d51088f541c13fde46cc8133"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 13:19:00 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 13:19:00 2011 -0700"
      },
      "message": "Merge branch \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6\n\n* \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:\n  gfs2: Drop __TIME__ usage\n  isdn/diva: Drop __TIME__ usage\n  atm: Drop __TIME__ usage\n  dlm: Drop __TIME__ usage\n  wan/pc300: Drop __TIME__ usage\n  parport: Drop __TIME__ usage\n  hdlcdrv: Drop __TIME__ usage\n  baycom: Drop __TIME__ usage\n  pmcraid: Drop __DATE__ usage\n  edac: Drop __DATE__ usage\n  rio: Drop __DATE__ usage\n  scsi/wd33c93: Drop __TIME__ usage\n  scsi/in2000: Drop __TIME__ usage\n  aacraid: Drop __TIME__ usage\n  media/cx231xx: Drop __TIME__ usage\n  media/radio-maxiradio: Drop __TIME__ usage\n  nozomi: Drop __TIME__ usage\n  cyclades: Drop __TIME__ usage\n"
    },
    {
      "commit": "8d2c50e3b65c8d48d51088f541c13fde46cc8133",
      "tree": "b0e073fdadba2c407b2e44579aaf5d2ae25cc526",
      "parents": [
        "3df3f2bf6104dca5cf225063436b7d6fff6793b1"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Fri Apr 01 12:41:20 2011 +0200"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Thu May 26 10:54:37 2011 +0200"
      },
      "message": "gfs2: Drop __TIME__ usage\n\nThe kernel already prints its build timestamp during boot, no need to\nrepeat it in random drivers and produce different object files each\ntime.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: cluster-devel@redhat.com\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\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": "f90e5b5b136ede1f0fd15999e95f13124d6b0dbd",
      "tree": "d632331ee9a282954c1d5ed6fa6160c59a1611fb",
      "parents": [
        "4a7df24ddc7097cd789a7527187826552ea0765e"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue May 24 10:44:42 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 25 10:37:11 2011 +0100"
      },
      "message": "GFS2: Processes waiting on inode glock that no processes are holding\n\nThis patch fixes a race in the GFS2 glock state machine that may\nresult in lockups.  The symptom is that all nodes but one will\nhang, waiting for a particular glock.  All the holder records\nwill have the \"W\" (Waiting) bit set.  The other node will\ntypically have the glock stuck in Exclusive mode (EX) with no\nholder records, but the dinode will be cached.  In other words,\nan entry with \"I:\" will appear in the glock dump for that glock,\nbut nothing else.\n\nThe race has to do with the glock \"Pending Demote\" bit, which\ncan be set, then immediately reset, thus losing the fact that\nanother node needs the glock.  The sequence of events is:\n\n1. Something schedules the glock workqueue (e.g. glock request from fs)\n2. The glock workqueue gets to the point between the test of the reply pending\nbit and the spin lock:\n\n        if (test_and_clear_bit(GLF_REPLY_PENDING, \u0026gl-\u003egl_flags)) {\n                finish_xmote(gl, gl-\u003egl_reply);\n                drop_ref \u003d 1;\n        }\n        down_read(\u0026gfs2_umount_flush_sem);         \u003c---- i.e. here\n        spin_lock(\u0026gl-\u003egl_spin);\n\n3. In comes (a) the reply to our EX lock request setting GLF_REPLY_PENDING and\n            (b) the demote request which sets GLF_PENDING_DEMOTE\n\n4. The following test is executed:\n\n        if (test_and_clear_bit(GLF_PENDING_DEMOTE, \u0026gl-\u003egl_flags) \u0026\u0026\n            gl-\u003egl_state !\u003d LM_ST_UNLOCKED \u0026\u0026\n            gl-\u003egl_demote_state !\u003d LM_ST_EXCLUSIVE) {\n\nThis resets the pending demote flag, and gl-\u003egl_demote_state is not equal to\nexclusive, however because the reply from the dlm arrived after we checked for\nthe GLF_REPLY_PENDING flag, gl-\u003egl_state is still equal to unlocked, so\nalthough we reset the GLF_PENDING_DEMOTE flag, we didn\u0027t then set the\nGLF_DEMOTE flag or reinstate the GLF_PENDING_DEMOTE_FLAG.\n\nThe patch closes the timing window by only transitioning the\n\"Pending demote\" bit to the \"demote\" flag once we know the\nother conditions (not unlocked and not exclusive) are met.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "26b06a6958df0f12f1a654db8598433eb89cc024",
      "tree": "4f65fc66e5bef81d7ef16f620686a048c49c7196",
      "parents": [
        "6d3117b41295150d4ac70622055dd8f5529d86b2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 19:21:07 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 19:21:07 2011 +0100"
      },
      "message": "GFS2: Wait properly when flushing the ail list\n\nThe ail flush code has always relied upon log flushing to prevent\nit from spinning needlessly. This fixes it to wait on the last\nI/O request submitted (we don\u0027t need to wait for all of it)\ninstead of either spinning with io_schedule or sleeping.\n\nAs a result cpu usage of gfs2_logd is much reduced with certain\nworkloads.\n\nReported-by: Abhijith Das \u003cadas@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6d3117b41295150d4ac70622055dd8f5529d86b2",
      "tree": "64a74505be1099c968e1ca47c4fa6a0180cc1ee2",
      "parents": [
        "c21fd1a8c68ce3f49b00caf10337169262cfb8ad"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 14:05:58 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sat May 21 14:05:58 2011 +0100"
      },
      "message": "GFS2: Wipe directory hash table metadata when deallocating a directory\n\nThe deallocation code for directories in GFS2 is largely divided into\ntwo parts. The first part deallocates any directory leaf blocks and\nmarks the directory as being a regular file when that is complete. The\nsecond stage was identical to deallocating regular files.\n\nRegular files have their data blocks in a different\naddress space to directories, and thus what would have been normal data\nblocks in a regular file (the hash table in a GFS2 directory) were\ndeallocated correctly. However, a reference to these blocks was left in the\njournal (assuming of course that some previous activity had resulted in\nthose blocks being in the journal or ail list).\n\nThis patch uses the i_depth as a test of whether the inode is an\nexhash directory (we cannot test the inode type as that has already\nbeen changed to a regular file at this stage in deallocation)\n\nThe original issue was reported by Chris Hertel as an issue he encountered\nrunning bonnie++\n\nReported-by: Christopher R. Hertel \u003ccrh@samba.org\u003e\nCc: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6c1b8d94bcc1882e451d0e7a28a4a5253f4970ab",
      "tree": "1e612ce2e7b5e2164ffa49ad6518ca2834a7f9bb",
      "parents": [
        "82aff107f8c9194586f68e86412246629d05670a",
        "f2741d9898269e565c220ec295a8f5c3756c7585"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:28:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 20 13:28:45 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (32 commits)\n  GFS2: Move all locking inside the inode creation function\n  GFS2: Clean up symlink creation\n  GFS2: Clean up mkdir\n  GFS2: Use UUID field in generic superblock\n  GFS2: Rename ops_inode.c to inode.c\n  GFS2: Inode.c is empty now, remove it\n  GFS2: Move final part of inode.c into super.c\n  GFS2: Move most of the remaining inode.c into ops_inode.c\n  GFS2: Move gfs2_refresh_inode() and friends into glops.c\n  GFS2: Remove gfs2_dinode_print() function\n  GFS2: When adding a new dir entry, inc link count if it is a subdir\n  GFS2: Make gfs2_dir_del update link count when required\n  GFS2: Don\u0027t use gfs2_change_nlink in link syscall\n  GFS2: Don\u0027t use a try lock when promoting to a higher mode\n  GFS2: Double check link count under glock\n  GFS2: Improve bug trap code in -\u003ereleasepage()\n  GFS2: Fix ail list traversal\n  GFS2: make sure fallocate bytes is a multiple of blksize\n  GFS2: Add an AIL writeback tracepoint\n  GFS2: Make writeback more responsive to system conditions\n  ...\n"
    },
    {
      "commit": "f2741d9898269e565c220ec295a8f5c3756c7585",
      "tree": "36700a4cb6faee29ceae753474f0f0a9cbf899d7",
      "parents": [
        "160b4026dc3e75c0693d0123eca805e88cd200b6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 12:11:17 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 12:11:17 2011 +0100"
      },
      "message": "GFS2: Move all locking inside the inode creation function\n\nNow that there are no longer any exceptions to the normal inode\ncreation code path, we can move the parts of the locking code\nwhich were duplicated in mkdir/mknod/create/symlink into the\ninode create function.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "160b4026dc3e75c0693d0123eca805e88cd200b6",
      "tree": "32aa1a6e23b09be65cabdbcd6be2a8fc3d50527f",
      "parents": [
        "e2d0a13bba051d7a9618b0952d91fac68175a71a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 10:34:59 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 10:34:59 2011 +0100"
      },
      "message": "GFS2: Clean up symlink creation\n\nThis moves the symlink specific parts of inode creation\ninto the function where we initialise the rest of the\ndinode. As a result we have one less place where we need\nto look up the inode\u0027s buffer.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e2d0a13bba051d7a9618b0952d91fac68175a71a",
      "tree": "f1a28237be9b253da551bb20911ef5e7d256e7cf",
      "parents": [
        "32e471ef1057e812856739d26b4a87d929fb8aa1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 09:55:55 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 13 09:55:55 2011 +0100"
      },
      "message": "GFS2: Clean up mkdir\n\nThis moves the initialisation of the directory into the inode\ncreation functions to avoid having to duplicate the lookup\nof the inode\u0027s buffer.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "32e471ef1057e812856739d26b4a87d929fb8aa1",
      "tree": "f4f0debf9505b91d284c4e93d4c5f1b5c5690991",
      "parents": [
        "2ab9cd1c63b519e37b21b504376822be983badba"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 15:01:59 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 15:01:59 2011 +0100"
      },
      "message": "GFS2: Use UUID field in generic superblock\n\nThe VFS superblock structure now has a UUID field, so we can use that\nin preference to the UUID field in the GFS2 superblock now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2ab9cd1c63b519e37b21b504376822be983badba",
      "tree": "6293f520ef56e77b5ad9de6d773b585643450ecf",
      "parents": [
        "64ea5402581485237d3b6e3a0cf2b364ad8bd580"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 13:12:49 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 13:12:49 2011 +0100"
      },
      "message": "GFS2: Rename ops_inode.c to inode.c\n\nThis is the final part of the ops_inode.c/inode.c reordering. We\nare left with a single file called inode.c which now contains\nall the inode operations, as expected.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "64ea5402581485237d3b6e3a0cf2b364ad8bd580",
      "tree": "3639c3de9d64ee89360ec190f3029766fc0ed9ca",
      "parents": [
        "9eed04cd99b0a497cf0da22658808a7f5b10d734"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 13:09:53 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 10 13:09:53 2011 +0100"
      },
      "message": "GFS2: Inode.c is empty now, remove it\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9eed04cd99b0a497cf0da22658808a7f5b10d734",
      "tree": "42d8655ac9523ddd19bda5621de58b22a2a1de07",
      "parents": [
        "194c011fc4650d0dd1eecbc35bc26045108aca51"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 14:11:40 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:45:38 2011 +0100"
      },
      "message": "GFS2: Move final part of inode.c into super.c\n\nNow inode.c is empty.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "194c011fc4650d0dd1eecbc35bc26045108aca51",
      "tree": "1cb7769ab3df703336d17cc0835fc4a2132f51e6",
      "parents": [
        "d4b2cf1b0566eebfe39a6d70e9e4b5fa01ddaace"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 14:06:38 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:45:14 2011 +0100"
      },
      "message": "GFS2: Move most of the remaining inode.c into ops_inode.c\n\nThis is in preparation to remove inode.c and rename ops_inode.c\nto inode.c. Also most of the functions which were left in inode.c\nrelate to the creation and lookup of inodes. I\u0027m intending to work\non consolidating some of that code, and its easier when its all in\none place.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d4b2cf1b0566eebfe39a6d70e9e4b5fa01ddaace",
      "tree": "2f682adea3ac272ea865335ee3449c056a96f088",
      "parents": [
        "94fb763b1a76a2000ad21f3119b05c90040acaf0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 13:49:59 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:44:49 2011 +0100"
      },
      "message": "GFS2: Move gfs2_refresh_inode() and friends into glops.c\n\nEventually there will only be a single caller of this code, so lets\nmove it where it can be made static at some future date.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "94fb763b1a76a2000ad21f3119b05c90040acaf0",
      "tree": "72cb7fd210b8bb58e52403ba8c7fb35e93e2a5cc",
      "parents": [
        "3d6ecb7d16fd4248fce58387a982a0756ad3fcc2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 13:36:10 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:44:29 2011 +0100"
      },
      "message": "GFS2: Remove gfs2_dinode_print() function\n\nThis function was intended for debugging purposes, but it is not very\nuseful. If we want to know what is on disk then all we need is a\nblock number and gfs2_edit can give us much better information about\nwhat is there. Otherwise, if we are interested in what is stored in\nthe in-core inode, it doesn\u0027t help us out there either.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3d6ecb7d16fd4248fce58387a982a0756ad3fcc2",
      "tree": "b988b57c8a46fcfabe3738ccdb8982d67cd24c97",
      "parents": [
        "855d23ce2665c56437bd88fa6a0d45b6713bd194"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 13:30:08 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:43:53 2011 +0100"
      },
      "message": "GFS2: When adding a new dir entry, inc link count if it is a subdir\n\nThis adds an increment of the link count when we add a new directory\nentry, if that entry is itself a directory. This means that we no\nlonger need separate code to perform this operation.\n\nNow that both adding and removing directory entries automatically\nupdate the parent directory\u0027s link count if required, that makes\nthe code shorter and simpler than before.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "855d23ce2665c56437bd88fa6a0d45b6713bd194",
      "tree": "0678f8d0e93dfafd783bf9782f457bc7235b2128",
      "parents": [
        "2baee03fb916563d7cc597e5460e4cb938815c52"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:42:37 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:42:37 2011 +0100"
      },
      "message": "GFS2: Make gfs2_dir_del update link count when required\n\nWhen we remove an entry from a directory, we can save ourselves\nsome trouble if we know the type of the entry in question, since\nif it is itself a directory, we can update the link count of the\nparent at the same time as removing the directory entry.\n\nIn addition this patch also merges the rmdir and unlink code which\nwas almost identical anyway. This eliminates the calls to remove\nthe . and .. directory entries on each rmdir (not needed since the\ndirectory will be deallocated, anyway) which was the only thing preventing\npassing the dentry to gfs2_dir_del(). The passing of the dentry\nrather than just the name allows us to figure out the type of the entry\nwhich is being removed, and thus adjust the link count when required.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2baee03fb916563d7cc597e5460e4cb938815c52",
      "tree": "7fb2318e11be52f956c0b2af44a62a4746d034ab",
      "parents": [
        "588da3b3be8b3225c2dd192aa782bf6c5c32eb84"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 12:08:36 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon May 09 16:35:25 2011 +0100"
      },
      "message": "GFS2: Don\u0027t use gfs2_change_nlink in link syscall\n\nThere are three users of gfs2_change_nlink which add to the link\ncount. Two of these are about to be removed in later patches, so\nthis means that there will no callers, when that happens allowing\nremoval of that function, also in a later patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "588da3b3be8b3225c2dd192aa782bf6c5c32eb84",
      "tree": "857beb3294af78b926e9e5d95ed2d97b0c9c909b",
      "parents": [
        "d192a8e5c6fec4fe8cdafebccc415db4074dee88"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 05 12:36:38 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 05 12:36:38 2011 +0100"
      },
      "message": "GFS2: Don\u0027t use a try lock when promoting to a higher mode\n\nPreviously we marked all locks being promoted to a higher mode\nwith the try flag to avoid any potential deadlocks issues. The\nDLM is able to detect these and report them in way that GFS2 can\ndeal with them correctly. So we can just request the required mode\nand wait for a response without needing to perform this check.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d192a8e5c6fec4fe8cdafebccc415db4074dee88",
      "tree": "7c66540003f6aea894578f6786599bd08dcb9b7f",
      "parents": [
        "8f065d36508f283ee6cbeb05829f032d0b782a16"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 05 12:35:40 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu May 05 12:35:40 2011 +0100"
      },
      "message": "GFS2: Double check link count under glock\n\nTo avoid any possible races relating to the link count, we need to\nrecheck it under the inode\u0027s glock in all cases where it matters.\nAlso to ensure we never get any nasty surprises, this patch also\nensures that once the link count has hit zero it can never be\nelevated by rereading in data from disk.\n\nThe only place we cannot provide a proper solution is in rename\nin the case where we are removing a target inode and we discover\nthat the target inode has been already unlinked on another node.\nThe race window is very small, and we return EAGAIN in this case\nto indicate what has happened. The proper solution would be to move\nthe lookup parts of rename from the vfs into library calls which\nthe fs could call directly, but that is potentially a very big job\nand this fix should cover most cases for now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8f065d36508f283ee6cbeb05829f032d0b782a16",
      "tree": "3ebd2a660a5d13c773e16c024ce025df24a9b502",
      "parents": [
        "4f1de018215fb56940ce5793e11becd1e8cd6e44"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:49:19 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:49:19 2011 +0100"
      },
      "message": "GFS2: Improve bug trap code in -\u003ereleasepage()\n\nIf the buffer is dirty or pinned, then as well as printing a\nwarning, we should also refuse to release the page in\nquestion.\n\nCurrently this can occur if there is a race between mmap()ed\nwriters and O_DIRECT on the same file. With the addition of\n-\u003elaunder_page() in the future, we should be able to close\nthis gap.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4f1de018215fb56940ce5793e11becd1e8cd6e44",
      "tree": "4f90d7ef5e219615eab7c45e421fa45cb2729b1e",
      "parents": [
        "6905d9e4dda6112f007e9090bca80507da158e63"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Apr 26 10:23:56 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:48:07 2011 +0100"
      },
      "message": "GFS2: Fix ail list traversal\n\nIn the recent patches to update the AIL list code, I managed to\nforget that the ail list lock got dropped, even though I\nadded a comment specifically to remind myself :(\n\nReported-by: Barry Marson \u003cbmarson@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6905d9e4dda6112f007e9090bca80507da158e63",
      "tree": "d0a13a80a31c18ac148f678450e045196066eb06",
      "parents": [
        "c83ae9cad8776bab153a05cc466be39f14011091"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Apr 26 01:13:24 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 03 11:47:42 2011 +0100"
      },
      "message": "GFS2: make sure fallocate bytes is a multiple of blksize\n\nThe GFS2 fallocate code chooses a target size to for allocating chunks of\nspace.  Whenever it can\u0027t find any resource groups with enough space free, it\nhalves its target. Since this target is in bytes, eventually it will no longer\nbe a multiple of blksize.  As long as there is more space available in the\nresource group than the target, this isn\u0027t a problem, since gfs2 will use the\nactual space available, which is always a multiple of blksize.  However,\nwhen gfs couldn\u0027t fallocate a bigger chunk than the target, it was using the\nnon-blksize aligned number. This caused a BUG in later code that required\nblksize aligned offsets.  GFS2 now ensures that bytes is always a multiple of\nblksize\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1879fd6a26571fd4e8e1f4bb3e7537bc936b1fe7",
      "tree": "5fb41fdaef01d462ff9c7ecfe688760a44e89b6a",
      "parents": [
        "3dd2ee4824b668a635d6d2bb6bc73f33708cab9f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 25 14:01:36 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 25 18:14:10 2011 -0700"
      },
      "message": "add hlist_bl_lock/unlock helpers\n\nNow that the whole dcache_hash_bucket crap is gone, go all the way and\nalso remove the weird locking layering violations for locking the hash\nbuckets.  Add hlist_bl_lock/unlock helpers to move the locking into the\nlist abstraction instead of requiring each caller to open code it.\nAfter all allowing for the bit locks is the whole point of these helpers\nover the plain hlist variant.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c83ae9cad8776bab153a05cc466be39f14011091",
      "tree": "b8ae7e94b03e3e6d21df24ff41d466ea552b6ccb",
      "parents": [
        "4667a0ec32867865fd4deccf834594b3ea831baf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 14:18:38 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:01:58 2011 +0100"
      },
      "message": "GFS2: Add an AIL writeback tracepoint\n\nAdd a tracepoint for monitoring writeback of the AIL.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4667a0ec32867865fd4deccf834594b3ea831baf",
      "tree": "bff74fb13700e4087972fce94e45fd69dae7939b",
      "parents": [
        "f42ab0852946c1fb5103682c5897eb3da908e4b0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 14:18:09 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:01:37 2011 +0100"
      },
      "message": "GFS2: Make writeback more responsive to system conditions\n\nThis patch adds writeback_control to writing back the AIL\nlist. This means that we can then take advantage of the\ninformation we get in -\u003ewrite_inode() in order to set off\nsome pre-emptive writeback.\n\nIn addition, the AIL code is cleaned up a bit to make it\na bit simpler to understand.\n\nThere is still more which can usefully be done in this area,\nbut this is a good start at least.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f42ab0852946c1fb5103682c5897eb3da908e4b0",
      "tree": "3847b23d2cac6bab422e6e001e0c6d6c66a81f1e",
      "parents": [
        "627c10b7e471b5dcfb7101d6cc74d219619c9bc4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 14 16:50:31 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:01:17 2011 +0100"
      },
      "message": "GFS2: Optimise glock lru and end of life inodes\n\nThe GLF_LRU flag introduced in the previous patch can be\nused to check if a glock is on the lru list when a new\nholder is queued and if so remove it, without having first\nto get the lru_lock.\n\nThe main purpose of this patch however is to optimise the\nglocks left over when an inode at end of life is being\nevicted. Previously such glocks were left with the GLF_LFLUSH\nflag set, so that when reclaimed, each one required a log flush.\nThis patch resets the GLF_LFLUSH flag when there is nothing\nleft to flush thus preventing later log flushes as glocks are\nreused or demoted.\n\nIn order to do this, we need to keep track of the number of\nrevokes which are outstanding, and also to clear the GLF_LFLUSH\nbit after a log commit when only revokes have been processed.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "627c10b7e471b5dcfb7101d6cc74d219619c9bc4",
      "tree": "28b485c2ce46035da616c1a20f4ac92bae96427a",
      "parents": [
        "dba898b02defa66e5fe493d58ec0293a940f9c93"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 14 14:09:52 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:00:59 2011 +0100"
      },
      "message": "GFS2: Improve tracing support (adds two flags)\n\nThis adds support for two new flags. One keeps track of whether\nthe glock is on the LRU list or not. The other isn\u0027t really a\nflag as such, but an indication of whether the glock has an\nattached object or not. This indication is reported without\nany locking, which is ok since we do not dereference the object\npointer but merely report whether it is NULL or not.\n\nAlso, this fixes one place where a tracepoint was missing, which\nwas at the point we remove deallocated blocks from the journal.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dba898b02defa66e5fe493d58ec0293a940f9c93",
      "tree": "68ef0414a4c0ba677c23dbca6ecab957e9f11c35",
      "parents": [
        "efc1a9c2a70e4e49f4cf179a7ed8064b7a406e4a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Apr 14 09:54:02 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:00:41 2011 +0100"
      },
      "message": "GFS2: Clean up fsync()\n\nThis patch is designed to clean up GFS2\u0027s fsync\nimplementation and ensure that it really does get everything on\ndisk. Since -\u003ewrite_inode() has been updated, we can call that\nvia the vfs library function sync_inode_metadata() and the only\nremaining thing that has to be done is to ensure that we get\nany revoke records in the log after the inode has been written back.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "efc1a9c2a70e4e49f4cf179a7ed8064b7a406e4a",
      "tree": "2a80ecaa8759ff529c84fb4191dd035270f3dae9",
      "parents": [
        "29687a2ac8dfcd5363e515ea715ec226aef8c26b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 13 13:03:34 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 09:00:24 2011 +0100"
      },
      "message": "GFS2: Remove unused macro\n\nThe buffer_in_io() macro has been unused for some time,\nso remove it.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "29687a2ac8dfcd5363e515ea715ec226aef8c26b",
      "tree": "a9bb35c110396c9c2a563c9442690cfb3368c8a8",
      "parents": [
        "5ac048bb7ea6e87b06504b999017cfa1f38f4092"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 16:33:25 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:59:48 2011 +0100"
      },
      "message": "GFS2: Alter point of entry to glock lru list for glocks with an address_space\n\nRather than allowing the glocks to be scheduled for possible\nreclaim as soon as they have exited the journal, this patch\ndelays their entry to the list until the glocks in question\nare no longer in use.\n\nThis means that we will rely on the vm for writeback of all\ndirty data and metadata from now on. When glocks are added\nto the lru list they should be freeable much faster since all\nthe I/O required to free them should have already been completed.\n\nThis should lead to much better I/O patterns under low memory\nconditions.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5ac048bb7ea6e87b06504b999017cfa1f38f4092",
      "tree": "218a2dd0e6f6d39ead51bb32c10f801f6153c069",
      "parents": [
        "1027efaa238e1b65c07b6c2d9e270e548c2bdb07"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 16:25:51 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:59:25 2011 +0100"
      },
      "message": "GFS2: Use filemap_fdatawrite() to write back the AIL\n\nIn order to ensure that the mapping stats (and thus the bdi) are correctly\nupdated, this patch changes the AIL writeback to use the filemap_datawrite\nfunction. This helps prevent stalls in balance_dirty_pages() due to\nlarge amounts of dirty metadata when there is little or no dirty data\naround.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1027efaa238e1b65c07b6c2d9e270e548c2bdb07",
      "tree": "dc02c7a8ebeb2b7c52a09b0150019f6236ca3de9",
      "parents": [
        "556bb17998a37dabf7e9e96aa545bcea899be745"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 16:13:25 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:55:07 2011 +0100"
      },
      "message": "GFS2: Make -\u003ewrite_inode() really write\n\nThe GFS2 -\u003ewrite_inode function should be more aggressive at writing\nback to the filesystem. This adopts the XFS system of returning\n-EAGAIN when the writeback has not been completely done. Also, we\nnow kick off in-place writeback when called with WB_SYNC_NONE,\nbut we only wait for it and flush the log when WB_SYNC_ALL is\nrequested.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "556bb17998a37dabf7e9e96aa545bcea899be745",
      "tree": "737b2de46857df04a47989b320ad5841dba29588",
      "parents": [
        "ec038c826b5c3c163ad1673390f10e869020c28c"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 13:56:37 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:54:44 2011 +0100"
      },
      "message": "GFS2: move function foreach_leaf to gfs2_dir_exhash_dealloc\n\nThe previous patches made function gfs2_dir_exhash_dealloc do nothing\nbut call function foreach_leaf.  This patch simplifies the code by\nmoving the entire function foreach_leaf into gfs2_dir_exhash_dealloc.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ec038c826b5c3c163ad1673390f10e869020c28c",
      "tree": "11d97ed7a40033e1bf113e3ca7fa28e4f22bfe0d",
      "parents": [
        "d24a7a439a329b60f8e168c03e80566519e09be2"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 13:55:23 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:54:26 2011 +0100"
      },
      "message": "GFS2: pass leaf_bh into leaf_dealloc\n\nFunction foreach_leaf used to look up the leaf block address and get\na buffer_head.  Then it would call leaf_dealloc which did the same\nlookup.  This patch combines the two operations by making foreach_leaf\npass the leaf bh to leaf_dealloc.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d24a7a439a329b60f8e168c03e80566519e09be2",
      "tree": "a1e46fcf0cbe16e9338164da9442447a84872dc2",
      "parents": [
        "0d95326d9bd39f6eae80b91392b308c5fa8b1a0f"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 13:54:03 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:53:56 2011 +0100"
      },
      "message": "GFS2: Combine transaction from gfs2_dir_exhash_dealloc\n\nAt the end of function gfs2_dir_exhash_dealloc, it was setting the dinode\ntype to \"file\" to prevent directory corruption in case of a crash.\nIt was doing so in its own journal transaction.  This patch makes the\nchange occur when the last call is make to leaf_dealloc, since it needs\nto rewrite the directory dinode at that time anyway.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0d95326d9bd39f6eae80b91392b308c5fa8b1a0f",
      "tree": "fcb34235afd36e192823295567f08fa05311b190",
      "parents": [
        "95c8e17f2f00f6af7474fac0e4050a79db6c3cea"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 13:52:44 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:53:35 2011 +0100"
      },
      "message": "GFS2: remove *leaf_call_t and simplify leaf_dealloc\n\nSince foreach_leaf is only called with leaf_dealloc as its only possible\ncall function, we can simplify the code by making it call leaf_dealloc\ndirectly.  This simplifies the code and eliminates the need for\nleaf_call_t, the generic call method.  This is a first small step in\nsimplifying the directory leaf deallocation code.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "95c8e17f2f00f6af7474fac0e4050a79db6c3cea",
      "tree": "5e4ee14869e6e01625620e56c43c8baeaf7b552c",
      "parents": [
        "2f666bcf757cb72549f360ef6da02f03620a48b6"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Mar 22 10:49:12 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 20 08:53:12 2011 +0100"
      },
      "message": "GFS2: Dump better debug info if a bitmap inconsistency is detected\n\nOn rare occasions we encounter gfs2 problems where an\ninvalid bitmap state transition is attempted.  For example,\ntrying to \"unlink\" a free block.  In these cases, there\nis really no useful information logged to debug the problem.\nThis patch adds more debug details that should allow us to\nmore closely examine the problem and possibly solve it.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "44ad37d69b2cc421d5b5c7ad7fed16230685b092",
      "tree": "3632c63eef9e159947316f18d48054f082c0578e",
      "parents": [
        "001e8e8df4283dd4ef7a0297c012fce364c05cf1"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Mar 17 16:19:58 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:23:50 2011 +0100"
      },
      "message": "GFS2: filesystem hang caused by incorrect lock order\n\nThis patch fixes a deadlock in GFS2 where two processes are trying\nto reclaim an unlinked dinode:\nOne holds the inode glock and calls gfs2_lookup_by_inum trying to look\nup the inode, which it can\u0027t, due to I_FREEING.  The other has set\nI_FREEING from vfs and is at the beginning of gfs2_delete_inode\nwaiting for the glock, which is held by the first.  The solution is to\nadd a new non_block parameter to the gfs2_iget function that causes it\nto return -ENOENT if the inode is being freed.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "001e8e8df4283dd4ef7a0297c012fce364c05cf1",
      "tree": "28942d4cadc3da175a352c9804dad502d2bc4336",
      "parents": [
        "0ee532062fa7ff0795b3862c2d50efe32e552f9f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 30 14:17:51 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:23:12 2011 +0100"
      },
      "message": "GFS2: Don\u0027t try to deallocate unlinked inodes when mounted ro\n\nThis adds a couple of missing tests to avoid read-only nodes\nfrom attempting to deallocate unlinked inodes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-by: Michel Andre de la Porte \u003cmadelaporte@ubi.com\u003e\n"
    },
    {
      "commit": "0ee532062fa7ff0795b3862c2d50efe32e552f9f",
      "tree": "5d8319628ea6d9d5099b7ebd669204ed0070548b",
      "parents": [
        "deab72d3797e3d4340c7ddf968234b8c3d01d7a5"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Mar 17 21:54:46 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:22:52 2011 +0100"
      },
      "message": "GFS2: directly write blocks past i_size\n\nGFS2 was relying on the writepage code to write out the zeroed data for\nfallocate.  However, with FALLOC_FL_KEEP_SIZE set, this may be past i_size.\nIf it is, it will be ignored.  To work around this, gfs2 now calls\nwrite_dirty_buffer directly on the buffer_heads when FALLOC_FL_KEEP_SIZE\nis set, and it\u0027s writing past i_size.\n\nThis version is just a cleanup of my last version\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "deab72d3797e3d4340c7ddf968234b8c3d01d7a5",
      "tree": "f09c55adcff084fb1c616184169b1bbf55e7f7ac",
      "parents": [
        "a1b49cb7e2a7961ec3aa8b64860bf480d4ec9077"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Mar 16 16:32:39 2011 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Apr 18 15:22:35 2011 +0100"
      },
      "message": "GFS2: write_end error path fails to unlock transaction lock\n\nI did an audit of gfs2\u0027s transaction glock for bugzilla bug\n658619 and ran across this:\n\nIn function gfs2_write_end, in the unlikely event that\ngfs2_meta_inode_buffer returns an error, the code may forget\nto unlock the transaction lock because the \"failed\" label\nappears after the call to function gfs2_trans_end.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\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": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a44f99c7efdb88fa41128065c9a9445c19894e34",
      "tree": "9d9dc6026b2c0409eca05e360c98b8a688ccdb1e",
      "parents": [
        "b87a2d3e3147bd140da2eae584772c353d11421b",
        "22942c00a6ad6e9e93b53811a6de72c821c15d22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 20 18:14:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 20 18:14:55 2011 -0700"
      },
      "message": "Merge branch \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6\n\n* \u0027trivial\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: (25 commits)\n  video: change to new flag variable\n  scsi: change to new flag variable\n  rtc: change to new flag variable\n  rapidio: change to new flag variable\n  pps: change to new flag variable\n  net: change to new flag variable\n  misc: change to new flag variable\n  message: change to new flag variable\n  memstick: change to new flag variable\n  isdn: change to new flag variable\n  ieee802154: change to new flag variable\n  ide: change to new flag variable\n  hwmon: change to new flag variable\n  dma: change to new flag variable\n  char: change to new flag variable\n  fs: change to new flag variable\n  xtensa: change to new flag variable\n  um: change to new flag variables\n  s390: change to new flag variable\n  mips: change to new flag variable\n  ...\n\nFix up trivial conflict in drivers/hwmon/Makefile\n"
    },
    {
      "commit": "0ccd234ca04b09a156f8771af316ac9de2fa7312",
      "tree": "b4b990acd2bca0c755b630e7ffe4a7bf08cd4882",
      "parents": [
        "3996eabbab5597d27d5140e1d8f9e3f1145f8b40"
      ],
      "author": {
        "name": "matt mooney",
        "email": "mfm@muteddisk.com",
        "time": "Fri Jan 14 06:12:35 2011 -0800"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Thu Mar 17 14:02:57 2011 +0100"
      },
      "message": "fs: change to new flag variable\n\nReplace EXTRA_CFLAGS with ccflags-y. And change ntfs-objs to ntfs-y\nfor cleaner conditional inclusion.\n\nSigned-off-by: matt mooney \u003cmfm@muteddisk.com\u003e\nAcked-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\n"
    },
    {
      "commit": "0f6e0e8448a16d8d22119ce91d8dd24b44865b51",
      "tree": "7c295c02db035fc6a0b867465911a2bc9dc6b1ef",
      "parents": [
        "0d2ecee2bdb2a19d04bc5cefac0f86e790f1aad4",
        "a002951c97ff8da49938c982a4c236bf2fafdc9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 09:15:43 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (33 commits)\n  AppArmor: kill unused macros in lsm.c\n  AppArmor: cleanup generated files correctly\n  KEYS: Add an iovec version of KEYCTL_INSTANTIATE\n  KEYS: Add a new keyctl op to reject a key with a specified error code\n  KEYS: Add a key type op to permit the key description to be vetted\n  KEYS: Add an RCU payload dereference macro\n  AppArmor: Cleanup make file to remove cruft and make it easier to read\n  SELinux: implement the new sb_remount LSM hook\n  LSM: Pass -o remount options to the LSM\n  SELinux: Compute SID for the newly created socket\n  SELinux: Socket retains creator role and MLS attribute\n  SELinux: Auto-generate security_is_socket_class\n  TOMOYO: Fix memory leak upon file open.\n  Revert \"selinux: simplify ioctl checking\"\n  selinux: drop unused packet flow permissions\n  selinux: Fix packet forwarding checks on postrouting\n  selinux: Fix wrong checks for selinux_policycap_netpeer\n  selinux: Fix check for xfrm selinux context algorithm\n  ima: remove unnecessary call to ima_must_measure\n  IMA: remove IMA imbalance checking\n  ...\n"
    },
    {
      "commit": "3ae2a1ce2e7b70254e5c9e465adefac9cba191d6",
      "tree": "388da81c97a92861b84b408eb12a494d859cca7a",
      "parents": [
        "26a992dbc24e34cbdd03621d1c97ce571ad74e65",
        "7e32d02613a72a39ba01638337c609a9a866c653"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:58:43 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:58:43 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw:\n  GFS2: Don\u0027t use _raw version of RCU dereference\n  GFS2: Adding missing unlock_page()\n  GFS2: Update to AIL list locking\n  GFS2: introduce AIL lock\n  GFS2: fix block allocation check for fallocate\n  GFS2: Optimize glock multiple-dequeue code\n  GFS2: Remove potential race in flock code\n  GFS2: Fix glock deallocation race\n  GFS2: quota allows exceeding hard limit\n  GFS2: deallocation performance patch\n  GFS2: panics on quotacheck update\n  GFS2: Improve cluster mmap scalability\n  GFS2: Fix glock queue trace point\n  GFS2: Post-VFS scale update for RCU path walk\n  GFS2: Use RCU for glock hash table\n"
    },
    {
      "commit": "a002951c97ff8da49938c982a4c236bf2fafdc9f",
      "tree": "d43e7885ea7376df0a47a0fc8ceca66dc5bfa357",
      "parents": [
        "521cb40b0c44418a4fd36dc633f575813d59a43d",
        "c151694b2c48d956ac8c8c59c6927f89cc29ef70"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 16 09:41:17 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Mar 16 09:41:17 2011 +1100"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "7e32d02613a72a39ba01638337c609a9a866c653",
      "tree": "b45f3c19b4054d1790b6f5b81b8b416cde41992e",
      "parents": [
        "6c474f7bc1ef70bc05ce486e7e7e524124122de8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 15 08:32:14 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Mar 15 08:58:17 2011 +0000"
      },
      "message": "GFS2: Don\u0027t use _raw version of RCU dereference\n\nAs per RCU glock patch review comments, don\u0027t use the _raw\nversion of this function here.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "6c474f7bc1ef70bc05ce486e7e7e524124122de8",
      "tree": "c052a112e8719fdc8e72cf857be3ceaf183a6ac5",
      "parents": [
        "c618e87a5fd02aaad006c12d5a80a231dfa39250"
      ],
      "author": {
        "name": "Maxim",
        "email": "maxim.patlasov@gmail.com",
        "time": "Mon Mar 14 13:19:21 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 14 13:19:21 2011 +0000"
      },
      "message": "GFS2: Adding missing unlock_page()\n\ngfs2_write_begin() calls grab_cache_page_write_begin() that returns *locked*\npage. Correspondent error-handling path lacks for unlock_page() call:\n\n\u003e out:\n\u003e \tif (error \u003d\u003d 0)\n\u003e \t\treturn 0;\n\u003e\n\u003e \tpage_cache_release(page);\n\nThe whole system hangs if gfs2_unstuff_dinode() called from gfs2_write_begin()\nfailed for some reason.\n\nReported-by: Maxim \u003cmaxim.patlasov@gmail.com\u003e\nSigned-off-by: Maxim \u003cmaxim.patlasov@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5fe0c2378884e68beb532f5890cc0e3539ac747b",
      "tree": "be25414052184e146049ea6466854366559d5528",
      "parents": [
        "c8b91accfa1059d5565443193d89572eca2f5dd6"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:25 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 14 09:15:28 2011 -0400"
      },
      "message": "exportfs: Return the minimum required handle size\n\nThe exportfs encode handle function should return the minimum required\nhandle size. This helps user to find out the handle size by passing 0\nhandle size in the first step and then redoing to the call again with\nthe returned handle size value.\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c618e87a5fd02aaad006c12d5a80a231dfa39250",
      "tree": "3f8f1f39fb6dedf3cb72fbd71377cc0eecafc7ce",
      "parents": [
        "d6a079e82efd5fcbb1c7295f22e123c2cc748018"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 14 12:40:29 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 14 12:40:29 2011 +0000"
      },
      "message": "GFS2: Update to AIL list locking\n\nThe previous patch missed a couple of places where the AIL list\nneeded locking, so this fixes up those places, plus a comment\nis corrected too.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Chinner \u003cdchinner@redhat.com\u003e\n"
    },
    {
      "commit": "d6a079e82efd5fcbb1c7295f22e123c2cc748018",
      "tree": "f95f3369dfb560bfc5d282577ca1edec0487e1d7",
      "parents": [
        "e4a7b7b0c98efcdcc4c1f6eb10925dec1fbc4016"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Mar 11 11:52:25 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 11 11:52:25 2011 +0000"
      },
      "message": "GFS2: introduce AIL lock\n\nThe log lock is currently used to protect the AIL lists and\nthe movements of buffers into and out of them. The lists\nare self contained and no log specific items outside the\nlists are accessed when starting or emptying the AIL lists.\n\nHence the operation of the AIL does not require the protection\nof the log lock so split them out into a new AIL specific lock\nto reduce the amount of traffic on the log lock. This will\nalso reduce the amount of serialisation that occurs when\nthe gfs2_logd pushes on the AIL to move it forward.\n\nThis reduces the impact of log pushing on sequential write\nthroughput.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e4a7b7b0c98efcdcc4c1f6eb10925dec1fbc4016",
      "tree": "72b28371e1e0397a1fb39c103d2062593e3a3a24",
      "parents": [
        "fa1bbdea300a15ec7c1186a5e53de33a5b1672f5"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Mar 11 00:49:09 2011 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 11 09:26:48 2011 +0000"
      },
      "message": "GFS2: fix block allocation check for fallocate\n\nGFS2 fallocate wasn\u0027t properly checking if a blocks were already allocated.\nIn write_empty_blocks(), if a page didn\u0027t have buffer_heads attached, GFS2\nwas always treating it as if there were no blocks allocated for that page.\nGFS2 now calls gfs2_block_map() to check if the blocks are allocated before\nwriting them out.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "fa1bbdea300a15ec7c1186a5e53de33a5b1672f5",
      "tree": "7b10ada8427c40494bd752817f5ad9dc7f7db35d",
      "parents": [
        "0a33443b38746f35fc4acc8a5af6c7099e03ea40"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Mar 10 11:41:57 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Mar 11 09:24:54 2011 +0000"
      },
      "message": "GFS2: Optimize glock multiple-dequeue code\n\nThis is a small patch that optimizes multiple glock dequeue\noperations.  It changes the unlock order to be more efficient\nand makes it easier for lock debugging tools to unravel.  It\nalso eliminates the need for the temp variable x, although\nthat would likely be optimized out.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "53fe924161ff18d24c5c1c256549e9c1b9874827",
      "tree": "4447ddc370f8138952146e54c515675cc026a2ee",
      "parents": [
        "529c5f958f9e60abaa7407986034b17d17536bf2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:48 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 10 03:44:48 2011 -0500"
      },
      "message": "gfs2: fix d_revalidate oopsen on NFS exports\n\ncan\u0027t blindly check nd-\u003eflags in -\u003ed_revalidate()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "721a9602e6607417c6bc15b18e97a2f35266c690",
      "tree": "4987991e43f35b8b3b685fea0040c5265b578996",
      "parents": [
        "cf15900e1209d5b46ec2d24643adbf561830935f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Mar 09 11:56:30 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:27 2011 +0100"
      },
      "message": "block: kill off REQ_UNPLUG\n\nWith the plugging now being explicitly controlled by the\nsubmitter, callers need not pass down unplugging hints\nto the block layer. If they want to unplug, it\u0027s because they\nmanually plugged on their own - in which case, they should just\nunplug at will.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0a33443b38746f35fc4acc8a5af6c7099e03ea40",
      "tree": "523d8bec4c49a3b04b46fe275e1c4ef3f18fba7a",
      "parents": [
        "fc0e38dae645f65424d1fb5d2a938aab8ce48a58"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 11:14:32 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 11:14:32 2011 +0000"
      },
      "message": "GFS2: Remove potential race in flock code\n\nThis patch ensures that we always wait for glock demotion when\ndropping flocks on a file in order to prevent any race\nconditions associated with further flock calls or closing\nthe file.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "fc0e38dae645f65424d1fb5d2a938aab8ce48a58",
      "tree": "8b0a89a0de01a0504a002a184a290a53545fce82",
      "parents": [
        "662e3a551b468c7338f5291d7a00389fe85885e2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 10:58:04 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 10:58:04 2011 +0000"
      },
      "message": "GFS2: Fix glock deallocation race\n\nThis patch fixes a race in deallocating glocks which was introduced\nin the RCU glock patch. We need to ensure that the glock count is\nkept correct even in the case that there is a race to add a new\nglock into the hash table. Also, to avoid having to wait for an\nRCU grace period, the glock counter can be decremented before\ncall_rcu() is called.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "662e3a551b468c7338f5291d7a00389fe85885e2",
      "tree": "4e4939e0c1f1f5ce66541982476e68f24f83221b",
      "parents": [
        "4c16c36ad62fff8485215bd803d778eb2bd0b8bd"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Tue Mar 08 10:40:42 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 09 09:32:44 2011 +0000"
      },
      "message": "GFS2: quota allows exceeding hard limit\n\nImmediately after being synced to disk, cached quotas are zeroed out and a\nsubsequent access of the cached quotas results in incorrect zero values. This\nmeant that gfs2 assumed the actual usage to be the zero (or near-zero) usage\nvalues it found in the cached quotas and comparison against warn/limits never\ntriggered a quota violation.\n\nThis patch adds a new flag QDF_REFRESH that is set after a sync so that the\ncached quotas are forcefully refreshed from disk on a subsequent access on\nseeing this flag set.\n\nResolves: rhbz#675944\nSigned-off-by: Abhi Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "fe3fa43039d47ee4e22caf460b79b62a14937f79",
      "tree": "9eab8d00f1227b9fe0959f32a62d892ed35803ba",
      "parents": [
        "ee009e4a0d4555ed522a631bae9896399674f064",
        "026eb167ae77244458fa4b4b9fc171209c079ba7"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 08 11:38:10 2011 +1100"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.infradead.org/users/eparis/selinux into next\n"
    },
    {
      "commit": "4c16c36ad62fff8485215bd803d778eb2bd0b8bd",
      "tree": "2cbe195639b291397060f5639abb21bcef82bc61",
      "parents": [
        "e79a46a0302a6bf8f879da43c00373b6ed1081ea"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Feb 23 16:11:33 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Feb 24 12:13:48 2011 +0000"
      },
      "message": "GFS2: deallocation performance patch\n\nThis patch is a performance improvement to GFS2\u0027s dealloc code.\nRather than update the quota file and statfs file for every\nsingle block that\u0027s stripped off in unlink function do_strip,\nthis patch keeps track and updates them once for every layer\nthat\u0027s stripped.  This is done entirely inside the existing\ntransaction, so there should be no risk of corruption.\nThe other functions that deallocate blocks will be unaffected\nbecause they are using wrapper functions that do the same\nthing that they do today.\n\nI tested this code on my roth cluster by creating 200\nfiles in a directory, each of which is 100MB, then on\nfour nodes, I simultaneously deleted the files, thus competing\nfor GFS2 resources (but different files).  The commands\nI used were:\n\n[root@roth-01]# time for i in `seq 1 4 200` ; do rm /mnt/gfs2/bigdir/gfs2.$i; done\n[root@roth-02]# time for i in `seq 2 4 200` ; do rm /mnt/gfs2/bigdir/gfs2.$i; done\n[root@roth-03]# time for i in `seq 3 4 200` ; do rm /mnt/gfs2/bigdir/gfs2.$i; done\n[root@roth-05]# time for i in `seq 4 4 200` ; do rm /mnt/gfs2/bigdir/gfs2.$i; done\n\nThe performance increase was significant:\n\n             roth-01     roth-02     roth-03     roth-05\n             ---------   ---------   ---------   ---------\nold: real    0m34.027    0m25.021s   0m23.906s   0m35.646s\nnew: real    0m22.379s   0m24.362s   0m24.133s   0m18.562s\n\nTotal time spent deleting:\nold: 118.6s\nnew:  89.4\n\nFor this particular case, this showed a 25% performance increase for\nGFS2 unlinks.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "2aa15890f3c191326678f1bd68af61ec6b8753ec",
      "tree": "347f5fdcd0678b12be92f266cd2a5e7a74749403",
      "parents": [
        "78794b2cdeac37ac1fd950fc9c4454b56d88ac03"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 23 13:49:47 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 23 19:52:52 2011 -0800"
      },
      "message": "mm: prevent concurrent unmap_mapping_range() on the same inode\n\nMichael Leun reported that running parallel opens on a fuse filesystem\ncan trigger a \"kernel BUG at mm/truncate.c:475\"\n\nGurudas Pai reported the same bug on NFS.\n\nThe reason is, unmap_mapping_range() is not prepared for more than\none concurrent invocation per inode.  For example:\n\n  thread1: going through a big range, stops in the middle of a vma and\n     stores the restart address in vm_truncate_count.\n\n  thread2: comes in with a small (e.g. single page) unmap request on\n     the same vma, somewhere before restart_address, finds that the\n     vma was already unmapped up to the restart address and happily\n     returns without doing anything.\n\nAnother scenario would be two big unmap requests, both having to\nrestart the unmapping and each one setting vm_truncate_count to its\nown value.  This could go on forever without any of them being able to\nfinish.\n\nTruncate and hole punching already serialize with i_mutex.  Other\ncallers of unmap_mapping_range() do not, and it\u0027s difficult to get\ni_mutex protection for all callers.  In particular -\u003ed_revalidate(),\nwhich calls invalidate_inode_pages2_range() in fuse, may be called\nwith or without i_mutex.\n\nThis patch adds a new mutex to \u0027struct address_space\u0027 to prevent\nrunning multiple concurrent unmap_mapping_range() on the same mapping.\n\n[ We\u0027ll hopefully get rid of all this with the upcoming mm\n  preemptibility series by Peter Zijlstra, the \"mm: Remove i_mmap_mutex\n  lockbreak\" patch in particular.  But that is for 2.6.39 ]\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nReported-by: Michael Leun \u003clkml20101129@newton.leun.net\u003e\nReported-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nTested-by: Gurudas Pai \u003cgurudas.pai@oracle.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58a69cb47ec6991bf006a3e5d202e8571b0327a4",
      "tree": "56abdf817649c352f70bff3263f9351ed6c42062",
      "parents": [
        "7576958a9d5a4a677ad7dd40901cdbb6c1110c98"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 09:25:31 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 16 17:48:59 2011 +0100"
      },
      "message": "workqueue, freezer: unify spelling of \u0027freeze\u0027 + \u0027able\u0027 to \u0027freezable\u0027\n\nThere are two spellings in use for \u0027freeze\u0027 + \u0027able\u0027 - \u0027freezable\u0027 and\n\u0027freezeable\u0027.  The former is the more prominent one.  The latter is\nmostly used by workqueue and in a few other odd places.  Unify the\nspelling to \u0027freezable\u0027.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e79a46a0302a6bf8f879da43c00373b6ed1081ea",
      "tree": "a9061e1a3f1c9e8616ed08f5cff95321b6dc1b8c",
      "parents": [
        "b9c93bb7deadc7cdd00415edc6b38d67a26c1c7a"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Mon Feb 07 11:22:41 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 07 20:00:44 2011 +0000"
      },
      "message": "GFS2: panics on quotacheck update\n\nHandle block allocation for forceful unstuffing of quota dinode during quota\nupdate using quotactl(). Also fix block reservation for special cases when\nquotas cross over block boundaries and update 2 blocks instead of 1.\n\nSigned-off-by: Abhi Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "b9c93bb7deadc7cdd00415edc6b38d67a26c1c7a",
      "tree": "b490fba351eefdb9ef4feeb9925fae75045fac51",
      "parents": [
        "edae38a6431276c50d4b51543c36de258722358e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 02 14:48:10 2011 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 02 14:48:10 2011 +0000"
      },
      "message": "GFS2: Improve cluster mmap scalability\n\nThe mmap system call grabs a glock when an update to atime maybe\nrequired. It does this in order to ensure that the flags on the\ninode are uptodate, but since it will only mark atime for a future\nupdate, an exclusive lock is not required here (one will be taken\nlater when the actual update is performed).\n\nAlso, the lock can be skipped when the mount is marked noatime in\naddition to the original check which only looked at the noatime\nflag for the inode itself.\n\nThis should increase the scalability of the mmap call when multiple\nnodes are all mmaping the same file.\n\nReported-by: Scooter Morris \u003cscooter@cgl.ucsf.edu\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2a7dba391e5628ad665ce84ef9a6648da541ebab",
      "tree": "ba0722bd74d2c883dbda7ff721850bab411cac04",
      "parents": [
        "821404434f3324bf23f545050ff64055a149766e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Feb 01 11:05:39 2011 -0500"
      },
      "committer": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Feb 01 11:12:29 2011 -0500"
      },
      "message": "fs/vfs/security: pass last path component to LSM on inode creation\n\nSELinux would like to implement a new labeling behavior of newly created\ninodes.  We currently label new inodes based on the parent and the creating\nprocess.  This new behavior would also take into account the name of the\nnew object when deciding the new label.  This is not the (supposed) full path,\njust the last component of the path.\n\nThis is very useful because creating /etc/shadow is different than creating\n/etc/passwd but the kernel hooks are unable to differentiate these\noperations.  We currently require that userspace realize it is doing some\ndifficult operation like that and than userspace jumps through SELinux hoops\nto get things set up correctly.  This patch does not implement new\nbehavior, that is obviously contained in a seperate SELinux patch, but it\ndoes pass the needed name down to the correct LSM hook.  If no such name\nexists it is fine to pass NULL.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    }
  ],
  "next": "edae38a6431276c50d4b51543c36de258722358e"
}
