)]}'
{
  "log": [
    {
      "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": "1ed9b777f77929ae961d6f9cdf828a07200ba71c",
      "tree": "a0bb6c9e9be1f5d3d46d6cdac0a4397303e22795",
      "parents": [
        "13e434cf0cacd2f03a7f4cd077e3e995ef5ef710"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu May 06 13:59:06 2010 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu May 06 13:59:06 2010 +0800"
      },
      "message": "ocfs2: ocfs2_claim_*() don\u0027t need an ocfs2_super argument.\n\nThey all take an ocfs2_alloc_context, which has the allocation inode.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\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": "3e4218df3176657be72ad2fa199779be6c11fe4f",
      "tree": "99512a1b274e7e99af1b7fe9d388efce79399c20",
      "parents": [
        "b065556a7d1a9205403db77a318a5c5aa530e701"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Apr 06 16:46:46 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:09 2010 -0700"
      },
      "message": "ocfs2/trivial: Code cleanup for allocation reservation.\n\nTwo tiny cleanup for allocation reservation.\n1. Remove some extra codes in ocfs2_local_alloc_find_clear_bits.\n2. Remove an unuseful variables in ocfs2_find_resv_lhs.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-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": "a57c8fd2ad238258cc983049008aea5f985804b2",
      "tree": "2d9142401ca7a03df6edaefcc3fd937f2f24fc8d",
      "parents": [
        "33d5d380d667ad264675cfdb297dfc3c5b6542cc"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Mar 16 21:01:00 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:17:31 2010 -0700"
      },
      "message": "ocfs2: remove ocfs2_local_alloc_in_range()\n\nInodes are always allocated from the global bitmap now so we don\u0027t need this\nany more. Also, the existing implementation bounces reservations around\nneedlessly.\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": "ec20cec7a351584ca6c70ead012e73d61f9a8e04",
      "tree": "39af308ae07ab168313bb50ced1bb1ae7ef7e6a3",
      "parents": [
        "b4414eea0e7b9c134262c801a87e338bf675962c"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Mar 19 14:13:52 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:17:29 2010 -0700"
      },
      "message": "ocfs2: Make ocfs2_journal_dirty() void.\n\njbd[2]_journal_dirty_metadata() only returns 0.  It\u0027s been returning 0\nsince before the kernel moved to git.  There is no point in checking\nthis error.\n\nocfs2_journal_dirty() has been faithfully returning the status since the\nbeginning.  All over ocfs2, we have blocks of code checking this can\u0027t\nfail status.  In the past few years, we\u0027ve tried to avoid adding these\nchecks, because they are pointless.  But anyone who looks at our code\nassumes they are needed.\n\nFinally, ocfs2_journal_dirty() is made a void function.  All error\nchecking is removed from other files.  We\u0027ll BUG_ON() the status of\njbd2_journal_dirty_metadata() just in case they change it someday.  They\nwon\u0027t.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "b4414eea0e7b9c134262c801a87e338bf675962c",
      "tree": "09829d99527f1da69cc19074a2d3baef1195955e",
      "parents": [
        "b23179681c90a55e2a2083e1dde9f727ecffb2b7"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Mar 11 18:31:09 2010 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Mar 23 18:22:40 2010 -0700"
      },
      "message": "ocfs2: Clear undo bits when local alloc is freed\n\nWhen the local alloc file changes windows, unused bits are freed back to the\nglobal bitmap. By defnition, those bits can not be in use by any file. Also,\nthe local alloc will never have been able to allocate those bits if they\nwere part of a previous truncate. Therefore it makes sense that we should\nclear unused local alloc bits in the undo buffer so that they can be used\nimmediatly.\n\n[ Modified to call it ocfs2_release_clusters() -- Joel ]\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "b22b63ebafb97b66d1054e69941ee049d790c6cf",
      "tree": "98c6049f6ab23ad71ed4ba6dad43558296ae69b6",
      "parents": [
        "fcefd25ac89239cb57fa198f125a79ff85468c75"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Mar 11 18:43:46 2010 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Mar 18 13:22:42 2010 -0700"
      },
      "message": "ocfs2: Always try for maximum bits with new local alloc windows\n\nWhat we were doing before was to ask for the current window size as the\nmaximum allocation. This had the effect of limiting the amount of allocation\nwe could get for the local alloc during times when the window size was\nshrunk due to fragmentation. In some cases, that could actually *increase*\nfragmentation by artificially limiting the number of bits we can accept. So\nwhile we still want to ask for a minimum number of bits equal to window\nsize, there is no reason why we should limit the number of bits the local\nalloc should accept. Hence always allow the maximum number of local alloc\nbits.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@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": "0cf2f7632b1789b811ab20b611c4156e6de2b055",
      "tree": "34f7cf3584e4fa2bc187d4b75ce052cb98739b0e",
      "parents": [
        "292dd27ec76b96cebcef576f330ab121f59ccf05"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Feb 12 16:41:25 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:50 2009 -0700"
      },
      "message": "ocfs2: Pass struct ocfs2_caching_info to the journal functions.\n\nThe next step in divorcing metadata I/O management from struct inode is\nto pass struct ocfs2_caching_info to the journal functions.  Thus the\njournal locks a metadata cache with the cache io_lock function.  It also\ncan compare ci_last_trans and ci_created_trans directly.\n\nThis is a large patch because of all the places we change\nocfs2_journal_access..(handle, inode, ...) to\nocfs2_journal_access..(handle, INODE_CACHE(inode), ...).\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": "59b526a30722f29e5dba6210a6e0fc34e3149b94",
      "tree": "d373fe3f283f584f22ffb7eed60c937c0bf893a6",
      "parents": [
        "50397507e856455b3f5cb3d5c7c482209f9e46a0"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Dec 16 15:49:18 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Remove debugfs file local_alloc_stats\n\nThis patch removes the debugfs file local_alloc_stats as that information\nis now included in the fs_state debugfs file.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "13723d00e374c2a6d6ccb5af6de965e89c3e1b01",
      "tree": "70dcd8f3d188bf2f62e4bf4b44a0662d8cd527ca",
      "parents": [
        "ffdd7a54631f07918b75e324d86713a08c11ec06"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Oct 17 19:25:01 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:32 2009 -0800"
      },
      "message": "ocfs2: Use metadata-specific ocfs2_journal_access_*() functions.\n\nThe per-metadata-type ocfs2_journal_access_*() functions hook up jbd2\ncommit triggers and allow us to compute metadata ecc right before the\nbuffers are written out.  This commit provides ecc for inodes, extent\nblocks, group descriptors, and quota blocks.  It is not safe to use\nextened attributes and metaecc at the same time yet.\n\nThe ocfs2_extent_tree and ocfs2_path abstractions in alloc.c both hide\nthe type of block at their root.  Before, it didn\u0027t matter, but now the\nroot block must use the appropriate ocfs2_journal_access_*() function.\nTo keep this abstract, the structures now have a pointer to the matching\njournal_access function and a wrapper call to call it.\n\nA few places use naked ocfs2_write_block() calls instead of adding the\nblocks to the journal.  We make sure to calculate their checksum and ecc\nbefore the write.\n\nSince we pass around the journal_access functions.  Let\u0027s typedef them\nin ocfs2.h.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "b657c95c11088d77fc1bfc9c84d940f778bf9d12",
      "tree": "7e52e73aabbdbc55f644ad26735edc25a652ac32",
      "parents": [
        "a68979b857283daf4acc405e476dcc8812a3ff2b"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Nov 13 14:49:11 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:52 2009 -0800"
      },
      "message": "ocfs2: Wrap inode block reads in a dedicated function.\n\nThe ocfs2 code currently reads inodes off disk with a simple\nocfs2_read_block() call.  Each place that does this has a different set\nof sanity checks it performs.  Some check only the signature.  A couple\nvalidate the block number (the block read vs di-\u003ei_blkno).  A couple\nothers check for VALID_FL.  Only one place validates i_fs_generation.  A\ncouple check nothing.  Even when an error is found, they don\u0027t all do\nthe same thing.\n\nWe wrap inode reading into ocfs2_read_inode_block().  This will validate\nall the above fields, going readonly if they are invalid (they never\nshould be).  ocfs2_read_inode_block_full() is provided for the places\nthat want to pass read_block flags.  Every caller is passing a struct\ninode with a valid ip_blkno, so we don\u0027t need a separate blkno argument\neither.\n\nWe will remove the validation checks from the rest of the code in a\nlater commit, as they are no longer necessary.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d4a8c93c8248534bdedb07f83c9aebd6f7d1d579",
      "tree": "f978a7b36d515c29657f271ca5b70281c911a82f",
      "parents": [
        "5e0b3dec0107540244ba343f983ef4f972db20de"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:34 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:58:22 2008 -0700"
      },
      "message": "ocfs2: Make cached block reads the common case.\n\nocfs2_read_blocks() currently requires the CACHED flag for cached I/O.\nHowever, that\u0027s the common case.  Let\u0027s flip it around and provide an\nIGNORE_CACHE flag for the special users.  This has the added benefit of\ncleaning up the code some (ignore_cache takes on its special meaning\nearlier in the loop).\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0fcaa56a2a020dd6f90c202b7084e6f4cbedb6c2",
      "tree": "057204016523ce0274d4a23ec02944075f084e8c",
      "parents": [
        "31d33073ca38603dea705dae45e094a64ca062d6"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:31 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:51:57 2008 -0700"
      },
      "message": "ocfs2: Simplify ocfs2_read_block()\n\nMore than 30 callers of ocfs2_read_block() pass exactly OCFS2_BH_CACHED.\nOnly six pass a different flag set.  Rather than have every caller care,\nlet\u0027s make ocfs2_read_block() take no flags and always do a cached read.\nThe remaining six places can call ocfs2_read_blocks() directly.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "31d33073ca38603dea705dae45e094a64ca062d6",
      "tree": "cf02beb489456ebc9e07bace80e96ad1150f2cbf",
      "parents": [
        "da1e90985a0e767e44397c9db0937e236033fa58"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:30 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:43:29 2008 -0700"
      },
      "message": "ocfs2: Require an inode for ocfs2_read_block(s)().\n\nNow that synchronous readers are using ocfs2_read_blocks_sync(), all\ncallers of ocfs2_read_blocks() are passing an inode.  Use it\nunconditionally.  Since it\u0027s there, we don\u0027t need to pass the\nocfs2_super either.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a81cb88b64a479b78c6dd5666678d50171865db8",
      "tree": "9fe0f67e30d7c70d43785827e57736ac01558c24",
      "parents": [
        "fd8351f83d413b41da956109cf429c15881886e2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:25:16 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Don\u0027t check for NULL before brelse()\n\nThis is pointless as brelse() already does the check.\n\nSigned-off-by: Mark Fasheh\n"
    },
    {
      "commit": "4cc8124584610fbe087ea2bed29ca52d2d0aa84a",
      "tree": "4d1da0e72b6161ba3a321ff4533ca2f1a8511adf",
      "parents": [
        "009d37502a7b9fc89741e66b4454afca4edc1c26"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 11:02:04 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: make la_debug_mutex static\n\nIt can also be moved into ocfs2_la_debug_read().\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1187c968852e3c668f3b9376083851f81f6eee22",
      "tree": "23a34ab89f724cc015f9e4f6e8bc6ed0fc20ce51",
      "parents": [
        "08413899db89d8d636c2a2d4ba5c356ab587d7ef"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:39 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:07 2008 -0700"
      },
      "message": "ocfs2: Limit inode allocation to 32bits.\n\nocfs2 inode numbers are block numbers.  For any filesystem with less\nthan 2^32 blocks, this is not a problem.  However, when ocfs2 starts\nusing JDB2, it will be able to support filesystems with more than 2^32\nblocks.  This would result in inode numbers higher than 2^32.\n\nThe problem is that stat(2) can\u0027t handle those numbers on 32bit\nmachines.  The simple solution is to have ocfs2 allocate all inodes\nbelow that boundary.\n\nThe suballoc code is changed to honor an optional block limit.  Only the\ninode suballocator sets that limit - all other allocations stay unlimited.\n\nThe biggest trick is to grow the inode suballocator beneath that limit.\nThere\u0027s no point in allocating block groups that are above the limit,\nthen rejecting their elements later on.  We want to prevent the inode\nallocator from ever having block groups above the limit.  This involves\na little gyration with the local alloc code.  If the local alloc window\nis above the limit, it signals the caller to try the global bitmap but\ndoes not disable the local alloc file (which can be used for other\nallocations).\n\n[ Minor cleanup - removed an ML_NOTICE comment. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9a8ff578fb430a8816dfbc73c77e5e09c6d9c343",
      "tree": "be97f570b59a4af8fbf0c4c054619193155aaaa6",
      "parents": [
        "9c7af40b210e87f8fddd97b0badc0a352862234a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Jul 29 18:29:18 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:58 2008 -0700"
      },
      "message": "ocfs2: track local alloc state via debugfs\n\nA per-mount debugfs file, \"local_alloc\" is created which when read will\nexpose live state of the nodes local alloc file. Performance impact is\nminimal, only a bit of memory overhead per mount point. Still, the code is\nhidden behind CONFIG_OCFS2_FS_STATS. This feature will help us debug\nlocal alloc performance problems on a live system.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9c7af40b210e87f8fddd97b0badc0a352862234a",
      "tree": "deb248e5295439b96ad9bd1789e8512f93803142",
      "parents": [
        "ebcee4b5c9136096f64ee6f691a013d7c0a4bc34"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 28 18:02:53 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:57 2008 -0700"
      },
      "message": "ocfs2: throttle back local alloc when low on disk space\n\nOcfs2\u0027s local allocator disables itself for the duration of a mount point\nwhen it has trouble allocating a large enough area from the primary bitmap.\nThat can cause performance problems, especially for disks which were only\ntemporarily full or fragmented. This patch allows for the allocator to\nshrink it\u0027s window first, before being disabled. Later, it can also be\nre-enabled so that any performance drop is minimized.\n\nTo do this, we allow the value of osb-\u003elocal_alloc_bits to be shrunk when\nneeded. The default value is recorded in a mostly read-only variable so that\nwe can re-initialize when required.\n\nLocking had to be updated so that we could protect changes to\nlocal_alloc_bits. Mostly this involves protecting various local alloc values\nwith the osb spinlock. A new state is also added, OCFS2_LA_THROTTLED, which\nis used when the local allocator is has shrunk, but is not disabled. If the\navailable space dips below 1 megabyte, the local alloc file is disabled. In\neither case, local alloc is re-enabled 30 seconds after the event, or when\nan appropriate amount of bits is seen in the primary bitmap.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ebcee4b5c9136096f64ee6f691a013d7c0a4bc34",
      "tree": "cb28c9135559a8f5aaf4c61b9d39f9c4ce733b55",
      "parents": [
        "53da4939f349d4edd283b043219221ca5b78e4d4"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 28 14:55:20 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:57 2008 -0700"
      },
      "message": "ocfs2: Track local alloc bits internally\n\nDo this instead of tracking absolute local alloc size. This avoids\nneedless re-calculatiion of bits from bytes in localalloc.c. Additionally,\nthe value is now in a more natural unit for internal file system bitmap\nwork.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e407e39783a7206d20b3e9961aedf272de966e31",
      "tree": "f38fb034a20b36ad016e4f5d80fbdd31c609fb67",
      "parents": [
        "461c6a30eca6f25add1dadb9fd8a1d8e89a6e627"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jun 12 22:35:39 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 14 13:57:15 2008 -0700"
      },
      "message": "ocfs2: Fix CONFIG_OCFS2_DEBUG_FS #ifdefs\n\nA couple places use OCFS2_DEBUG_FS where they really mean\nCONFIG_OCFS2_DEBUG_FS.\n\nReported-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "4ba1c5bfd2e5a6c9528eb7777b66c297e70f61ca",
      "tree": "a06a4587053ce6f999920651880a499c058fd58a",
      "parents": [
        "bc535809c06ada210d89f5a43b335c68ecbb8e1b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Apr 18 15:03:59 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Apr 30 17:09:58 2008 -0700"
      },
      "message": "ocfs2: Use GFP_NOFS in kmalloc during localalloc window move\n\nkmalloc() during a localalloc window move can trigger the mm to prune\nthe dcache which inturn can trigger the fs to delete an inode causing\nit start a recursive transaction.\n\nThe fix also makes the change in kmalloc during localalloc shutdown\njust to be safe.\n\nFixes oss bugzilla#901\nhttp://oss.oracle.com/bugzilla/show_bug.cgi?id\u003d901\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4d0ddb2ce25db2254d468233d942276ecf40bff8",
      "tree": "6a114da03bb9911de637146f2b24866f1ae96718",
      "parents": [
        "a4a4891164d4f6f383cc17e7c90828a7ca6a1146"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Mar 05 16:11:46 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:10 2008 -0700"
      },
      "message": "ocfs2: Add inode stealing for ocfs2_reserve_new_inode\n\nInode allocation is modified to look in other nodes allocators during\nextreme out of space situations. We retry our own slot when space is freed\nback to the global bitmap, or whenever we\u0027ve allocated more than 1024 inodes\nfrom another slot.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a4a4891164d4f6f383cc17e7c90828a7ca6a1146",
      "tree": "a0a881ae3f1910d5f4e4aa9824f93781616ef99f",
      "parents": [
        "ffda89a3bf3b968bdc268584c6bc1da5c173cf12"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Mar 03 17:12:30 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:10 2008 -0700"
      },
      "message": "ocfs2: Add ac_alloc_slot in ocfs2_alloc_context\n\nIn inode stealing, we no longer restrict the allocation to\nhappen in the local node. So it is neccessary for us to add\na new member in ocfs2_alloc_context to indicate which slot\nwe are using for allocation. We also modify the process of\nlocal alloc so that this member can be used there also.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0dd3256e04c452396c9d22943e4a18e02f4dbdf4",
      "tree": "2e4cdc053041d9313ed0dfbac111d28261c238c8",
      "parents": [
        "1044e401af9a309637828aa3cc8f3b6409fcbf4e"
      ],
      "author": {
        "name": "Marcin Slusarz",
        "email": "marcin.slusarz@gmail.com",
        "time": "Wed Feb 13 00:06:18 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Mar 03 15:50:21 2008 -0800"
      },
      "message": "[PATCH] ocfs2: le*_add_cpu conversion\n\nreplace all:\nlittle_endian_variable \u003d cpu_to_leX(leX_to_cpu(little_endian_variable) +\n\t\t\t\t\texpression_in_cpu_byteorder);\nwith:\n\tleX_add_cpu(\u0026little_endian_variable, expression_in_cpu_byteorder);\ngenerated with semantic patch\n\nSigned-off-by: Marcin Slusarz \u003cmarcin.slusarz@gmail.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "7ad8b3d30ecae325fcccbf86f34ce3af716b4f95",
      "tree": "90f222beb42712c9c01a28c6dd3bd372b82706df",
      "parents": [
        "976dde010e513a9c7c3117a32b7b015f84b37430"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Feb 06 12:11:17 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Mar 03 15:50:21 2008 -0800"
      },
      "message": "ocfs2: Enable localalloc for local mounts\n\nCommit 2fbe8d1ebe004425b4f7b8bba345623d2280be82 disabled localalloc\nfor local mounts. This caused issues as ocfs2 uses localalloc to\nprovide write locality. This patch enables localalloc for local mounts.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "2fbe8d1ebe004425b4f7b8bba345623d2280be82",
      "tree": "7620954c7a364c41306a3becc0046dd1e235158f",
      "parents": [
        "d147b3d630edef1d34de6ea819787a1ac1b8603b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Dec 20 14:58:11 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:43 2008 -0800"
      },
      "message": "ocfs2: Local alloc window size changeable via mount option\n\nLocal alloc is a performance optimization in ocfs2 in which a node\ntakes a window of bits from the global bitmap and then uses that for\nall small local allocations. This window size is fixed to 8MB currently.\nThis patch allows users to specify the window size in MB including\ndisabling it by passing in 0. If the number specified is too large,\nthe fs will use the default value of 8MB.\n\nmount -o localalloc\u003dX /dev/sdX /mntpoint\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e63aecb651ba73dffc62f9608ee1b7ae2a0ffd4b",
      "tree": "06a4b727230120fe73421dc3149c21aaed5fe91e",
      "parents": [
        "c934a92d05b549dd2f25db72c5fc3cb9dcf1b611"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Oct 18 15:30:42 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:46:01 2008 -0800"
      },
      "message": "ocfs2: Rename ocfs2_meta_[un]lock\n\nCall this the \"inode_lock\" now, since it covers both data and meta data.\nThis patch makes no functional changes.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "5a58c3ef22d6e5b84ff651a7d27ae2cbea9f9870",
      "tree": "07d7d903b1a3d47b432ce36987e021772332d9f7",
      "parents": [
        "a46043e08f300982c51df317e2f8fb919dedadcd"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Nov 13 19:59:33 2007 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Nov 27 16:47:02 2007 -0800"
      },
      "message": "[PATCH] ocfs2: Remove expensive bitmap scanning\n\nEnable expensive bitmap scanning only if DEBUG option is enabled.\nThe bitmap scanning quite loads the CPU and on my machine the write\nthroughput of dd if\u003d/dev/zero of\u003d/ocfs2/file bs\u003d1M count\u003d500 conv\u003dsync\nimproves from 37 MB/s to 45.4 MB/s in local mode...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "bda0233b89c10ae46ccecb78bffdaf0fd7833d17",
      "tree": "b7ffce2948a7ecd1912f58b3de553f76fe61f74f",
      "parents": [
        "f778089cb2445dfc6dfd30a7a567925fd8589f1e"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Sep 21 11:41:43 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Oct 03 11:14:45 2007 -0700"
      },
      "message": "ocfs2: Unlock mutex in local alloc failure case\n\nThe fs was not unlocking the local alloc inode mutex in the code path in\nwhich it failed to find a window of free bits in the global bitmap.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "415cb800375cc4e89fb5a6a454e484bd4adbffb4",
      "tree": "816021a5279047702d5fa8180783b1c710f31746",
      "parents": [
        "6d0b842d3bf0cc027dcff57a89fb8a6b1fd610e1"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 16 20:10:16 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Sep 20 15:06:09 2007 -0700"
      },
      "message": "ocfs2: Allow smaller allocations during large writes\n\nThe ocfs2 write code loops through a page much like the block code, except\nthat ocfs2 allocation units can be any size, including larger than page\nsize. Typically it\u0027s equal to or larger than page size - most kernels run 4k\npages, the minimum ocfs2 allocation (cluster) size.\n\nSome changes introduced during 2.6.23 changed the way writes to pages are\nhandled, and inadvertantly broke support for \u003e 4k page size. Instead of just\nwriting one cluster at a time, we now handle the whole page in one pass.\n\nThis means that multiple (small) seperate allocations might happen in the\nsame pass. The allocation code howver typically optimizes by getting the\nmaximum which was reserved. This triggered a BUG_ON in the extend code where\nit\u0027d ask for a single bit (for one part of a \u003e 4k page) and get back more\nthan it asked for.\n\nFix this by providing a variant of the high level allocation function which\nallows the caller to specify a maximum. The traditional function remains and\njust calls the new one with a maximum determined from the initial\nreservation.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "8fccfc829a66b8b879c6672940523a402a786ce1",
      "tree": "c36ea2c8b9de97102397a755bf10cb3997461071",
      "parents": [
        "5c3c6bb7709bf2bf4132750124879b3d89183e46"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 09 17:34:26 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri May 25 11:00:46 2007 -0700"
      },
      "message": "ocfs2: fix inode leak\n\nWe weren\u0027t cleaning up our inode reference on error in\nocfs2_reserve_local_alloc_bits(). Add a check for error return and iput() if\nneed be. Move the code to set the alloc context inode info to the end of the\nfunction so we don\u0027t have any possibility of passing back a bad pointer.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "cd86128088554d64fea1679191509f00e6353c5b",
      "tree": "a828960f4bd44ef1682d88618e58c6ccd2367bc1",
      "parents": [
        "90aef12e6dd609e1ad7fb70044eedc78ca55ee5e"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Wed Dec 13 00:34:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:52 2006 -0800"
      },
      "message": "[PATCH] Fix numerous kcalloc() calls, convert to kzalloc()\n\nAll kcalloc() calls of the form \"kcalloc(1,...)\" are converted to the\nequivalent kzalloc() calls, and a few kcalloc() calls with the incorrect\nordering of the first two arguments are fixed.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Adam Belay \u003cambx1@neo.rr.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1fabe1481fac9e01bf8bffa60a2307ef379aa5de",
      "tree": "17092c1be837ed95c8f26646003e9e49cfdb9663",
      "parents": [
        "65eff9ccf86d63eb5c3e9071450a36e4e4fa9564"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Oct 09 18:11:45 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:28:28 2006 -0800"
      },
      "message": "ocfs2: Remove struct ocfs2_journal_handle in favor of handle_t\n\nThis is mostly a search and replace as ocfs2_journal_handle is now no more\nthan a container for a handle_t pointer.\n\nocfs2_commit_trans() becomes very straight forward, and we remove some out\nof date comments / code.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "65eff9ccf86d63eb5c3e9071450a36e4e4fa9564",
      "tree": "3610e008294ce4e5cfbc9abff3c98153f35ed2d4",
      "parents": [
        "dae85832ffe2879b57b23aea319a0ec17667898d"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Oct 09 17:26:22 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:28:23 2006 -0800"
      },
      "message": "ocfs2: remove handle argument to ocfs2_start_trans()\n\nAll callers either pass in NULL directly, or a local variable that is\nalready set to NULL.\n\nThe internals of ocfs2_start_trans() get a nice cleanup as a result.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "02dc1af44e9fa4b8801169891b3a1ba4047537ad",
      "tree": "db84e9ec9731dcfcf91bea226403881d0feccb49",
      "parents": [
        "4bcec1847ac4f75c2ee6d091b495f34d8d822e6a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Oct 09 16:48:10 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:28:08 2006 -0800"
      },
      "message": "ocfs2: pass ocfs2_super * into ocfs2_commit_trans()\n\nThis sets us up to remove handle-\u003ejournal.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "4bcec1847ac4f75c2ee6d091b495f34d8d822e6a",
      "tree": "faac00bd440eff91bd59a3cef88e74220082163a",
      "parents": [
        "a301a27d715276a71827004549bcbb2b64776c11"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Oct 09 16:02:40 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:28:05 2006 -0800"
      },
      "message": "ocfs2: remove unused handle argument from ocfs2_meta_lock_full()\n\nNow that this is unused and all callers pass NULL, we can safely remove it.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "da5cbf2f9df922cfdafa39351691fa83517f1e25",
      "tree": "845dc288b72f0408870f50605bb3c96eec978dd8",
      "parents": [
        "8d5596c687c49c1d8812c3456946dec15d069139"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Oct 06 18:34:35 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:27:49 2006 -0800"
      },
      "message": "ocfs2: don\u0027t use handle for locking in allocation functions\n\nInstead we record our state on the allocation context structure which all\ncallers already know about and lifetime correctly. This means the\nreservation functions don\u0027t need a handle passed in any more, and we can\nalso take it off the alloc context.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "8898a5a58fb2a2f78a15b046588b5b3adccb82c4",
      "tree": "01960858465f6b2b318d127266e243d7983a4e19",
      "parents": [
        "c161f89be7d57af863e434e9b15afaa863343a7a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Oct 05 15:42:08 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:27:08 2006 -0800"
      },
      "message": "ocfs2: don\u0027t pass handle to ocfs2_meta_lock() in localalloc.c\n\nTake and drop the locks directly.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "c161f89be7d57af863e434e9b15afaa863343a7a",
      "tree": "18152d2fb567746e74a0f57f0d11c53c740db87a",
      "parents": [
        "1fc581467e52546195c7ee8233a34d63c1cc1322"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Oct 05 15:11:36 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:27:06 2006 -0800"
      },
      "message": "ocfs2: remove ocfs2_journal_handle flags field\n\nCallers can set h_sync directly on the handle_t, whether a transaction has\nbeen started or not can be determined via the existence of the handle_t on\nthe struct ocfs2_journal_handle.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "883d4cae4a2b01a05193cf2665c77b7489a8b6a0",
      "tree": "1d4f06fa7bdadf025159ff5408f14080552a0cb0",
      "parents": [
        "7bf72edee614e10b8d470c40a326f47bfdd69992"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Jun 05 16:41:00 2006 -0400"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Aug 07 11:07:01 2006 -0700"
      },
      "message": "ocfs2: allocation hints\n\nRecord the most recently used allocation group on the allocation context, so\nthat subsequent allocations can attempt to optimize for contiguousness.\nLocal alloc especially should benefit from this as the current chain search\ntends to let it spew across the disk.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "b0697053f9e8de9cea3d510d9e290851ece9460b",
      "tree": "bcfa2ae33e4a5302ddbe94dec0eaf95013e79850",
      "parents": [
        "29004858a76ba9e26393dd8a85e653f105a33753"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Mar 03 10:24:33 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Mar 24 14:58:28 2006 -0800"
      },
      "message": "ocfs2: don\u0027t use MLF* in the file system\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ccd979bdbce9fba8412beb3f1de68a9d0171b12c",
      "tree": "c50ed941849ce06ccadd4ce27599b3ef9fdbe2ae",
      "parents": [
        "8df08c89c668e1bd922a053fdb5ba1fadbecbb38"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 15 14:31:24 2005 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 03 11:45:47 2006 -0800"
      },
      "message": "[PATCH] OCFS2: The Second Oracle Cluster Filesystem\n\nThe OCFS2 file system module.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Kurt Hackel \u003ckurt.hackel@oracle.com\u003e\n"
    }
  ]
}
