)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "028ba5df63fa9fc18045bc1e9b48cdd43727e1c5",
      "tree": "2a3f20f03a0f82bc2ffd87b68b1649823b178e63",
      "parents": [
        "220ebc4334326bc23e4c4c3f076dc5a58ec293f6"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 16:42:09 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:08 2011 +0800"
      },
      "message": "Ocfs2/move_extents: Add basic framework and source files for extent moving.\n\nAdding new files move_extents.[c|h] and fill it with nothing but\nonly a context structure.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "220ebc4334326bc23e4c4c3f076dc5a58ec293f6",
      "tree": "b455859f7a1f53ab3bf54fc377ffd4fbc0425880",
      "parents": [
        "3e19a25e0591a6248f3ddd2c08566666607d827d"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 13:37:51 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:08 2011 +0800"
      },
      "message": "Ocfs2/move_extents: Adding new ioctl code \u0027OCFS2_IOC_MOVE_EXT\u0027 to ocfs2.\n\nPatch also manages to add a manipulative struture for this ioctl.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "3e19a25e0591a6248f3ddd2c08566666607d827d",
      "tree": "cd01e54a18f4f91e1ae14fccdbc564ee7ce1b09b",
      "parents": [
        "d24a10b9f8ed548981696cd36e2b4f16e6f360b1"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 16:21:20 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:08 2011 +0800"
      },
      "message": "Ocfs2/refcounttree: Publicize couple of funcs from refcounttree.c\n\nThe original goal of commonizing these funcs is to benefit defraging/extent_moving\ncodes in the future,  based on the fact that reflink and defragmentation having\nthe same Copy-On-Wrtie mechanism.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "d24a10b9f8ed548981696cd36e2b4f16e6f360b1",
      "tree": "4189d2be951b63a6ff480fdabd031605ce342e92",
      "parents": [
        "3e5db17d4da7f45c454940096d9e429cca12ef9f"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 15:27:17 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 12:18:07 2011 +0800"
      },
      "message": "Ocfs2: Add a new code \u0027OCFS2_INFO_FREEFRAG\u0027 for o2info ioctl.\n\nThis new code is a bit more complicated than former ones, the goal is to\nshow user all statistics required to take a deep insight into filesystem\non how the disk is being fragmentaed.\n\nThe goal is achieved by scaning global bitmap from (cluster)group to group\nto figure out following factors in the filesystem:\n\n        - How many free chunks in a fixed size as user requested.\n        - How many real free chunks in all size.\n        - Min/Max/Avg size(in) clusters of free chunks.\n        - How do free chunks distribute(in size) in terms of a histogram,\n          just like following:\n          ---------------------------------------------------------\n          Extent Size Range :  Free extents  Free Clusters  Percent\n             32K...   64K-  :             1             1    0.00%\n              1M...    2M-  :             9           288    0.03%\n              8M...   16M-  :             2           831    0.09%\n             32M...   64M-  :             1          2047    0.23%\n            128M...  256M-  :             1          8191    0.92%\n            256M...  512M-  :             2         21706    2.43%\n            512M... 1024M-  :            27        858623   96.29%\n          ---------------------------------------------------------\n\nUserspace ioctl() call eventually gets the above info returned by passing\na \u0027struct ocfs2_info_freefrag\u0027 with the chunk_size being specified first.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "3e5db17d4da7f45c454940096d9e429cca12ef9f",
      "tree": "e808424de357b1140817341675b8624292c6c7b2",
      "parents": [
        "8aa1fa360d0e2b31891f180d8b8e0f8d38f9243c"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 15:25:54 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 12:18:02 2011 +0800"
      },
      "message": "Ocfs2: Add a new code \u0027OCFS2_INFO_FREEINODE\u0027 for o2info ioctl.\n\nThe new code is dedicated to calculate free inodes number of all inode_allocs,\nthen return the info to userpace in terms of an array.\n\nSpecially, flag \u0027OCFS2_INFO_FL_NON_COHERENT\u0027, manipulated by \u0027--cluster-coherent\u0027\nfrom userspace, is now going to be involved. setting the flag on means no cluster\ncoherency considered, usually, userspace tools choose none-coherency strategy by\ndefault for the sake of performace.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "8aa1fa360d0e2b31891f180d8b8e0f8d38f9243c",
      "tree": "26d543b8b88a32db75a286895a12c69c2280b081",
      "parents": [
        "4a7df24ddc7097cd789a7527187826552ea0765e"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 15:22:59 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 12:17:18 2011 +0800"
      },
      "message": "Ocfs2: Using inline funcs to set/clear *FILLED* flags in info handler.\n\nIt just removes some macros for the sake of typechecking gains.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "98ba073c606fba7a48a8e0d36e3b02105d31c768",
      "tree": "90d498c827fbce9d0c5c10b46f98a59148159e1d",
      "parents": [
        "9f62e96084cd7ae6dedcfb4caf066ed6cc67e0d7"
      ],
      "author": {
        "name": "Robin Dong",
        "email": "hao.bigrat@gmail.com",
        "time": "Fri May 06 16:01:40 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon May 23 23:59:40 2011 -0700"
      },
      "message": "ocfs2: change incorrect \u0027extern\u0027 keyword to \u0027static\u0027 in dlmfs\n\nChange function param_set_dlmfs_capabilities from \u0027extern\u0027 to \u0027static\u0027 since\nfunction param_get_dlmfs_capabilities is also \u0027static\u0027.\n\nSigned-off-by: Robin Dong \u003csanbai@taobao.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "9f62e96084cd7ae6dedcfb4caf066ed6cc67e0d7",
      "tree": "67a07e9c4ab93c72e1847ab0974cb601ce234251",
      "parents": [
        "10fca35ff12ad2a7017bce6567cffe9da443d7a2"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu May 19 14:34:09 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon May 23 23:37:39 2011 -0700"
      },
      "message": "ocfs2/dlm: dlm_is_lockres_migrateable() returns boolean\n\nPatch cleans up the gunk added by commit 388c4bcb4e63e88fb1f312a2f5f9eb2623afcf5b.\ndlm_is_lockres_migrateable() now returns 1 if lockresource is deemed\nmigrateable and 0 if not.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "10fca35ff12ad2a7017bce6567cffe9da443d7a2",
      "tree": "46c8fd9157bde0616798ff1945d16da4c9881d16",
      "parents": [
        "55e67872b67ebd30d1326067cdba53a622ab497d"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 23 10:36:45 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon May 23 23:37:20 2011 -0700"
      },
      "message": "ocfs2: Add trace event for trim.\n\nAdd the corresponding trace event for trim.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "55e67872b67ebd30d1326067cdba53a622ab497d",
      "tree": "6269c3ab8aebc81ee32997c3e23ca53c68db3482",
      "parents": [
        "e80de36d8dbff216a384e9204e54d59deeadf344"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 23 10:36:44 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon May 23 23:37:19 2011 -0700"
      },
      "message": "ocfs2: Add FITRIM ioctl.\n\nAdd the corresponding ioctl function for FITRIM.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "e80de36d8dbff216a384e9204e54d59deeadf344",
      "tree": "ff1bde3fa17785519863f3880fecbb6b6fcd148a",
      "parents": [
        "69a60c4d177632bd56ae567dc0a082f7119b71c2"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 23 10:36:43 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon May 23 23:37:18 2011 -0700"
      },
      "message": "ocfs2: Add ocfs2_trim_fs for SSD trim support.\n\nAdd ocfs2_trim_fs to support trimming freed clusters in the\nvolume. A range will be given and all the freed clusters greater\nthan minlen will be discarded to the block layer.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "69a60c4d177632bd56ae567dc0a082f7119b71c2",
      "tree": "8d94c8a6ad6cd7040650763b23a0396d16e440f2",
      "parents": [
        "e2b0c215c2bd57693af69f7a430585109c02b07f"
      ],
      "author": {
        "name": "Amerigo Wang",
        "email": "amwang@redhat.com",
        "time": "Sun May 01 21:34:16 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon May 23 23:37:14 2011 -0700"
      },
      "message": "ocfs2: remove the /sys/o2cb symlink\n\nIt is obsoleted since Dec 2005.\n\nSigned-off-by: WANG Cong \u003camwang@redhat.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "e2b0c215c2bd57693af69f7a430585109c02b07f",
      "tree": "1b3197508edd4045267dfb1d71c46a3acf9ae1ec",
      "parents": [
        "d762f4383100c2a87b1a3f2d678cd3b5425655b4"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Wed Mar 02 19:32:09 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon May 23 23:37:12 2011 -0700"
      },
      "message": "ocfs2: clean up mount option about atime in ocfs2.txt\n\nAs ocfs2 supports relatime and strictatime, we need update the\nrelative document. Atime_quantum need work with strictatime, so only\nshow it in procfs when mount with strictatime.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "57d19e80f459dd845fb3cfeba8e6df8471bac142",
      "tree": "8254766715720228db3d50f1ef3c7fe003c06d65",
      "parents": [
        "ee9ec4f82049c678373a611ce20ac67fe9ad836e",
        "e64851f5a0ad6ec991f74ebb3108c35aa0323d5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 23 09:12:26 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: (39 commits)\n  b43: fix comment typo reqest -\u003e request\n  Haavard Skinnemoen has left Atmel\n  cris: typo in mach-fs Makefile\n  Kconfig: fix copy/paste-ism for dell-wmi-aio driver\n  doc: timers-howto: fix a typo (\"unsgined\")\n  perf: Only include annotate.h once in tools/perf/util/ui/browsers/annotate.c\n  md, raid5: Fix spelling error in comment (\u0027Ofcourse\u0027 --\u003e \u0027Of course\u0027).\n  treewide: fix a few typos in comments\n  regulator: change debug statement be consistent with the style of the rest\n  Revert \"arm: mach-u300/gpio: Fix mem_region resource size miscalculations\"\n  audit: acquire creds selectively to reduce atomic op overhead\n  rtlwifi: don\u0027t touch with treewide double semicolon removal\n  treewide: cleanup continuations and remove logging message whitespace\n  ath9k_hw: don\u0027t touch with treewide double semicolon removal\n  include/linux/leds-regulator.h: fix syntax in example code\n  tty: fix typo in descripton of tty_termios_encode_baud_rate\n  xtensa: remove obsolete BKL kernel option from defconfig\n  m68k: fix comment typo \u0027occcured\u0027\n  arch:Kconfig.locks Remove unused config option.\n  treewide: remove extra semicolons\n  ...\n"
    },
    {
      "commit": "df016c665b10ae80d8db67ec8103b50c5c234e5c",
      "tree": "84d2737f5c7ce101aefb98a0b1b3ae1c761cde5e",
      "parents": [
        "10b3dd76117a327557b8cb898b41c18afd08dc86"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed May 04 10:28:07 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Fri May 13 11:27:30 2011 -0700"
      },
      "message": "ocfs2/dlm: Target node death during resource migration leads to thread spin\n\nDuring resource migration, if the target node were to die, the thread doing\nthe migration spins until the target node is not removed from the domain map.\nThis patch slows the spin by making the thread wait for the recovery to kick in.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    }
  ],
  "next": "10b3dd76117a327557b8cb898b41c18afd08dc86"
}
