)]}'
{
  "log": [
    {
      "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": "a90714c150e3ce677c57a9dac3ab1ec342c75a95",
      "tree": "43e3e744d86122940c0db39ac1bfed0d434b3216",
      "parents": [
        "9e33d69f553aaf11377307e8d6f82deb3385e351"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 09 19:38:40 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:23 2009 -0800"
      },
      "message": "ocfs2: Add quota calls for allocation and freeing of inodes and space\n\nAdd quota calls for allocation and freeing of inodes and space, also update\nestimates on number of needed credits for a transaction. Move out inode\nallocation from ocfs2_mknod_locked() because vfs_dq_init() must be called\noutside of a transaction.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "53ef99cad9878f02f27bb30bc304fc42af8bdd6e",
      "tree": "bb5dcb223666197cf737d24e4cc87506c4473a79",
      "parents": [
        "511308d90b53479b194cd067715f44dc99d39b08"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Nov 18 16:53:43 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:55 2009 -0800"
      },
      "message": "ocfs2: Remove JBD compatibility layer\n\nJBD2 is fully backwards compatible with JBD and it\u0027s been tested enough with\nOcfs2 that we can clean this code up now.\n\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": "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": "2b4e30fbde425828b17f0e9c8f8e3fd3ecb2bc75",
      "tree": "5b340cde72e058b51642f0c7255818f62014bc91",
      "parents": [
        "12462f1d9f0b96389497438dc2730c6f7410be82"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:41 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Switch over to JBD2.\n\nocfs2 wants JBD2 for many reasons, not the least of which is that JBD is\nlimiting our maximum filesystem size.\n\nIt\u0027s a pretty trivial change.  Most functions are just renamed.  The\nonly functional change is moving to Jan\u0027s inode-based ordered data mode.\nIt\u0027s better, too.\n\nBecause JBD2 reads and writes JBD journals, this is compatible with any\nexisting filesystem.  It can even interact with JBD-based ocfs2 as long\nas the journal is formated for JBD.\n\nWe provide a compatibility option so that paranoid people can still use\nJBD for the time being.  This will go away shortly.\n\n[ Moved call of ocfs2_begin_ordered_truncate() from ocfs2_delete_inode() to\n  ocfs2_truncate_for_delete(). --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8d6220d6a74a33552cf877bcea25503d7f6a59e6",
      "tree": "2c3f662c55ab4a0a22989c06edf0d027387bfbed",
      "parents": [
        "1625f8ac151743e452ec062c2989669c508ffa48"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Aug 22 12:46:09 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Change ocfs2_get_*_extent_tree() to ocfs2_init_*_extent_tree()\n\nThe original get/put_extent_tree() functions held a reference on\net_root_bh.  However, every single caller already has a safe reference,\nmaking the get/put cycle irrelevant.\n\nWe change ocfs2_get_*_extent_tree() to ocfs2_init_*_extent_tree().  It\nno longer gets a reference on et_root_bh.  ocfs2_put_extent_tree() is\nremoved.  Callers now have a simpler init+use pattern.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f99b9b7ccf6a691f653cec45f36bfdd1e94769c7",
      "tree": "1c6ff6ea1fa1bb86b70f1fd78dd725b559c729e4",
      "parents": [
        "1e61ee79e2a96f62c007486677319814ce621c3c"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Aug 20 19:36:33 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:05 2008 -0700"
      },
      "message": "ocfs2: Make ocfs2_extent_tree the first-class representation of a tree.\n\nWe now have three different kinds of extent trees in ocfs2: inode data\n(dinode), extended attributes (xattr_tree), and extended attribute\nvalues (xattr_value).  There is a nice abstraction for them,\nocfs2_extent_tree, but it is hidden in alloc.c.  All the calling\nfunctions have to pick amongst a varied API and pass in type bits and\noften extraneous pointers.\n\nA better way is to make ocfs2_extent_tree a first-class object.\nEveryone converts their object to an ocfs2_extent_tree() via the\nocfs2_get_*_extent_tree() calls, then uses the ocfs2_extent_tree for all\ntree calls to alloc.c.\n\nThis simplifies a lot of callers, making for readability.  It also\nprovides an easy way to add additional extent tree types, as they only\nneed to be defined in alloc.c with a ocfs2_get_\u003cnew\u003e_extent_tree()\nfunction.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f56654c435c06f2b2bd5751889b1a08a3add7d6c",
      "tree": "b186d68aedc5dda7afe435f5a68c03937ae382ff",
      "parents": [
        "ac11c827192272eabb68b8f4cf844066461d9690"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:48 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:01 2008 -0700"
      },
      "message": "ocfs2: Add extent tree operation for xattr value btrees\n\nAdd some thin wrappers around ocfs2_insert_extent() for each of the 3\ndifferent btree types, ocfs2_inode_insert_extent(),\nocfs2_xattr_value_insert_extent() and ocfs2_xattr_tree_insert_extent(). The\nlast is for the xattr index btree, which will be used in a followup patch.\n\nAll the old callers in file.c etc will call ocfs2_dinode_insert_extent(),\nwhile the other two handle the xattr issue. And the init of extent tree are\nhandled by these functions.\n\nWhen storing xattr value which is too large, we will allocate some clusters\nfor it and here ocfs2_extent_list and ocfs2_extent_rec will also be used. In\norder to re-use the b-tree operation code, a new parameter named \"private\"\nis added into ocfs2_extent_tree and it is used to indicate the root of\nocfs2_exent_list. The reason is that we can\u0027t deduce the root from the\nbuffer_head now. It may be in an inode, an ocfs2_xattr_block or even worse,\nin any place in an ocfs2_xattr_bucket.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0eb8d47e69a2211a36643b180f1843ef45f6017d",
      "tree": "745a063238cbcf6af84644bd51d4bfcd592e06a1",
      "parents": [
        "e7d4cb6bc19658646357eeff134645cd9bc3479f"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:45 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:59 2008 -0700"
      },
      "message": "ocfs2: Make high level btree extend code generic\n\nFactor out the non-inode specifics of ocfs2_do_extend_allocation() into a more generic\nfunction, ocfs2_do_cluster_allocation(). ocfs2_do_extend_allocation calls\nocfs2_do_cluster_allocation() now, but the latter can be used for other\nbtree types as well.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e7d4cb6bc19658646357eeff134645cd9bc3479f",
      "tree": "4e24321e5c28fb90dffa1f396972fddb3c458e58",
      "parents": [
        "811f933df1e55615fd0bb4818f31e3868a8e6e23"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:44 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:58 2008 -0700"
      },
      "message": "ocfs2: Abstract ocfs2_extent_tree in b-tree operations.\n\nIn the old extent tree operation, we take the hypothesis that we\nare using the ocfs2_extent_list in ocfs2_dinode as the tree root.\nAs xattr will also use ocfs2_extent_list to store large value\nfor a xattr entry, we refactor the tree operation so that xattr\ncan use it directly.\n\nThe refactoring includes 4 steps:\n1. Abstract set/get of last_eb_blk and update_clusters since they may\n   be stored in different location for dinode and xattr.\n2. Add a new structure named ocfs2_extent_tree to indicate the\n   extent tree the operation will work on.\n3. Remove all the use of fe_bh and di, use root_bh and root_el in\n   extent tree instead. So now all the fe_bh is replaced with\n   et-\u003eroot_bh, el with root_el accordingly.\n4. Make ocfs2_lock_allocators generic. Now it is limited to be only used\n   in file extend allocation. But the whole function is useful when we want\n   to store large EAs.\n\nNote: This patch doesn\u0027t touch ocfs2_commit_truncate() since it is not used\nfor anything other than truncate inode data btrees.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "811f933df1e55615fd0bb4818f31e3868a8e6e23",
      "tree": "53335e59bdff02d7ddb3a2ec15d36239fe50003d",
      "parents": [
        "231b87d10920e024efaf0f9e86e1bab7bced1620"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:43 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:58 2008 -0700"
      },
      "message": "ocfs2: Use ocfs2_extent_list instead of ocfs2_dinode.\n\nocfs2_extend_meta_needed(), ocfs2_calc_extend_credits() and\nocfs2_reserve_new_metadata() are all useful for extent tree operations. But\nthey are all limited to an inode btree because they use a struct\nocfs2_dinode parameter. Change their parameter to struct ocfs2_extent_list\n(the part of an ocfs2_dinode they actually use) so that the xattr btree code\ncan use these functions.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "231b87d10920e024efaf0f9e86e1bab7bced1620",
      "tree": "00283dfb9e4a7054576be8a073635dc51bdc4e22",
      "parents": [
        "9a8ff578fb430a8816dfbc73c77e5e09c6d9c343"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 18 17:38:42 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:58 2008 -0700"
      },
      "message": "ocfs2: Modify ocfs2_num_free_extents for future xattr usage.\n\nocfs2_num_free_extents() is used to find the number of free extent records\nin an inode btree. Hence, it takes an \"ocfs2_dinode\" parameter. We want to\nuse this for extended attribute trees in the future, so genericize the\ninterface the take a buffer head. A future patch will allow that buffer_head\nto contain any structure rooting an ocfs2 btree.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0e116227a01580acf47437adba3afadf21b6bd5f",
      "tree": "65844ab6db53a7713e258830e571ced05a8d61ae",
      "parents": [
        "adee14b2e1557d0a8559f29681732d05a89dfc35"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Sep 03 01:57:14 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Sep 10 01:44:08 2008 -0700"
      },
      "message": "ocfs2: Fix a bug in direct IO read.\n\nocfs2 will become read-only if we try to read the bytes which pass\nthe end of i_size. This can be easily reproduced by following steps:\n1. mkfs a ocfs2 volume with bs\u003d4k cs\u003d4k and nosparse.\n2. create a small file(say less than 100 bytes) and we will create the file\n   which is allocated 1 cluster.\n3. read 8196 bytes from the kernel using O_DIRECT which exceeds the limit.\n4. The ocfs2 volume becomes read-only and dmesg shows:\nOCFS2: ERROR (device sda13): ocfs2_direct_IO_get_blocks:\nInode 66010 has a hole at block 1\nFile system is now read-only due to the potential of on-disk corruption.\nPlease run fsck.ocfs2 once the file system is unmounted.\n\nSo suppress the ERROR message.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "961cecbee6786f4b1f1b8f695e87045b583f9f49",
      "tree": "350d8604d04c594463372e3fab0cab2e953c7770",
      "parents": [
        "539d8264093560b917ee3afe4c7f74e5da09d6a5"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Jul 16 17:22:22 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jul 31 16:21:14 2008 -0700"
      },
      "message": "[PATCH] ocfs2: Fix oops when racing files truncates with writes into an mmap region\n\nThis patch fixes an oops that is reproduced when one races writes to a mmap-ed\nregion with another process truncating the file.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c0420ad2ca514551ca086510b0e7d17a05c70492",
      "tree": "d0c66f31d3ca100ad2bc0ac1dcd0e293865fd894",
      "parents": [
        "e75206517504461778c283b942440ef312e437d5"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coyli@suse.de",
        "time": "Mon Jun 30 18:45:45 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Jul 16 16:13:04 2008 -0700"
      },
      "message": "[PATCH] ocfs2: fix oops in mmap_truncate testing\n\nThis patch fixes a mmap_truncate bug which was found by ocfs2 test suite.\n\nIn an ocfs2 cluster more than 1 node, run program mmap_truncate, which races\nmmap writes and truncates from multiple processes. While the test is\nrunning, a stat from another node forces writeout, causing an oops in\nocfs2_get_block() because it sees a buffer to write which isn\u0027t allocated.\n\nThis patch fixed the bug by clear dirty and uptodate bits in buffer, leave\nthe buffer unmapped and return.\n\nFix is suggested by Mark Fasheh, and I code up the patch.\n\nSigned-off-by: Coly Li \u003ccoyli@suse.de\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "58dadcdbc2584db050969f9781727fc5a3f618db",
      "tree": "40df8466e7409be77131ee6d61a66649f57f4425",
      "parents": [
        "4d0ddb2ce25db2254d468233d942276ecf40bff8"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Fri Mar 28 14:43:10 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:11 2008 -0700"
      },
      "message": "fs/ocfs2/aops.c: test for IS_ERR rather than 0\n\nThe function ocfs2_start_trans always returns either a valid pointer or a\nvalue made with ERR_PTR, so its result should be tested with IS_ERR, not\nwith a test for 0.\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "86c838b03daf35e2af6555842d04fe09a89f8d93",
      "tree": "82c0df727f20d9c179cee5cbdb0e4a610c11c9ce",
      "parents": [
        "05488bbebe3deedbc5d58a1832f563ff96bc2ef6"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Tue Feb 26 21:45:56 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Mar 03 15:50:21 2008 -0800"
      },
      "message": "[PATCH] fs/ocfs2/aops.c: Correct use of ! and \u0026\n\nIn commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337, a bug was fixed that\ninvolved converting !x \u0026 y to !(x \u0026 y).  The code below shows the same\npattern, and thus should perhaps be fixed in the same way.\n\nThis is not tested and clearly changes the semantics, so it is only\nsomething to consider.\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "eebd2aa355692afaf9906f62118620f1a1c19dbb",
      "tree": "207eead3a736963c3e50942038c463f2f611ccce",
      "parents": [
        "b98348bdd08dc4ec11828aa98a78edde15c53cfa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user\n\nSimplify page cache zeroing of segments of pages through 3 functions\n\nzero_user_segments(page, start1, end1, start2, end2)\n\n        Zeros two segments of the page. It takes the position where to\n        start and end the zeroing which avoids length calculations and\n\tmakes code clearer.\n\nzero_user_segment(page, start, end)\n\n        Same for a single segment.\n\nzero_user(page, start, length)\n\n        Length variant for the case where we know the length.\n\nWe remove the zero_user_page macro. Issues:\n\n1. Its a macro. Inline functions are preferable.\n\n2. The KM_USER0 macro is only defined for HIGHMEM.\n\n   Having to treat this special case everywhere makes the\n   code needlessly complex. The parameter for zeroing is always\n   KM_USER0 except in one single case that we open code.\n\nAvoiding KM_USER0 makes a lot of code not having to be dealing\nwith the special casing for HIGHMEM anymore. Dealing with\nkmap is only necessary for HIGHMEM configurations. In those\nconfigurations we use KM_USER0 like we do for a series of other\nfunctions defined in highmem.h.\n\nSince KM_USER0 is depends on HIGHMEM the existing zero_user_page\nfunction could not be a macro. zero_user_* functions introduced\nhere can be be inline because that constant is not used when these\nfunctions are called.\n\nAlso extract the flushing of the caches to be outside of the kmap.\n\n[akpm@linux-foundation.org: fix nfs and ntfs build]\n[akpm@linux-foundation.org: fix ntfs build some more]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2849fb294d92d6eee0a811c688f1ecb39d26800",
      "tree": "cdfab35099e97d64e47ebebd14067053ea08459e",
      "parents": [
        "5fa0613ea58a80f69852b242337121bd39dc798e"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Dec 19 15:24:09 2007 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:44 2008 -0800"
      },
      "message": "ocfs2: Safer read_inline_data()\n\nIn ocfs2_read_inline_data() we should store file size in loff_t. Although\nthe file size should fit in 32 bits we cannot be sure in case filesystem is\ncorrupted.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "628a24f5bdf31b795d596eaed71670579b96a9aa",
      "tree": "3dcd23a6cfd10e142cf0397a53e5f95ca72f5168",
      "parents": [
        "d69a3ad6a0e47b2aa9b2b2ddfd385752132a4d34"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Oct 30 12:08:32 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:48:12 2008 -0800"
      },
      "message": "ocfs2: Readpages support\n\nAdd -\u003ereadpages support to Ocfs2. This is rather trivial - all it required\nis a small update to ocfs2_get_block (for mapping full extents via b_size)\nand an ocfs2_readpages() function which partially mirrors ocfs2_readpage().\n\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": "c934a92d05b549dd2f25db72c5fc3cb9dcf1b611",
      "tree": "57150c87d1d465db28fceaa14c9d5b220c7a3954",
      "parents": [
        "f1f540688eae66c274ff1c1133b5d9c687b28f58"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Oct 18 15:23:46 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:45:57 2008 -0800"
      },
      "message": "ocfs2: Remove data locks\n\nThe meta lock now covers both meta data and data, so this just removes the\nnow-redundant data lock.\n\nCombining locks saves us a round of lock mastery per inode and one less lock\nto ping between nodes during read/write.\n\nWe don\u0027t lose much - since meta locks were always held before a data lock\n(and at the same level) ordered writeout mode (the default) ensured that\nflushing for the meta data lock also pushed out data anyways.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "0d8a4e0cd688ad0de6430ce3425c7849cfec1c2d",
      "tree": "f959aba36b640232ae9f885b8765fe0e463fde67",
      "parents": [
        "bccb9dad8949cd0df1d3d2188a1fdb4b1936d537"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Nov 20 11:48:41 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Nov 27 16:47:03 2007 -0800"
      },
      "message": "ocfs2: Fix comparison in ocfs2_size_fits_inline_data()\n\nThis was causing us to prematurely push out inline data by one byte.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "4e9563fd55ff4479f2b118d0757d121dd0cfc39c",
      "tree": "604066cd76db3d40896263d4a24a7fd5d9824eb2",
      "parents": [
        "9ea2d32f40434589ea0e136373f7d1545afb411f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Nov 01 11:37:48 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Nov 06 15:35:29 2007 -0800"
      },
      "message": "ocfs2: fix write() performance regression\n\nOn file systems which don\u0027t support sparse files, Ocfs2_map_page_blocks()\nwas reading blocks on appending writes. This caused write performance to\nsuffer dramatically. Fix this by detecting an appending write on a nonsparse\nfs and skipping the read.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "b6af1bcd8720cb3062c8c4d4c8ba02bee10ff03f",
      "tree": "e6cb27498f649dd3addc48fb4d92ac20ae8de7cb",
      "parents": [
        "f2b6a16eb8f5b4851b01625a21e0c71207c2ce77"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:58 2007 -0700"
      },
      "message": "ocfs2: convert to new aops\n\nPlug ocfs2 into the -\u003ewrite_begin and -\u003ewrite_end aops.\n\nA bunch of custom code is now gone - the iovec iteration stuff during write\nand the ocfs2 splice write actor.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1afc32b952335f665327a1a9001ba1b44bb76fd9",
      "tree": "c914afd0ef5d32b426c3cf65820de7599e570656",
      "parents": [
        "6798d35a31c413bbb3f83bbaa844bd2598168ccc"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 07 14:46:51 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Oct 12 11:54:40 2007 -0700"
      },
      "message": "ocfs2: Write support for inline data\n\nThis fixes up write, truncate, mmap, and RESVSP/UNRESVP to understand inline\ninode data.\n\nFor the most part, the changes to the core write code can be relied on to do\nthe heavy lifting. Any code calling ocfs2_write_begin (including shared\nwriteable mmap) can count on it doing the right thing with respect to\ngrowing inline data to an extent tree.\n\nSize reducing truncates, including UNRESVP can simply zero that portion of\nthe inode block being removed. Size increasing truncatesm, including RESVP\nhave to be a little bit smarter and grow the inode to an extent tree if\nnecessary.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nReviewed-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6798d35a31c413bbb3f83bbaa844bd2598168ccc",
      "tree": "ff3e2928ebdfda06f08605d9dbc7002f0413e731",
      "parents": [
        "15b1e36bdb487d67ef924a37b0967453143be53a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 07 14:05:51 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Oct 12 11:54:39 2007 -0700"
      },
      "message": "ocfs2: Read support for inline data\n\nThis hooks up ocfs2_readpage() to populate a page with data from an inode\nblock. Direct IO reads from inline data are modified to fall back to\nbuffered I/O. Appropriate checks are also placed in the extent map code to\navoid reading an extent list when inline data might be stored.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nReviewed-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "1d410a6e337a0d2d5543ad1d9bccb670a7a05312",
      "tree": "696f70750482a4a49b61c79e6499659ddb3635b4",
      "parents": [
        "65ed39d6ca78f07d2958814e08440e4264b6b488"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 07 14:20:45 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Oct 12 11:54:35 2007 -0700"
      },
      "message": "ocfs2: Small refactor of truncate zeroing code\n\nWe\u0027ll want to reuse most of this when pushing inline data back out to an\nextent. Keeping this part as a seperate patch helps to keep the upcoming\nchanges for write support uncluttered.\n\nThe core portion of ocfs2_zero_cluster_pages() responsible for making sure a\npage is mapped and properly dirtied is abstracted out into it\u0027s own\nfunction, ocfs2_map_and_dirty_page(). Actual functionality doesn\u0027t change,\nthough zeroing becomes optional.\n\nWe also turn part of ocfs2_free_write_ctxt() into  a common function for\nunlocking and freeing a page array. This operation is very common (and\nuniform) for Ocfs2 cluster sizes greater than page size, so it makes sense\nto keep the code in one place.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nReviewed-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "65ed39d6ca78f07d2958814e08440e4264b6b488",
      "tree": "477623ef58810a6d32c8d23fbf17e5258495ddb0",
      "parents": [
        "92e91ce2a30b2af53ebf077512801dc01e75cca5"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Aug 28 17:13:23 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Oct 12 11:54:35 2007 -0700"
      },
      "message": "ocfs2: move nonsparse hole-filling into ocfs2_write_begin()\n\nBy doing this, we can remove any higher level logic which has to have\nknowledge of btree functionality - any callers of ocfs2_write_begin() can\nnow expect it to do anything necessary to prepare the inode for new data.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nReviewed-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5c26a7b70f89c36e8d9acc95cb896c3cd205fc8d",
      "tree": "83471ee744573481ffb2ffee09e0fe7fcf9643bd",
      "parents": [
        "db56246c6980e376b02d2da568d119da71f82fb9"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 18 17:49:29 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Sep 20 15:06:10 2007 -0700"
      },
      "message": "ocfs2: Don\u0027t double set write parameters\n\nThe target page offsets were being incorrectly set a second time in\nocfs2_prepare_page_for_write(), which was causing problems on a 16k page\nsize kernel. Additionally, ocfs2_write_failure() was incorrectly using those\nparameters instead of the parameters for the individual page being cleaned\nup.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "db56246c6980e376b02d2da568d119da71f82fb9",
      "tree": "dc88e09c80d50dd77580d1d9366bac8c74c9bffa",
      "parents": [
        "415cb800375cc4e89fb5a6a454e484bd4adbffb4"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Sep 17 09:06:29 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Sep 20 15:06:09 2007 -0700"
      },
      "message": "ocfs2: Fix pos/len passed to ocfs2_write_cluster\n\nThis was broken for file systems whose cluster size is greater than page\nsize. Pos needs to be incremented as we loop through the descriptors, and\nlen needs to be capped to the size of a single cluster.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "30b8548f2c270c0205558fe4826a6ab8e7fe51ad",
      "tree": "7c5756dba9c62813cab4aa01b8d42305cb4d41f6",
      "parents": [
        "c0123adef626607535f3c2c93b530c36780885e0"
      ],
      "author": {
        "name": "tao.ma@oracle.com",
        "email": "tao.ma@oracle.com",
        "time": "Thu Sep 06 08:02:25 2007 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Sep 11 11:39:05 2007 -0700"
      },
      "message": "[PATCH] ocfs2: Fix a wrong cluster calculation.\n\nIn ocfs2_alloc_write_write_ctxt, the written clusters length is calculated\nby the byte length only. This may cause some problems if we start to write\nat some position in the end of one cluster and last to a second cluster\nwhile the \"len\" is smaller than a cluster size. In that case, we have to\nwrite 2 clusters actually.\nSo we have to take the start position into consideration also.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "54cb8821de07f2ffcd28c380ce9b93d5784b40d7",
      "tree": "1de676534963d96af42863b20191bc9f80060dea",
      "parents": [
        "d00806b183152af6d24f46f0c33f14162ca1262a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:46:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: merge populate and nopage into fault (fixes nonlinear)\n\nNonlinear mappings are (AFAIKS) simply a virtual memory concept that encodes\nthe virtual address -\u003e file offset differently from linear mappings.\n\n-\u003epopulate is a layering violation because the filesystem/pagecache code\nshould need to know anything about the virtual memory mapping.  The hitch here\nis that the -\u003enopage handler didn\u0027t pass down enough information (ie.  pgoff).\n But it is more logical to pass pgoff rather than have the -\u003enopage function\ncalculate it itself anyway (because that\u0027s a similar layering violation).\n\nHaving the populate handler install the pte itself is likewise a nasty thing\nto be doing.\n\nThis patch introduces a new fault handler that replaces -\u003enopage and\n-\u003epopulate and (later) -\u003enopfn.  Most of the old mechanism is still in place\nso there is a lot of duplication and nice cleanups that can be removed if\neveryone switches over.\n\nThe rationale for doing this in the first place is that nonlinear mappings are\nsubject to the pagefault vs invalidate/truncate race too, and it seemed stupid\nto duplicate the synchronisation logic rather than just consolidate the two.\n\nAfter this patch, MAP_NONBLOCK no longer sets up ptes for pages present in\npagecache.  Seems like a fringe functionality anyway.\n\nNOPAGE_REFAULT is removed.  This should be implemented with -\u003efault, and no\nusers have hit mainline yet.\n\n[akpm@linux-foundation.org: cleanup]\n[randy.dunlap@oracle.com: doc. fixes for readahead]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54c57dc3b6578356c0a428c767d4bf080254a2ee",
      "tree": "009484927ae335d7a6312aa5a53c0bcd90d92a9e",
      "parents": [
        "b25801038da5823bba1b5440a57ca68afc51b6bd"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Jun 20 17:15:10 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:32:10 2007 -0700"
      },
      "message": "[PATCH] ocfs2: zero_user_page conversion\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "2ae99a60374f360ba07037ebbf33d19b89ac43a6",
      "tree": "ce83db2022a28deb8c402fca7c08cf924ee8e608",
      "parents": [
        "b27b7cbcf12a1bfff1ed68a73ddd7d11edc20daf"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Mar 09 16:43:28 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:32:04 2007 -0700"
      },
      "message": "ocfs2: Support creation of unwritten extents\n\nThis can now be trivially supported with re-use of our existing extend code.\n\nocfs2_allocate_unwritten_extents() takes a start offset and a byte length\nand iterates over the inode, adding extents (marked as unwritten) until len\nis reached. Existing extents are skipped over.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "b27b7cbcf12a1bfff1ed68a73ddd7d11edc20daf",
      "tree": "a25a8ca272e7f0ef01987db3b3795a49e0ccb51f",
      "parents": [
        "0d172baa5586071ae0ae0c07356a378fdbedecdb"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Jun 18 11:22:56 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:32:03 2007 -0700"
      },
      "message": "ocfs2: support writing of unwritten extents\n\nUpdate the write code to detect when the user is asking to write to an\nunwritten extent. Like writing to a hole, we must zero the region between\nthe write and the cluster boundaries. Most of the existing cluster zeroing\nlogic can be re-used with some additional checks for the unwritten flag on\nextent records.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "0d172baa5586071ae0ae0c07356a378fdbedecdb",
      "tree": "8124c326700c15ceffcaf2f525fef8eb55f0fb06",
      "parents": [
        "328d5752e1259dfb29b7e65f6c2d145fddbaa750"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon May 14 18:09:54 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:32:01 2007 -0700"
      },
      "message": "ocfs2: small cleanup of ocfs2_write_begin_nolock()\n\nWe can easily seperate out the write descriptor setup and manipulation\ninto helper functions.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "59a5e416d1ab543a5248a2b34d83202c4d55d132",
      "tree": "3e97ce48774d26e8a927edd839dd54a7d68f8c7d",
      "parents": [
        "2b604351bc99b4e4504758cbac369b660b71de0b"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jun 22 15:52:36 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:31:55 2007 -0700"
      },
      "message": "ocfs2: plug truncate into cached dealloc routines\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "bce997682fe3121516f5a20cf7bad2e6029ba018",
      "tree": "1f54d1c289b7fac2ec036f6923a27e00a6d777ae",
      "parents": [
        "7307de80510a70e5e5aa98de1e80ccbb7d90a3a8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Jun 18 11:12:36 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:31:52 2007 -0700"
      },
      "message": "ocfs2: harden buffer check during mapping of page blocks\n\nWe don\u0027t want to submit buffer_new blocks for read i/o. This actually won\u0027t\nhappen right now because those requests during an allocating write are all nicely\naligned. It\u0027s probably a good idea to provide an explicit check though.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "7307de80510a70e5e5aa98de1e80ccbb7d90a3a8",
      "tree": "ba45bef3e0b875feb67b97aebe8295159852ef97",
      "parents": [
        "607d44aa3fa6f40b0facaf1028886ed362b92682"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 09 15:16:19 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:31:51 2007 -0700"
      },
      "message": "ocfs2: shared writeable mmap\n\nImplement cluster consistent shared writeable mappings using the\n-\u003epage_mkwrite() callback.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "607d44aa3fa6f40b0facaf1028886ed362b92682",
      "tree": "cacd360252a7bfd60dde613c6cf1b4b3d3beeb8f",
      "parents": [
        "3a307ffc2730bfa1a4dfa94537be9d412338aad2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 09 15:14:45 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:31:49 2007 -0700"
      },
      "message": "ocfs2: factor out write aops into nolock variants\n\nocfs2_mkwrite() will want this so that it can add some mmap specific checks\nbefore asking for a write.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "3a307ffc2730bfa1a4dfa94537be9d412338aad2",
      "tree": "3e83201eb816aec8b897afcf3920dd716ce4412c",
      "parents": [
        "2e89b2e48e1da09ed483f195968c9172aa95b5e2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue May 08 17:47:32 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:31:46 2007 -0700"
      },
      "message": "ocfs2: rework ocfs2_buffered_write_cluster()\n\nUse some ideas from the new-aops patch series and turn\nocfs2_buffered_write_cluster() into a 2 stage operation with the caller\ncopying data in between. The code now understands multiple cluster writes as\na result of having to deal with a full page write for greater than 4k pages.\n\nThis sets us up to easily call into the write path during -\u003epage_mkwrite().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "eeb47d1234af1a9267836f680a8e114b2e88d0dc",
      "tree": "8362fcf841f204876446c952dca530cdb419899d",
      "parents": [
        "59be7dc97bacc0fd8e22f0be6e2aebb5c9b4ff47"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Jun 06 16:15:24 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Jun 06 16:42:03 2007 -0700"
      },
      "message": "ocfs2: Fix invalid assertion during write on 64k pages\n\nThe write path code intends to bug if a math error (or unhandled case)\nresults in a write outside of the current cluster boundaries. The actual\nBUG_ON() statements however are incorrect, leading to a crash on kernels\nwith 64k page size. Fix those by checking against the right variables.\n\nAlso, move the assertions higher up within the functions so that they trip\n*before* the code starts to mark buffers.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "5c3c6bb7709bf2bf4132750124879b3d89183e46",
      "tree": "267dc760d0dbb747989d17759fa5e49479da24c2",
      "parents": [
        "1024c902abdcbd2425aa850d7ef04e013ffb35f0"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Thu May 10 22:56:01 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri May 25 11:00:39 2007 -0700"
      },
      "message": "[PATCH] ocfs2: use zero_user_page\n\nUse zero_user_page() instead of open-coding it.\n\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e9dfc0b2bc42761410e8db6c252c6c5889e178b8",
      "tree": "d42beb9d6b2c54bc205e48bc75cdf26ec0eeddc3",
      "parents": [
        "1c1ee4c3e7e16d23166a624a132889df3c540a18"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon May 14 11:38:51 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri May 25 11:00:23 2007 -0700"
      },
      "message": "ocfs2: trylock in ocfs2_readpage()\n\nSimilarly to the page lock / cluster lock inversion in ocfs2_readpage, we\ncan deadlock on ip_alloc_sem. We can down_read_trylock() instead and just\nreturn AOP_TRUNCATED_PAGE if the operation fails.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "9315f130e11249457f5c3a7f74ee82a7065bd854",
      "tree": "dd2a3671ec0696b52bc98c937d0465b7b8782cdb",
      "parents": [
        "5fdf1e677127cb460c38733b9586b772d657be43"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue May 01 17:44:20 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 02 15:08:34 2007 -0700"
      },
      "message": "ocfs2: Force use of GFP_NOFS in ocfs2_write()\n\nWe can otherwise recurse into the file system.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "1ca1a111b1e6be843c9ce5245dcd570312998d94",
      "tree": "e9f14300df896a4c7ee4f03db09cf08ddd027471",
      "parents": [
        "6e4b0d5692cd27d3c9be893a9f5939a9cafbb09f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Apr 27 16:01:25 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 02 15:08:08 2007 -0700"
      },
      "message": "ocfs2: fix sparse warnings in fs/ocfs2\n\nNone of these are actually harmful, but the noise makes looking for real\nproblems difficult.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "6cb129f5675c39944e5fe18fd2530a2eb771b754",
      "tree": "18290b53d302573632c0d5f906a0b4af8f8d4b39",
      "parents": [
        "586d232b191b776a1c6d51c10c662b8b3e238fdf"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu Apr 26 00:29:35 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 02 15:07:27 2007 -0700"
      },
      "message": "[PATCH] fs/ocfs2/: make 3 functions static\n\nThis patch makes the following needlessly global functions static:\n- aops.c: ocfs2_write_data_page()\n- dlmglue.c: ocfs2_dump_meta_lvb_info()\n- file.c: ocfs2_set_inode_size()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "7cdfc3a1c3971c9125c317cb8c2525745851798e",
      "tree": "ac0103cba9eaf0bc07b2e63893fa4e9637e6934e",
      "parents": [
        "8110b073a9135acf0a71bccfc20c0d1023f179c6"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Apr 16 17:28:51 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:07:45 2007 -0700"
      },
      "message": "ocfs2: Remember rw lock level during direct io\n\nCluster locking might have been redone because a direct write won\u0027t\ncomplete, so this needs to be reflected in the iocb.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "8110b073a9135acf0a71bccfc20c0d1023f179c6",
      "tree": "b668738e25648f3fcfd7b1063ab8d4948cebc668",
      "parents": [
        "4f902c37727bbedbc0508a1477874c58ddcc9af8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Mar 22 16:53:23 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:07:40 2007 -0700"
      },
      "message": "ocfs2: Fix up i_blocks calculation to know about holes\n\nOlder file systems which didn\u0027t support holes did a dumb calculation of\ni_blocks based on i_size. This is no longer accurate, so fix things up to\ntake actual allocation into account.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "4f902c37727bbedbc0508a1477874c58ddcc9af8",
      "tree": "841b35387cfea5d2518c258c4de6ef868948369b",
      "parents": [
        "49cb8d2d496ce06869ccca2ab368ed6b0b5b979d"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Mar 09 16:26:50 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:02:45 2007 -0700"
      },
      "message": "ocfs2: Fix extent lookup to return true size of holes\n\nInitially, we had wired things to return a size \u00271\u0027 of holes. Cook up a\nsmall amount of code to find the next extent and calculate the number of\nclusters between the virtual offset and the next allocated extent.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "49cb8d2d496ce06869ccca2ab368ed6b0b5b979d",
      "tree": "7aded7178e87dc26eb2ceafb169d7e68a8ee5ded",
      "parents": [
        "e48edee2d8eab812f31f0ff62c6ba635ca2e1e21"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Mar 09 16:21:46 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:02:41 2007 -0700"
      },
      "message": "ocfs2: Read from an unwritten extent returns zeros\n\nReturn an optional extent flags field from our lookup functions and wire up\ncallers to treat unwritten regions as holes for the purpose of returning\nzeros to the user.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "6af67d8205cf65fbaaa743edc7ebb46e486e34ff",
      "tree": "1aadef5c71e4f8905477a813b1bd0a35e62ccbee",
      "parents": [
        "fa41045fcbf78269991d5aebb1820fc51534f05d"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Mar 06 17:24:46 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:02:34 2007 -0700"
      },
      "message": "ocfs2: Use own splice write actor\n\nWe need to fill holes during a splice write. Provide our own splice write\nactor which can call ocfs2_file_buffered_write() with a splice-specific\ncallback.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "60b11392f1a09433740bda3048202213daa27736",
      "tree": "a8687fcb0ce62b130b732d663b54a984564d28b2",
      "parents": [
        "25baf2da1473d9dcde1a4c7b0ab26e7d67d9bf62"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Feb 16 11:46:50 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:02:20 2007 -0700"
      },
      "message": "ocfs2: zero tail of sparse files on truncate\n\nSince we don\u0027t zero on extend anymore, truncate needs to be fixed up to zero\nthe part of a file between i_size and and end of it\u0027s cluster. Otherwise a\nsubsequent extend could expose bad data.\n\nThis introduced a new helper, which can be used in ocfs2_write().\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "25baf2da1473d9dcde1a4c7b0ab26e7d67d9bf62",
      "tree": "7e07eb6de18f07d4814ab75a02c1c6837fd3e3ea",
      "parents": [
        "5069120b7227fd323152a3755a0aa6bdeb361310"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Feb 14 15:30:30 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:02:16 2007 -0700"
      },
      "message": "ocfs2: Teach ocfs2_get_block() about holes\n\nocfs2_get_block() didn\u0027t understand sparse files, fix that. Also remove some\ncode that isn\u0027t really useful anymore. We can fix up\nocfs2_direct_IO_get_blocks() at the same time.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "5069120b7227fd323152a3755a0aa6bdeb361310",
      "tree": "38f55942537178098b4e3a3996bb0f02787dbb51",
      "parents": [
        "9517bac6cc7a7aa4fee63cb38a32cb6014e264c7"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Feb 09 20:52:53 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:02:12 2007 -0700"
      },
      "message": "ocfs2: remove ocfs2_prepare_write() and ocfs2_commit_write()\n\nThese are no longer used, and can\u0027t handle file systems with sparse file\nallocation.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "9517bac6cc7a7aa4fee63cb38a32cb6014e264c7",
      "tree": "3cac0c18d0cacc316e0e8a60f483282d6f991779",
      "parents": [
        "89488984ac23b0580f959b9ee549f2fcb1c2f194"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Feb 09 20:24:12 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:02:08 2007 -0700"
      },
      "message": "ocfs2: teach ocfs2_file_aio_write() about sparse files\n\nUnfortunately, ocfs2 can no longer make use of generic_file_aio_write_nlock()\nbecause allocating writes will require zeroing of pages adjacent to the I/O\nfor cluster sizes greater than page size.\n\nImplement a custom file write here, which can order page locks for zeroing.\nThis also has the advantage that cluster locks can easily be ordered outside\nof the page locks.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "363041a5f74b953ab6b705ac9c88e5eda218a24b",
      "tree": "c0661c3f88978f2049693682f1cb94b20a8454c0",
      "parents": [
        "dcd0538ff4e854fa9d7f4630b359ca8fdb5cb5a8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Jan 17 12:31:35 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:01:31 2007 -0700"
      },
      "message": "ocfs2: temporarily remove extent map caching\n\nThe code in extent_map.c is not prepared to deal with a subtree being\nrotated between lookups. This can happen when filling holes in sparse files.\nInstead of a lengthy patch to update the code (which would likely lose the\nbenefit of caching subtree roots), we remove most of the algorithms and\nimplement a simple path based lookup. A less ambitious extent caching scheme\nwill be added in a later patch.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "03f981cf2ec95dd8bc43d2ecccaec4e83c8375e2",
      "tree": "1c339ea26ceed628e33f3dc57c7936d2570d6e5c",
      "parents": [
        "e6c352dbc0f4dc7e3f82feafb9e6207c5814a189"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jan 04 14:54:41 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Mar 14 14:37:16 2007 -0700"
      },
      "message": "ocfs2: add some missing address space callbacks\n\nUnder load, OCFS2 would crash in invalidate_inode_pages2_range() because\ninvalidate_complete_page2() was unable to invalidate a page.  It would\nappear that JBD is holding on to the page.  ext3 has a specific\n-\u003ereleasepage() handler to cover this case.\n\nSteal ext3\u0027s -\u003ereleasepage(), -\u003einvalidatepage(), and -\u003emigratepage(), as\nthey appear completely appropriate for OCFS2.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "564f8a3228879d6962edb3432d01bcd7499a67ec",
      "tree": "6e3a1b840e3061e7a1bc4df56287a99c2f513a47",
      "parents": [
        "0333394bff439c3fb09264303de42e7038b3e709"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 14 13:01:05 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 28 16:38:08 2006 -0800"
      },
      "message": "ocfs2: Allow direct I/O read past end of file\n\nocfs2_direct_IO_get_blocks() was incorrectly returning -EIO for a direct I/O\nread whose start block was past the end of the file allocation tree. Fix\nthings so that we return a hole instead. do_direct_IO() will then notice\nthat the range start is past eof and return a short read.\n\nWhile there, remove the unused vbo_max variable.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "d28c91740ae2cd1d963f9e4e3889789894cb6d52",
      "tree": "0f519133422e1248b6e7519960877dd062f4c2b5",
      "parents": [
        "6db5fc5d536560e31978c6911b1f5662e42083ac"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:48 2006 -0800"
      },
      "message": "[PATCH] struct path: convert ocfs2\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\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": "e0b4096d34fbd6b30838c417100c9d0ef73c71f2",
      "tree": "cabe34d3ae64b906f186ddea53bf3b4f84099ab7",
      "parents": [
        "0f62de2c9ca60a35f63122e7ea992cee8aae4bef"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 11 14:38:54 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:53:05 2006 -0700"
      },
      "message": "ocfs2: properly update i_mtime on buffered write\n\nWe weren\u0027t always updating i_mtime on writes, so fix ocfs2_commit_write() to\nhandle this.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nAcked-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "184d7d20d352c7374f70ebca7468dc8cd5cc618a",
      "tree": "bcea4e8f5eba60f03ff0c7980b4e13b4b579bf2b",
      "parents": [
        "784270435b001164054e803421a624ef1098519d"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@gmail.com",
        "time": "Sat Jun 03 19:30:10 2006 -0400"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Jun 29 16:13:35 2006 -0700"
      },
      "message": "ocfs2: remove redundant NULL checks in ocfs2_direct_IO_get_blocks()\n\nSigned-off-by: Florin Malita \u003cfmalita@gmail.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "f5e54d6e53a20cef45af7499e86164f0e0d16bb2",
      "tree": "cb92acbb89b84796261bf5563182261ec5654127",
      "parents": [
        "a052b68b1e7a31f1e6a721290035e9deb0f6fed9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 28 04:26:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:04 2006 -0700"
      },
      "message": "[PATCH] mark address_space_operations const\n\nSame as with already do with the file operations: keep them in .rodata and\nprevents people from doing runtime patching.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "53013cba4118a5cfe8f7c7ea5e5bc1c48b160f76",
      "tree": "5170ed12fbe07b5e8557e61952aa27c25034bd7a",
      "parents": [
        "0c056c50a6218e0e577817c16ba8851af593d742"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri May 05 19:04:03 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 17 14:38:47 2006 -0700"
      },
      "message": "ocfs2: take data locks around extend\n\nWe need to take a data lock around extends to protect the pages that\nocfs2_zero_extend is going to be pulling into the page cache. Otherwise an\nextend on one node might populate the page cache with data pages that have\nno lock coverage.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "1d8fa7a2b9a39d18727acc5c468e870df606c852",
      "tree": "41537fe9ea5478f3243e3301184dc13980f8201f",
      "parents": [
        "fa30bd058b746c0e2318a77ff8b4977faa924c2c"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sun Mar 26 01:38:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:01 2006 -0800"
      },
      "message": "[PATCH] remove -\u003eget_blocks() support\n\nNow that get_block() can handle mapping multiple disk blocks, no need to have\n-\u003eget_blocks().  This patch removes fs specific -\u003eget_blocks() added for DIO\nand makes it users use get_block() instead.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\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": "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"
    }
  ]
}
