)]}'
{
  "log": [
    {
      "commit": "847c9db5cb50841589b8ebd3da0769b1b02fb3b2",
      "tree": "58d303a0306ed61114032b6d40085b17e13aaa0c",
      "parents": [
        "fcf83067bf6eb101a35620d752bd559d473cfbaa"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 12 21:00:05 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Feb 13 20:45:39 2012 -0500"
      },
      "message": "ocfs2: deal with wraparounds of i_nlink in ocfs2_rename()\n\nunfortunately, nlink_t may be smaller than 32 bits and -\u003ei_nlink\non ocfs2 can grow up to 0xffffffff; storing it in nlink_t variable\nwill lose upper bits on such architectures.  Needs to be made u32,\nuntil we get kernel-side nlink_t uniformly 32bit...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "49d41bae46f15da528ef9848fd7c9d38582aa8e9",
      "tree": "76907a9a5066642a32cb238ef8d8367fc612d064",
      "parents": [
        "7b3480f8b701170c046e1ed362946f5f0d005e13",
        "60f98d1839376d30e13f3e452dce2433fad3060e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:55:55 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: add recovery callbacks\n  dlm: add node slots and generation\n  dlm: move recovery barrier calls\n  dlm: convert rsb list to rb_tree\n"
    },
    {
      "commit": "98793265b429a3f0b3f1750e74d67cd4d740d162",
      "tree": "b0bd717673f0c21845cf053f3fb6b75d42530af5",
      "parents": [
        "b4a133da2eaccb844a7beaef16ffd9c76a0d21d3",
        "bd1b2a555952d959f47169056fca05acf7eff81f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)\n  Kconfig: acpi: Fix typo in comment.\n  misc latin1 to utf8 conversions\n  devres: Fix a typo in devm_kfree comment\n  btrfs: free-space-cache.c: remove extra semicolon.\n  fat: Spelling s/obsolate/obsolete/g\n  SCSI, pmcraid: Fix spelling error in a pmcraid_err() call\n  tools/power turbostat: update fields in manpage\n  mac80211: drop spelling fix\n  types.h: fix comment spelling for \u0027architectures\u0027\n  typo fixes: aera -\u003e area, exntension -\u003e extension\n  devices.txt: Fix typo of \u0027VMware\u0027.\n  sis900: Fix enum typo \u0027sis900_rx_bufer_status\u0027\n  decompress_bunzip2: remove invalid vi modeline\n  treewide: Fix comment and string typo \u0027bufer\u0027\n  hyper-v: Update MAINTAINERS\n  treewide: Fix typos in various parts of the kernel, and fix some comments.\n  clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n  gpio: Kconfig: drop unknown symbol \u0027CS5535_GPIO\u0027\n  leds: Kconfig: Fix typo \u0027D2NET_V2\u0027\n  sound: Kconfig: drop unknown symbol ARCH_CLPS7500\n  ...\n\nFix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new\nkconfig additions, close to removed commented-out old ones)\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "60f98d1839376d30e13f3e452dce2433fad3060e",
      "tree": "b8b43859ad26519bd75a40920f6d1ca46f2d44a5",
      "parents": [
        "757a42719635495779462514458bbfbf12a37dac"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Nov 02 14:30:58 2011 -0500"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Wed Jan 04 08:56:31 2012 -0600"
      },
      "message": "dlm: add recovery callbacks\n\nThese new callbacks notify the dlm user about lock recovery.\nGFS2, and possibly others, need to be aware of when the dlm\nwill be doing lock recovery for a failed lockspace member.\n\nIn the past, this coordination has been done between dlm and\nfile system daemons in userspace, which then direct their\nkernel counterparts.  These callbacks allow the same\ncoordination directly, and more simply.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "67697cbdccb8b63eae892a9437bcc79d08b79578",
      "tree": "6c14fa996532e314de662f36d9ef5e1410f7ffde",
      "parents": [
        "2b15ad068418a91687c2d5819c6c03c227d391f2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 02:55:32 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:02 2012 -0500"
      },
      "message": "ocfs2: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2b15ad068418a91687c2d5819c6c03c227d391f2",
      "tree": "1a9c5a6ec12d9aa2244b4c2c052a6954ddc45b92",
      "parents": [
        "3eda0de677b5756be09a76ac0399e1a3db00f0e0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 13:43:19 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:01 2012 -0500"
      },
      "message": "dlmfs: use inode_init_owner()\n\ndon\u0027t open-code it...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f4ae40a6a50a98ac23d4b285f739455e926a473e",
      "tree": "c84d7393700bd85e5285a194f8c22d4d00e36b28",
      "parents": [
        "48176a973d65572e61d0ce95495e5072887e6fb6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 04:33:43 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:56 2012 -0500"
      },
      "message": "switch debugfs to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a79f17e4a641a2f463cb512cb0ec349844a147b",
      "tree": "8801127310d0a3492941bb284e83393844a19685",
      "parents": [
        "8c9379e972e984d11c2b99121847ba9fa7a0c56c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 08:06:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: mnt_drop_write_file()\n\nnew helper (wrapper around mnt_drop_write()) to be used in pair with\nmnt_want_write_file().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a561be7100cd610bd2e082f3211c1dfb45835817",
      "tree": "a1016a11df967be6f289a4e8ae29597ba39df17e",
      "parents": [
        "f47ec3f28354795f000c14bf18ed967ec81a3ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 11:57:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "switch a bunch of places to mnt_want_write_file()\n\nit\u0027s both faster (in case when file has been opened for write) and cleaner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "42b2aa86c6670347a2a07e6d7af0e0ecc8fdbff9",
      "tree": "6f8fb2a1efb3e84bf281658befe06dc6a7fb026b",
      "parents": [
        "a13b032776379fa6e2bfccf798969ca51e5fb052"
      ],
      "author": {
        "name": "Justin P. Mattock",
        "email": "justinmattock@gmail.com",
        "time": "Mon Nov 28 20:31:00 2011 -0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 02 14:57:31 2011 +0100"
      },
      "message": "treewide: Fix typos in various parts of the kernel, and fix some comments.\n\nThe below patch fixes some typos in various parts of the kernel, as well as fixes some comments.\nPlease let me know if I missed anything, and I will try to get it changed and resent.\n\nSigned-off-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0a4ebed781dbb9ecbfef2374d29da1ab3b1a63f3",
      "tree": "ab171047c0b1bab2d423e85106f84fdf7b52ac7d",
      "parents": [
        "3b120ab76225592e9c267086fa4dfa3ce5a075fe",
        "939255798a468e1a92f03546de6e87be7b491e57"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 01 14:55:34 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 01 14:55:34 2011 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (31 commits)\n  ocfs2: avoid unaligned access to dqc_bitmap\n  ocfs2: Use filemap_write_and_wait() instead of write_inode_now()\n  ocfs2: honor O_(D)SYNC flag in fallocate\n  ocfs2: Add a missing journal credit in ocfs2_link_credits() -v2\n  ocfs2: send correct UUID to cleancache initialization\n  ocfs2: Commit transactions in error cases -v2\n  ocfs2: make direntry invalid when deleting it\n  fs/ocfs2/dlm/dlmlock.c: free kmem_cache_zalloc\u0027d data using kmem_cache_free\n  ocfs2: Avoid livelock in ocfs2_readpage()\n  ocfs2: serialize unaligned aio\n  ocfs2: Implement llseek()\n  ocfs2: Fix ocfs2_page_mkwrite()\n  ocfs2: Add comment about orphan scanning\n  ocfs2: Clean up messages in the fs\n  ocfs2/cluster: Cluster up now includes network connections too\n  ocfs2/cluster: Add new function o2net_fill_node_map()\n  ocfs2/cluster: Fix output in file elapsed_time_in_ms\n  ocfs2/dlm: dlmlock_remote() needs to account for remastery\n  ocfs2/dlm: Take inflight reference count for remotely mastered resources too\n  ocfs2/dlm: Cleanup dlm_wait_for_node_death() and dlm_wait_for_node_recovery()\n  ...\n"
    },
    {
      "commit": "939255798a468e1a92f03546de6e87be7b491e57",
      "tree": "4ba0db743223eea3dea3405b3532d98716dcf250",
      "parents": [
        "249ec93c01db8898058899a80ffb537c8d27f86f"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Nov 15 14:56:34 2011 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Dec 01 14:39:32 2011 -0800"
      },
      "message": "ocfs2: avoid unaligned access to dqc_bitmap\n\nThe dqc_bitmap field of struct ocfs2_local_disk_chunk is 32-bit aligned,\nbut not 64-bit aligned.  The dqc_bitmap is accessed by ocfs2_set_bit(),\nocfs2_clear_bit(), ocfs2_test_bit(), or ocfs2_find_next_zero_bit().  These\nare wrapper macros for ext2_*_bit() which need to take an unsigned long\naligned address (though some architectures are able to handle unaligned\naddress correctly)\n\nSo some 64bit architectures may not be able to access the dqc_bitmap\ncorrectly.\n\nThis avoids such unaligned access by using another wrapper functions for\next2_*_bit().  The code is taken from fs/ext4/mballoc.c which also need to\nhandle unaligned bitmap access.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "249ec93c01db8898058899a80ffb537c8d27f86f",
      "tree": "381c22ba9726ac884aa1267b91736fff3836c766",
      "parents": [
        "df295d4a4b3c98af1a2445a82aef169e7e5d96b8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Nov 08 00:20:39 2011 +0100"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 02:18:57 2011 -0800"
      },
      "message": "ocfs2: Use filemap_write_and_wait() instead of write_inode_now()\n\nSince ocfs2 has no -\u003ewrite_inode method, there\u0027s no point in calling\nwrite_inode_now() from ocfs2_cleanup_delete_inode().  Use\nfilemap_write_and_wait() instead. This helps us to cleanup inode writing\ninterfaces...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "df295d4a4b3c98af1a2445a82aef169e7e5d96b8",
      "tree": "e262858cac79bdffe8e139aa5d445e0b4bb9b8a0",
      "parents": [
        "0393afea31874947b1d149b82d17b7dccac4f210"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.de",
        "time": "Wed Nov 16 12:03:10 2011 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 02:15:58 2011 -0800"
      },
      "message": "ocfs2: honor O_(D)SYNC flag in fallocate\n\nWe need to sync the transaction which updates i_size if the file is marked\nas needing sync semantics.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.de\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "0393afea31874947b1d149b82d17b7dccac4f210",
      "tree": "f9eb50279c4a122d9483be097d41e7a4d8f20905",
      "parents": [
        "e41d33af7c037a6f7350f8410b45ce83b50d1b80"
      ],
      "author": {
        "name": "Xiaowei.Hu",
        "email": "xiaowei.hu@oracle.com",
        "time": "Wed Oct 19 09:34:19 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:48 2011 -0800"
      },
      "message": "ocfs2: Add a missing journal credit in ocfs2_link_credits() -v2\n\nWith indexed_dir enabled, ocfs2 maintains a list of dirblocks having\nspace.\n\nThe credit calculation in ocfs2_link_credits() did not correctly account\nfor adding an entry that exactly fills a dirblock that triggers removing\nthat dirblock by changing the pointer in the previous block in the list.\nThe credit calculation did not account for that previous block.\n\nTo expose, do:\n\nmkfs.ocfs2 -b 512 -M local /dev/sdX\nmount /dev/sdX /ocfs2\nmkdir /ocfs2/linkdir\ntouch /ocfs2/linkdir/file1\nfor i in `seq 1 29` ; do link /ocfs2/linkdir/file1\n/ocfs2/linkdir/linklinklinklinklinklink$i; done\nrm -f /ocfs2/linkdir/linklinklinklinklinklink10\nsleep 8\nlink /ocfs2/linkdir/file1\n/ocfs2/linkdir/linklinklinklinklinklinkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n\nNote:\nThe link names have been crafted for a 512 byte blocksize. Reproducing\nwith a larger blocksize will require longer (or more) links. The sleep\nis important. We want jbd2 to commit the transaction so that the missing\nblock does not piggy back on account of the previous transaction.\n\nSigned-off-by: XiaoweiHu \u003cxiaowei.hu at oracle.com\u003e\nReviewed-by: WengangWang \u003cwen.gang.wang at oracle.com\u003e\nReviewed-by: Sunil.Mushran \u003csunil.mushran at oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "e41d33af7c037a6f7350f8410b45ce83b50d1b80",
      "tree": "bbf08c4e9321dd17265f3aa65b96bbf441d23f8f",
      "parents": [
        "b8a0ae579fb8d9b21008ac386be08b9428902455"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Mon Oct 17 16:47:17 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:48 2011 -0800"
      },
      "message": "ocfs2: send correct UUID to cleancache initialization\n\nocfs2: Fix cleancache initialization call to correctly pass uuid\n\nAs reported by Steven Whitehouse in https://lkml.org/lkml/2011/5/27/221\nthe ocfs2 volume UUID is incorrectly passed to cleancache.\nAs a result, shared-ephemeral tmem pools will not actually\nbe created; instead they will be private (unshared) which\nmisses out on a major benefit of tmem.\n\nReported-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "b8a0ae579fb8d9b21008ac386be08b9428902455",
      "tree": "cab8d712ee687c26bd2e1ce8ba7b069be4a7e92a",
      "parents": [
        "8298524803339a9a8df053ebdfebc2975ec55be9"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Wed Oct 12 15:22:15 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:47 2011 -0800"
      },
      "message": "ocfs2: Commit transactions in error cases -v2\n\nThere are three cases found that in error cases, journal transactions are not\ncommitted nor aborted. We should take care of these case by committing the\ntransactions. Otherwise, there would left a journal handle which will lead to\n, in same process context, the comming ocfs2_start_trans() gets wrong credits.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "8298524803339a9a8df053ebdfebc2975ec55be9",
      "tree": "2bea3c08eac9239ea596707fadfefed7f1bab2d7",
      "parents": [
        "fc9f899483435935c1cd7005df29681929d1c99b"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Tue Jul 12 16:43:14 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:46 2011 -0800"
      },
      "message": "ocfs2: make direntry invalid when deleting it\n\nWhen we deleting a direntry from a directory, if it\u0027s the first in a block we\ninvalid it by setting inode to 0; otherwise, we merge the deleted one to the\nprior and contiguous direntry. And we don\u0027t truncate directories.\n\nThere is a problem for the later case since inode is not set to 0.\nThis problem happens when the caller passes a file position as parameter to\nocfs2_dir_foreach_blk(). If the position happens to point to a stale(not\nthe first, deleted in betweens of ocfs2_dir_foreach_blk()s) direntry, we are\nnot able to recognize its staleness. So that we treat it as a live one wrongly.\n\nThe fix is to set inode to 0 in both cases indicating the direntry is stale.\nThis won\u0027t introduce additional IOs.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "fc9f899483435935c1cd7005df29681929d1c99b",
      "tree": "c7ad164cfcfc16e5fb155e0ea3d3039eb47f0def",
      "parents": [
        "99b1bb61b225c3eb4d3b196d4f1d041695b19a7e"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Sat Jul 09 18:04:39 2011 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:46 2011 -0800"
      },
      "message": "fs/ocfs2/dlm/dlmlock.c: free kmem_cache_zalloc\u0027d data using kmem_cache_free\n\nMemory allocated using kmem_cache_zalloc should be freed using\nkmem_cache_free, not kfree.\n\nThe semantic patch that fixes this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression x,e,e1,e2;\n@@\n\nx \u003d kmem_cache_zalloc(e1,e2)\n... when !\u003d x \u003d e\n?-kfree(x)\n+kmem_cache_free(e1,x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6d6b77f163c7eabedbba00ed2abb7d4a570bff76",
      "tree": "6ce074a7dd5a25fae28ef9de6f59ddee08ea4e61",
      "parents": [
        "dd2a981f46a0903a8770a784f213d4d40bbb6f19"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:28 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add missing nlink wrappers\n\nReplace direct i_nlink updates with the respective updater function\n(inc_nlink, drop_nlink, clear_nlink, inode_dec_link_count).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "a7732b05f775a5575baac34c03bb0e8d16950edf",
      "tree": "9b0311f5004a98afbb46a65a57a665b13e613e23",
      "parents": [
        "c818b682c955aa4d13212512deb529cb8bd1348b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:26 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:42 2011 +0100"
      },
      "message": "ocfs2: remove unnecessary nlink setting\n\nalloc_inode() initializes i_nlink to 1.  Remove unnecessary\nre-initialization.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: Joel Becker \u003cjlbec@evilplan.org\u003e\nCC: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "b9075fa968a0a4347aef35e235e2995c0e57dddd",
      "tree": "cf9f9716784e790d8a43339653256d9cf9178ff3",
      "parents": [
        "ae29bc92da01a2e9d278a9a58c3b307d41cc0254"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:11:33 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:54 2011 -0700"
      },
      "message": "treewide: use __printf not __attribute__((format(printf,...)))\n\nStandardize the style for compiler based printf format verification.\nStandardized the location of __printf too.\n\nDone via script and a little typing.\n\n$ grep -rPl --include\u003d*.[ch] -w \"__attribute__\" * | \\\n  grep -vP \"^(tools|scripts|include/linux/compiler-gcc.h)\" | \\\n  xargs perl -n -i -e \u0027local $/; while (\u003c\u003e) { s/\\b__attribute__\\s*\\(\\s*\\(\\s*format\\s*\\(\\s*printf\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)\\s*\\)\\s*\\)/__printf($1, $2)/g ; print; }\u0027\n\n[akpm@linux-foundation.org: revert arch bits]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "afeacc8c1f38b7bb93d4bc7b4ba04c2605061ef0",
      "tree": "e6eb248db3f932808ff2495a094e728d7d7f61e1",
      "parents": [
        "79bb1ee46ad1b76069108ca9b5467a3c14574744"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:31 2011 -0400"
      },
      "message": "fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros\n\nThese files were getting \u003clinux/module.h\u003e via an implicit include\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "99b1bb61b225c3eb4d3b196d4f1d041695b19a7e",
      "tree": "06cabdc34538f3b38a39e3b802ecc1a2ab2aae00",
      "parents": [
        "c7e25e6e0b0486492c5faaf6312b37413642c48e",
        "93862d5e1ab875664c6cc95254fc365028a48bb1"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Sun Aug 21 21:02:57 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Sun Aug 21 21:02:57 2011 -0700"
      },
      "message": "Merge branch \u0027mw-3.1-jul25\u0027 of git://oss.oracle.com/git/smushran/linux-2.6 into ocfs2-fixes\n"
    },
    {
      "commit": "5a2f3a02aea164f4f59c0c3497772090a411b462",
      "tree": "d3ebe03d4f97575290087843960baa01de3acd0a",
      "parents": [
        "1d568ab068c021672d6cd7f50f92a3695a921ffb",
        "817b54aa45db03437c6d09a7693fc6926eb8e822"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Aug 09 10:31:03 2011 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Aug 09 10:31:03 2011 +1000"
      },
      "message": "Merge branch \u0027next-evm\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/ima-2.6 into next\n\nConflicts:\n\tfs/attr.c\n\nResolve conflict manually.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\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": "c7e25e6e0b0486492c5faaf6312b37413642c48e",
      "tree": "c097a213a8eb2ad336fb2ef8046d2e71f0fa1f4a",
      "parents": [
        "a11f7e63c59810a81494d4c4b028af707d4c7ca4"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jun 23 22:51:47 2011 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Jul 28 02:07:19 2011 -0700"
      },
      "message": "ocfs2: Avoid livelock in ocfs2_readpage()\n\nWhen someone writes to an inode, readers accessing the same inode via\nocfs2_readpage() just busyloop trying to get ip_alloc_sem because\ndo_generic_file_read() looks up the page again and retries -\u003ereadpage()\nwhen previous attempt failed with AOP_TRUNCATED_PAGE. When there are enough\nreaders, they can occupy all CPUs and in non-preempt kernel the system is\ndeadlocked because writer holding ip_alloc_sem is never run to release the\nsemaphore. Fix the problem by making reader block on ip_alloc_sem to break\nthe busy loop.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "a11f7e63c59810a81494d4c4b028af707d4c7ca4",
      "tree": "6d28cfc9519f96db5c20780bf765de9e0fc03bef",
      "parents": [
        "730e663bd82c1a10a85ff00728d34152a5a67ec8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Jun 22 14:23:38 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Jul 28 02:07:16 2011 -0700"
      },
      "message": "ocfs2: serialize unaligned aio\n\nFix a corruption that can happen when we have (two or more) outstanding\naio\u0027s to an overlapping unaligned region.  Ext4\n(e9e3bcecf44c04b9e6b505fd8e2eb9cea58fb94d) and xfs recently had to fix\nsimilar issues.\n\nIn our case what happens is that we can have an outstanding aio on a region\nand if a write comes in with some bytes overlapping the original aio we may\ndecide to read that region into a page before continuing (typically because\nof buffered-io fallback).  Since we have no ordering guarantees with the\naio, we can read stale or bad data into the page and then write it back out.\n\nIf the i/o is page and block aligned, then we avoid this issue as there\nwon\u0027t be any need to read data from disk.\n\nI took the same approach as Eric in the ext4 patch and introduced some\nserialization of unaligned async direct i/o.  I don\u0027t expect this to have an\neffect on the most common cases of AIO.  Unaligned aio will be slower\nthough, but that\u0027s far more acceptable than data corruption.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "93862d5e1ab875664c6cc95254fc365028a48bb1",
      "tree": "3299a37486b2265e051a4c641aa7cfbb309a69d6",
      "parents": [
        "5cffff9e29866a3de98c2c25135b3199491f93b0"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Mon Jul 25 14:58:15 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Mon Jul 25 14:58:15 2011 -0700"
      },
      "message": "ocfs2: Implement llseek()\n\nocfs2 implements its own llseek() to provide the SEEK_HOLE/SEEK_DATA\nfunctionality.\n\nSEEK_HOLE sets the file pointer to the start of either a hole or an unwritten\n(preallocated) extent, that is greater than or equal to the supplied offset.\n\nSEEK_DATA sets the file pointer to the start of an allocated extent (not\nunwritten) that is greater than or equal to the supplied offset.\n\nIf the supplied offset is on a desired region, then the file pointer is set\nto it. Offsets greater than or equal to the file size return -ENXIO.\n\nUnwritten (preallocated) extents are considered holes because the file system\ntreats reads to such regions in the same way as it does to holes.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "d3ec4844d449cf7af9e749f73ba2052fb7b72fc2",
      "tree": "c515913e85f7e50878c83da2a88bc5a7269d087c",
      "parents": [
        "0003230e8200699860f0b10af524dc47bf8aecad",
        "df2e301fee3c2c2a87592151397ad7699bb14c37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 13:56:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)\n  fs: Merge split strings\n  treewide: fix potentially dangerous trailing \u0027;\u0027 in #defined values/expressions\n  uwb: Fix misspelling of neighbourhood in comment\n  net, netfilter: Remove redundant goto in ebt_ulog_packet\n  trivial: don\u0027t touch files that are removed in the staging tree\n  lib/vsprintf: replace link to Draft by final RFC number\n  doc: Kconfig: `to be\u0027 -\u003e `be\u0027\n  doc: Kconfig: Typo: square -\u003e squared\n  doc: Konfig: Documentation/power/{pm \u003d\u003e apm-acpi}.txt\n  drivers/net: static should be at beginning of declaration\n  drivers/media: static should be at beginning of declaration\n  drivers/i2c: static should be at beginning of declaration\n  XTENSA: static should be at beginning of declaration\n  SH: static should be at beginning of declaration\n  MIPS: static should be at beginning of declaration\n  ARM: static should be at beginning of declaration\n  rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check\n  Update my e-mail address\n  PCIe ASPM: forcedly -\u003e forcibly\n  gma500: push through device driver tree\n  ...\n\nFix up trivial conflicts:\n - arch/arm/mach-ep93xx/dma-m2p.c (deleted)\n - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)\n - drivers/net/r8169.c (just context changes)\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": "5cffff9e29866a3de98c2c25135b3199491f93b0",
      "tree": "11b53cb3ad7cb44adb80f7802a62c145bf713514",
      "parents": [
        "a035bff6b82aca89c1223e2c614adc2d17ec8aa2"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Sun Jul 24 10:36:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:36:54 2011 -0700"
      },
      "message": "ocfs2: Fix ocfs2_page_mkwrite()\n\nThis patch address two shortcomings in ocfs2_page_mkwrite():\n1. Makes the function return better VM_FAULT_* errors.\n2. It handles a error that is triggered when a page is dropped from the mapping\ndue to memory pressure. This patch locks the page to prevent that.\n\n[Patch was cleaned up by Sunil Mushran.]\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "a035bff6b82aca89c1223e2c614adc2d17ec8aa2",
      "tree": "edc27e463547909288f4f28438cc7e6104c125f6",
      "parents": [
        "619c200de144b44f5e405305241bcd7edbb8c6cf"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:35:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:35:54 2011 -0700"
      },
      "message": "ocfs2: Add comment about orphan scanning\n\nAdd a comment that explains the reason as to why orphan scan scans all the slots.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "619c200de144b44f5e405305241bcd7edbb8c6cf",
      "tree": "3ec4ca199ac599d0ae2933d5fc58dfd904722cd4",
      "parents": [
        "6b27f62fc750d85bc6fc3718b3b38ec60edc2d74"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:34:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:34:54 2011 -0700"
      },
      "message": "ocfs2: Clean up messages in the fs\n\nConvert useful messages from ML_NOTICE to KERN_NOTICE to improve readability.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "6b27f62fc750d85bc6fc3718b3b38ec60edc2d74",
      "tree": "8046b9a0b55ceb282a3b1d9afd35a4c4fb8e1727",
      "parents": [
        "3ba169ccec1c5ad0f678e04fd29b990197fdfe79"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:33:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:33:54 2011 -0700"
      },
      "message": "ocfs2/cluster: Cluster up now includes network connections too\n\nThe cluster up check only checks to see if the node is heartbeating or not.\nIf yes it continues assuming that the node is connected to all the nodes. But\nif that is not the case, the cluster join aborts with a stack of errors that\nare not easy to comprehend.\n\nThis patch adds the network connect check upfront and prints the nodes that\nthe node is not yet connected to, before aborting.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "3ba169ccec1c5ad0f678e04fd29b990197fdfe79",
      "tree": "44aa0576afaf198a717e12b0450f45619e2c5cc4",
      "parents": [
        "bb570a5d9e74f71d32751823052db4a97d6a5e7c"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:32:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:32:54 2011 -0700"
      },
      "message": "ocfs2/cluster: Add new function o2net_fill_node_map()\n\nPatch adds function o2net_fill_node_map() to return the bitmap of nodes that\nit is connected to. This bitmap is also accessible by the user via the debugfs\nfile, /sys/kernel/debug/o2net/connected_nodes.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "bb570a5d9e74f71d32751823052db4a97d6a5e7c",
      "tree": "f8690b945d29e88d67bc55cd32656de73e13941d",
      "parents": [
        "a2c0cc1579176bd0808ef7deea456767dfa80217"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:31:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:31:54 2011 -0700"
      },
      "message": "ocfs2/cluster: Fix output in file elapsed_time_in_ms\n\nThe o2hb debugfs file, elapsed_time_in_ms, should return values only after the\ntimer is armed atleast once.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "a2c0cc1579176bd0808ef7deea456767dfa80217",
      "tree": "4f797a5fda954ce8a4783e9149da455879ca3641",
      "parents": [
        "ff0a522e7db79625aa27a433467eb94c5e255718"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:30:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:30:54 2011 -0700"
      },
      "message": "ocfs2/dlm: dlmlock_remote() needs to account for remastery\n\nIn dlmlock_remote(), we wait for the resource to stop being active before\nsetting the inprogress flag. Active includes recovery, migration, etc.\n\nThe problem here is that if the resource was being recovered or migrated, the\nnew owner could very well be that node itself (and thus not a remote node).\nThis problem was observed in Oracle bug#12583620. The error messages observed\nwere as follows:\n\ndlm_send_remote_lock_request:337 ERROR: Error -40 (ELOOP) when sending message 503 (key 0xd6d8c7) to node 2\ndlmlock_remote:271 ERROR: dlm status \u003d DLM_BADARGS\ndlmlock:751 ERROR: dlm status \u003d DLM_BADARGS\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "ff0a522e7db79625aa27a433467eb94c5e255718",
      "tree": "b404bbd397b3f495792db561a4a09fa66aa82be0",
      "parents": [
        "ed8625c6fb93d750ed022db571a8a7b7a6724b3b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:29:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:29:54 2011 -0700"
      },
      "message": "ocfs2/dlm: Take inflight reference count for remotely mastered resources too\n\nThe inflight reference count, in the lock resource, is taken to pin the resource\nin memory. We take it when a new resource is created and release it after a\nlock is attached to it. We do this to prevent the resource from getting purged\nprematurely.\n\nEarlier this reference count was being taken for locally mastered resources\nonly. This patch extends the same functionality for remotely mastered ones.\n\nWe are doing this because the same premature purging could occur for remotely\nmastered resources if the remote node were to die before completion of the\ncreate lock.\n\nFix for Oracle bug#12405575.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "ed8625c6fb93d750ed022db571a8a7b7a6724b3b",
      "tree": "c1daa0440883e05786abe1c453a8aea304640551",
      "parents": [
        "e9f0b6a6233105c188064328c3f15e21942d0241"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:28:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:28:54 2011 -0700"
      },
      "message": "ocfs2/dlm: Cleanup dlm_wait_for_node_death() and dlm_wait_for_node_recovery()\n\ndlm_wait_for_node_death() and dlm_wait_for_node_recovery() needed a facelift.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "e9f0b6a6233105c188064328c3f15e21942d0241",
      "tree": "362f0f98f9a7d9909a75210b3a2a4b8eb5532323",
      "parents": [
        "8d400b81cc83b171ff872587723a37eb7fae9abe"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:27:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:27:54 2011 -0700"
      },
      "message": "ocfs2/dlm: Trace insert/remove of resource to/from hash\n\nAdd mlog to trace adding and removing the resource from/to the hash table.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "8d400b81cc83b171ff872587723a37eb7fae9abe",
      "tree": "443b802744cdfa1f1f9f38b3d5917fc4bc30a4e2",
      "parents": [
        "0afbba13226fcdbd4327f6b13a42f6efbb8c9caf"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:26:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:26:54 2011 -0700"
      },
      "message": "ocfs2/dlm: Clean up refmap helpers\n\nPatch cleans up helpers that set/clear refmap bits and grab/drop inflight lock\nref counts.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "0afbba13226fcdbd4327f6b13a42f6efbb8c9caf",
      "tree": "4ed7ddff738f162ef5b6403df87847931eaf0d43",
      "parents": [
        "394eb3d38a3ecc549cc34a3040103a9164be516b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:25:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:25:54 2011 -0700"
      },
      "message": "ocfs2/dlm: Cleanup up dlm_finish_local_lockres_recovery()\n\ndlm_finish_local_lockres_recovery() needed a facelift.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "394eb3d38a3ecc549cc34a3040103a9164be516b",
      "tree": "c373152dde8a2aae2a0f444f05021c6fef186fb1",
      "parents": [
        "8decab3c8dadcdf4f54ffb30df6e6f67b398b6e0"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:24:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:24:54 2011 -0700"
      },
      "message": "ocfs2: Clean up messages in stack_o2cb.c\n\no2cb messages needed a facelift.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "8decab3c8dadcdf4f54ffb30df6e6f67b398b6e0",
      "tree": "c1221be95579ae14f55774d13d48d9d938152071",
      "parents": [
        "1dfecf810e0eacb35987905082f23e5c2cd26e91"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:23:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:23:54 2011 -0700"
      },
      "message": "ocfs2/dlm: Clean up messages in o2dlm\n\no2dlm messages needed a facelift.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "1dfecf810e0eacb35987905082f23e5c2cd26e91",
      "tree": "106f0d7f7f9a0bd28fadf9f29e592d7745f44219",
      "parents": [
        "d2eece376648d2f7ba0a7d78f3c4d0421e608ac2"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:22:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:22:54 2011 -0700"
      },
      "message": "ocfs2/cluster: Clean up messages in o2net\n\no2net messages needed a facelift.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "d2eece376648d2f7ba0a7d78f3c4d0421e608ac2",
      "tree": "6d43ac36bcbdf01f544027ec5d2c1427411ab498",
      "parents": [
        "b6844e8f64920cdee620157252169ba63afb0c89"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:21:54 2011 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sun Jul 24 10:21:54 2011 -0700"
      },
      "message": "ocfs2/cluster: Abort heartbeat start on hard-ro devices\n\nCurrently if the heartbeat device is hard-ro, the o2hb thread keeps chugging\nalong and dumping errors along the way. The user needs to manually stop the\nheartbeat.\n\nThe patch addresses this shortcoming by adding a limit to the number of times\nthe hb thread will iterate in an unsteady state. If the hb thread does not\nready steady state in that many interation, the start is aborted.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "c0d960f038bdfe0fa73c9f698ba836ed20b672c9",
      "tree": "d3be44f58e977935718d5b8c9cc0b7e4cd8f022e",
      "parents": [
        "423e0ab086ad8b33626e45fa94ac7613146b7ffa"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 23 00:22:31 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 10:10:09 2011 -0400"
      },
      "message": "ocfs2_init_acl(): fix a leak\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": "72c5052ddc3956d847f21c2b8d55c93664a51b2c",
      "tree": "47b381f3f746cdc1612f432bd902278f8901f84a",
      "parents": [
        "aacfc19c626ebd3daa675652457d71019a1f583f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:48 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:50 2011 -0400"
      },
      "message": "fs: move inode_dio_done to the end_io handler\n\nFor filesystems that delay their end_io processing we should keep our\ni_dio_count until the the processing is done.  Enable this by moving\nthe inode_dio_done call to the end_io handler if one exist.  Note that\nthe actual move to the workqueue for ext4 and XFS is not done in\nthis patch yet, but left to the filesystem maintainers.  At least\nfor XFS it\u0027s not needed yet either as XFS has an internal equivalent\nto i_dio_count.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "df2d6f26586f12a24f3ae5df4e236dc5c08d6eb4",
      "tree": "68c6ec96177f766d3b9ab0a48408271ef2af4d89",
      "parents": [
        "562c72aa57c36b178eacc3500a0215651eca9429"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:46 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:48 2011 -0400"
      },
      "message": "fs: always maintain i_dio_count\n\nMaintain i_dio_count for all filesystems, not just those using DIO_LOCKING.\nThis these filesystems to also protect truncate against direct I/O requests\nby using common code.  Right now the only non-DIO_LOCKING filesystem that\nappears to do so is XFS, which uses an opencoded variant of the i_dio_count\nscheme.\n\nBehaviour doesn\u0027t change for filesystems never calling inode_dio_wait.\nFor ext4 behaviour changes when using the dioread_nonlock option, which\npreviously was missing any protection between truncate and direct I/O reads.\nFor ocfs2 that handcrafted i_dio_count manipulations are replaced with\nthe common code now enable.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\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": "bd5fe6c5eb9c548d7f07fe8f89a150bb6705e8e3",
      "tree": "ef5341c7747f809aec7ae233f6e3ef90af39be5f",
      "parents": [
        "f9b5570d7fdedff32a2e78102bfb54cd1b12b289"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:43 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:46 2011 -0400"
      },
      "message": "fs: kill i_alloc_sem\n\ni_alloc_sem is a rather special rw_semaphore.  It\u0027s the last one that may\nbe released by a non-owner, and it\u0027s write side is always mirrored by\nreal exclusion.  It\u0027s intended use it to wait for all pending direct I/O\nrequests to finish before starting a truncate.\n\nReplace it with a hand-grown construct:\n\n - exclusion for truncates is already guaranteed by i_mutex, so it can\n   simply fall way\n - the reader side is replaced by an i_dio_count member in struct inode\n   that counts the number of pending direct I/O requests.  Truncate can\u0027t\n   proceed as long as it\u0027s non-zero\n - when i_dio_count reaches non-zero we wake up a pending truncate using\n   wake_up_bit on a new bit in i_flags\n - new references to i_dio_count can\u0027t appear while we are waiting for\n   it to read zero because the direct I/O count always needs i_mutex\n   (or an equivalent like XFS\u0027s i_iolock) for starting a new operation.\n\nThis scheme is much simpler, and saves the space of a spinlock_t and a\nstruct list_head in struct inode (typically 160 bits on a non-debug 64-bit\nsystem).\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dae6ad8f37529963ae7df52baaccf056b38f210e",
      "tree": "1bfc6f766601e744c2c2c064b97cdefdcca4ad5c",
      "parents": [
        "49084c3bb2055c401f3493c13edae14d49128ca0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 26 11:50:15 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:44:05 2011 -0400"
      },
      "message": "new helpers: kern_path_create/user_path_create\n\ncombination of kern_path_parent() and lookup_create().  Does *not*\nexpose struct nameidata to caller.  Syscalls converted to that...\n\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": "9d8f13ba3f4833219e50767b022b82cd0da930eb",
      "tree": "3ba2367380d009111ea17696162a62320c88d144",
      "parents": [
        "0f2a55d5bb2372058275b0b343d90dd5d640d045"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Mon Jun 06 15:29:25 2011 -0400"
      },
      "committer": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Mon Jul 18 12:29:38 2011 -0400"
      },
      "message": "security: new security_inode_init_security API adds function callback\n\nThis patch changes the security_inode_init_security API by adding a\nfilesystem specific callback to write security extended attributes.\nThis change is in preparation for supporting the initialization of\nmultiple LSM xattrs and the EVM xattr.  Initially the callback function\nwalks an array of xattrs, writing each xattr separately, but could be\noptimized to write multiple xattrs at once.\n\nFor existing security_inode_init_security() calls, which have not yet\nbeen converted to use the new callback function, such as those in\nreiserfs and ocfs2, this patch defines security_old_inode_init_security().\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\n"
    },
    {
      "commit": "e44ba033c5654dbfda53461c9b1f7dd9bd1d198f",
      "tree": "92654523983a855e466a332e104c0e51550a642d",
      "parents": [
        "1816315b10862277a961a70ec394b6607983041d"
      ],
      "author": {
        "name": "Vitaliy Ivanov",
        "email": "vitalivanov@gmail.com",
        "time": "Mon Jun 20 16:08:07 2011 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Jun 20 16:08:19 2011 +0200"
      },
      "message": "treewide: remove duplicate includes\n\nMany stupid corrections of duplicated includes based on the output of\nscripts/checkincludes.pl.\n\nSigned-off-by: Vitaliy Ivanov \u003cvitalivanov@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "9e1f1de02c2275d7172e18dc4e7c2065777611bf",
      "tree": "15e9d202e64275cdbff6ed1d54804da5966d7d8d",
      "parents": [
        "1fa7b6a29c61358cc2ca6f64cef4aa0e1a7ca74c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 03 18:24:58 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 03 18:24:58 2011 -0400"
      },
      "message": "more conservative S_NOSEC handling\n\nCaching \"we have already removed suid/caps\" was overenthusiastic as merged.\nOn network filesystems we might have had suid/caps set on another client,\nsilently picked by this client on revalidate, all of that *without* clearing\nthe S_NOSEC flag.\n\nAFAICS, the only reasonably sane way to deal with that is\n\t* new superblock flag; unless set, S_NOSEC is not going to be set.\n\t* local block filesystems set it in their -\u003emount() (more accurately,\nmount_bdev() does, so does btrfs -\u003emount(), users of mount_bdev() other than\nlocal block ones clear it)\n\t* if any network filesystem (or a cluster one) wants to use S_NOSEC,\nit\u0027ll need to set MS_NOSEC in sb-\u003es_flags *AND* take care to clear S_NOSEC when\ninode attribute changes are picked from other clients.\n\nIt\u0027s not an earth-shattering hole (anybody that can set suid on another client\nwill almost certainly be able to write to the file before doing that anyway),\nbut it\u0027s a bug that needs fixing.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "730e663bd82c1a10a85ff00728d34152a5a67ec8",
      "tree": "c7ca96c508146bdc76890fa66f143786eed4b28f",
      "parents": [
        "87f0d5c8db7aad85b9120c26723fdc63cd84a460"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon May 30 21:58:05 2011 +0900"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Tue May 31 19:03:45 2011 -0700"
      },
      "message": "ocfs2: use proper little-endian bitops\n\nUsing __test_and_{set,clear}_bit_le() with ignoring its return value\ncan be replaced with __{set,clear}_bit_le().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: ocfs2-devel@oss.oracle.com\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "87f0d5c8db7aad85b9120c26723fdc63cd84a460",
      "tree": "7233a07d4a4ac888db738c1ddd25b868ec13c8f3",
      "parents": [
        "3d75be7c4771c7e4d5b5fa586a599af8473de32c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun May 29 22:57:16 2011 +0300"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Tue May 31 19:03:45 2011 -0700"
      },
      "message": "ocfs2: null deref on allocation error\n\nThe original code had a null derefence in the error handling.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "3d75be7c4771c7e4d5b5fa586a599af8473de32c",
      "tree": "45052c6e7317f1bfe2d0f6961ca5a738deae5766",
      "parents": [
        "03efed8a2a1b8e00164eb4720a82a7dd5e368a8e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun May 29 22:56:31 2011 +0300"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Tue May 31 19:03:44 2011 -0700"
      },
      "message": "ocfs2: checking the wrong variable in ocfs2_move_extent()\n\n\"new_phys_cpos\" is always a valid pointer here.\nocfs2_probe_alloc_group() allocates \"*new_phys_cpos\".\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "03efed8a2a1b8e00164eb4720a82a7dd5e368a8e",
      "tree": "efe713ba18680a1ccedecfbff2d81d83f048fdb0",
      "parents": [
        "e12ca23d41bd157354a5d1aadff30211a410c53a"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Sat May 28 00:34:19 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Tue May 31 19:03:44 2011 -0700"
      },
      "message": "ocfs2: Bugfix for hard readonly mount\n\nocfs2 cannot currently mount a device that is readonly at the media\n(\"hard readonly\").  Fix the broken places.\nsee detail: http://oss.oracle.com/bugzilla/show_bug.cgi?id\u003d1322\n\n[ Description edited -- Joel ]\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nReviewed-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "81faae7f9c245a17f585d6edb7d4683cc6336b11",
      "tree": "17f1f67095002d64a6b18bec4217cdb9ed8df512",
      "parents": [
        "95948c31bec26e631ecf138cb04dcd547519c7af",
        "d194f1aa194d83ba3df0975497f9eaed48c95f6d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 10:23:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 27 10:23:10 2011 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  Ocfs2/move_extents: Validate moving goal after the adjustment.\n  Ocfs2/move_extents: Avoid doing division in extent moving.\n"
    },
    {
      "commit": "d194f1aa194d83ba3df0975497f9eaed48c95f6d",
      "tree": "9a0ece1863d192d82a982a66ee5458a1d0dc95d9",
      "parents": [
        "ece928df16494becd43f999aff9bd530182e7e81",
        "ea5e1675ac832b42889ac8d254ea8fbfbdfaa8b2"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Fri May 27 00:24:03 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Fri May 27 00:24:03 2011 -0700"
      },
      "message": "Merge branch \u0027move_extents\u0027 of git://oss.oracle.com/git/tye/linux-2.6 into ocfs2-merge-window\n"
    },
    {
      "commit": "ea5e1675ac832b42889ac8d254ea8fbfbdfaa8b2",
      "tree": "04b1e47be93c982a392e4eededda41dc67191422",
      "parents": [
        "6aea6f5068cb86e89a6ac243c3fc131045b6563a"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri May 27 15:24:14 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri May 27 14:52:57 2011 +0800"
      },
      "message": "Ocfs2/move_extents: Validate moving goal after the adjustment.\n\nthough the goal_to_be_moved will be validated again in following moving, it\u0027s\nstill a good idea to validate it after adjustment at the very beginning, instead\nof validating it before adjustment.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "6aea6f5068cb86e89a6ac243c3fc131045b6563a",
      "tree": "328109905fc58424d1942db52b22537fd46f2fc7",
      "parents": [
        "dda54e76d7dba0532ebdd72e0b4f492a03f83225"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri May 27 15:19:56 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri May 27 14:52:53 2011 +0800"
      },
      "message": "Ocfs2/move_extents: Avoid doing division in extent moving.\n\nIt\u0027s not wise enough to do a 64bits division anywhere in kernside, replace it\nwith a decent helper or proper shifts.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "a74b81b0aff4a01e0816df5915c854fb52c5e87f",
      "tree": "98364cec6a9e0c0fd510e5fe9af46f1ddb28956b",
      "parents": [
        "f8d613e2a665bf1be9628a3c3f9bafe7599b32c0",
        "ece928df16494becd43f999aff9bd530182e7e81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:55:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:55:15 2011 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (28 commits)\n  Ocfs2: Teach local-mounted ocfs2 to handle unwritten_extents correctly.\n  ocfs2/dlm: Do not migrate resource to a node that is leaving the domain\n  ocfs2/dlm: Add new dlm message DLM_BEGIN_EXIT_DOMAIN_MSG\n  Ocfs2/move_extents: Set several trivial constraints for threshold.\n  Ocfs2/move_extents: Let defrag handle partial extent moving.\n  Ocfs2/move_extents: move/defrag extents within a certain range.\n  Ocfs2/move_extents: helper to calculate the defraging length in one run.\n  Ocfs2/move_extents: move entire/partial extent.\n  Ocfs2/move_extents: helpers to update the group descriptor and global bitmap inode.\n  Ocfs2/move_extents: helper to probe a proper region to move in an alloc group.\n  Ocfs2/move_extents: helper to validate and adjust moving goal.\n  Ocfs2/move_extents: find the victim alloc group, where the given #blk fits.\n  Ocfs2/move_extents: defrag a range of extent.\n  Ocfs2/move_extents: move a range of extent.\n  Ocfs2/move_extents: lock allocators and reserve metadata blocks and data clusters for extents moving.\n  Ocfs2/move_extents: Add basic framework and source files for extent moving.\n  Ocfs2/move_extents: Adding new ioctl code \u0027OCFS2_IOC_MOVE_EXT\u0027 to ocfs2.\n  Ocfs2/refcounttree: Publicize couple of funcs from refcounttree.c\n  Ocfs2: Add a new code \u0027OCFS2_INFO_FREEFRAG\u0027 for o2info ioctl.\n  Ocfs2: Add a new code \u0027OCFS2_INFO_FREEINODE\u0027 for o2info ioctl.\n  ...\n"
    },
    {
      "commit": "f8d613e2a665bf1be9628a3c3f9bafe7599b32c0",
      "tree": "98d4da8d0e1a5fb1d9064626b4b96d95ccf26375",
      "parents": [
        "8a0599dd2471f2a2e409498c08a0ab339057ad06",
        "5bc20fc59706214d9591c11e1938a629d3538c12"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:50:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 10:50:56 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/djm/tmem:\n  xen: cleancache shim to Xen Transcendent Memory\n  ocfs2: add cleancache support\n  ext4: add cleancache support\n  btrfs: add cleancache support\n  ext3: add cleancache support\n  mm/fs: add hooks to support cleancache\n  mm: cleancache core ops functions and config\n  fs: add field to superblock to support cleancache\n  mm/fs: cleancache documentation\n\nFix up trivial conflict in fs/btrfs/extent_io.c due to includes\n"
    },
    {
      "commit": "1cfd8bd0f97ae3ad314151cd0fd70454d7b39699",
      "tree": "3d3463b53f936a3dfd82340368b89841d3de40d8",
      "parents": [
        "7abc52c2ed169c65044d3a199879c8438ad82322"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu May 26 10:02:08 2011 -0600"
      },
      "committer": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu May 26 10:02:08 2011 -0600"
      },
      "message": "ocfs2: add cleancache support\n\nThis eighth patch of eight in this cleancache series \"opts-in\"\ncleancache for ocfs2.  Clustered filesystems must explicitly enable\ncleancache by calling cleancache_init_shared_fs anytime an instance\nof the filesystem is mounted.  Ocfs2 is currently the only user of\nthe clustered filesystem interface but nevertheless, the cleancache\nhooks in the VFS layer are sufficient for ocfs2 including the matching\ncleancache_flush_fs hook which must be called on unmount.\n\nDetails and a FAQ can be found in Documentation/vm/cleancache.txt\n\n[v8: trivial merge conflict update]\n[v5: jeremy@goop.org: simplify init hook and any future fs init changes]\nSigned-off-by: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nReviewed-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nReviewed-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik Van Riel \u003criel@redhat.com\u003e\nCc: Jan Beulich \u003cJBeulich@novell.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Andreas Dilger \u003cadilger@sun.com\u003e\nCc: Ted Tso \u003ctytso@mit.edu\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\n"
    },
    {
      "commit": "ece928df16494becd43f999aff9bd530182e7e81",
      "tree": "905042764ea5d8ab6eda63666406e19f607bcf4c",
      "parents": [
        "3d1c1829ebe7e8bb48a997b39b4865abc9197e5e",
        "dda54e76d7dba0532ebdd72e0b4f492a03f83225"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 25 21:51:55 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 25 21:51:55 2011 -0700"
      },
      "message": "Merge branch \u0027move_extents\u0027 of git://oss.oracle.com/git/tye/linux-2.6 into ocfs2-merge-window\n\nConflicts:\n\tfs/ocfs2/ioctl.c\n"
    },
    {
      "commit": "3d1c1829ebe7e8bb48a997b39b4865abc9197e5e",
      "tree": "45cc7eda240a9f5649887311dc2968d190b4c7fa",
      "parents": [
        "66effd3c681256874a81436493a933edb1701798"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Mon May 23 15:57:26 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 25 21:06:28 2011 -0700"
      },
      "message": "Ocfs2: Teach local-mounted ocfs2 to handle unwritten_extents correctly.\n\nOops, local-mounted of \u0027ocfs2_fops_no_plocks\u0027 is just missing the support\nof unwritten_extents/punching-hole due to no func pointer was given correctly\nto \u0027.follocate\u0027 field.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "66effd3c681256874a81436493a933edb1701798",
      "tree": "ce0b9047ee7be10b6e7e8848f731e1d6a7579731",
      "parents": [
        "bddefdeec5bc56ba5aa2c2ca8c904cdff58e7e5b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu May 19 14:34:12 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 25 21:05:22 2011 -0700"
      },
      "message": "ocfs2/dlm: Do not migrate resource to a node that is leaving the domain\n\nDuring dlm domain shutdown, o2dlm has to free all the lock resources. Ones that\nhave no locks and references are freed. Ones that have locks and/or references\nare migrated to another node.\n\nThe first task in migration is finding a target. Currently we scan the lock\nresource and find one node that either has a lock or a reference. This is not\nvery efficient in a parallel umount case as we might end up migrating the\nlock resource to a node which itself may have to migrate it to a third node.\n\nThe patch scans the dlm-\u003eexit_domain_map to ensure the target node is not\nleaving the domain. If no valid target node is found, o2dlm does not migrate\nthe resource but instead waits for the unlock and deref messages that will\nallow it to free the resource.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "bddefdeec5bc56ba5aa2c2ca8c904cdff58e7e5b",
      "tree": "ec3a61ccfd5bba4d5fba55b6aa9844d3dfa25d78",
      "parents": [
        "98ba073c606fba7a48a8e0d36e3b02105d31c768"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu May 19 14:34:11 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 25 21:05:15 2011 -0700"
      },
      "message": "ocfs2/dlm: Add new dlm message DLM_BEGIN_EXIT_DOMAIN_MSG\n\nThis patch adds a new dlm message DLM_BEGIN_EXIT_DOMAIN_MSG and ups the dlm\nprotocol to 1.2.\n\no2dlm sends this new message in dlm_unregister_domain() to mark the beginning\nof the exit domain. This message is sent to all nodes in the domain.\n\nCurrently o2dlm has no way of informing other nodes of its impending exit.\nThis information is useful as the other nodes could disregard the exiting\nnode in certain operations. For example, in resource migration. If two or\nmore nodes were umounting in parallel, it would be more efficient if o2dlm\nwere to choose a non-exiting node to be the new master node rather than an\nexiting one.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nReviewed-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "dda54e76d7dba0532ebdd72e0b4f492a03f83225",
      "tree": "7eae649c453e65bc8b585d9f605bbabe9bdda5e2",
      "parents": [
        "4dfa66bd595120530506448f3d519f341afd736e"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 14:45:41 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:13 2011 +0800"
      },
      "message": "Ocfs2/move_extents: Set several trivial constraints for threshold.\n\nThe threshold should be greater than clustersize and less than i_size.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "4dfa66bd595120530506448f3d519f341afd736e",
      "tree": "e11b923c29fbd85d10aa343dff93db5bc82003b4",
      "parents": [
        "53069d4e76954e2e63c1b3c501051c6fbcf7298c"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 14:30:36 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:12 2011 +0800"
      },
      "message": "Ocfs2/move_extents: Let defrag handle partial extent moving.\n\nWe\u0027re going to support partial extent moving, which may split entire extent\nmovement into pieces to compromise the insuffice allocations, it eases the\n\u0027ENSPC\u0027 pain and makes the whole moving much less likely to fail, the downside\nis it may make the fs even more fragmented before moving, just let the userspace\nmake a trade-off here.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "53069d4e76954e2e63c1b3c501051c6fbcf7298c",
      "tree": "6b906eb22fef78636c7d4db7120370d7715f5aef",
      "parents": [
        "ee16cc037e255801892481a2d0b7c1fff2adf1aa"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 14:23:43 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:12 2011 +0800"
      },
      "message": "Ocfs2/move_extents: move/defrag extents within a certain range.\n\nthe basic logic of moving extents for a file is pretty like punching-hole\nsequence, walk the extents within the range as user specified, calculating\nan appropriate len to defrag/move, then let ocfs2_defrag/move_extent() to\ndo the actual moving.\n\nThis func ends up setting \u0027OCFS2_MOVE_EXT_FL_COMPLETE\u0027 to userpace if operation\ngets done successfully.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "ee16cc037e255801892481a2d0b7c1fff2adf1aa",
      "tree": "00ec3109caf8becea9da524282bf66469361ed7c",
      "parents": [
        "e08477176d5575493ba4c30041245c34f2737ad4"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri Mar 18 14:35:40 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:12 2011 +0800"
      },
      "message": "Ocfs2/move_extents: helper to calculate the defraging length in one run.\n\nThe helper is to calculate the defrag length in one run according to a threshold,\nit will proceed doing defragmentation until the threshold was meet, and skip a\nLARGE extent if any.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "e08477176d5575493ba4c30041245c34f2737ad4",
      "tree": "aedeb0f25df0c5a5ba926cbd0372626d8d0b755f",
      "parents": [
        "8473aa8a2b5857b1bdfb57d860594d2eb2b4a0d6"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 17:35:19 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:11 2011 +0800"
      },
      "message": "Ocfs2/move_extents: move entire/partial extent.\n\nocfs2_move_extent() logic will validate the goal_offset_in_block,\nwhere extents to be moved, what\u0027s more, it also compromises a bit\nto probe the appropriate region around given goal_offset when the\noriginal goal is not able to fit the movement.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "8473aa8a2b5857b1bdfb57d860594d2eb2b4a0d6",
      "tree": "61ae1b1951fb7795306ba322c36c6ebc4e965ebc",
      "parents": [
        "e6b5859cccfa0fec02f3c5b1069481efc7186f47"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 18:51:41 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:11 2011 +0800"
      },
      "message": "Ocfs2/move_extents: helpers to update the group descriptor and global bitmap inode.\n\nThese helpers were actually borrowed from alloc.c, which may be publicized\nlater.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "e6b5859cccfa0fec02f3c5b1069481efc7186f47",
      "tree": "bd0308fa3455645a5fc91e9bd50912441eb07dbf",
      "parents": [
        "99e4c750419e0bb24a1bbf094b1e6a5a4eedbc36"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri Mar 18 14:35:37 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:11 2011 +0800"
      },
      "message": "Ocfs2/move_extents: helper to probe a proper region to move in an alloc group.\n\nBefore doing the movement of extents, we\u0027d better probe the alloc group from\n\u0027goal_blk\u0027 for searching a contiguous region to fit the wanted movement, we\neven will have a best-effort try by compromising to a threshold around the\ngiven goal.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "99e4c750419e0bb24a1bbf094b1e6a5a4eedbc36",
      "tree": "2d9fdf13b965f6b786b1831182df02d9d5d694da",
      "parents": [
        "1c06b9126130aa4a917bba81c39579ed08a67b4e"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri Mar 18 14:35:36 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:10 2011 +0800"
      },
      "message": "Ocfs2/move_extents: helper to validate and adjust moving goal.\n\nFirst best-effort attempt to validate and adjust the goal (physical address in\nblock), while it can\u0027t guarantee later operation can succeed all the time since\nglobal_bitmap may change a bit over time.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "1c06b9126130aa4a917bba81c39579ed08a67b4e",
      "tree": "553ebd98601d3edcae182002f72246a04094d9c6",
      "parents": [
        "202ee5facb2c55f36a4324a4f56d8bdf3617a579"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri Mar 18 14:35:35 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:10 2011 +0800"
      },
      "message": "Ocfs2/move_extents: find the victim alloc group, where the given #blk fits.\n\nThis function tries locate the right alloc group, where a given physical block\nresides, it returns the caller a buffer_head of victim group descriptor, and also\nthe offset of block in this group, by passing the block number.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "202ee5facb2c55f36a4324a4f56d8bdf3617a579",
      "tree": "22875e904e85cf1ef9419119914314fe4dd48550",
      "parents": [
        "8f603e567aa7a243e68ca48b4f105b990851360f"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri Mar 18 14:35:34 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:09 2011 +0800"
      },
      "message": "Ocfs2/move_extents: defrag a range of extent.\n\nIt\u0027s a relatively complete function to accomplish defragmentation for entire\nor partial extent, one journal handle was kept during the operation, it was\nlogically doing one more thing than ocfs2_move_extent() acutally, yes, it\u0027s\nclaiming the new clusters itself;-)\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "8f603e567aa7a243e68ca48b4f105b990851360f",
      "tree": "f12071d774d6f7d89480ee87a987cbca1687f49c",
      "parents": [
        "de474ee8bbc315b0e6772cebdb24b335f82cf95d"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri Mar 18 14:35:33 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:09 2011 +0800"
      },
      "message": "Ocfs2/move_extents: move a range of extent.\n\nThe moving range of __ocfs2_move_extent() was within one extent always, it\nconsists following parts:\n\n1. Duplicates the clusters in pages to new_blkoffset, where extent to be moved.\n\n2. Split the original extent with new extent, coalecse the nearby extents if possible.\n\n3. Append old clusters to truncate log, or decrease_refcount if the extent was refcounted.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "de474ee8bbc315b0e6772cebdb24b335f82cf95d",
      "tree": "04426cf07865f7f456eb2f8154d96b2ef403cee9",
      "parents": [
        "028ba5df63fa9fc18045bc1e9b48cdd43727e1c5"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Fri Mar 18 14:35:32 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:09 2011 +0800"
      },
      "message": "Ocfs2/move_extents: lock allocators and reserve metadata blocks and data clusters for extents moving.\n\nocfs2_lock_allocators_move_extents() was like the common ocfs2_lock_allocators(),\nto lock metadata and data alloctors during extents moving, reserve appropriate\nmetadata blocks and data clusters, also performa a best- effort to calculate the\ncredits for journal transaction in one run of movement.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    }
  ],
  "next": "028ba5df63fa9fc18045bc1e9b48cdd43727e1c5"
}
