)]}'
{
  "log": [
    {
      "commit": "342827d7d19cb52b562bb3efeb4d4b672d008c35",
      "tree": "92b2155e8febaf9a9e5caad01f5929d9f63bcd11",
      "parents": [
        "0794f569ec307dc25bbb12456ef75aa71f72f744"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 17 22:03:58 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:49 2012 -0400"
      },
      "message": "ocfs2: fix leaks on failure exits in module_init\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "be0d93f0aa5682a24a2a9ec0dd26fffaad608cce",
      "tree": "fc35e184e39ffe630dfa62e881cb8dbd5d6db22c",
      "parents": [
        "f56b0fbc6477e50303a503ee1453ed94e20f154a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 12 21:46:49 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:34 2012 -0400"
      },
      "message": "... and the same failure exits cleanup for ocfs2\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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": "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": "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": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "03e4970c10151c5fb25ddd7e9a142d63c6a8d058",
      "tree": "393447b9d0a6ebc64689d6e793e80ad549b97e35",
      "parents": [
        "1788c208aab15f9d9d1d24cff0d0c64b5c73bbee",
        "272b62c1f0f6f742046e45b50b6fec98860208a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 13:03:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 13:03:31 2011 -0700"
      },
      "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: (39 commits)\n  Treat writes as new when holes span across page boundaries\n  fs,ocfs2: Move o2net_get_func_run_time under CONFIG_OCFS2_FS_STATS.\n  ocfs2/dlm: Move kmalloc() outside the spinlock\n  ocfs2: Make the left masklogs compat.\n  ocfs2: Remove masklog ML_AIO.\n  ocfs2: Remove masklog ML_UPTODATE.\n  ocfs2: Remove masklog ML_BH_IO.\n  ocfs2: Remove masklog ML_JOURNAL.\n  ocfs2: Remove masklog ML_EXPORT.\n  ocfs2: Remove masklog ML_DCACHE.\n  ocfs2: Remove masklog ML_NAMEI.\n  ocfs2: Remove mlog(0) from fs/ocfs2/dir.c\n  ocfs2: remove NAMEI from symlink.c\n  ocfs2: Remove masklog ML_QUOTA.\n  ocfs2: Remove mlog(0) from quota_local.c.\n  ocfs2: Remove masklog ML_RESERVATIONS.\n  ocfs2: Remove masklog ML_XATTR.\n  ocfs2: Remove masklog ML_SUPER.\n  ocfs2: Remove mlog(0) from fs/ocfs2/heartbeat.c\n  ocfs2: Remove mlog(0) from fs/ocfs2/slot_map.c\n  ...\n\nFix up trivial conflict in fs/ocfs2/super.c\n"
    },
    {
      "commit": "bd2895eeade5f11f3e5906283c630bbdb4b57454",
      "tree": "4d98f4fcd80c7d062afce28823d08aee53e66f82",
      "parents": [
        "016aa2ed1cc9cf704cf76d8df07751b6daa9750f",
        "24d51add7438f9696a7205927bf9de3c5c787a58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 16 08:20:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-2.6.39\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: fix build failure introduced by s/freezeable/freezable/\n  workqueue: add system_freezeable_wq\n  rds/ib: use system_wq instead of rds_ib_fmr_wq\n  net/9p: replace p9_poll_task with a work\n  net/9p: use system_wq instead of p9_mux_wq\n  xfs: convert to alloc_workqueue()\n  reiserfs: make commit_wq use the default concurrency level\n  ocfs2: use system_wq instead of ocfs2_quota_wq\n  ext4: convert to alloc_workqueue()\n  scsi/scsi_tgt_lib: scsi_tgtd isn\u0027t used in memory reclaim path\n  scsi/be2iscsi,qla2xxx: convert to alloc_workqueue()\n  misc/iwmc3200top: use system_wq instead of dedicated workqueues\n  i2o: use alloc_workqueue() instead of create_workqueue()\n  acpi: kacpi*_wq don\u0027t need WQ_MEM_RECLAIM\n  fs/aio: aio_wq isn\u0027t used in memory reclaim path\n  input/tps6507x-ts: use system_wq instead of dedicated workqueue\n  cpufreq: use system_wq instead of dedicated workqueues\n  wireless/ipw2x00: use system_wq instead of dedicated workqueues\n  arm/omap: use system_wq in mailbox\n  workqueue: use WQ_MEM_RECLAIM instead of WQ_RESCUER\n"
    },
    {
      "commit": "32a42d392bf9b8f90f41434ccb3605e958b16251",
      "tree": "56c8db7307fd74340635817d692a0fcddb5eece2",
      "parents": [
        "b5770f98b00e94dd573e3438427de09733fe2039"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed Feb 23 21:29:08 2011 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Wed Feb 23 21:29:08 2011 +0800"
      },
      "message": "ocfs2: Remove masklog ML_SUPER.\n\nRemove mlog(0) from fs/ocfs2/super.c and the masklog SUPER.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\n"
    },
    {
      "commit": "80a9a84da381087ed89f5fdfc40a513cf9768ac4",
      "tree": "24dfa8596cbe21bd8f8a46a237a9d998913688a2",
      "parents": [
        "c1e8d35ef5ffb393b94a192034b5e3541e005d75"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Mon Feb 21 11:13:14 2011 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Feb 21 11:13:14 2011 +0800"
      },
      "message": "ocfs2: Add ocfs2_trace.h.\n\nAbout one year ago, Wengang Wang tried some first steps\nto add tracepoints to ocfs2. Hiss original patch is here:\nhttp://oss.oracle.com/pipermail/ocfs2-devel/2009-November/005512.html\n\nBut as Steven Rostedt indicated in his article\nhttp://lwn.net/Articles/383362/, we\u0027d better have our trace\nfiles resides in fs/ocfs2, so I rewrited the patch using the\nmethod Steven mentioned in that article.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\n"
    },
    {
      "commit": "c1e8d35ef5ffb393b94a192034b5e3541e005d75",
      "tree": "b9a7f089acd3408c2835a3dfd6aa7bb0407587b3",
      "parents": [
        "ef6b689b63b9f5227ccee6f16dd9ee3faf58a464"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Mar 07 16:43:21 2011 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Mar 07 16:43:21 2011 +0800"
      },
      "message": "ocfs2: Remove EXIT from masklog.\n\nmlog_exit is used to record the exit status of a function.\nBut because it is added in so many functions, if we enable it,\nthe system logs get filled up quickly and cause too much I/O.\nSo actually no one can open it for a production system or even\nfor a test.\n\nThis patch just try to remove it or change it. So:\n1. if all the error paths already use mlog_errno, it is just removed.\n   Otherwise, it will be replaced by mlog_errno.\n2. if it is used to print some return value, it is replaced with\n   mlog(0,...).\nmlog_exit_ptr is changed to mlog(0.\nAll those mlog(0,...) will be replaced with trace events later.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\n"
    },
    {
      "commit": "ef6b689b63b9f5227ccee6f16dd9ee3faf58a464",
      "tree": "ebe3416fcc221e152f2625e8e8794e92e3d8c979",
      "parents": [
        "422e6c4bc4b48c15b3cb57a1ca71431abfc57e54"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Feb 21 11:10:44 2011 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Feb 21 11:10:44 2011 +0800"
      },
      "message": "ocfs2: Remove ENTRY from masklog.\n\nENTRY is used to record the entry of a function.\nBut because it is added in so many functions, if we enable it,\nthe system logs get filled up quickly and cause too much I/O.\nSo actually no one can open it for a production system or even\nfor a test.\n\nSo for mlog_entry_void, we just remove it.\nfor mlog_entry(...), we replace it with mlog(0,...), and they\nwill be replace by trace event later.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\n"
    },
    {
      "commit": "52c303c56c3638944b5f733e3961dc58eb8c7270",
      "tree": "d709069b626580ce7632f9377dd71950f38d5f28",
      "parents": [
        "acf3bb007e5636ef4c17505affb0974175108553"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 31 11:31:04 2011 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Sun Feb 20 02:36:28 2011 -0800"
      },
      "message": "ocfs2: Check heartbeat mode for kernel stacks only\n\nCommit 2c442719e90a44a6982c033d69df4aae4b167cfa added some checks for proper\nheartbeat mode when the o2cb stack is running.  Unfortunately, it didn\u0027t\ntake into account that a userpsace stack could be running. Fix this by only\ndoing the check if o2cb is in use. This patch allows userspace stacks to\nmount the fs again.\n\nCc: stable@kernel.org\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "316873c958eee302952edcadb8dc72d6d3d19d3c",
      "tree": "9d9194ca6df360f6df1cfd6de13ab6e1e36d6501",
      "parents": [
        "fd89d5f2030ac83324330bfd0bc73abf1beadaa6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 01 11:42:42 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 01 11:42:42 2011 +0100"
      },
      "message": "ocfs2: use system_wq instead of ocfs2_quota_wq\n\nocfs2_quota_wq is not depended upon during memory reclaim and, with\ncmwq, there\u0027s no reason to use a dedicated workqueue.  Drop\nocfs2_quota_wq and use system_wq instead.  dqi_sync_work is already\nsync canceled on quota disable and no further synchronization is\nnecessary.\n\nThis change makes ocfs2_quota_setup/shutdown() noops.  Both functions\nremoved.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "4843456c5c341eb57f80f9224362a22665d14107",
      "tree": "5656b405a8b1d2596e8eb748b953ee677a261e3c",
      "parents": [
        "2b1caf6ed7b888c95a1909d343799672731651a5",
        "f00c9e44ad1a9660fe8cd3ca15b6cd9497172eab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 21 07:33:37 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 21 07:33:37 2011 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  quota: Fix deadlock during path resolution\n"
    },
    {
      "commit": "ba87167c06ed0049260d9ca36405c0f8af609e07",
      "tree": "df31ff885587f6ad0751b60ea067ce6d51d45c2f",
      "parents": [
        "41ced6dcf3dc6b901716fda0dc8de3536da4d39b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 18 12:10:00 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:02:46 2011 -0500"
      },
      "message": "switch ocfs2, close races\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f00c9e44ad1a9660fe8cd3ca15b6cd9497172eab",
      "tree": "cbb47ae0d8aba9d8b3c44714b000156715cdf969",
      "parents": [
        "4162cf64973df51fc885825bc9ca4d055891c49f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 15 17:38:58 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 12 19:14:55 2011 +0100"
      },
      "message": "quota: Fix deadlock during path resolution\n\nAs Al Viro pointed out path resolution during Q_QUOTAON calls to quotactl\nis prone to deadlocks. We hold s_umount semaphore for reading during the\npath resolution and resolution itself may need to acquire the semaphore\nfor writing when e. g. autofs mountpoint is passed.\n\nSolve the problem by performing the resolution before we get hold of the\nsuperblock (and thus s_umount semaphore). The whole thing is complicated\nby the fact that some filesystems (OCFS2) ignore the path argument. So to\ndistinguish between filesystem which want the path and which do not we\nintroduce new .quota_on_meta callback which does not get the path. OCFS2\nthen uses this callback instead of old .quota_on.\n\nCC: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCC: Christoph Hellwig \u003chch@lst.de\u003e\nCC: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCC: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "152a08366671080f27b32e0c411ad620c5f88b57",
      "tree": "d13d16028f74839c678bce355ba8aac75d939fa8",
      "parents": [
        "c96e41e92b4aaf11e1f9775ecf0d1c8cbff829ed"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 00:46:55 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:13 2010 -0400"
      },
      "message": "new helper: mount_bdev()\n\n... and switch of the obvious get_sb_bdev() users to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
      "tree": "3bb53b7806c1baba6cc24b91724a9264cceccd39",
      "parents": [
        "c37927d4359e81b85de644f8fb08878717cf5f3f",
        "6d7bccc2215c37205ede6c9cf84db64e7c4f9443"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:01 2010 -0700"
      },
      "message": "Merge branch \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027vfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: (30 commits)\n  BKL: remove BKL from freevxfs\n  BKL: remove BKL from qnx4\n  autofs4: Only declare function when CONFIG_COMPAT is defined\n  autofs: Only declare function when CONFIG_COMPAT is defined\n  ncpfs: Lock socket in ncpfs while setting its callbacks\n  fs/locks.c: prepare for BKL removal\n  BKL: Remove BKL from ncpfs\n  BKL: Remove BKL from OCFS2\n  BKL: Remove BKL from squashfs\n  BKL: Remove BKL from jffs2\n  BKL: Remove BKL from ecryptfs\n  BKL: Remove BKL from afs\n  BKL: Remove BKL from USB gadgetfs\n  BKL: Remove BKL from autofs4\n  BKL: Remove BKL from isofs\n  BKL: Remove BKL from fat\n  BKL: Remove BKL from ext2 filesystem\n  BKL: Remove BKL from do_new_mount()\n  BKL: Remove BKL from cgroup\n  BKL: Remove BKL from NTFS\n  ...\n"
    },
    {
      "commit": "fc3718918f13ad72827d62d36ea0f5fb55090644",
      "tree": "4f9551256e02d08be37bab137f3d94182a67504c",
      "parents": [
        "7bdb0d18bfd381cc5491eb95973ec5604b356c7e",
        "d4396eafe402b710a8535137b3bf2abe6c059a15"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 15 13:03:09 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 15 13:03:09 2010 -0700"
      },
      "message": "Merge branch \u0027globalheartbeat-2\u0027 of git://oss.oracle.com/git/smushran/linux-2.6 into ocfs2-merge-window\n\nConflicts:\n\tfs/ocfs2/ocfs2.h\n"
    },
    {
      "commit": "7bdb0d18bfd381cc5491eb95973ec5604b356c7e",
      "tree": "1abe07df935a336eeac5c7705dc9b59341b47b0a",
      "parents": [
        "75d9bbc73804285020aa4d99bd2a9600edea8945"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Mon Oct 11 16:46:39 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 11 14:14:55 2010 -0700"
      },
      "message": "ocfs2: Add a mount option \"coherency\u003d*\" to handle cluster coherency for O_DIRECT writes.\n\nCurrently, the default behavior of O_DIRECT writes was allowing\nconcurrent writing among nodes to the same file, with no cluster\ncoherency guaranteed (no EX lock held).  This can leave stale data in\nthe cache for buffered reads on other nodes.\n\nThe new mount option introduce a chance to choose two different\nbehaviors for O_DIRECT writes:\n\n    * coherency\u003dfull, as the default value, will disallow\n                      concurrent O_DIRECT writes by taking\n                      EX locks.\n\n    * coherency\u003dbuffered, allow concurrent O_DIRECT writes\n                          without EX lock among nodes, which\n                          gains high performance at risk of\n                          getting stale data on other nodes.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "75d9bbc73804285020aa4d99bd2a9600edea8945",
      "tree": "02b197462fb0c102b9ccb57266810ebf375a028f",
      "parents": [
        "f30d44f3e54a94e037da7a71d714b585dab28d9e"
      ],
      "author": {
        "name": "Goldwyn Rodrigues",
        "email": "rgoldwyn@gmail.com",
        "time": "Mon Oct 11 12:57:09 2010 -0500"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Oct 11 13:56:32 2010 -0700"
      },
      "message": "Initialize max_slots early\n\nFunctions such as ocfs2_recovery_init() make use of osb-\u003emax_slots.\nInitialize osb-\u003emax_slots early so the functions may use the correct\nvalue.\n\nSigned-off-by: Goldwyn Rodrigues \u003crgoldwyn@suse.de\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "2c442719e90a44a6982c033d69df4aae4b167cfa",
      "tree": "33719bdeeab9dc0fcb5898ca673aaa248b639dbb",
      "parents": [
        "98f486f23bc5b6a6fa90e1a0707b7e9fe0e7f3e4"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Oct 07 15:23:50 2010 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Oct 07 15:23:50 2010 -0700"
      },
      "message": "\nocfs2: Add support for heartbeat\u003dglobal mount option\n\nAdds support for heartbeat\u003dglobal mount option. It ensures that the heartbeat\nmode passed matches the one enabled on disk.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "98f486f23bc5b6a6fa90e1a0707b7e9fe0e7f3e4",
      "tree": "3998ce4a9c8871299934f7b1b305867ea9d4ac40",
      "parents": [
        "54b5187b5a1ad6573ade8b18e065dda92501fc52"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sat Oct 09 10:24:46 2010 -0700"
      },
      "committer": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Sat Oct 09 10:24:46 2010 -0700"
      },
      "message": "\nocfs2: Add an incompat feature flag OCFS2_FEATURE_INCOMPAT_CLUSTERINFO\n\nOCFS2_FEATURE_INCOMPAT_CLUSTERINFO allows us to use sb-\u003es_cluster_info for\nboth userspace and o2cb cluster stacks. It also allows us to extend cluster\ninfo to include stack flags.\n\nThis patch also adds stackflags to sb-\u003es_clusterinfo. It also introduces a\nclusterinfo flag OCFS2_CLUSTER_O2CB_GLOBAL_HEARTBEAT to denote the enabled\nglobal heartbeat mode.\n\nThis incompat flag can be set/cleared using tunefs.ocfs2 --fs-features. The\nclusterinfo flag is set/cleared using tunefs.ocfs2 --update-cluster-stack.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\n"
    },
    {
      "commit": "60056794127a25d641465b706e8828186f7a2e1f",
      "tree": "d325fbc91d9eb5f1373d2a6c90dfe5bd34c4cc7d",
      "parents": [
        "3dbc4b32d0b39701cbec65582e196a20889155fb"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Feb 24 13:25:33 2010 +0100"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:51 2010 +0200"
      },
      "message": "BKL: Remove BKL from OCFS2\n\nThe BKL in ocfs2/dlmfs is used in put_super, fill_super and remount_fs\nthat are all three protected by the superblocks s_umount rw_semaphore.\n\nThe use in ocfs2_control_open is evidently unrelated and the function\nis protected by ocfs2_control_lock.\n\nTherefore it is safe to remove the BKL entirely.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "db71922217a214e5c9268448e537b54fc1f301ea",
      "tree": "9c9afbf29411547891f6968e5ade29ce59d66c07",
      "parents": [
        "899611ee7d373e5eeda08e9a8632684e1ebbbf00"
      ],
      "author": {
        "name": "Jan Blunck",
        "email": "jblunck@infradead.org",
        "time": "Sun Aug 15 22:51:10 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Oct 04 21:10:10 2010 +0200"
      },
      "message": "BKL: Explicitly add BKL around get_sb/fill_super\n\nThis patch is a preparation necessary to remove the BKL from do_new_mount().\nIt explicitly adds calls to lock_kernel()/unlock_kernel() around\nget_sb/fill_super operations for filesystems that still uses the BKL.\n\nI\u0027ve read through all the code formerly covered by the BKL inside\ndo_kern_mount() and have satisfied myself that it doesn\u0027t need the BKL\nany more.\n\ndo_kern_mount() is already called without the BKL when mounting the rootfs\nand in nfsctl. do_kern_mount() calls vfs_kern_mount(), which is called\nfrom various places without BKL: simple_pin_fs(), nfs_do_clone_mount()\nthrough nfs_follow_mountpoint(), afs_mntpt_do_automount() through\nafs_mntpt_follow_link(). Both later functions are actually the filesystems\nfollow_link inode operation. vfs_kern_mount() is calling the specified\nget_sb function and lets the filesystem do its job by calling the given\nfill_super function.\n\nTherefore I think it is safe to push down the BKL from the VFS to the\nlow-level filesystems get_sb/fill_super operation.\n\n[arnd: do not add the BKL to those file systems that already\n       don\u0027t use it elsewhere]\n\nSigned-off-by: Jan Blunck \u003cjblunck@infradead.org\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "b4d693fcc5fe99ed211addb5c6a0f8398f0b266e",
      "tree": "d036160f644030afb1e91f275cd62aa79d9293b2",
      "parents": [
        "a33f13efe05192e7a805018a2ce2b2afddd04057"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 16 16:58:21 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 10 08:56:24 2010 -0700"
      },
      "message": "ocfs2: Cache system inodes of other slots.\n\nDurring orphan scan, if we are slot 0, and we are replaying\norphan_dir:0001, the general process is that for every file\nin this dir:\n1. we will iget orphan_dir:0001, since there is no inode for it.\n   we will have to create an inode and read it from the disk.\n2. do the normal work, such as delete_inode and remove it from\n   the dir if it is allowed.\n3. call iput orphan_dir:0001 when we are done. In this case,\n   since we have no dcache for this inode, i_count will\n   reach 0, and VFS will have to call clear_inode and in\n   ocfs2_clear_inode we will checkpoint the inode which will let\n   ocfs2_cmt and journald begin to work.\n4. We loop back to 1 for the next file.\n\nSo you see, actually for every deleted file, we have to read the\norphan dir from the disk and checkpoint the journal. It is very\ntime consuming and cause a lot of journal checkpoint I/O.\nA better solution is that we can have another reference for these\ninodes in ocfs2_super. So if there is no other race among\nnodes(which will let dlmglue to checkpoint the inode), for step 3,\nclear_inode won\u0027t be called and for step 1, we may only need to\nread the inode for the 1st time. This is a big win for us.\n\nSo this patch will try to cache system inodes of other slots so\nthat we will have one more reference for these inodes and avoid\nthe extra inode read and journal checkpoint.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "3bdb8efd94a73bb137e3315cd831cbc874052b4b",
      "tree": "ab9d273ca7a066fbb36884a703016c0eaaabe2c7",
      "parents": [
        "1113e1b504f6e8d4364c0b73c9097828067d4617"
      ],
      "author": {
        "name": "Patrick J. LoPresti",
        "email": "lopresti@gmail.com",
        "time": "Thu Jul 22 15:05:57 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 10 08:42:10 2010 -0700"
      },
      "message": "OCFS2: Allow huge (\u003e 16 TiB) volumes to mount\n\nThe OCFS2 developers have already done all of the hard work to allow\nvolumes larger than 16 TiB.  But there is still a \"sanity check\" in\nfs/ocfs2/super.c that prevents the mounting of such volumes, even when\nthe cluster size and journal options would allow it.\n\nThis patch replaces that sanity check with a more sophisticated one to\nmount a huge volume provided that (a) it is addressable by the raw\nword/address size of the system (borrowing a test from ext4); (b) the\nvolume is using JBD2; and (c) the JBD2_FEATURE_INCOMPAT_64BIT flag is\nset on the journal.\n\nI factored out the sanity check into its own function.  I also moved it\nfrom ocfs2_initialize_super() down to ocfs2_check_volume(); any earlier,\nand the journal will not have been initialized yet.\n\nThis patch is one of a pair, and it depends on the other (\"JBD2: Allow\nfeature checks before journal recovery\").\n\nI have tested this patch on small volumes, huge volumes, and huge\nvolumes without 64-bit block support in the journal.  All of them appear\nto work or to fail gracefully, as appropriate.\n\nSigned-off-by: Patrick LoPresti \u003clopresti@gmail.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "066d92dcbfa5842d98f6c4c671220cef50a9720f",
      "tree": "0eb8f17c4ce6ff2a016e40ee6438881b1e61b86e",
      "parents": [
        "94ee8494ac84606f06d522a2c016d40aabffb378"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 08 21:28:10 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:21 2010 -0400"
      },
      "message": "convert ocfs2 to -\u003eevict_inode()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f1bbbb6912662b9f6070c5bfc4ca9eb1f06a9d5b",
      "tree": "c2c130a74be25b0b2dff992e1a195e2728bdaadd",
      "parents": [
        "fd0961ff67727482bb20ca7e8ea97b83e9de2ddb",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "421f91d21ad6f799dc7b489bb33cc560ccc56f98",
      "tree": "aaf9f6385233fdf9277e634603156c89ede7f770",
      "parents": [
        "65155b3708137fabee865dc4da822763c0c41208"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Jun 11 12:17:00 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:05:05 2010 +0200"
      },
      "message": "fix typos concerning \"initiali[zs]e\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "287a80958cf63fc5c68d5bf6e89a3669dd66234a",
      "tree": "8e6883881709ffbbe3b1d6cb7a5b4dcef3428380",
      "parents": [
        "123e9caf1e85008ab7eb5f6cd58c44f9a5d73b2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:45 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:10:17 2010 +0200"
      },
      "message": "quota: rename default quotactl methods to dquot_\n\nFollow the dquot_* style used elsewhere in dquot.c.\n\n[Jan Kara: Fixed up missing conversion of ext2]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "307ae18a56e5b706056a2050d52e8cc01b5171c0",
      "tree": "c4efc57bb8f0fd1d2aa9e416d81c0c7ba87aaf22",
      "parents": [
        "e0ccfd959cd8907bcb66cc2042e0f4fd7fcbff2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:43 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:09:12 2010 +0200"
      },
      "message": "quota: drop remount argument to -\u003equota_on and -\u003equota_off\n\nRemount handling has fully moved into the filesystem, so all this is\nsuperflous now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0f0dd62fddcbd0f6830ed8ef3d3426ccc46b9250",
      "tree": "295ac31b109f78873cb191867603943d8562ead0",
      "parents": [
        "c79d967de3741ceb60c5bbbf1b6f97eab9a89838"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:41 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:06:40 2010 +0200"
      },
      "message": "quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers\n\nInstead of having wrappers in the VFS namespace export the dquot_suspend\nand dquot_resume helpers directly.  Also rename vfs_quota_disable to\ndquot_disable while we\u0027re at it.\n\n[Jan Kara: Moved dquot_suspend to quotaops.h and made it inline]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "eea7feb072f5914ecafa95b3d83be0c229244d90",
      "tree": "c9179933bd14f11f883448bd133876f907c3f50c",
      "parents": [
        "f4b87dee923342505e1ddba8d34ce9de33e75050"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 22:14:53 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:06:39 2010 +0200"
      },
      "message": "ocfs2: Fix use after free on remount read-only\n\nWe also have to cancel quota syncing thread on remount read only because\nat that moment quota is being turned off. Otherwise quota syncing thread\nwill try to access already freed quota structures.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c06bcbfa1ed8daaeb2a262f372b411207891e229",
      "tree": "db734e409643108ea4b5df28bf18bcfac654eaca",
      "parents": [
        "52a9ee281cfb26fffce1d6c409fb4b1f4aa8a766"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 22:14:53 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:48 2010 +0200"
      },
      "message": "ocfs2: Fix lock inversion in quotas during umount\n\nWe cannot cancel delayed work from ocfs2_local_free_info because that is called\nwith dqonoff_mutex held and the work it cancels requires dqonoff_mutex to\nfinish. Cancel the work before acquiring dqonoff_mutex.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "41841b0bcea8af7f3bff8b2a23d542b94d9c1bb1",
      "tree": "89eddf2dffadbbd13939f94eb8cd904a26279390",
      "parents": [
        "316ce2ba8e74a7bb9153b9f93adc883cb1ceb9fd",
        "1a934c3e57594588c373aea858e4593cdfcba4f4"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue May 18 16:40:42 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue May 18 16:40:42 2010 -0700"
      },
      "message": "Merge branch \u0027discontig-bg\u0027 of git://oss.oracle.com/git/tma/linux-2.6 into ocfs2-merge-window\n"
    },
    {
      "commit": "e4b963f10e9026c83419b5c25b93a0350413cf16",
      "tree": "d162595c9f79626d040cb28c84e53fd8b7fe50ff",
      "parents": [
        "0467ae954d1843de65e7cf8f706f88fe65cd8418"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 02 17:17:36 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon May 10 11:50:10 2010 -0700"
      },
      "message": "ocfs2: Wrap signal blocking in void functions.\n\nocfs2 sometimes needs to block signals around dlm operations, but it\ncurrently does it with sigprocmask().  Even worse, it\u0027s checking the\nerror code of sigprocmask().  The in-kernel sigprocmask() can only error\nif you get the SIG_* argument wrong.  We don\u0027t.\n\nWrap the sigprocmask() calls with ocfs2_[un]block_signals().  These\nfunctions are void, but they will BUG() if somehow sigprocmask() returns\nan error.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "4b37fcb7d41ce3b9264b9562d6ffd62db9294bd1",
      "tree": "0a171c2d8882fa64a5391f8725e2c3b4382b2d59",
      "parents": [
        "5c80d4c9e5489d5930412add87501702fe5f93fb"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Apr 13 18:00:31 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:08 2010 -0700"
      },
      "message": "ocfs2: Make nointr a default mount option\n\nOCFS2 has never really supported intr. This patch acknowledges this reality\nand makes nointr the default mount option. In a later patch, we intend to\nsupport intr.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "83f92318fa33cc084e14e64dc903e605f75884c1",
      "tree": "c7466c64019fb050c69cab27b4388e3a86d58b1a",
      "parents": [
        "b07f8f24dfe54da0f074b78949044842e8df881f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Apr 05 18:17:16 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:07 2010 -0700"
      },
      "message": "ocfs2: Add dir_resv_level mount option\n\nThe default behavior for directory reservations stays the same, but we add a\nmount option so people can tweak the size of directory reservations\naccording to their workloads.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6b82021b9e91cd689fdffadbcdb9a42597bbe764",
      "tree": "ac4235e792e74a2e60a41e95d62965b7ed4b3232",
      "parents": [
        "73c8a80003d13be54e2309865030404441075182"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Apr 05 18:17:14 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:07 2010 -0700"
      },
      "message": "ocfs2: increase the default size of local alloc windows\n\nI have observed that the current size of 8M gives us pretty poor\nfragmentation on multi-threaded workloads which do lots of writes.\n\nGenerally, I can increase the size of local alloc windows and observe a\nmarked decrease in fragmentation, even up and beyond window sizes of 512\nmegabytes. This makes sense for a couple reasons - larger local alloc means\nmore room for reservation windows. On multi-node workloads the larger local\nalloc helps as well because we don\u0027t have to do window slides as often.\n\nAlso, I removed the OCFS2_DEFAULT_LOCAL_ALLOC_SIZE constant as it is no\nlonger used and the comment above it was out of date.\n\nTo test fragmentation, I used a workload which launched 4 threads that did\n4k writes into a series of about 140 alternating files.\n\nWith resv_level\u003d2, and a 4k/4k file system I observed the following average\nfragmentation for various localalloc\u003d parameters:\n\nlocalalloc\u003d\tavg. fragmentation\n\t8\t\t48\n\t32\t\t16\n\t64\t\t10\n\t120\t\t7\n\nOn larger cluster sizes, the difference is more dramatic.\n\nThe new default size top out at 256M, which we\u0027ll only get for cluster\nsizes of 32K and above.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "73c8a80003d13be54e2309865030404441075182",
      "tree": "9b5a47939c22838133f46ea6d207254aa68d177b",
      "parents": [
        "a57c8fd2ad238258cc983049008aea5f985804b2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Apr 05 18:17:13 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:06 2010 -0700"
      },
      "message": "ocfs2: clean up localalloc mount option size parsing\n\nThis patch pulls the local alloc sizing code into localalloc.c and provides\na callout to it from ocfs2_fill_super(). Behavior is essentially unchanged\nexcept that I correctly calculate the maximum local alloc size. The old code\nin ocfs2_parse_options() calculated the max size as:\n\nocfs2_local_alloc_size(sb) * 8\n\nwhich is correct, in bits. Unfortunately though the option passed in is in\nmegabytes. Ultimately, this bug made no real difference - the shrink code\nwould catch a too-large size and bring it down to something reasonable.\nStill, it\u0027s less than efficient as-is.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "4fe370afaae49c57619bb0bedb75de7e7c168308",
      "tree": "7b2752fc9616578e9e3baa659e6c724b301d26c5",
      "parents": [
        "d02f00cc057809d96c044cc72d5b9809d59f7d49"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 07 13:15:40 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:17:30 2010 -0700"
      },
      "message": "ocfs2: use allocation reservations during file write\n\nAdd a per-inode reservations structure and pass it through to the\nreservations code.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d02f00cc057809d96c044cc72d5b9809d59f7d49",
      "tree": "44a6d81ecf9fb4b5aa91c0501a8da2ee36890a38",
      "parents": [
        "ec20cec7a351584ca6c70ead012e73d61f9a8e04"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 07 13:10:48 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:17:30 2010 -0700"
      },
      "message": "ocfs2: allocation reservations\n\nThis patch improves Ocfs2 allocation policy by allowing an inode to\nreserve a portion of the local alloc bitmap for itself. The reserved\nportion (allocation window) is advisory in that other allocation\nwindows might steal it if the local alloc bitmap becomes\nfull. Otherwise, the reservations are honored and guaranteed to be\nfree. When the local alloc window is moved to a different portion of\nthe bitmap, existing reservations are discarded.\n\nReservation windows are represented internally by a red-black\ntree. Within that tree, each node represents the reservation window of\none inode. An LRU of active reservations is also maintained. When new\ndata is written, we allocate it from the inodes window. When all bits\nin a window are exhausted, we allocate a new one as close to the\nprevious one as possible. Should we not find free space, an existing\nreservation is pulled off the LRU and cannibalized.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8571882c21e5073b2f96147ec4ff9b7042339e1b",
      "tree": "1f7925e293e656e5c1c6cd2c2876ea977a7277e5",
      "parents": [
        "4711954eaa8d30f653fda238cecf919f1ae40d6f"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Apr 13 14:38:06 2010 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Apr 13 14:38:06 2010 +0800"
      },
      "message": "ocfs2: ocfs2_group_bitmap_size has to handle old volume.\n\nocfs2_group_bitmap_size has to handle the case when the\nvolume don\u0027t have discontiguous block group support. So\npass the feature_incompat in and check it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "4cbe4249d6586d5d88ef271e07302407a14c8443",
      "tree": "907eb8e61e3cf8ababfe1890f2c52ee82eb0e227",
      "parents": [
        "0467ae954d1843de65e7cf8f706f88fe65cd8418"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Apr 13 14:26:12 2010 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Apr 13 14:26:12 2010 +0800"
      },
      "message": "ocfs2: Define data structures for discontiguous block groups.\n\nDefines the OCFS2_FEATURE_INCOMPAT_DISCONTIG_BG feature bit and modifies\nstruct ocfs2_group_desc for the feature.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "b89c54282db0c8634a2d2dc200f196d571750ce5",
      "tree": "fbb34a01b3f0b2f4af6aae9ede9f3f21ef2a378d",
      "parents": [
        "a5f28ae4df291d81d9d23066f88c55ca45e388d3"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Jan 25 14:11:06 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 26 15:41:07 2010 -0800"
      },
      "message": "ocfs2: add extent block stealing for ocfs2 v5\n\nThis patch add extent block (metadata) stealing mechanism for\nextent allocation. This mechanism is same as the inode stealing.\nif no room in slot specific extent_alloc, we will try to\nallocate extent block from the next slot.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nAcked-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "2bd632165c1f783888bd4cbed95f2f304829159b",
      "tree": "a4938fece1a47d22b1f8ca652a8218736b27aa3a",
      "parents": [
        "e5f2cb2b1ad05473fffe6970618997b906f23873"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Mon Jan 25 16:57:38 2010 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jan 25 19:20:51 2010 -0800"
      },
      "message": "ocfs2/trivial: Remove trailing whitespaces\n\nPatch removes trailing whitespaces.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "45e62974fb110da926e2a6c5b357c15639bdc233",
      "tree": "0c2094de939e69fa3e44854c71aa45d7ec137895",
      "parents": [
        "756fe285070feb254a770cefc5640fe005ea9c27",
        "8ff6af881deccca4f88e03f2fdadb1aac42e9489"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 24 12:59:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 24 12:59:11 2009 -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:\n  ocfs2/trivial: Use le16_to_cpu for a disk value in xattr.c\n  ocfs2/trivial: Use proper mask for 2 places in hearbeat.c\n  Ocfs2: Let ocfs2 support fiemap for symlink and fast symlink.\n  Ocfs2: Should ocfs2 support fiemap for S_IFDIR inode?\n  ocfs2: Use FIEMAP_EXTENT_SHARED\n  fiemap: Add new extent flag FIEMAP_EXTENT_SHARED\n  ocfs2: replace u8 by __u8 in ocfs2_fs.h\n  ocfs2: explicit declare uninitialized var in user_cluster_connect()\n  ocfs2-devel: remove redundant OCFS2_MOUNT_POSIX_ACL check in ocfs2_get_acl_nolock()\n  ocfs2: return -EAGAIN instead of EAGAIN in dlm\n  ocfs2/cluster: Make fence method configurable - v2\n  ocfs2: Set MS_POSIXACL on remount\n  ocfs2: Make acl use the default\n  ocfs2: Always include ACL support\n"
    },
    {
      "commit": "837711f862bb71ac263837a0f0714dd8cc4ef7ea",
      "tree": "888b92d23a7563ef1d5a866ac46f2d48a8564101",
      "parents": [
        "2f48d593b6ceb7bb63d34124ceba77d33be298cf"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coly.li@suse.de",
        "time": "Fri Jan 16 16:33:05 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 29 15:02:20 2009 -0700"
      },
      "message": "ocfs2: return f_fsid info in ocfs2_statfs()\n\nCurrently the f_fsid of struct kstatfs returned from ocfs2_statfs() is\nundefined (vfs layer fills in 0 as default). Since in some conditions,\nf_fsid value might be used in a (f_fsid, ino) pair to uniquely identify\na file, ocfs2 should return a unique defined f_fsid value from\nocfs2_statfs().\n\nBecause uuid_str is the same on big or litlle endian machine, it\u0027s\nendian consistent to use osb-\u003euuid_str to generate f_fsid value.\n\nSigned-off-by: Coly Li \u003ccoly.li@suse.de\u003e\nCc: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "57b09bb5e492c37c1e4273fe4e435ffd1d2ddbe0",
      "tree": "6b14d5f30d05fbda217e3cb5982e766b15064a3a",
      "parents": [
        "5297aad80cd3a3e62116e0a0b29116ccd8ae397d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 15 14:54:05 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 23:06:37 2009 -0700"
      },
      "message": "ocfs2: Set MS_POSIXACL on remount\n\nWe have to set MS_POSIXACL on remount as well. Otherwise VFS\nwould not know we started supporting ACLs after remount and\nthus ACLs would not work.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5297aad80cd3a3e62116e0a0b29116ccd8ae397d",
      "tree": "67e6893713a281ea601e73866b026a4e05230fae",
      "parents": [
        "e6aabe0cac14a495d42f629a803c5e221089bae8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 15 14:54:04 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 23:06:32 2009 -0700"
      },
      "message": "ocfs2: Make acl use the default\n\nChange acl mount options handling to match the one of XFS and BTRFS and\nhopefully it is also easier to use now. When admin does not specify any\nacl mount option, acls are enabled if and only if the filesystem has\nxattr feature enabled. If admin specifies \u0027acl\u0027 mount option, we fail\nthe mount if the filesystem does not have xattr feature and thus acls\ncannot be enabled.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "e6aabe0cac14a495d42f629a803c5e221089bae8",
      "tree": "39972946024d893ecbdcdbb30447bdb5b9fc5201",
      "parents": [
        "2f48d593b6ceb7bb63d34124ceba77d33be298cf"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 15 14:54:03 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 23:05:57 2009 -0700"
      },
      "message": "ocfs2: Always include ACL support\n\nTo become consistent with filesystems such as XFS or BTRFS, make posix\nACLs always available. This also reduces possibility of\nmisconfiguration on admin\u0027s side.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "fb5cbe9efd741b16e72133613747f76490bbecd3",
      "tree": "014ef905e4c4ff708ad7dbceef445a2e0e567757",
      "parents": [
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 22:28:24 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 22:28:24 2009 -0700"
      },
      "message": "ocfs2: Return -EINVAL when a device is not ocfs2.\n\nIn case of non-modular kernels the root filesystem is mounted by trying\nseveral filesystems. If ocfs2 was tried before the actual filesystem\ntype, the mount would fail because ocfs2_sb_probe() returns -EAGAIN\ninstead of -EINVAL.  ocfs2 will now return -EINVAL properly.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nReported-by: Laszlo Attila Toth \u003cpanther@balabit.hu\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bcd57ab61e7cabed626226a3771617981c11ce1",
      "tree": "687c0c35fb2a632cb8c56b2729f9c3873c9461bd",
      "parents": [
        "95e0d86badc410d525ea7218fd32df7bfbf9c837"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Sep 24 04:22:25 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:13:10 2009 -0700"
      },
      "message": "headers: utsname.h redux\n\n* remove asm/atomic.h inclusion from linux/utsname.h --\n   not needed after kref conversion\n * remove linux/utsname.h inclusion from files which do not need it\n\nNOTE: it looks like fs/binfmt_elf.c do not need utsname.h, however\ndue to some personality stuff it _is_ needed -- cowardly leave ELF-related\nheaders and files alone.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b64ada6b23d4a305fb3ca59b79dd38707fc53b69",
      "tree": "61bc87dc3a2549f54231261aaa544acffcd12281",
      "parents": [
        "be90a49ca22a95f184d9f32d35b5247b44032849",
        "b80474b432913f73cce8db001e9fa3104f9b79ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:29:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:29:20 2009 -0700"
      },
      "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: (85 commits)\n  ocfs2: Use buffer IO if we are appending a file.\n  ocfs2: add spinlock protection when dealing with lockres-\u003epurge.\n  dlmglue.c: add missed mlog lines\n  ocfs2: __ocfs2_abort() should not enable panic for local mounts\n  ocfs2: Add ioctl for reflink.\n  ocfs2: Enable refcount tree support.\n  ocfs2: Implement ocfs2_reflink.\n  ocfs2: Add preserve to reflink.\n  ocfs2: Create reflinked file in orphan dir.\n  ocfs2: Use proper parameter for some inode operation.\n  ocfs2: Make transaction extend more efficient.\n  ocfs2: Don\u0027t merge in 1st refcount ops of reflink.\n  ocfs2: Modify removing xattr process for refcount.\n  ocfs2: Add reflink support for xattr.\n  ocfs2: Create an xattr indexed block if needed.\n  ocfs2: Call refcount tree remove process properly.\n  ocfs2: Attach xattr clusters to refcount tree.\n  ocfs2: Abstract ocfs2 xattr tree extend rec iteration process.\n  ocfs2: Abstract the creation of xattr block.\n  ocfs2: Remove inode from ocfs2_xattr_bucket_get_name_value.\n  ...\n"
    },
    {
      "commit": "a2f2ddbf2bafdbc7e4f3bbf09439b42c8fee2747",
      "tree": "0b027ad2957530c457b2589d96c361232eabe740",
      "parents": [
        "bd50873dc725a9fa72592ecc986c58805e823051"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Aug 19 15:16:01 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 23 01:54:46 2009 -0700"
      },
      "message": "ocfs2: __ocfs2_abort() should not enable panic for local mounts\n\nIn a clustered setup, we have to panic the box on journal abort. This is\nbecause we don\u0027t have the facility to go hard readonly. With hard ro, another\nnode would detect node failure and initiate recovery.\n\nHaving said that, we shouldn\u0027t force panic if the volume is mounted locally.\nThis patch defers the handling to the mount option, errors.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "374a263e790c4de85844283c098810a92985f623",
      "tree": "a72b1f072b973723ea1cf7def27608717cf1c033",
      "parents": [
        "c732eb16bf07f9bfb7fa72b6868462471273bdbd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 24 11:13:37 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Sep 22 20:09:29 2009 -0700"
      },
      "message": "ocfs2: Add refcount tree lock mechanism.\n\nImplement locking around struct ocfs2_refcount_tree.  This protects\nall read/write operations on refcount trees.  ocfs2_refcount_tree\nhas its own lock and its own caching_info, protecting buffers among\nmultiple nodes.\n\nUser must call ocfs2_lock_refcount_tree before his operation on\nthe tree and unlock it after that.\n\nocfs2_refcount_trees are referenced by the block number of the\nrefcount tree root block, So we create an rb-tree on the ocfs2_super\nto look them up.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n\n"
    },
    {
      "commit": "0d54b217a247f39605361f867fefbb9e099a5432",
      "tree": "5af6a2cc4cbc6c327e735ac5edb642d47a1f0013",
      "parents": [
        "61e225dc341107be304fd1088146c2a5e88ff9e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: make struct super_block::s_qcop const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "292dd27ec76b96cebcef576f330ab121f59ccf05",
      "tree": "d98f4d359f610e7dad53eb5b68fdb1517a043fb3",
      "parents": [
        "66fb345ddd2d343e36692da0ff66126d7a99dc1b"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Feb 12 15:41:59 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:49 2009 -0700"
      },
      "message": "ocfs2: move ip_created_trans to struct ocfs2_caching_info\n\nSimilar ip_last_trans, ip_created_trans tracks the creation of a journal\nmanaged inode.  This specifically tracks what transaction created the\ninode.  This is so the code can know if the inode has ever been written\nto disk.\n\nThis behavior is desirable for any journal managed object.  We move it\nto struct ocfs2_caching_info as ci_created_trans so that any object\nusing ocfs2_caching_info can rely on this behavior.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "66fb345ddd2d343e36692da0ff66126d7a99dc1b",
      "tree": "7e53f68bbf4c910cd81be7e39378d9552bbce4c3",
      "parents": [
        "8cb471e8f82506937fe5e2e9fb0bf90f6b1f1170"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Feb 12 15:24:40 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:49 2009 -0700"
      },
      "message": "ocfs2: move ip_last_trans to struct ocfs2_caching_info\n\nWe have the read side of metadata caching isolated to struct\nocfs2_caching_info, now we need the write side.  This means the journal\nfunctions.  The journal only does a couple of things with struct inode.\n\nThis change moves the ip_last_trans field onto struct\nocfs2_caching_info as ci_last_trans.  This field tells the journal\nwhether a pending journal flush is required.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "8cb471e8f82506937fe5e2e9fb0bf90f6b1f1170",
      "tree": "e275a8f5db101a9990ba44931cfd116123112b11",
      "parents": [
        "6e5a3d7538ad4e46a976862f593faf65750e37cc"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 20:00:41 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:48 2009 -0700"
      },
      "message": "ocfs2: Take the inode out of the metadata read/write paths.\n\nWe are really passing the inode into the ocfs2_read/write_blocks()\nfunctions to get at the metadata cache.  This commit passes the cache\ndirectly into the metadata block functions, divorcing them from the\ninode.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6e5a3d7538ad4e46a976862f593faf65750e37cc",
      "tree": "e87ce6d69bdbcce23eed0a195a7f80a59c01d3d9",
      "parents": [
        "47460d65a483529b3bc2bf6ccf461ad45f94df83"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 19:00:37 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:48 2009 -0700"
      },
      "message": "ocfs2: Change metadata caching locks to an operations structure.\n\nWe don\u0027t really want to cart around too many new fields on the\nocfs2_caching_info structure.  So let\u0027s wrap all our access of the\nparent object in a set of operations.  One pointer on caching_info, and\nmore flexibility to boot.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "47460d65a483529b3bc2bf6ccf461ad45f94df83",
      "tree": "0727cae9477749e5f2596e86253a210e79c96a83",
      "parents": [
        "8379e7c46cc48f51197dd663fc6676f47f2a1e71"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 16:05:07 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:47 2009 -0700"
      },
      "message": "ocfs2: Make the ocfs2_caching_info structure self-contained.\n\nWe want to use the ocfs2_caching_info structure in places that are not\ninodes.  To do that, it can no longer rely on referencing the inode\ndirectly.\n\nThis patch moves the flags to ocfs2_caching_info-\u003eci_flags, stores\npointers to the parent\u0027s locks on the ocfs2_caching_info, and renames\nthe constants and flags to reflect its independant state.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5fd131893793567c361ae64cbeb28a2a753bbe35",
      "tree": "962a79225308d855ee7b1d27e5c49864af78e108",
      "parents": [
        "60e2ec48665b8495360ca4a6004c5cd52beb2bc1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jul 30 17:01:53 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Aug 17 14:32:24 2009 -0700"
      },
      "message": "ocfs2: Don\u0027t oops in ocfs2_kill_sb on a failed mount\n\nIf we fail to mount the filesystem, we have to be careful not to dereference\nuninitialized structures in ocfs2_kill_sb.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "1c1d9793ff6720531c0125a28d321f283716e32f",
      "tree": "64316a07d5c0b434c852b3fdc8e4c9e42a363730",
      "parents": [
        "7669f54c55df225cbb2db939a6c9f111445ffc1c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 22 13:17:19 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 23 10:59:24 2009 -0700"
      },
      "message": "ocfs2: Fix initialization of blockcheck stats\n\nWe just set blockcheck stats to zeros but we should also\nproperly initialize the spinlock there.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "f7b1aa69be138ad9d7d3f31fa56f4c9407f56b6a",
      "tree": "3d3ca30071d9d92ff3ad5c6d522ea6c05efb3885",
      "parents": [
        "3c5e10683e684ef45614c9071847e48f633d9806"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jul 20 12:12:36 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jul 21 15:47:55 2009 -0700"
      },
      "message": "ocfs2: Fix deadlock on umount\n\nIn commit ea455f8ab68338ba69f5d3362b342c115bea8e13, we moved the dentry lock\nput process into ocfs2_wq. This causes problems during umount because ocfs2_wq\ncan drop references to inodes while they are being invalidated by\ninvalidate_inodes() causing all sorts of nasty things (invalidate_inodes()\nending in an infinite loop, \"Busy inodes after umount\" messages etc.).\n\nWe fix the problem by stopping ocfs2_wq from doing any further releasing of\ninode references on the superblock being unmounted, wait until it finishes\nthe current round of releasing and finally cleaning up all the references in\ndentry_lock_list from ocfs2_put_super().\n\nThe issue was tracked down by Tao Ma \u003ctao.ma@oracle.com\u003e.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "8b712cd58adfe6aeeb0be4ecc011dc35620719e7",
      "tree": "98a0cdc0b210392fc0fd0feb464603224c2863b1",
      "parents": [
        "44b572809581d5a10dbe35aa6bf689f32b9c5ad6"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Tue Jul 07 17:22:12 2009 -0400"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jul 08 15:34:02 2009 -0700"
      },
      "message": "ocfs2: Fixup orphan scan cleanup after failed mount\n\nIf the mount fails for any reason, ocfs2_dismount_volume calls\nocfs2_orphan_scan_stop. It requires that ocfs2_orphan_scan_init\nbe called to setup the mutex and work queues, but that doesn\u0027t\nhappen if the mount has failed and we oops accessing an uninitialized\nwork queue.\n\nThis patch splits the init and startup of the orphan scan, eliminating\nthe oops.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "cf5434e894a17bb8385997adc6d56642055a85d6",
      "tree": "60a02d312038f24ca24578ebefb47391d4a63c13",
      "parents": [
        "7b58fc21847950db8fcc6a142288b042564ffb76",
        "d246ab307d1d003c80fe279897dea22bf52b6e41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 19:36:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 19:36:02 2009 -0700"
      },
      "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:\n  ocfs2/trivial: Wrap ocfs2_sysfile_cluster_lock_key within define.\n  ocfs2: Add lockdep annotations\n  vfs: Set special lockdep map for dirs only if not set by fs\n  ocfs2: Disable orphan scanning for local and hard-ro mounts\n  ocfs2: Do not initialize lvb in ocfs2_orphan_scan_lock_res_init()\n  ocfs2: Stop orphan scan as early as possible during umount\n  ocfs2: Fix ocfs2_osb_dump()\n  ocfs2: Pin journal head before accessing jh-\u003eb_committed_data\n  ocfs2: Update atime in splice read if necessary.\n  ocfs2: Provide the ocfs2_dlm_lvb_valid() stack API.\n"
    },
    {
      "commit": "df152c241df9e9d2b9a65d37bd02961abe7f591a",
      "tree": "47e0c71919ed437db33530a200113a562b9c6b89",
      "parents": [
        "3211949f8998dde71d9fe2e063de045ece5e0473"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Mon Jun 22 11:40:07 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:24:55 2009 -0700"
      },
      "message": "ocfs2: Disable orphan scanning for local and hard-ro mounts\n\nLocal and Hard-RO mounts do not need orphan scanning.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "692684e19e317a374c18e70a44d6413e51f71c11",
      "tree": "c47da5b21e66f80458fff3da4cda72b8e0644c0f",
      "parents": [
        "c3d38840abaa45c1c5a5fabbb8ffc9a0d1a764d1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Jun 19 16:53:17 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:24:51 2009 -0700"
      },
      "message": "ocfs2: Stop orphan scan as early as possible during umount\n\nCurrently if the orphan scan fires a tick before the user issues the umount,\nthe umount will wait for the queued orphan scan tasks to complete.\n\nThis patch makes the umount stop the orphan scan as early as possible so as\nto reduce the probability of the queued tasks slowing down the umount.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "c3d38840abaa45c1c5a5fabbb8ffc9a0d1a764d1",
      "tree": "d42dca338681a53ca1bdbdfb17e932f1e4e96885",
      "parents": [
        "94e41ecfe0f202df948fdbb19a53308a58cf2184"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Jun 19 14:45:55 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:24:49 2009 -0700"
      },
      "message": "ocfs2: Fix ocfs2_osb_dump()\n\nSkip printing information that is not valid for local mounts.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "90c699a9ee4be165966d40f1837909ccb8890a68",
      "tree": "ff136ce7b73c7d7bbf5eb4241d01cb3b930d3566",
      "parents": [
        "3a02c8e8142f7f133d4c6e72bc3e1d830e6b8b9e"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "message": "block: rename CONFIG_LBD to CONFIG_LBDAF\n\nFollow-up to \"block: enable by default support for large devices\nand files on 32-bit archs\".\n\nRename CONFIG_LBD to CONFIG_LBDAF to:\n- allow update of existing [def]configs for \"default y\" change\n- reflect that it is used also for large files support nowadays\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "300df7dc89cc276377fc020704e34875d5c473b6",
      "tree": "6b280000815b0562255cecf3da1a8c9597bce702",
      "parents": [
        "661adc423d70203a56723701aaf255e16950dfdb",
        "9af0b38ff3f4f79c62dd909405b113bf7c1a23aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:11:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:11:57 2009 -0700"
      },
      "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:\n  ocfs2/net: Use wait_event() in o2net_send_message_vec()\n  ocfs2: Adjust rightmost path in ocfs2_add_branch.\n  ocfs2: fdatasync should skip unimportant metadata writeout\n  ocfs2: Remove redundant gotos in ocfs2_mount_volume()\n  ocfs2: Add statistics for the checksum and ecc operations.\n  ocfs2 patch to track delayed orphan scan timer statistics\n  ocfs2: timer to queue scan of all orphan slots\n  ocfs2: Correct ordering of ip_alloc_sem and localloc locks for directories\n  ocfs2: Fix possible deadlock in quota recovery\n  ocfs2: Fix possible deadlock with quotas in ocfs2_setattr()\n  ocfs2: Fix lock inversion in ocfs2_local_read_info()\n  ocfs2: Fix possible deadlock in ocfs2_global_read_dquot()\n  ocfs2: update comments in masklog.h\n  ocfs2: Don\u0027t printk the error when listing too many xattrs.\n"
    },
    {
      "commit": "337eb00a2c3a421999c39c94ce7e33545ee8baa7",
      "tree": "d9b780d095b638b1d8fa23841ff70347cf5daa08",
      "parents": [
        "4195f73d1329e49727bcceb028e58cb38376c2b0"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Tue May 12 15:10:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Push BKL down into -\u003eremount_fs()\n\n[xfs, btrfs, capifs, shmem don\u0027t need BKL, exempt]\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6cfd0148425e528b859b26e436b01f23f6926224",
      "tree": "60e3257053554ff198fe5825e6f12a00c3b4422a",
      "parents": [
        "a9e220f8322e2b0e0b8903fe00265461cffad3f0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:40:36 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "push BKL down into -\u003eput_super\n\nMove BKL into -\u003eput_super from the only caller.  A couple of\nfilesystems had trivial enough -\u003eput_super (only kfree and NULLing of\ns_fs_info + stuff in there) to not get any locking: coda, cramfs, efs,\nhugetlbfs, omfs, qnx4, shmem, all others got the full treatment.  Most\nof them probably don\u0027t need it, but I\u0027d rather sort that out individually.\nPreferably after all the other BKL pushdowns in that area.\n\n[AV: original used to move lock_super() down as well; these changes are\nremoved since we don\u0027t do lock_super() at all in generic_shutdown_super()\nnow]\n[AV: fuse, btrfs and xfs are known to need no damn BKL, exempt]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "94cb993f2ee99f3a9318e7b4dbb383497c4bedea",
      "tree": "71c2436a8588d253938d50e30b561dcefbb83cd7",
      "parents": [
        "b7d245de25d1f0bb75a0d04194b647762b30d3db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:44 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "ocfs2: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "06c59bb896ce23c56829f6acf667faebd51dd3b8",
      "tree": "ff2f51748ca5baddc1b03ce28ac7223815570b81",
      "parents": [
        "73be192b17e43b6dc4f492dab41d70ab5b9d2908"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue May 19 06:47:20 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:20:15 2009 -0700"
      },
      "message": "ocfs2: Remove redundant gotos in ocfs2_mount_volume()\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "73be192b17e43b6dc4f492dab41d70ab5b9d2908",
      "tree": "9482070421cda81f490036b28033d4f300a58a94",
      "parents": [
        "15633a220ffe74fc61bc8117e6a89a494011ea3d"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 06 14:57:08 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:15:36 2009 -0700"
      },
      "message": "ocfs2: Add statistics for the checksum and ecc operations.\n\nIt would be nice to know how often we get checksum failures.  Even\nbetter, how many of them we can fix with the single bit ecc.  So, we add\na statistics structure.  The structure can be installed into debugfs\nwherever the user wants.\n\nFor ocfs2, we\u0027ll put it in the superblock-specific debugfs directory and\npass it down from our higher-level functions.  The stats are only\nregistered with debugfs when the filesystem supports metadata ecc.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "15633a220ffe74fc61bc8117e6a89a494011ea3d",
      "tree": "18bf3b92b4ec3988f78c5e07b1471b8f89a2f474",
      "parents": [
        "83273932fbefb6ceef9c0b82ac4d23900728f4d9"
      ],
      "author": {
        "name": "Srinivas Eeda",
        "email": "srinivas.eeda@oracle.com",
        "time": "Wed Jun 03 17:02:56 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:14:31 2009 -0700"
      },
      "message": "ocfs2 patch to track delayed orphan scan timer statistics\n\nPatch to track delayed orphan scan timer statistics.\n\nModifies ocfs2_osb_dump to print the following:\n  Orphan Scan\u003d\u003e Local: 10  Global: 21  Last Scan: 67 seconds ago\n\nSigned-off-by: Srinivas Eeda \u003csrinivas.eeda@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "83273932fbefb6ceef9c0b82ac4d23900728f4d9",
      "tree": "7ece8471af3d2a22543542e990369aca47aa3d25",
      "parents": [
        "edd45c08499a3e9d4c25431cd2b6a9ce5f692c92"
      ],
      "author": {
        "name": "Srinivas Eeda",
        "email": "srinivas.eeda@oracle.com",
        "time": "Wed Jun 03 17:02:55 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:14:31 2009 -0700"
      },
      "message": "ocfs2: timer to queue scan of all orphan slots\n\nWhen a dentry is unlinked, the unlinking node takes an EX on the dentry lock\nbefore moving the dentry to the orphan directory. Other nodes that have\nthis dentry in cache have a PR on the same dentry lock.  When the EX is\nrequested, the other nodes flag the corresponding inode as MAYBE_ORPHANED\nduring downconvert.  The inode is finally deleted when the last node to iput\nthe inode sees that i_nlink\u003d\u003d0 and the MAYBE_ORPHANED flag is set.\n\nA problem arises if a node is forced to free dentry locks because of memory\npressure. If this happens, the node will no longer get downconvert\nnotifications for the dentries that have been unlinked on another node.\nIf it also happens that node is actively using the corresponding inode and\nhappens to be the one performing the last iput on that inode, it will fail\nto delete the inode as it will not have the MAYBE_ORPHANED flag set.\n\nThis patch fixes this shortcoming by introducing a periodic scan of the\norphan directories to delete such inodes. Care has been taken to distribute\nthe workload across the cluster so that no one node has to perform the task\nall the time.\n\nSigned-off-by: Srinivas Eeda \u003csrinivas.eeda@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1",
      "tree": "d60d15a082171c58ac811d547d51a9c3119f23e3",
      "parents": [
        "9bd7de51ee8537094656149eaf45338cadb7d7d4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Do away with the notion of hardsect_size\n\nUntil now we have had a 1:1 mapping between storage device physical\nblock size and the logical block sized used when addressing the device.\nWith SATA 4KB drives coming out that will no longer be the case.  The\nsector size will be 4KB but the logical block size will remain\n512-bytes.  Hence we need to distinguish between the physical block size\nand the logical ditto.\n\nThis patch renames hardsect_size to logical_block_size.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9140db04ef185f934acf2b1b15b3dd5e6a6bfc22",
      "tree": "354dbc0351195ae2b6ea5f7dfbf68a99307c3d69",
      "parents": [
        "1fca3a05ef2823830925dfb66711d6d920265a8d"
      ],
      "author": {
        "name": "Srinivas Eeda",
        "email": "srinivas.eeda@oracle.com",
        "time": "Fri Mar 06 14:21:46 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:26 2009 -0700"
      },
      "message": "ocfs2: recover orphans in offline slots during recovery and mount\n\nDuring recovery, a node recovers orphans in it\u0027s slot and the dead node(s). But\nif the dead nodes were holding orphans in offline slots, they will be left\nunrecovered.\n\nIf the dead node is the last one to die and is holding orphans in other slots\nand is the first one to mount, then it only recovers it\u0027s own slot, which\nleaves orphans in offline slots.\n\nThis patch queues complete_recovery to clean orphans for all offline slots\nduring mount and node recovery.\n\nSigned-off-by: Srinivas Eeda \u003csrinivas.eeda@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9b7895efac906d66d19856194e1ba61f37e231a4",
      "tree": "1ee6d2630cf3617251638170dcaceef41ddda8ec",
      "parents": [
        "4a12ca3a00a244e1fd1e673d151ea38b71e11d55"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Nov 12 16:27:44 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Add a name indexed b-tree to directory inodes\n\nThis patch makes use of Ocfs2\u0027s flexible btree code to add an additional\ntree to directory inodes. The new tree stores an array of small,\nfixed-length records in each leaf block. Each record stores a hash value,\nand pointer to a block in the traditional (unindexed) directory tree where a\ndirent with the given name hash resides. Lookup exclusively uses this tree\nto find dirents, thus providing us with constant time name lookups.\n\nSome of the hashing code was copied from ext3. Unfortunately, it has lots of\nunfixed checkpatch errors. I left that as-is so that tracking changes would\nbe easier.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "50397507e856455b3f5cb3d5c7c482209f9e46a0",
      "tree": "537d1aa6aec9108aa080a2b58f68fac767420416",
      "parents": [
        "96a6c64b5354b804b3ccfd1b31306565a01ebcb1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Dec 17 14:17:43 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Expose the file system state via debugfs\n\nThis patch creates a per mount debugfs file, fs_state, which exposes\ninformation like, cluster stack in use, states of the downconvert, recovery\nand commit threads, number of journal txns, some allocation stats, list of\nall slots, etc.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "28d57d437786eb3e44f1ca3f0f41e7cfe29c6dd4",
      "tree": "f6dfd111dac45ee7e2b366eb47a2598f46460a1e",
      "parents": [
        "4442f518269c6b3686fcbcadad22dc4475309b16"
      ],
      "author": {
        "name": "wengang wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Fri Feb 13 10:11:47 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:12 2009 -0800"
      },
      "message": "ocfs2: add IO error check in ocfs2_get_sector()\n\nCheck for IO error in ocfs2_get_sector().\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7",
      "tree": "81ab9d6d0be93e57bcb17130abed3516574b3752",
      "parents": [
        "89a907afe073b8971a83d0ad54f391542b64d327"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Feb 24 17:40:26 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: lock the metaecc process for xattr bucket\n\nFor other metadata in ocfs2, metaecc is checked in ocfs2_read_blocks\nwith io_mutex held. While for xattr bucket, it is calculated by\nthe whole buckets. So we have to add a spin_lock to prevent multiple\nprocesses calculating metaecc.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nTested-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    }
  ],
  "next": "ea455f8ab68338ba69f5d3362b342c115bea8e13"
}
