)]}'
{
  "log": [
    {
      "commit": "03e62303cf56e87337115f14842321043df2b4bb",
      "tree": "3024495955beccddbae347d99613bcdd33801ee4",
      "parents": [
        "33cf23b0a535475aead57707cb9f4fe135a93544",
        "18d3a98f3c1b0e27ce026afa4d1ef042f2903726"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:20:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 07:20:17 2010 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (47 commits)\n  ocfs2: Silence a gcc warning.\n  ocfs2: Don\u0027t retry xattr set in case value extension fails.\n  ocfs2:dlm: avoid dlm-\u003east_lock lockres-\u003espinlock dependency break\n  ocfs2: Reset xattr value size after xa_cleanup_value_truncate().\n  fs/ocfs2/dlm: Use kstrdup\n  fs/ocfs2/dlm: Drop memory allocation cast\n  Ocfs2: Optimize punching-hole code.\n  Ocfs2: Make ocfs2_find_cpos_for_left_leaf() public.\n  Ocfs2: Fix hole punching to correctly do CoW during cluster zeroing.\n  Ocfs2: Optimize ocfs2 truncate to use ocfs2_remove_btree_range() instead.\n  ocfs2: Block signals for mkdir/link/symlink/O_CREAT.\n  ocfs2: Wrap signal blocking in void functions.\n  ocfs2/dlm: Increase o2dlm lockres hash size\n  ocfs2: Make ocfs2_extend_trans() really extend.\n  ocfs2/trivial: Code cleanup for allocation reservation.\n  ocfs2: make ocfs2_adjust_resv_from_alloc simple.\n  ocfs2: Make nointr a default mount option\n  ocfs2/dlm: Make o2dlm domain join/leave messages KERN_NOTICE\n  o2net: log socket state changes\n  ocfs2: print node # when tcp fails\n  ...\n"
    },
    {
      "commit": "4fe370afaae49c57619bb0bedb75de7e7c168308",
      "tree": "7b2752fc9616578e9e3baa659e6c724b301d26c5",
      "parents": [
        "d02f00cc057809d96c044cc72d5b9809d59f7d49"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 07 13:15:40 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:17:30 2010 -0700"
      },
      "message": "ocfs2: use allocation reservations during file write\n\nAdd a per-inode reservations structure and pass it through to the\nreservations code.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d4cd1871cff68e188dadcf6d1280762522b643eb",
      "tree": "cf3a6426342378956f4d797066ec060eb3939083",
      "parents": [
        "d5a30458a90597915977f06e79406b664a41b8ac"
      ],
      "author": {
        "name": "Li Dongyang",
        "email": "lidongyang@novell.com",
        "time": "Thu Apr 22 16:11:19 2010 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 23 11:03:49 2010 -0700"
      },
      "message": "ocfs2: add OCFS2_INODE_SKIP_ORPHAN_DIR flag and honor it in the inode wipe code\n\nCurrently in the error path of ocfs2_symlink and ocfs2_mknod, we just call\niput with the inode we failed with, but the inode wipe code will complain\nbecause we don\u0027t add the inode to orphan dir. One solution would be to lock\nthe orphan dir during the entire transaction, but that\u0027s too heavy for a\nrare error path. Instead, we add a flag, OCFS2_INODE_SKIP_ORPHAN_DIR which\ntells the inode wipe code that it won\u0027t find this inode in the orphan dir.\n\n[ Merge fixes and comment style cleanups -Mark ]\n\nSigned-off-by: Li Dongyang \u003clidongyang@novell.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "6136ca5f5f9fd38da399e9ff9380f537c1b3b901",
      "tree": "e2927c3b6084a7ea16f872a61011cbcf505f570c",
      "parents": [
        "7dc028056750328e74ca807041c822068384fe16"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Feb 12 19:32:43 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:57 2009 -0700"
      },
      "message": "ocfs2: Drop struct inode from ocfs2_extent_tree_operations.\n\nWe can get to the inode from the caching information.  Other parent\ntypes don\u0027t need it.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "292dd27ec76b96cebcef576f330ab121f59ccf05",
      "tree": "d98f4d359f610e7dad53eb5b68fdb1517a043fb3",
      "parents": [
        "66fb345ddd2d343e36692da0ff66126d7a99dc1b"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Feb 12 15:41:59 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:49 2009 -0700"
      },
      "message": "ocfs2: move ip_created_trans to struct ocfs2_caching_info\n\nSimilar ip_last_trans, ip_created_trans tracks the creation of a journal\nmanaged inode.  This specifically tracks what transaction created the\ninode.  This is so the code can know if the inode has ever been written\nto disk.\n\nThis behavior is desirable for any journal managed object.  We move it\nto struct ocfs2_caching_info as ci_created_trans so that any object\nusing ocfs2_caching_info can rely on this behavior.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "66fb345ddd2d343e36692da0ff66126d7a99dc1b",
      "tree": "7e53f68bbf4c910cd81be7e39378d9552bbce4c3",
      "parents": [
        "8cb471e8f82506937fe5e2e9fb0bf90f6b1f1170"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Feb 12 15:24:40 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:49 2009 -0700"
      },
      "message": "ocfs2: move ip_last_trans to struct ocfs2_caching_info\n\nWe have the read side of metadata caching isolated to struct\nocfs2_caching_info, now we need the write side.  This means the journal\nfunctions.  The journal only does a couple of things with struct inode.\n\nThis change moves the ip_last_trans field onto struct\nocfs2_caching_info as ci_last_trans.  This field tells the journal\nwhether a pending journal flush is required.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "8cb471e8f82506937fe5e2e9fb0bf90f6b1f1170",
      "tree": "e275a8f5db101a9990ba44931cfd116123112b11",
      "parents": [
        "6e5a3d7538ad4e46a976862f593faf65750e37cc"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 20:00:41 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:48 2009 -0700"
      },
      "message": "ocfs2: Take the inode out of the metadata read/write paths.\n\nWe are really passing the inode into the ocfs2_read/write_blocks()\nfunctions to get at the metadata cache.  This commit passes the cache\ndirectly into the metadata block functions, divorcing them from the\ninode.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6e5a3d7538ad4e46a976862f593faf65750e37cc",
      "tree": "e87ce6d69bdbcce23eed0a195a7f80a59c01d3d9",
      "parents": [
        "47460d65a483529b3bc2bf6ccf461ad45f94df83"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 19:00:37 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:48 2009 -0700"
      },
      "message": "ocfs2: Change metadata caching locks to an operations structure.\n\nWe don\u0027t really want to cart around too many new fields on the\nocfs2_caching_info structure.  So let\u0027s wrap all our access of the\nparent object in a set of operations.  One pointer on caching_info, and\nmore flexibility to boot.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "47460d65a483529b3bc2bf6ccf461ad45f94df83",
      "tree": "0727cae9477749e5f2596e86253a210e79c96a83",
      "parents": [
        "8379e7c46cc48f51197dd663fc6676f47f2a1e71"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 16:05:07 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:47 2009 -0700"
      },
      "message": "ocfs2: Make the ocfs2_caching_info structure self-contained.\n\nWe want to use the ocfs2_caching_info structure in places that are not\ninodes.  To do that, it can no longer rely on referencing the inode\ndirectly.\n\nThis patch moves the flags to ocfs2_caching_info-\u003eci_flags, stores\npointers to the parent\u0027s locks on the ocfs2_caching_info, and renames\nthe constants and flags to reflect its independant state.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6ca497a83e592d64e050c4d04b6dedb8c915f39a",
      "tree": "0b9cd611d6d907881841eca73d12a7f3b85f1716",
      "parents": [
        "9405dccfd3201d2b76e120949bec81ba8cfbd2d0"
      ],
      "author": {
        "name": "wengang wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Fri Mar 06 21:29:10 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:25 2009 -0700"
      },
      "message": "ocfs2: fix rare stale inode errors when exporting via nfs\n\nFor nfs exporting, ocfs2_get_dentry() returns the dentry for fh.\nocfs2_get_dentry() may read from disk when the inode is not in memory,\nwithout any cross cluster lock. this leads to the file system loading a\nstale inode.\n\nThis patch fixes above problem.\n\nSolution is that in case of inode is not in memory, we get the cluster\nlock(PR) of alloc inode where the inode in question is allocated from (this\ncauses node on which deletion is done sync the alloc inode) before reading\nout the inode itsself. then we check the bitmap in the group (the inode in\nquestion allcated from) to see if the bit is clear. if it\u0027s clear then it\u0027s\nstale. if the bit is set, we then check generation as the existing code\ndoes.\n\nWe have to read out the inode in question from disk first to know its alloc\nslot and allot bit. And if its not stale we read it out using ocfs2_iget().\nThe second read should then be from cache.\n\nAnd also we have to add a per superblock nfs_sync_lock to cover the lock for\nalloc inode and that for inode in question. this is because ocfs2_get_dentry()\nand ocfs2_delete_inode() lock on them in reverse order. nfs_sync_lock is locked\nin EX mode in ocfs2_get_dentry() and in PR mode in ocfs2_delete_inode(). so\nthat mutliple ocfs2_delete_inode() can run concurrently in normal case.\n\n[mfasheh@suse.com: build warning fixes and comment cleanups]\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "138211515c102807a16c02fdc15feef1f6ef8124",
      "tree": "9b6fff8512a19792f2e29458292607f4efb413c4",
      "parents": [
        "1d46dc08d33138c29c63d717807c08ab704fc773"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Feb 25 00:53:23 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:17 2009 -0700"
      },
      "message": "ocfs2: Optimize inode allocation by remembering last group\n\nIn ocfs2, the inode block search looks for the \"emptiest\" inode\ngroup to allocate from. So if an inode alloc file has many equally\n(or almost equally) empty groups, new inodes will tend to get\nspread out amongst them, which in turn can put them all over the\ndisk. This is undesirable because directory operations on conceptually\n\"nearby\" inodes force a large number of seeks.\n\nSo we add ip_last_used_group in core directory inodes which records\nthe last used allocation group. Another field named ip_last_used_slot\nis also added in case inode stealing happens. When claiming new inode,\nwe passed in directory\u0027s inode so that the allocation can use this\ninformation.\nFor more details, please see\nhttp://oss.oracle.com/osswiki/OCFS2/DesignDocs/InodeAllocationStrategy.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9e33d69f553aaf11377307e8d6f82deb3385e351",
      "tree": "ded5f48f6cf82db976f30d5f0f4d44b941f60f44",
      "parents": [
        "bbbd0eb34bf801dee01e345785959a75258f6567"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 25 19:56:50 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:23 2009 -0800"
      },
      "message": "ocfs2: Implementation of local and global quota file handling\n\nFor each quota type each node has local quota file. In this file it stores\nchanges users have made to disk usage via this node. Once in a while this\ninformation is synced to global file (and thus with other nodes) so that\nlimits enforcement at least aproximately works.\n\nGlobal quota files contain all the information about usage and limits. It\u0027s\nmostly handled by the generic VFS code (which implements a trie of structures\ninside a quota file). We only have to provide functions to convert structures\nfrom on-disk format to in-memory one. We also have to provide wrappers for\nvarious quota functions starting transactions and acquiring necessary cluster\nlocks before the actual IO is really started.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\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": "07446dc72cffcc6e2672d0e54061dcd1858725ba",
      "tree": "43ac4e257d6300b2bf767a953a8e2138e6894c18",
      "parents": [
        "0fcaa56a2a020dd6f90c202b7084e6f4cbedb6c2"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 09 17:20:32 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 14 11:58:03 2008 -0700"
      },
      "message": "ocfs2: Move ocfs2_bread() into dir.c\n\ndir.c is the only place using ocfs2_bread(), so let\u0027s make it static to\nthat file.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\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": "cf1d6c763fbcb115263114302485ad17e7933d87",
      "tree": "85717dc9d20b7ac1e31b683653933f2d30099f44",
      "parents": [
        "fdd77704a8b4666a32120fcd1e4a9fedaf3263d8"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:11:00 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:02 2008 -0700"
      },
      "message": "ocfs2: Add extended attribute support\n\nThis patch implements storing extended attributes both in inode or a single\nexternal block. We only store EA\u0027s in-inode when blocksize \u003e 512 or that\ninode block has free space for it. When an EA\u0027s value is larger than 80\nbytes, we will store the value via b-tree outside inode or block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "5fa0613ea58a80f69852b242337121bd39dc798e",
      "tree": "21170694624428a8903efc6cba843fd10de93c64",
      "parents": [
        "53fc622b9e829c8e632e45ef8c14f054388759c1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jan 11 00:11:45 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:44 2008 -0800"
      },
      "message": "ocfs2: Silence false lockdep warnings\n\nCreate separate lockdep lock classes for system file\u0027s i_mutexes. They are\nused to guard allocations and similar things and thus rank differently\nthan i_mutex of a regular file or directory.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\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": "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": "15b1e36bdb487d67ef924a37b0967453143be53a",
      "tree": "448e955663c183a12f574f0e470e842d7722c1fb",
      "parents": [
        "8553cf4f360d6fc4913a0bdd3b22dd7b5bb9a3be"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 07 13:58:15 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Oct 12 11:54:39 2007 -0700"
      },
      "message": "ocfs2: Structure updates for inline data\n\nAdd the disk, network and memory structures needed to support data in inode.\n\nStruct ocfs2_inline_data is defined and embedded in ocfs2_dinode for storing\ninline data.\n\nA new inode field, i_dyn_features, is added to facilitate tracking of\ndynamic inode state. Since it will be used often, we want to mirror it on\nocfs2_inode_info, and transfer it via the meta data lvb.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nReviewed-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6e4b0d5692cd27d3c9be893a9f5939a9cafbb09f",
      "tree": "8076c0c9705054596c435075a9e3bae9e8566898",
      "parents": [
        "5c2c9d383ef7f7cfc02d6355798b95988de359b4"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Apr 27 11:08:01 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 02 15:07:58 2007 -0700"
      },
      "message": "[PATCH] Copy i_flags to ocfs2 inode flags on write\n\nPropagate flags such as S_APPEND, S_IMMUTABLE, etc. from i_flags into\nocfs2-specific ip_attr. Hence, when someone sets these flags via a different\ninterface than ioctl, they are stored correctly.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "83418978827324918a8cd25ce5227312de1d4468",
      "tree": "f7baefb1fc8721d6d8d1f1f937bc55535b13e18f",
      "parents": [
        "7cdfc3a1c3971c9125c317cb8c2525745851798e"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Apr 23 18:53:12 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 15:10:40 2007 -0700"
      },
      "message": "ocfs2: Cache extent records\n\nThe extent map code was ripped out earlier because of an inability to deal\nwith holes. This patch adds back a simpler caching scheme requiring far less\ncode.\n\nOur old extent map caching was designed back when meta data block caching in\nOcfs2 didn\u0027t work very well, resulting in many disk reads. These days our\nmetadata caching is much better, resulting in no un-necessary disk reads. As\na result, extent caching doesn\u0027t have to be as fancy, nor does it have to\ncache as many extents. Keeping the last 3 extents seen should be sufficient\nto give us a small performance boost on some streaming workloads.\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": "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": "68e2b740c4b5394680cfefccddbdb486c5866a4c",
      "tree": "a420b97cff9a1d4ffff7f27834318d238675f8c4",
      "parents": [
        "500086300e6dc5308a7328990bd50d17e075162b"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Tue Mar 20 16:42:10 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 14:40:16 2007 -0700"
      },
      "message": "ocfs2: remove unused code\n\nRemove node messaging code that becomes unused with the delete inode vote\nremoval.\n\n[Removed even more cruft which I spotted during review --Mark]\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "500086300e6dc5308a7328990bd50d17e075162b",
      "tree": "4083cda09445c260c2cc2ac1d0f68c05ad2b958e",
      "parents": [
        "a9f5f70739363ccca2e771c274c4f015c5fb7a88"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Tue Mar 20 16:01:38 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Apr 26 14:39:48 2007 -0700"
      },
      "message": "ocfs2: Remove delete inode vote\n\nOcfs2 currently does cluster-wide node messaging to check the open state of\nan inode during delete. This patch removes that mechanism in favor of an\ninode cluster lock which is taken at shared read when an inode is first read\nand dropped in clear_inode(). This allows a deleting node to test the\nliveness of an inode by attempting to take an exclusive lock.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\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": "02928a71ae6da6e3e205d99e1fa1a1f598ddb62d",
      "tree": "0b45c363c0e77cf32fd20a4bc30e6405c5250059",
      "parents": [
        "85b9e783cbc8cf4acc7bfaa76f37ea26b426f514"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Oct 06 18:51:46 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:27:55 2006 -0800"
      },
      "message": "ocfs2: remove unused ocfs2_handle_add_inode()\n\nWe can also delete the unused infrastructure which was once in place to\nsupport this functionality. ocfs2_inode_private loses ip_handle and\nip_handle_list. ocfs2_journal_handle loses handle_list.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "24c19ef40474c3930597f31ae233dc06319bd881",
      "tree": "e05b1cf72435d25bf47e67b206aa376bbea33b7d",
      "parents": [
        "f9e2d82e6395cfa0802446b54b63cc412089d82c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 22 17:28:19 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:46 2006 -0700"
      },
      "message": "ocfs2: Remove i_generation from inode lock names\n\nOCFS2 puts inode meta data in the \"lock value block\" provided by the DLM.\nTypically, i_generation is encoded in the lock name so that a deleted inode\non and a new one in the same block don\u0027t share the same lvb.\n\nUnfortunately, that scheme means that the read in ocfs2_read_locked_inode()\nis potentially thrown away as soon as the meta data lock is taken - we\ncannot encode the lock name without first knowing i_generation, which\nrequires a disk read.\n\nThis patch encodes i_generation in the inode meta data lvb, and removes the\nvalue from the inode meta data lock name. This way, the read can be covered\nby a lock, and at the same time we can distinguish between an up to date and\na stale LVB.\n\nThis will help cold-cache stat(2) performance in particular.\n\nSince this patch changes the protocol version, we take the opportunity to do\na minor re-organization of two of the LVB fields.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "ca4d147e62df370c334898464023aa7f9126abe1",
      "tree": "aff39cd19c5b0a95a1fd85caf439c4aa69c5830e",
      "parents": [
        "b4c98f625fffee3a6f633082e9e4be3e952ca2ab"
      ],
      "author": {
        "name": "Herbert Poetzl",
        "email": "herbert@13thfloor.at",
        "time": "Mon Jul 03 17:27:12 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:48:39 2006 -0700"
      },
      "message": "ocfs2: add ext2 attributes\n\nSupport immutable, and other attributes.\n\nSome renaming and other minor fixes done by myself.\n\nSigned-off-by: Herbert Poetzl \u003cherbert@13thfloor.at\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": "251b6eccbeff4f0f8a3509769b327705e899f5dd",
      "tree": "7da835c3bebc8150a1a1ae6abb681a1e1a9c5f36",
      "parents": [
        "aee93ac4b7ad461255939248d0d51566cff77e05"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jan 10 15:41:43 2006 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Feb 03 13:47:19 2006 -0800"
      },
      "message": "[OCFS2] Make ip_io_sem a mutex\n\nip_io_sem is now ip_io_mutex.\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"
    }
  ]
}
