)]}'
{
  "log": [
    {
      "commit": "337eb00a2c3a421999c39c94ce7e33545ee8baa7",
      "tree": "d9b780d095b638b1d8fa23841ff70347cf5daa08",
      "parents": [
        "4195f73d1329e49727bcceb028e58cb38376c2b0"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Tue May 12 15:10:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Push BKL down into -\u003eremount_fs()\n\n[xfs, btrfs, capifs, shmem don\u0027t need BKL, exempt]\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6cfd0148425e528b859b26e436b01f23f6926224",
      "tree": "60e3257053554ff198fe5825e6f12a00c3b4422a",
      "parents": [
        "a9e220f8322e2b0e0b8903fe00265461cffad3f0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:40:36 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "push BKL down into -\u003eput_super\n\nMove BKL into -\u003eput_super from the only caller.  A couple of\nfilesystems had trivial enough -\u003eput_super (only kfree and NULLing of\ns_fs_info + stuff in there) to not get any locking: coda, cramfs, efs,\nhugetlbfs, omfs, qnx4, shmem, all others got the full treatment.  Most\nof them probably don\u0027t need it, but I\u0027d rather sort that out individually.\nPreferably after all the other BKL pushdowns in that area.\n\n[AV: original used to move lock_super() down as well; these changes are\nremoved since we don\u0027t do lock_super() at all in generic_shutdown_super()\nnow]\n[AV: fuse, btrfs and xfs are known to need no damn BKL, exempt]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "94cb993f2ee99f3a9318e7b4dbb383497c4bedea",
      "tree": "71c2436a8588d253938d50e30b561dcefbb83cd7",
      "parents": [
        "b7d245de25d1f0bb75a0d04194b647762b30d3db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:44 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "ocfs2: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1",
      "tree": "d60d15a082171c58ac811d547d51a9c3119f23e3",
      "parents": [
        "9bd7de51ee8537094656149eaf45338cadb7d7d4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Do away with the notion of hardsect_size\n\nUntil now we have had a 1:1 mapping between storage device physical\nblock size and the logical block sized used when addressing the device.\nWith SATA 4KB drives coming out that will no longer be the case.  The\nsector size will be 4KB but the logical block size will remain\n512-bytes.  Hence we need to distinguish between the physical block size\nand the logical ditto.\n\nThis patch renames hardsect_size to logical_block_size.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a731d12d6ddd1e703770cacb5dfecb155b03ee06",
      "tree": "601a1cef230bf0ad6c5969568f2ba3ef8a128333",
      "parents": [
        "265e771e8197cdb22a1e2556663173fb62c9cd91"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "Joel.Becker@oracle.com",
        "time": "Mon Apr 06 16:43:42 2009 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:40 2009 -0400"
      },
      "message": "ocfs2: Use nd_set_link().\n\nocfs2 was hand-calling vfs_follow_link(), but there\u0027s no point to that.\nLet\u0027s use page_follow_link_light() and nd_set_link().\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7e567b44e6c59ad8bec321afb03302ffb1e6dda6",
      "tree": "bd02466f931a471691db1da47d6d072924cfef1f",
      "parents": [
        "020f932bd246e9d595f7a006250762d98ffeab46",
        "2191aebaf9af9125bfee32808babe6f61446c8a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 16:30:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 16:30:47 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2: Change repository in MAINTAINERS.\n  ocfs2: Fix a missing credit when deleting from indexed directories.\n  ocfs2/trivial: Remove unused variable in ocfs2_rename.\n  ocfs2: Add missing iput() during error handling in ocfs2_dentry_attach_lock()\n  ocfs2: Fix some printk() warnings.\n  ocfs2: Fix 2 warning during ocfs2 make.\n  ocfs2: Reserve 1 more cluster in expanding_inline_dir for indexed dir.\n"
    },
    {
      "commit": "dfa13f39b798fee68250abe1aed851395c8b51b5",
      "tree": "9a563954a2b7f34cb005a35152213d734f4763c9",
      "parents": [
        "7e31a966ad270ba32a77c157c015cd7c82faaa55"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Apr 29 17:55:08 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Apr 30 13:21:56 2009 -0700"
      },
      "message": "ocfs2: Fix a missing credit when deleting from indexed directories.\n\nThe ocfs2 directory index updates two blocks when we remove an entry -\nthe dx root and the dx leaf.  OCFS2_DELETE_INODE_CREDITS was only\naccounting for the dx leaf.  This shows up when ocfs2_delete_inode()\nruns out of credits in jbd2_journal_dirty_metadata() at\n\"J_ASSERT_JH(jh, handle-\u003eh_buffer_credits \u003e 0);\".\n\nThe test that caught this was running dirop_file_racer from the\nocfs2-test suite with a 250-character filename PREFIX.  Run on a 512B\nblocksize, it forces the orphan dir index to grow large enough to\ntrigger.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "7e31a966ad270ba32a77c157c015cd7c82faaa55",
      "tree": "48b6c6ca388c773f8bf6864aa20512eaecbc3d44",
      "parents": [
        "a5a0a630922a2f6a774b6dac19f70cb5abd86bb0"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Apr 29 01:20:55 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Apr 29 10:57:18 2009 -0700"
      },
      "message": "ocfs2/trivial: Remove unused variable in ocfs2_rename.\n\nWith indexed dir enabled, now we use ocfs2_dir_lookup_result to\nwrap all the bh used for dir. So remove the 2 unused variables.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "a5a0a630922a2f6a774b6dac19f70cb5abd86bb0",
      "tree": "6f6106eff47a9d53971ad9fe7b408ac1ae8f12c5",
      "parents": [
        "5b09b507daaa882d888b6cd78ee89ba9caace44b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Mon Apr 20 21:34:18 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Apr 23 14:56:13 2009 -0700"
      },
      "message": "ocfs2: Add missing iput() during error handling in ocfs2_dentry_attach_lock()\n\nIn ocfs2_dentry_attach_lock(), if unable to get the dentry lock, we need to\ncall iput(inode) because a failure here means no d_instantiate(), which means\nthe normally matching iput() will not be called during dput(dentry).\n\nThis patch fixes the oops that accompanies the following message:\n(3996,1):dlm_empty_lockres:2708 ERROR: lockres W00000000000000000a1046b06a4382 still has local locks!\nkernel BUG in dlm_empty_lockres at /rpmbuild/smushran/BUILD/ocfs2-1.4.2/fs/ocfs2/dlm/dlmmaster.c:2709!\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5b09b507daaa882d888b6cd78ee89ba9caace44b",
      "tree": "afc4622ffd2c81c7e851b8a17bcb73395d5cf277",
      "parents": [
        "0fba813748f16f4eaf24d492c505226c4026d58f"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Apr 21 16:31:20 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Apr 21 16:31:20 2009 -0700"
      },
      "message": "ocfs2: Fix some printk() warnings.\n\nThe old %llu vs u64 battle.  Cast them correctly.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "0fba813748f16f4eaf24d492c505226c4026d58f",
      "tree": "844ff2c81adc12bab68e88a403fbdf3d48d92320",
      "parents": [
        "035a571120ddbe4f92b91bbe46f3eff05b6e43eb"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Mar 19 05:08:43 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Apr 21 16:23:39 2009 -0700"
      },
      "message": "ocfs2: Fix 2 warning during ocfs2 make.\n\nfs/ocfs2/dir.c: In function ‘ocfs2_extend_dir’:\nfs/ocfs2/dir.c:2700: warning: ‘ret’ may be used uninitialized in this function\n\nfs/ocfs2/suballoc.c: In function ‘ocfs2_get_suballoc_slot_bit’:\nfs/ocfs2/suballoc.c:2216: warning: comparison is always true due to limited range of data type\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "328eaaba4e41a04c1dc4679d65bea3fee4349d86",
      "tree": "171bf86b590a841729bab11feec874869bcab49e",
      "parents": [
        "eb443e5a25d43996deb62b9bcee1a4ce5dea2ead"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Apr 14 19:48:39 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:10:12 2009 +0200"
      },
      "message": "ocfs2: fix i_mutex locking in ocfs2_splice_to_file()\n\nRearrange locking of i_mutex on destination and call to\nocfs2_rw_lock() so locks are only held while buffers are copied with\nthe pipe_to_file() actor, and not while waiting for more data on the\npipe.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "035a571120ddbe4f92b91bbe46f3eff05b6e43eb",
      "tree": "4531b51dab77f7c715b61b74d69e78093b38e16c",
      "parents": [
        "612392307cb09e49051225092cbbd7049bd8db93"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Apr 07 07:40:57 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Apr 07 09:40:17 2009 -0700"
      },
      "message": "ocfs2: Reserve 1 more cluster in expanding_inline_dir for indexed dir.\n\nIn ocfs2_expand_inline_dir, we calculate whether we need 1 extra\ncluster if we can\u0027t store the dx inline the root and save it in\ndx_alloc. So add it when we call ocfs2_reserve_clusters.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7bfac9ecf0585962fe13584f5cf526d8c8e76f17",
      "tree": "7e7c98311bb0d4c26e514b337216bbc8ade8d078",
      "parents": [
        "612392307cb09e49051225092cbbd7049bd8db93"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Apr 06 17:41:00 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:34:46 2009 -0700"
      },
      "message": "splice: fix deadlock in splicing to file\n\nThere\u0027s a possible deadlock in generic_file_splice_write(),\nsplice_from_pipe() and ocfs2_file_splice_write():\n\n - task A calls generic_file_splice_write()\n - this calls inode_double_lock(), which locks i_mutex on both\n   pipe-\u003einode and target inode\n - ordering depends on inode pointers, can happen that pipe-\u003einode is\n   locked first\n - __splice_from_pipe() needs more data, calls pipe_wait()\n - this releases lock on pipe-\u003einode, goes to interruptible sleep\n - task B calls generic_file_splice_write(), similarly to the first\n - this locks pipe-\u003einode, then tries to lock inode, but that is\n   already held by task A\n - task A is interrupted, it tries to lock pipe-\u003einode, but fails, as\n   it is already held by task B\n - ABBA deadlock\n\nFix this by explicitly ordering locks: the outer lock must be on\ntarget inode and the inner lock (which is later unlocked and relocked)\nmust be on pipe-\u003einode.  This is OK, pipe inodes and target inodes\nform two nonoverlapping sets, generic_file_splice_write() and friends\nare not called with a target which is a pipe.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9140db04ef185f934acf2b1b15b3dd5e6a6bfc22",
      "tree": "354dbc0351195ae2b6ea5f7dfbf68a99307c3d69",
      "parents": [
        "1fca3a05ef2823830925dfb66711d6d920265a8d"
      ],
      "author": {
        "name": "Srinivas Eeda",
        "email": "srinivas.eeda@oracle.com",
        "time": "Fri Mar 06 14:21:46 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:26 2009 -0700"
      },
      "message": "ocfs2: recover orphans in offline slots during recovery and mount\n\nDuring recovery, a node recovers orphans in it\u0027s slot and the dead node(s). But\nif the dead nodes were holding orphans in offline slots, they will be left\nunrecovered.\n\nIf the dead node is the last one to die and is holding orphans in other slots\nand is the first one to mount, then it only recovers it\u0027s own slot, which\nleaves orphans in offline slots.\n\nThis patch queues complete_recovery to clean orphans for all offline slots\nduring mount and node recovery.\n\nSigned-off-by: Srinivas Eeda \u003csrinivas.eeda@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1fca3a05ef2823830925dfb66711d6d920265a8d",
      "tree": "95717db99015caf84c8c90ab94af093b3d75d731",
      "parents": [
        "6ca497a83e592d64e050c4d04b6dedb8c915f39a"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Thu Mar 05 17:22:21 2009 +0900"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:26 2009 -0700"
      },
      "message": "ocfs2: Pagecache usage optimization on ocfs2\n\nA page can have multiple buffers and even if a page is not uptodate, some buffers\ncan be uptodate on pagesize !\u003d blocksize environment.\nThis aops checks that all buffers which correspond to a part of a file\nthat we want to read are uptodate. If so, we do not have to issue actual\nread IO to HDD even if a page is not uptodate because the portion we\nwant to read are uptodate.\n\"block_is_partially_uptodate\" function is already used by ext2/3/4.\nWith the following patch random read/write mixed workloads or random read after\nrandom write workloads can be optimized and we can get performance improvement.\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.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": "9405dccfd3201d2b76e120949bec81ba8cfbd2d0",
      "tree": "91a9524cf4e01b82edad14be383d5df3fe29a372",
      "parents": [
        "516b7e52abc7efd61c084b217c61985a403828ed"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:49 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:25 2009 -0700"
      },
      "message": "ocfs2/dlm: Tweak mle_state output\n\nThe debugfs file, mle_state, now prints the number of largest number of mles\nin one hash link.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "516b7e52abc7efd61c084b217c61985a403828ed",
      "tree": "80bd45f16b00bd009e6a0306cec430d0ef7b49bc",
      "parents": [
        "7141514b8307734c117f100c4a3637887c5def45"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:48 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:24 2009 -0700"
      },
      "message": "ocfs2/dlm: Do not purge lockres that is being migrated dlm_purge_lockres()\n\nThis patch attempts to fix a fine race between purging and migration.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7141514b8307734c117f100c4a3637887c5def45",
      "tree": "8f2944508cdb0dd1ea7288d7300e4c29995c904e",
      "parents": [
        "e64ff14607ac90b2f3349550a41cc8dc0c0b1324"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:47 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:23 2009 -0700"
      },
      "message": "ocfs2/dlm: Remove struct dlm_lock_name in struct dlm_master_list_entry\n\nThis patch removes struct dlm_lock_name and adds the entries directly\nto struct dlm_master_list_entry. Under the new scheme, both mles that\nare backed by a lockres or not, will have the name populated in mle-\u003emname.\nThis allows us to get rid of code that was figuring out the location of\nthe mle name.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e64ff14607ac90b2f3349550a41cc8dc0c0b1324",
      "tree": "e1aacbdff2ae5eef2b192212a7daf5dec0e6601c",
      "parents": [
        "7d62a978a8c85cd82301615840d744f0d83b87e7"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:46 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:22 2009 -0700"
      },
      "message": "ocfs2/dlm: Show the number of lockres/mles in dlm_state\n\nThis patch shows the number of lockres\u0027 and mles in the debugfs file, dlm_state.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7d62a978a8c85cd82301615840d744f0d83b87e7",
      "tree": "c8e3e59f85ddbfef31a41e8f966e6e88e9d4890b",
      "parents": [
        "6800791ab773453bdec337efb3f0cec6557f3bb3"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:45 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:21 2009 -0700"
      },
      "message": "ocfs2/dlm: dlm_set_lockres_owner() and dlm_change_lockres_owner() inlined\n\nThis patch inlines dlm_set_lockres_owner() and dlm_change_lockres_owner().\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "6800791ab773453bdec337efb3f0cec6557f3bb3",
      "tree": "c4f678c75d17aae11eae6e71d16962c7526da194",
      "parents": [
        "2041d8fdcec7603401829f60810c1dbd5e96c043"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:44 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:21 2009 -0700"
      },
      "message": "ocfs2/dlm: Improve lockres counts\n\nThis patch replaces the lockres counts that tracked the number number of\nlocally and remotely mastered lockres\u0027 with a current and total count. The\ntotal count is the number of lockres\u0027 that have been created since the dlm\ndomain was created.\n\nThe number of locally and remotely mastered counts can be computed using\nthe locking_state output.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2041d8fdcec7603401829f60810c1dbd5e96c043",
      "tree": "b11697962ccdec9556e66e6c261ecff33d1fb468",
      "parents": [
        "67ae1f0604da3bcf3ed6dec59ac71d07e54a404c"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:43 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:21 2009 -0700"
      },
      "message": "ocfs2/dlm: Track number of mles\n\nThe lifetime of a mle is limited to the duration of the lockres mastery\nprocess. While typically this lifetime is fairly short, we have noticed\nthe number of mles explode under certain circumstances. This patch tracks\nthe number of each different types of mles and should help us determine\nhow best to speed up the mastery process.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "67ae1f0604da3bcf3ed6dec59ac71d07e54a404c",
      "tree": "dd97a77e0d718d6d154c41a7c5178c1cfcb709b6",
      "parents": [
        "2ed6c750d645d09b5948e46fada3ca1fda3157b5"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:42 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:21 2009 -0700"
      },
      "message": "ocfs2/dlm: Indent dlm_cleanup_master_list()\n\nThe previous patch explicitly did not indent dlm_cleanup_master_list()\nso as to make the patch readable. This patch properly indents the\nfunction.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2ed6c750d645d09b5948e46fada3ca1fda3157b5",
      "tree": "47d2a6b7d3f6407312f9857abdaf114f14223286",
      "parents": [
        "e2b66ddcce922529e058cf74d839c4c49c8379a1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:41 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:19 2009 -0700"
      },
      "message": "ocfs2/dlm: Activate dlm-\u003emaster_hash for master list entries\n\nWith this patch, the mles are stored in a hash and not a simple list.\nThis should improve the mle lookup time when the number of outstanding\nmasteries is large.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e2b66ddcce922529e058cf74d839c4c49c8379a1",
      "tree": "d27e078e59c79624a2f7a1317c50934e543489f1",
      "parents": [
        "c2cd4a44333034203cb198915e2b75c3227d41bf"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:40 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:18 2009 -0700"
      },
      "message": "ocfs2/dlm: Create and destroy the dlm-\u003emaster_hash\n\nThis patch adds code to create and destroy the dlm-\u003emaster_hash.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c2cd4a44333034203cb198915e2b75c3227d41bf",
      "tree": "69e6bf95830daec0db0cd3219c55edfa87fc4e64",
      "parents": [
        "f77a9a78c3a1d995b3bf948dbcad5c4a1b2302d5"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:39 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:18 2009 -0700"
      },
      "message": "ocfs2/dlm: Refactor dlm_clean_master_list()\n\nThis patch refactors dlm_clean_master_list() so as to make it\neasier to convert the mle list to a hash.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f77a9a78c3a1d995b3bf948dbcad5c4a1b2302d5",
      "tree": "c12f1fa1da0a64693d39a2f98c5a1981bf58a83a",
      "parents": [
        "1c0845773ad9f4875603b752235aea8aa04565f3"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:38 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:18 2009 -0700"
      },
      "message": "ocfs2/dlm: Clean up struct dlm_lock_name\n\nFor master mle, the name it stored in the attached lockres in struct qstr.\nFor block and migration mle, the name is stored inline in struct dlm_lock_name.\nThis patch attempts to make struct dlm_lock_name look like a struct qstr. While\nwe could use struct qstr, we don\u0027t because we want to avoid having to malloc\nand free the lockname string as the mle\u0027s lifetime is fairly short.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1c0845773ad9f4875603b752235aea8aa04565f3",
      "tree": "35554daeb156154197c664d6dd5a52552eb292e4",
      "parents": [
        "feb473a6e8bd19297d0f3bb377b25055c0228c0a"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Feb 26 15:00:37 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:18 2009 -0700"
      },
      "message": "ocfs2/dlm: Encapsulate adding and removing of mle from dlm-\u003emaster_list\n\nThis patch encapsulates adding and removing of the mle from the\ndlm-\u003emaster_list. This patch is part of the series of patches that\nconverts the mle list to a mle hash.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "feb473a6e8bd19297d0f3bb377b25055c0228c0a",
      "tree": "4ceae3a185fc430c8927dc0bbb197a3694c37194",
      "parents": [
        "60ca81e82dae4aa2e8ae84cf96b4d08535931669"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Feb 25 00:53:25 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:18 2009 -0700"
      },
      "message": "ocfs2: Optimize inode group allocation by recording last used group.\n\nIn ocfs2, the block group search looks for the \"emptiest\" group\nto allocate from. So if the allocator has many equally(or almost\nequally) empty groups, new block group will tend to get spread\nout amongst them.\n\nSo we add osb_inode_alloc_group in ocfs2_super to record the last\nused inode allocation group.\nFor more details, please see\nhttp://oss.oracle.com/osswiki/OCFS2/DesignDocs/InodeAllocationStrategy.\n\nI have done some basic test and the results are a ten times improvement on\nsome cold-cache stat workloads.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "60ca81e82dae4aa2e8ae84cf96b4d08535931669",
      "tree": "da9b5d2a002ae886ec5e82b7c49429437b1b772d",
      "parents": [
        "138211515c102807a16c02fdc15feef1f6ef8124"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Feb 25 00:53:24 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:17 2009 -0700"
      },
      "message": "ocfs2: Allocate inode groups from global_bitmap.\n\nInode groups used to be allocated from local alloc file,\nbut since we want all inodes to be contiguous enough, we\nwill try to allocate them directly from global_bitmap.\n\nSigned-off-by: Tao Ma \u003ctao.ma@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": "1d46dc08d33138c29c63d717807c08ab704fc773",
      "tree": "8e4d2e1b5c49cb379c0f800e00e1cd01d33d4d0c",
      "parents": [
        "b80b549c3520b31d3bbc4b36e37e0a5102da0b94"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 19 13:17:05 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:17 2009 -0700"
      },
      "message": "ocfs2: fix leaf start calculation in ocfs2_dx_dir_rebalance()\n\nocfs2_dx_dir_rebalance() is passed the block offset of a dx leaf which needs\nrebalancing. Since we rebalance an entire cluster at a time however, this\nfunction needs to calculate the beginning of that cluster, in blocks. The\ncalculation was wrong, which would result in a read of non-leaf blocks. Fix\nthe calculation by adding ocfs2_block_to_cluster_start() which is a more\nstraight-forward way of determining this.\n\nReported-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "b80b549c3520b31d3bbc4b36e37e0a5102da0b94",
      "tree": "403d548a9be6a1e1ae8063a732d520a06defd83c",
      "parents": [
        "3a8df2b9c365a9f366b76bbbce479e1cc18ddc16"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Feb 18 11:41:38 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:17 2009 -0700"
      },
      "message": "ocfs2: re-order ocfs2_empty_dir checks\n\nocfs2_empty_dir() is far more expensive than checking link count. Since both\nneed to be checked at the same time, we can improve performance by checking\nlink count first.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "3a8df2b9c365a9f366b76bbbce479e1cc18ddc16",
      "tree": "576a2672cb9b1258d73505ecaddbac5ccde0eb25",
      "parents": [
        "e3a93c2db6410822aa24295c3874b44ba21730a8"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 24 17:14:09 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:16 2009 -0700"
      },
      "message": "ocfs2: Enable indexed directories\n\nSince the disk format is finalized, we can set this feature bit in the\nsupported mask.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\n"
    },
    {
      "commit": "e3a93c2db6410822aa24295c3874b44ba21730a8",
      "tree": "8de41a37abc6497745d07506a0fb5174da61d7c1",
      "parents": [
        "198a1ca3b735986542c538e38b9499ffcaed7005"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Feb 17 15:29:35 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:16 2009 -0700"
      },
      "message": "ocfs2: Add total entry count to dx_root_block\n\nThis little bit of extra accounting speeds up ocfs2_empty_dir()\ndramatically by allowing us to short-circuit the full directory scan.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "198a1ca3b735986542c538e38b9499ffcaed7005",
      "tree": "3b02034534c4640e72623088a59d1e942c38e7c3",
      "parents": [
        "e7c17e43090afe558c40bfb66637744c27bd2aeb"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Nov 20 17:54:57 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:16 2009 -0700"
      },
      "message": "ocfs2: Increase max links count\n\nSince we\u0027ve now got a directory format capable of handling a large number of\nentries, we can increase the maximum link count supported. This only gets\nincreased if the directory indexing feature is turned on.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "e7c17e43090afe558c40bfb66637744c27bd2aeb",
      "tree": "4c164c4ec59eaa7599c91f865a261517454ba45f",
      "parents": [
        "4ed8a6bb083bfcc21f1ed66a474b03c0386e4b34"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jan 29 18:17:46 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:16 2009 -0700"
      },
      "message": "ocfs2: Introduce dir free space list\n\nThe only operation which doesn\u0027t get faster with directory indexing is\ninsert, which still has to walk the entire unindexed directory portion to\nfind a free block. This patch provides an improvement in directory insert\nperformance by maintaining a singly linked list of directory leaf blocks\nwhich have space for additional dirents.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "4ed8a6bb083bfcc21f1ed66a474b03c0386e4b34",
      "tree": "89cc2629bed3949e980edcae3d807e71718a9028",
      "parents": [
        "9b7895efac906d66d19856194e1ba61f37e231a4"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Nov 24 17:02:08 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:16 2009 -0700"
      },
      "message": "ocfs2: Store dir index records inline\n\nAllow us to store a small number of directory index records in the\nocfs2_dx_root_block. This saves us a disk read on small to medium sized\ndirectories (less than about 250 entries). The inline root is automatically\nturned into a root block with extents if the directory size increases beyond\nit\u0027s capacity.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "9b7895efac906d66d19856194e1ba61f37e231a4",
      "tree": "1ee6d2630cf3617251638170dcaceef41ddda8ec",
      "parents": [
        "4a12ca3a00a244e1fd1e673d151ea38b71e11d55"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Nov 12 16:27:44 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Add a name indexed b-tree to directory inodes\n\nThis patch makes use of Ocfs2\u0027s flexible btree code to add an additional\ntree to directory inodes. The new tree stores an array of small,\nfixed-length records in each leaf block. Each record stores a hash value,\nand pointer to a block in the traditional (unindexed) directory tree where a\ndirent with the given name hash resides. Lookup exclusively uses this tree\nto find dirents, thus providing us with constant time name lookups.\n\nSome of the hashing code was copied from ext3. Unfortunately, it has lots of\nunfixed checkpatch errors. I left that as-is so that tracking changes would\nbe easier.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "4a12ca3a00a244e1fd1e673d151ea38b71e11d55",
      "tree": "84e30310a7d93ead9910f761e19d3fe73c5861b3",
      "parents": [
        "59b526a30722f29e5dba6210a6e0fc34e3149b94"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Nov 12 15:43:34 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Introduce dir lookup helper struct\n\nMany directory manipulation calls pass around a tuple of dirent, and it\u0027s\ncontaining buffer_head. Dir indexing has a bit more state, but instead of\nadding yet more arguments to functions, we introduce \u0027struct\nocfs2_dir_lookup_result\u0027. In this patch, it simply holds the same tuple, but\nfuture patches will add more state.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "59b526a30722f29e5dba6210a6e0fc34e3149b94",
      "tree": "d373fe3f283f584f22ffb7eed60c937c0bf893a6",
      "parents": [
        "50397507e856455b3f5cb3d5c7c482209f9e46a0"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Dec 16 15:49:18 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Remove debugfs file local_alloc_stats\n\nThis patch removes the debugfs file local_alloc_stats as that information\nis now included in the fs_state debugfs file.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "50397507e856455b3f5cb3d5c7c482209f9e46a0",
      "tree": "537d1aa6aec9108aa080a2b58f68fac767420416",
      "parents": [
        "96a6c64b5354b804b3ccfd1b31306565a01ebcb1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Dec 17 14:17:43 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Expose the file system state via debugfs\n\nThis patch creates a per mount debugfs file, fs_state, which exposes\ninformation like, cluster stack in use, states of the downconvert, recovery\nand commit threads, number of journal txns, some allocation stats, list of\nall slots, etc.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "96a6c64b5354b804b3ccfd1b31306565a01ebcb1",
      "tree": "de8bde922d2e5fdb4d0698dc4169b57acd7e4b8b",
      "parents": [
        "87d3d3f3931f3e0fca44fbb5c06ad45fc4dca9bc"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Dec 16 15:49:16 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:14 2009 -0700"
      },
      "message": "ocfs2: Move struct recovery_map to a header file\n\nMove the definition of struct recovery_map from journal.c to journal.h. This\nis preparation for the next patch.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "87d3d3f3931f3e0fca44fbb5c06ad45fc4dca9bc",
      "tree": "3f707f7b29905975b054906df0317f833cd411a0",
      "parents": [
        "20bec8ab1458c24bed0d5492ee15d87807fc415a"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Dec 17 14:17:42 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:14 2009 -0700"
      },
      "message": "ocfs2/hb: Expose the list of heartbeating nodes via debugfs\n\nThis patch creates a debugfs file, o2hb/livesnodes, which exposes the\naggregate list of heartbeating node across all heartbeat regions.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8fe74cf053de7ad2124a894996f84fa890a81093",
      "tree": "77dcd8fbf33ce53a3821942233962fb28c6f2848",
      "parents": [
        "c2eb2fa6d2b6fe122d3479ec5b28d978418b2698",
        "ced117c73edc917e96dea7cca98c91383f0792f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Remove two unneeded exports and make two symbols static in fs/mpage.c\n  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225\n  Trim includes of fdtable.h\n  Don\u0027t crap into descriptor table in binfmt_som\n  Trim includes in binfmt_elf\n  Don\u0027t mess with descriptor table in load_elf_binary()\n  Get rid of indirect include of fs_struct.h\n  New helper - current_umask()\n  check_unsafe_exec() doesn\u0027t care about signal handlers sharing\n  New locking/refcounting for fs_struct\n  Take fs_struct handling to new file (fs/fs_struct.c)\n  Get rid of bumping fs_struct refcount in pivot_root(2)\n  Kill unsharing fs_struct in __set_personality()\n"
    },
    {
      "commit": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48",
      "tree": "ab952affafe18e604f6aaf6b13315b9435588e60",
      "parents": [
        "f1191b50ec11c8e2ca766d6d99eb5bb9d2c084a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:08:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "New helper - current_umask()\n\ncurrent-\u003efs-\u003eumask is what most of fs_struct users are doing.\nPut that into a helper function.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d8fba0ffe5e7442fc2560873ec901be6e56602a1",
      "tree": "99e6aec6f22e2584503571c350c3c22d55dc2704",
      "parents": [
        "92cecbbfa3785a944c733a284b77faee5b82b70c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 20 06:00:26 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:02 2009 -0400"
      },
      "message": "constify dentry_operations: OCFS2\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "712e53e46a1da35fcd88c05aa0c675b10f7c0e9d",
      "tree": "f67f6aae06936bcf28c669b48e55ac39a6854be2",
      "parents": [
        "74e77eb30d0ecbb12964d005b439c8b84a505b84"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Mar 12 08:37:34 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Mar 12 16:46:09 2009 -0700"
      },
      "message": "ocfs2: Use xs-\u003ebucket to set xattr value outside\n\nA long time ago, xs-\u003ebase is allocated a 4K size and all the contents\nin the bucket are copied to the it. Now we use ocfs2_xattr_bucket to\nabstract xattr bucket and xs-\u003ebase is initialized to the start of the\nbu_bhs[0]. So xs-\u003ebase + offset will overflow when the value root is\nstored outside the first block.\n\nThen why we can survive the xattr test by now? It is because we always\nread the bucket contiguously now and kernel mm allocate continguous\nmemory for us. We are lucky, but we should fix it. So just get the\nright value root as other callers do.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "74e77eb30d0ecbb12964d005b439c8b84a505b84",
      "tree": "99e14b596439c1cc04a8559859939e7e47825479",
      "parents": [
        "d9ae49d6e2b1ac9166e58ae3c9345135604beaa6"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Mar 12 06:24:23 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Mar 12 16:46:01 2009 -0700"
      },
      "message": "ocfs2: Fix a bug found by sparse check.\n\nWe need to use le32_to_cpu to test rec-\u003ee_cpos in\nocfs2_dinode_insert_check.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d9ae49d6e2b1ac9166e58ae3c9345135604beaa6",
      "tree": "e6d5bbc8160a8c810534dc699e79f2b2a7792000",
      "parents": [
        "6c9fd1dc0a597e575617a7de7086c8a3efa8f524"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Thu Mar 05 11:06:15 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Mar 12 16:45:46 2009 -0700"
      },
      "message": "ocfs2: tweak to get the maximum inline data size with xattr\n\nReplace max_inline_data with max_inline_data_with_xattr\nto ensure it correct when xattr inlined.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "6c9fd1dc0a597e575617a7de7086c8a3efa8f524",
      "tree": "bda5cb32ef359dc97aa71ea73072f534f5c6f99b",
      "parents": [
        "ebdcc81c71937b30e09110c02a1e8a21fa770b6f"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Mar 06 10:19:30 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Mar 12 16:45:40 2009 -0700"
      },
      "message": "ocfs2: reserve xattr block for new directory with inline data\n\nIf this is a new directory with inline data, we choose to\nreserve the entire inline area for directory contents and\nforce an external xattr block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "28d57d437786eb3e44f1ca3f0f41e7cfe29c6dd4",
      "tree": "f6dfd111dac45ee7e2b366eb47a2598f46460a1e",
      "parents": [
        "4442f518269c6b3686fcbcadad22dc4475309b16"
      ],
      "author": {
        "name": "wengang wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Fri Feb 13 10:11:47 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:12 2009 -0800"
      },
      "message": "ocfs2: add IO error check in ocfs2_get_sector()\n\nCheck for IO error in ocfs2_get_sector().\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4442f518269c6b3686fcbcadad22dc4475309b16",
      "tree": "5d054d3e44dc95d6ce48709894fe5f2449fb6c77",
      "parents": [
        "c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Feb 20 11:11:50 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: set gap to seperate entry and value when xattr in bucket\n\nThis patch set a gap (4 bytes) between xattr entry and\nname/value when xattr in bucket. This gap use to seperate\nentry and name/value when a bucket is full. It had already\nbeen set when xattr in inode/block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7",
      "tree": "81ab9d6d0be93e57bcb17130abed3516574b3752",
      "parents": [
        "89a907afe073b8971a83d0ad54f391542b64d327"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Feb 24 17:40:26 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: lock the metaecc process for xattr bucket\n\nFor other metadata in ocfs2, metaecc is checked in ocfs2_read_blocks\nwith io_mutex held. While for xattr bucket, it is calculated by\nthe whole buckets. So we have to add a spin_lock to prevent multiple\nprocesses calculating metaecc.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nTested-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "89a907afe073b8971a83d0ad54f391542b64d327",
      "tree": "0168dc1ee1a92981c74c73e9a224e9d4fe63b048",
      "parents": [
        "53ecd25e148615e0ed2a72635cc76f4773f97f90"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Feb 17 04:39:28 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: Use the right access_* method in ctime update of xattr.\n\nIn ctime updating of xattr, it use the wrong type of access for\ninode, so use ocfs2_journal_access_di instead.\n\nReported-and-Tested-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "53ecd25e148615e0ed2a72635cc76f4773f97f90",
      "tree": "ad4f26d160889792c72199678634b4132c5ce1d7",
      "parents": [
        "dabc47de7a23f57522dc762d9d2ad875700d3497"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:16 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2/dlm: Make dlm_assert_master_handler() kill itself instead of the asserter\n\nIn dlm_assert_master_handler(), if we get an incorrect assert master from a node\nthat, we reply with EINVAL asking the asserter to die. The problem is that an\nassert is sent after so many hoops, it is invariably the node that thinks the\nasserter is wrong, is actually wrong. So instead of killing the asserter, this\npatch kills the assertee.\n\nThis patch papers over a race that is still being addressed.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "dabc47de7a23f57522dc762d9d2ad875700d3497",
      "tree": "02d3bca6eaa20975512693a4fcce988dd7df4855",
      "parents": [
        "c74ff8bb2235d848beb67fcfddae71ecbe3f92b1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:15 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2/dlm: Use ast_lock to protect ast_list\n\nThe code was using dlm-\u003espinlock instead of dlm-\u003east_lock to protect the\nast_list. This patch fixes the issue.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c74ff8bb2235d848beb67fcfddae71ecbe3f92b1",
      "tree": "516dd4c87a13c5a068fb47660488f52de486ddb2",
      "parents": [
        "7dc102b737e9f49dac426161294cb2d326a97d8e"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:14 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2: Cleanup the lockname print in dlmglue.c\n\nThe dentry lock has a different format than other locks. This patch fixes\nocfs2_log_dlm_error() macro to make it print the dentry lock correctly.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7dc102b737e9f49dac426161294cb2d326a97d8e",
      "tree": "6073525b25fa7ab423099e808866cfdf96f668dd",
      "parents": [
        "47be12e4eec84c1846f29af64fe25a396b57a026"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Feb 03 12:37:13 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2/dlm: Retract fix for race between purge and migrate\n\nMainline commit d4f7e650e55af6b235871126f747da88600e8040 attempts to delay\nthe dlm_thread from sending the drop ref message if the lockres is being\nmigrated. The problem is that we make the dlm_thread wait for the migration\nto complete. This causes a deadlock as dlm_thread also participates in the\nlockres migration process.\n\nA better fix for the original oss bugzilla#1012 is in testing.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "47be12e4eec84c1846f29af64fe25a396b57a026",
      "tree": "a16590b4fc4e3753295c230a32f07a6e1bbd3a57",
      "parents": [
        "64e71303e44f3697e4568147caa966de74bdb4fb"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Jan 09 07:32:48 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:09 2009 -0800"
      },
      "message": "ocfs2: Access and dirty the buffer_head in mark_written.\n\nIn __ocfs2_mark_extent_written, when we meet with the situation\nof c_split_covers_rec, the old solution just replace the extent\nrecord and forget to access and dirty the buffer_head. This will\ncause a problem when the unwritten extent is in an extent block.\nSo access and dirty it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7f5aa215088b817add9c71914b83650bdd49f8a9",
      "tree": "9b811d1f0b41a2738fc68654ae605bf5d8cf2a72",
      "parents": [
        "9eddacf9e9c03578ef2c07c9534423e823d677f8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 11:15:34 2009 -0500"
      },
      "committer": {
        "name": "Theodore Tso",
        "email": "tytso@mit.edu",
        "time": "Tue Feb 10 11:15:34 2009 -0500"
      },
      "message": "jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()\n\nIf we race with commit code setting i_transaction to NULL, we could\npossibly dereference it.  Proper locking requires the journal pointer\n(to access journal-\u003ej_list_lock), which we don\u0027t have.  So we have to\nchange the prototype of the function so that filesystem passes us the\njournal pointer.  Also add a more detailed comment about why the\nfunction jbd2_journal_begin_ordered_truncate() does what it does and\nhow it should be used.\n\nThanks to Dan Carpenter \u003cerror27@gmail.com\u003e for pointing to the\nsuspitious code.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCC: linux-ext4@vger.kernel.org\nCC: ocfs2-devel@oss.oracle.com\nCC: mfasheh@suse.de\nCC: Dan Carpenter \u003cerror27@gmail.com\u003e\n"
    },
    {
      "commit": "fd4ef231962ab44fd1004e87f9d7c6809f00cd64",
      "tree": "7a79939e1a5c84a41e1a7063fbe2eb68848c9a25",
      "parents": [
        "a4b91965d39d5d53b470d6aa62cba155a6f3ffe1"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jan 29 15:06:21 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:20 2009 -0800"
      },
      "message": "ocfs2: add quota call to ocfs2_remove_btree_range()\n\nWe weren\u0027t reclaiming the clusters which get free\u0027d from this function,\nso any user punching holes in a file would still have those bytes accounted\nagainst him/her. Add the call to vfs_dq_free_space_nodirty() to fix this.\nInterestingly enough, the journal credits calculation already took this into\naccount.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a4b91965d39d5d53b470d6aa62cba155a6f3ffe1",
      "tree": "823d8730f730e41204c62f645953fac5de9315a3",
      "parents": [
        "554e7f9e043e29da79c044f7a55efe4fad40701e"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Jan 29 17:12:31 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:19 2009 -0800"
      },
      "message": "ocfs2: Wakeup the downconvert thread after a successful cancel convert\n\nWhen two nodes holding PR locks on a resource concurrently attempt to\nupconvert the locks to EX, the master sends a BAST to one of the nodes. This\nmessage tells that node to first cancel convert the upconvert request,\nfollowed by downconvert to a NL. Only when this lock is downconverted to NL,\ncan the master upconvert the first node\u0027s lock to EX.\n\nWhile the fs was doing the cancel convert, it was forgetting to wake up the\ndc thread after a successful cancel, leading to a deadlock.\n\nReported-and-Tested-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "554e7f9e043e29da79c044f7a55efe4fad40701e",
      "tree": "769a30452132cedc68cd6171c17c407bf3c39464",
      "parents": [
        "0e0333429a6280e6eb3c98845e4eed90d5f8078a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Thu Jan 08 08:21:43 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:18 2009 -0800"
      },
      "message": "ocfs2: Access the xattr bucket only before modifying it.\n\nIn ocfs2_xattr_value_truncate, we may call b-tree codes which will\nextend the journal transaction. It has a potential problem that it\nmay let the already-accessed-but-not-dirtied buffers gone. So we\u0027d\nbetter access the bucket after we call ocfs2_xattr_value_truncate.\nAnd as for the root buffer for the xattr value, b-tree code will\nacess and dirty it, so we don\u0027t need to worry about it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "f8afead7169f0f28a4b421bcbdb510e52a2d094d",
      "tree": "83245132376808a9a03868b6beb28d66e1f2a8fa",
      "parents": [
        "ea455f8ab68338ba69f5d3362b342c115bea8e13"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 12 23:20:32 2009 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:17 2009 -0800"
      },
      "message": "ocfs2: Fix possible deadlock in ocfs2_write_dquot()\n\nIt could happen that some limit has been set via quotactl() and in parallel\n-\u003emark_dirty() is called from another thread doing e.g. dquot_alloc_space(). In\nsuch case ocfs2_write_dquot() must not try to sync the dquot because that needs\nglobal quota lock but that ranks above transaction start.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ea455f8ab68338ba69f5d3362b342c115bea8e13",
      "tree": "17c052011f821ff5897028a27a1f8cba96046b67",
      "parents": [
        "27421e211a39784694b597dbf35848b88363c248"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 12 23:20:31 2009 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Feb 02 14:20:16 2009 -0800"
      },
      "message": "ocfs2: Push out dropping of dentry lock to ocfs2_wq\n\nDropping of last reference to dentry lock is a complicated operation involving\ndropping of reference to inode. This can get complicated and quota code in\nparticular needs to obtain some quota locks which leads to potential deadlock.\nThus we defer dropping of inode reference to ocfs2_wq.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "cc597bc3d31468596af6b8ad2b1d1b593e308957",
      "tree": "303754908b583ff1da423bd37b56b01bd4585106",
      "parents": [
        "ed803862954528e6fcf7bd0f2b2e5a772a7c3281",
        "c475146d8f3b97e79f9ef88521e28ad40ac07de6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:41:00 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:41:00 2009 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6:\n  ocfs2: Remove ocfs2_dquot_initialize() and ocfs2_dquot_drop()\n  quota: Improve locking\n"
    },
    {
      "commit": "2fe4371dff3f1a5a1f7d91f1b090076954f4d17e",
      "tree": "4f40f557953600e3e01bf8803045ea2c7f78ad42",
      "parents": [
        "f5c77969b33cc5cbb4534289bf23cb1794f9d37c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 10:26:11 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 13:15:54 2009 +0300"
      },
      "message": "fs/Kconfig: move ocfs2 out\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "c475146d8f3b97e79f9ef88521e28ad40ac07de6",
      "tree": "da13d60d9198aaef47cf2590e879f067645918db",
      "parents": [
        "cc33412fb1f11613e20f9dfc2919a77ecd63fbc4"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 12 17:44:34 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 21 15:25:57 2009 +0100"
      },
      "message": "ocfs2: Remove ocfs2_dquot_initialize() and ocfs2_dquot_drop()\n\nSince -\u003eacquire_dquot and -\u003erelease_dquot callbacks aren\u0027t called under\ndqptr_sem anymore, we don\u0027t have to start a transaction and obtain locks\nso early. So we can just remove all this complicated stuff.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.de\u003e\n"
    },
    {
      "commit": "73ac36ea14fd18ea3dc057e41b16ff31a3c0bd5a",
      "tree": "7f187cade83d9ca9bd180273c25e1216a1dff506",
      "parents": [
        "da2bdf9a6ff40b10d77620d0d76b02a738c103cb"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coyli@suse.de",
        "time": "Wed Jan 07 18:09:16 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:15 2009 -0800"
      },
      "message": "fix similar typos to successfull\n\nWhen I review ocfs2 code, find there are 2 typos to \"successfull\".  After\ndoing grep \"successfull \" in kernel tree, 22 typos found totally -- great\nminds always think alike :)\n\nThis patch fixes all the similar typos. Thanks for Randy\u0027s ack and comments.\n\nSigned-off-by: Coly Li \u003ccoyli@suse.de\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Jeremy Kerr \u003cjk@ozlabs.org\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Vlad Yasevich \u003cvladislav.yasevich@hp.com\u003e\nCc: Sridhar Samudrala \u003csri@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c19a28e1193a6c854738d609ae9b2fe2f6e6bea4",
      "tree": "79a354f827a5d3656be3f55d18d31265750d9d06",
      "parents": [
        "f15659628b43b27c20447c731456c39cbec973e9"
      ],
      "author": {
        "name": "Fernando Carrijo",
        "email": "fcarrijo@yahoo.com.br",
        "time": "Wed Jan 07 18:09:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 08 08:31:14 2009 -0800"
      },
      "message": "remove lots of double-semicolons\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nAcked-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nAcked-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "025dfdafe77f20b3890981a394774baab7b9c827",
      "tree": "c4d514990d7a0673df5d32aa11fded95f9644ff0",
      "parents": [
        "0abb8b6a939b742f273edc68b64dba26c57331bc"
      ],
      "author": {
        "name": "Frederik Schwarzer",
        "email": "schwarzerf@gmail.com",
        "time": "Thu Oct 16 19:02:37 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 06 11:28:06 2009 +0100"
      },
      "message": "trivial: fix then -\u003e than typos in comments and documentation\n\n- (better, more, bigger ...) then -\u003e (...) than\n\nSigned-off-by: Frederik Schwarzer \u003cschwarzerf@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "10cc04f5a01041ffff068b3f9b195bfdc5290c45",
      "tree": "5c53027ce5299075759b70e1447ce811ba1afdf0",
      "parents": [
        "520c85346666d4d9a6fcaaa8450542302dc28b91",
        "9047beabb8a396f0b18de1e4a9ab920cf92054af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:43 2009 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (138 commits)\n  ocfs2: Access the right buffer_head in ocfs2_merge_rec_left.\n  ocfs2: use min_t in ocfs2_quota_read()\n  ocfs2: remove unneeded lvb casts\n  ocfs2: Add xattr support checking in init_security\n  ocfs2: alloc xattr bucket in ocfs2_xattr_set_handle\n  ocfs2: calculate and reserve credits for xattr value in mknod\n  ocfs2/xattr: fix credits calculation during index create\n  ocfs2/xattr: Always updating ctime during xattr set.\n  ocfs2/xattr: Remove extend_trans call and add its credits from the beginning\n  ocfs2/dlm: Fix race during lockres mastery\n  ocfs2/dlm: Fix race in adding/removing lockres\u0027 to/from the tracking list\n  ocfs2/dlm: Hold off sending lockres drop ref message while lockres is migrating\n  ocfs2/dlm: Clean up errors in dlm_proxy_ast_handler()\n  ocfs2/dlm: Fix a race between migrate request and exit domain\n  ocfs2: One more hamming code optimization.\n  ocfs2: Another hamming code optimization.\n  ocfs2: Don\u0027t hand-code xor in ocfs2_hamming_encode().\n  ocfs2: Enable metadata checksums.\n  ocfs2: Validate superblock with checksum and ecc.\n  ocfs2: Checksum and ECC for directory blocks.\n  ...\n"
    },
    {
      "commit": "56ff5efad96182f4d3cb3dc6b07396762c658f16",
      "tree": "cb91f93aa2324573527165d56d230b606a3111ed",
      "parents": [
        "acfa4380efe77e290d3a96b11cd4c9f24f4fbb18"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 09:34:39 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "zero i_uid/i_gid on inode allocation\n\n... and don\u0027t bother in callers.  Don\u0027t bother with zeroing i_blocks,\nwhile we are at it - it\u0027s already been zeroed.\n\ni_mode is not worth the effort; it has no common default value.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9047beabb8a396f0b18de1e4a9ab920cf92054af",
      "tree": "abb7ea8752cd3e2fdfeaaf1609aed155d919aa7d",
      "parents": [
        "dad7d975e4bd893c79fd122105b37b9a1776816a"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Jan 05 14:45:24 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:37 2009 -0800"
      },
      "message": "ocfs2: Access the right buffer_head in ocfs2_merge_rec_left.\n\nIn commit \"ocfs2: Use metadata-specific ocfs2_journal_access_*()\nfunctions\", the wrong buffer_head is accessed. So change it\nto the right buffer_head.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "dad7d975e4bd893c79fd122105b37b9a1776816a",
      "tree": "b9d7b1e89cd3a59754881b2b04bb43838081709b",
      "parents": [
        "a641dc2a5a1445eb4cb491080dfc41c42a9eb37d"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Dec 24 16:33:08 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:37 2009 -0800"
      },
      "message": "ocfs2: use min_t in ocfs2_quota_read()\n\nThis is preferred to min().\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a641dc2a5a1445eb4cb491080dfc41c42a9eb37d",
      "tree": "95e33d83f3399924521febd6e886b62d4715e23c",
      "parents": [
        "38d59ef61c11cafc50a66787bdbbe80d58bbd9c0"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Dec 24 16:03:48 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:36 2009 -0800"
      },
      "message": "ocfs2: remove unneeded lvb casts\n\ndlmglue.c has lots of code which casts the return value of ocfs2_dlm_lvb().\nThis is pointless however, as ocfs2_dlm_lvb() returns void *.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "38d59ef61c11cafc50a66787bdbbe80d58bbd9c0",
      "tree": "6b8c730648dfd71374ed727646e2f54c828a98e8",
      "parents": [
        "008aafaf0b4aa0476da483e3c6e3edbe951811ff"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Wed Dec 17 10:22:56 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:36 2009 -0800"
      },
      "message": "ocfs2: Add xattr support checking in init_security\n\nWe must check whether ocfs2 volume support xattr in init_security,\nif not support xattr and security is enable, would cause failure of mknod.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "008aafaf0b4aa0476da483e3c6e3edbe951811ff",
      "tree": "2c9ac5e471a66938ed26b46220ab72ef06073112",
      "parents": [
        "0e445b6fe93c723fe8093fd04ddfeb11ae2de082"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Tue Dec 09 16:43:08 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:36 2009 -0800"
      },
      "message": "ocfs2: alloc xattr bucket in ocfs2_xattr_set_handle\n\nIn extreme situation, may need xattr bucket for setting\nsecurity entry and acl entries during mknod. This only\nhappens when block size is too small.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0e445b6fe93c723fe8093fd04ddfeb11ae2de082",
      "tree": "a7c2d8ccab64ef70477992b0121dd52966c66154",
      "parents": [
        "90cb546cada68bb8c2278afdb4b65c2ac11f2877"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Tue Dec 09 16:42:51 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:36 2009 -0800"
      },
      "message": "ocfs2: calculate and reserve credits for xattr value in mknod\n\nWe extend the credits for xattr\u0027s large value in set_value_outside\nbefore, this can give rise to a credits issue when we set one security\nentry and two acl entries duing mknod. As we remove extend_trans form\nset_value_outside, we must calculate and reserve the credits for\nxattr\u0027s large value in mknod.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "90cb546cada68bb8c2278afdb4b65c2ac11f2877",
      "tree": "68f70ca93bf16cd20fbb039fa17cd4d3828a7df7",
      "parents": [
        "4b3f6209bf9eec46fe5ebb168718fef5c443c157"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Dec 05 06:20:56 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:36 2009 -0800"
      },
      "message": "ocfs2/xattr: fix credits calculation during index create\n\nWhen creating a xattr index block, the old calculation forget\nto add credits for the meta change of the alloc file. So add\nmore credits and more comments to explain it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4b3f6209bf9eec46fe5ebb168718fef5c443c157",
      "tree": "d8e7a430678736be6facd135b58a77cb7b07b3ab",
      "parents": [
        "71d548a6af36fe98c95fbd0522147f842bd5f054"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Dec 05 06:20:55 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:36 2009 -0800"
      },
      "message": "ocfs2/xattr: Always updating ctime during xattr set.\n\nIn xattr set, we should always update ctime if the operation goes\nsucessfully. The old one mistakenly put it in ocfs2_xattr_set_entry\nwhich is only called when we set xattr in inode or xattr block. The\nside benefit is that it resolve the bug 1052 since in that scenario,\nocfs2_calc_xattr_set_need only calc out the xattr set credits while\nocfs2_xattr_set_entry update the inode also which isn\u0027t concerned with\nthe process of xattr set.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "71d548a6af36fe98c95fbd0522147f842bd5f054",
      "tree": "196202d8fcc0ce03baa4c3d181cfbf0090392497",
      "parents": [
        "7b791d68562e4ce5ab57cbacb10a1ad4ee33956e"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Fri Dec 05 06:20:54 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:36 2009 -0800"
      },
      "message": "ocfs2/xattr: Remove extend_trans call and add its credits from the beginning\n\nActually, when setting a new xattr value, we know it from the very\nbeginning, and it isn\u0027t like the extension of bucket in which case\nwe can\u0027t figure it out. So remove ocfs2_extend_trans in that function\nand calculate it before the transaction. It also relieve acl operation\nfrom the worry about the side effect of ocfs2_extend_trans.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7b791d68562e4ce5ab57cbacb10a1ad4ee33956e",
      "tree": "7ecff8f244995c4d16dff21f2a61c9946ab67435",
      "parents": [
        "b0d4f817ba5de8adb875ace594554a96d7737710"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Dec 16 15:49:23 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2/dlm: Fix race during lockres mastery\n\ndlm_get_lock_resource() is supposed to return a lock resource with a proper\nmaster. If multiple concurrent threads attempt to lookup the lockres for the\nsame lockid while the lock mastery in underway, one or more threads are likely\nto return a lockres without a proper master.\n\nThis patch makes the threads wait in dlm_get_lock_resource() while the mastery\nis underway, ensuring all threads return the lockres with a proper master.\n\nThis issue is known to be limited to users using the flock() syscall. For all\nother fs operations, the ocfs2 dlmglue layer serializes the dlm op for each\nlockid.\n\nUsers encountering this bug will see flock() return EINVAL and dmesg have the\nfollowing error:\nERROR: Dlm error \"DLM_BADARGS\" while calling dlmlock on resource \u003cLOCKID\u003e: bad api args\n\nReported-by: Coly Li \u003ccoyli@suse.de\u003e\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "b0d4f817ba5de8adb875ace594554a96d7737710",
      "tree": "2e64d3240d6ad879c4ffa1c01ca1696abf3bb2fb",
      "parents": [
        "d4f7e650e55af6b235871126f747da88600e8040"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Dec 16 15:49:22 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2/dlm: Fix race in adding/removing lockres\u0027 to/from the tracking list\n\nThis patch adds a new lock, dlm-\u003etracking_lock, to protect adding/removing\nlockres\u0027 to/from the dlm-\u003etracking_list. We were previously using dlm-\u003espinlock\nfor the same, but that proved inadequate as we could be freeing a lockres from\na context that did not hold that lock. As the new lock only protects this list,\nwe can explicitly take it when removing the lockres from the tracking list.\n\nThis bug was exposed when testing multiple processes concurrently flock() the\nsame file.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d4f7e650e55af6b235871126f747da88600e8040",
      "tree": "77fb97d3195c0910b9741afbf23fee7ce6ef65b3",
      "parents": [
        "57dff2676eb68d805883a2204faaa5339ac44e03"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Dec 16 15:49:21 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2/dlm: Hold off sending lockres drop ref message while lockres is migrating\n\nDuring lockres purge, o2dlm sends a drop reference message to the lockres\nmaster. This patch delays the message if the lockres is being migrated.\n\nFixes oss bugzilla#1012\nhttp://oss.oracle.com/bugzilla/show_bug.cgi?id\u003d1012\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "57dff2676eb68d805883a2204faaa5339ac44e03",
      "tree": "549d04127ed394c8918e98b115befc4ebf73a6b1",
      "parents": [
        "2b83256407687613e906bee93d98a25339128a4d"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Dec 16 15:49:20 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2/dlm: Clean up errors in dlm_proxy_ast_handler()\n\nPatch cleans printed errors in dlm_proxy_ast_handler(). The errors now includes\nthe node number that sent the (b)ast. Also it reduces the number of endian swaps\nof the cookie.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2b83256407687613e906bee93d98a25339128a4d",
      "tree": "5886c51adcb20b3d735ccf38e1f7e70671aefb43",
      "parents": [
        "58896c4d0e5868360ea0693c607d5bf74f79da6b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Dec 16 15:49:19 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2/dlm: Fix a race between migrate request and exit domain\n\nPatch address a racing migrate request message and an exit domain message.\nInstead of blocking exit domains for the duration of the migrate, we ignore\nfailure to deliver that message. This is because an exiting domain should\nnot have any active locks and thus has no role to play in the migration.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "58896c4d0e5868360ea0693c607d5bf74f79da6b",
      "tree": "d598e01e07eb5a6a5c45ba45017b41f6d33eed54",
      "parents": [
        "7bb458a58588f397068e4166c615e9fcc7480c16"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Dec 16 13:54:40 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2: One more hamming code optimization.\n\nThe previous optimization used a fast find-highest-bit-set operation to\ngive us a good starting point in calc_code_bit().  This version lets the\ncaller cache the previous code buffer bit offset.  Thus, the next call\nalways starts where the last one left off.\n\nThis reduces the calculation another 39%, for a total 80% reduction from\nthe original, naive implementation.  At least, on my machine.  This also\nbrings the parity calculation to within an order of magnitude of the\ncrc32 calculation.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "7bb458a58588f397068e4166c615e9fcc7480c16",
      "tree": "a5d330c12f983837097f775e2d7c6c4d85fb9acd",
      "parents": [
        "e798b3f8a920c82a8e556dd54df97f0d3d0f9144"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Dec 15 18:24:33 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:35 2009 -0800"
      },
      "message": "ocfs2: Another hamming code optimization.\n\nIn the calc_code_bit() function, we must find all powers of two beneath\nthe code bit number, *after* it\u0027s shifted by those powers of two.  This\nrequires a loop to see where it ends up.\n\nWe can optimize it by starting at its most significant bit.  This shaves\n32% off the time, for a total of 67.6% shaved off of the original, naive\nimplementation.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "e798b3f8a920c82a8e556dd54df97f0d3d0f9144",
      "tree": "1f9c19ba29f65e44c10d77597a746224e0e72c72",
      "parents": [
        "9d28cfb73f3abccce001daf2d247b16bf20e2248"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Dec 15 17:13:48 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:34 2009 -0800"
      },
      "message": "ocfs2: Don\u0027t hand-code xor in ocfs2_hamming_encode().\n\nWhen I wrote ocfs2_hamming_encode(), I was following documentation of\nthe algorithm and didn\u0027t have quite the (possibly still imperfect) grasp\nof it I do now.  As part of this, I literally hand-coded xor.  I would\ntest a bit, and then add that bit via xor to the parity word.\n\nI can, of course, just do a single xor of the parity word and the source\nword (the code buffer bit offset).  This cuts CPU usage by 53% on a\nmostly populated buffer (an inode containing utmp.h inline).\n\nJoel\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9d28cfb73f3abccce001daf2d247b16bf20e2248",
      "tree": "d162f69c8dccdb8940418722c04909ff9fa84797",
      "parents": [
        "d030cc978e9e636dc39ce9a9e8282d48698a3b30"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 16 17:53:29 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:34 2009 -0800"
      },
      "message": "ocfs2: Enable metadata checksums.\n\nAdd OCFS2_FEATURE_INCOMPAT_META_ECC to the list of supported features.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d030cc978e9e636dc39ce9a9e8282d48698a3b30",
      "tree": "0d9053e2968eba3505c8333b96869b9d2a16cccc",
      "parents": [
        "c175a518b4a1d514483abf61813ce5d855917164"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Dec 11 15:04:14 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:34 2009 -0800"
      },
      "message": "ocfs2: Validate superblock with checksum and ecc.\n\nThe superblock is read via a raw call.  Validate it after we find it\nfrom its signature.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c175a518b4a1d514483abf61813ce5d855917164",
      "tree": "e437a3d1377fab38c1d8ef6289fd9ea3590d09b2",
      "parents": [
        "87d35a74b15ec703910a63e0667692fb5e267be0"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Dec 10 17:58:22 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:34 2009 -0800"
      },
      "message": "ocfs2: Checksum and ECC for directory blocks.\n\nUse the db_check field of ocfs2_dir_block_trailer to crc/ecc the\ndirblocks.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "87d35a74b15ec703910a63e0667692fb5e267be0",
      "tree": "39f18bcf38b855fa7ec806803567532f214129f0",
      "parents": [
        "84008972491ca91b240f106191519781dabb8016"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Dec 10 17:36:25 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:34 2009 -0800"
      },
      "message": "ocfs2: Add directory block trailers.\n\nFuture ocfs2 features metaecc and indexed directories need to store a\nlittle bit of data in each dirblock.  For compatibility, we place this\nin a trailer at the end of the dirblock.  The trailer plays itself as an\nempty dirent, so that if the features are turned off, it can be reused\nwithout requiring a tunefs scan.\n\nThis code adds the trailer and validates it when the block is read in.\n\n[ Mark is the original author, but I reinserted this code before his\n  dir index work.  -- Joel ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "84008972491ca91b240f106191519781dabb8016",
      "tree": "3f69af46613a9aa74f9aa64f52aa67e55eef2116",
      "parents": [
        "4311901daabe1d0f22cfcf86c57ad450f14b4e9f"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Dec 09 16:11:49 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:34 2009 -0800"
      },
      "message": "ocfs2: Use proper journal_access function in xattr.c\n\nChange the rest of the naked ocfs2_journal_access() calls in\nfs/ocfs2/xattr.c to use the appropriate ocfs2_journal_access_*() call\nfor their metadata type.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4311901daabe1d0f22cfcf86c57ad450f14b4e9f",
      "tree": "1c4bfbbc288ca085bf58bfad339956ab4cc9a946",
      "parents": [
        "512620f44df85df87348fc9a6fc54fcaa254b8d3"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Dec 09 16:24:43 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:33 2009 -0800"
      },
      "message": "ocfs2: Pass value buf to ocfs2_remove_value_outside().\n\nocfs2_remove_value_outside() needs to know the type of buffer it is\nlooking at.  Pass in an ocfs2_xattr_value_buf.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    }
  ],
  "next": "512620f44df85df87348fc9a6fc54fcaa254b8d3"
}
