)]}'
{
  "log": [
    {
      "commit": "f1bbbb6912662b9f6070c5bfc4ca9eb1f06a9d5b",
      "tree": "c2c130a74be25b0b2dff992e1a195e2728bdaadd",
      "parents": [
        "fd0961ff67727482bb20ca7e8ea97b83e9de2ddb",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:08:13 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "421f91d21ad6f799dc7b489bb33cc560ccc56f98",
      "tree": "aaf9f6385233fdf9277e634603156c89ede7f770",
      "parents": [
        "65155b3708137fabee865dc4da822763c0c41208"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Jun 11 12:17:00 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:05:05 2010 +0200"
      },
      "message": "fix typos concerning \"initiali[zs]e\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "287a80958cf63fc5c68d5bf6e89a3669dd66234a",
      "tree": "8e6883881709ffbbe3b1d6cb7a5b4dcef3428380",
      "parents": [
        "123e9caf1e85008ab7eb5f6cd58c44f9a5d73b2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:45 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:10:17 2010 +0200"
      },
      "message": "quota: rename default quotactl methods to dquot_\n\nFollow the dquot_* style used elsewhere in dquot.c.\n\n[Jan Kara: Fixed up missing conversion of ext2]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "307ae18a56e5b706056a2050d52e8cc01b5171c0",
      "tree": "c4efc57bb8f0fd1d2aa9e416d81c0c7ba87aaf22",
      "parents": [
        "e0ccfd959cd8907bcb66cc2042e0f4fd7fcbff2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:43 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:09:12 2010 +0200"
      },
      "message": "quota: drop remount argument to -\u003equota_on and -\u003equota_off\n\nRemount handling has fully moved into the filesystem, so all this is\nsuperflous now.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0f0dd62fddcbd0f6830ed8ef3d3426ccc46b9250",
      "tree": "295ac31b109f78873cb191867603943d8562ead0",
      "parents": [
        "c79d967de3741ceb60c5bbbf1b6f97eab9a89838"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed May 19 07:16:41 2010 -0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:06:40 2010 +0200"
      },
      "message": "quota: kill the vfs_dq_off and vfs_dq_quota_on_remount wrappers\n\nInstead of having wrappers in the VFS namespace export the dquot_suspend\nand dquot_resume helpers directly.  Also rename vfs_quota_disable to\ndquot_disable while we\u0027re at it.\n\n[Jan Kara: Moved dquot_suspend to quotaops.h and made it inline]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "eea7feb072f5914ecafa95b3d83be0c229244d90",
      "tree": "c9179933bd14f11f883448bd133876f907c3f50c",
      "parents": [
        "f4b87dee923342505e1ddba8d34ce9de33e75050"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 22:14:53 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon May 24 14:06:39 2010 +0200"
      },
      "message": "ocfs2: Fix use after free on remount read-only\n\nWe also have to cancel quota syncing thread on remount read only because\nat that moment quota is being turned off. Otherwise quota syncing thread\nwill try to access already freed quota structures.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c06bcbfa1ed8daaeb2a262f372b411207891e229",
      "tree": "db734e409643108ea4b5df28bf18bcfac654eaca",
      "parents": [
        "52a9ee281cfb26fffce1d6c409fb4b1f4aa8a766"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 13 22:14:53 2010 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:48 2010 +0200"
      },
      "message": "ocfs2: Fix lock inversion in quotas during umount\n\nWe cannot cancel delayed work from ocfs2_local_free_info because that is called\nwith dqonoff_mutex held and the work it cancels requires dqonoff_mutex to\nfinish. Cancel the work before acquiring dqonoff_mutex.\n\nAcked-by: Joel Becker \u003cJoel.Becker@oracle.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "41841b0bcea8af7f3bff8b2a23d542b94d9c1bb1",
      "tree": "89eddf2dffadbbd13939f94eb8cd904a26279390",
      "parents": [
        "316ce2ba8e74a7bb9153b9f93adc883cb1ceb9fd",
        "1a934c3e57594588c373aea858e4593cdfcba4f4"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue May 18 16:40:42 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue May 18 16:40:42 2010 -0700"
      },
      "message": "Merge branch \u0027discontig-bg\u0027 of git://oss.oracle.com/git/tma/linux-2.6 into ocfs2-merge-window\n"
    },
    {
      "commit": "e4b963f10e9026c83419b5c25b93a0350413cf16",
      "tree": "d162595c9f79626d040cb28c84e53fd8b7fe50ff",
      "parents": [
        "0467ae954d1843de65e7cf8f706f88fe65cd8418"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 02 17:17:36 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon May 10 11:50:10 2010 -0700"
      },
      "message": "ocfs2: Wrap signal blocking in void functions.\n\nocfs2 sometimes needs to block signals around dlm operations, but it\ncurrently does it with sigprocmask().  Even worse, it\u0027s checking the\nerror code of sigprocmask().  The in-kernel sigprocmask() can only error\nif you get the SIG_* argument wrong.  We don\u0027t.\n\nWrap the sigprocmask() calls with ocfs2_[un]block_signals().  These\nfunctions are void, but they will BUG() if somehow sigprocmask() returns\nan error.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "4b37fcb7d41ce3b9264b9562d6ffd62db9294bd1",
      "tree": "0a171c2d8882fa64a5391f8725e2c3b4382b2d59",
      "parents": [
        "5c80d4c9e5489d5930412add87501702fe5f93fb"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Tue Apr 13 18:00:31 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:08 2010 -0700"
      },
      "message": "ocfs2: Make nointr a default mount option\n\nOCFS2 has never really supported intr. This patch acknowledges this reality\nand makes nointr the default mount option. In a later patch, we intend to\nsupport intr.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "83f92318fa33cc084e14e64dc903e605f75884c1",
      "tree": "c7466c64019fb050c69cab27b4388e3a86d58b1a",
      "parents": [
        "b07f8f24dfe54da0f074b78949044842e8df881f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Apr 05 18:17:16 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:07 2010 -0700"
      },
      "message": "ocfs2: Add dir_resv_level mount option\n\nThe default behavior for directory reservations stays the same, but we add a\nmount option so people can tweak the size of directory reservations\naccording to their workloads.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6b82021b9e91cd689fdffadbcdb9a42597bbe764",
      "tree": "ac4235e792e74a2e60a41e95d62965b7ed4b3232",
      "parents": [
        "73c8a80003d13be54e2309865030404441075182"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Apr 05 18:17:14 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:07 2010 -0700"
      },
      "message": "ocfs2: increase the default size of local alloc windows\n\nI have observed that the current size of 8M gives us pretty poor\nfragmentation on multi-threaded workloads which do lots of writes.\n\nGenerally, I can increase the size of local alloc windows and observe a\nmarked decrease in fragmentation, even up and beyond window sizes of 512\nmegabytes. This makes sense for a couple reasons - larger local alloc means\nmore room for reservation windows. On multi-node workloads the larger local\nalloc helps as well because we don\u0027t have to do window slides as often.\n\nAlso, I removed the OCFS2_DEFAULT_LOCAL_ALLOC_SIZE constant as it is no\nlonger used and the comment above it was out of date.\n\nTo test fragmentation, I used a workload which launched 4 threads that did\n4k writes into a series of about 140 alternating files.\n\nWith resv_level\u003d2, and a 4k/4k file system I observed the following average\nfragmentation for various localalloc\u003d parameters:\n\nlocalalloc\u003d\tavg. fragmentation\n\t8\t\t48\n\t32\t\t16\n\t64\t\t10\n\t120\t\t7\n\nOn larger cluster sizes, the difference is more dramatic.\n\nThe new default size top out at 256M, which we\u0027ll only get for cluster\nsizes of 32K and above.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "73c8a80003d13be54e2309865030404441075182",
      "tree": "9b5a47939c22838133f46ea6d207254aa68d177b",
      "parents": [
        "a57c8fd2ad238258cc983049008aea5f985804b2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Apr 05 18:17:13 2010 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:18:06 2010 -0700"
      },
      "message": "ocfs2: clean up localalloc mount option size parsing\n\nThis patch pulls the local alloc sizing code into localalloc.c and provides\na callout to it from ocfs2_fill_super(). Behavior is essentially unchanged\nexcept that I correctly calculate the maximum local alloc size. The old code\nin ocfs2_parse_options() calculated the max size as:\n\nocfs2_local_alloc_size(sb) * 8\n\nwhich is correct, in bits. Unfortunately though the option passed in is in\nmegabytes. Ultimately, this bug made no real difference - the shrink code\nwould catch a too-large size and bring it down to something reasonable.\nStill, it\u0027s less than efficient as-is.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "4fe370afaae49c57619bb0bedb75de7e7c168308",
      "tree": "7b2752fc9616578e9e3baa659e6c724b301d26c5",
      "parents": [
        "d02f00cc057809d96c044cc72d5b9809d59f7d49"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 07 13:15:40 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:17:30 2010 -0700"
      },
      "message": "ocfs2: use allocation reservations during file write\n\nAdd a per-inode reservations structure and pass it through to the\nreservations code.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d02f00cc057809d96c044cc72d5b9809d59f7d49",
      "tree": "44a6d81ecf9fb4b5aa91c0501a8da2ee36890a38",
      "parents": [
        "ec20cec7a351584ca6c70ead012e73d61f9a8e04"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Dec 07 13:10:48 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed May 05 18:17:30 2010 -0700"
      },
      "message": "ocfs2: allocation reservations\n\nThis patch improves Ocfs2 allocation policy by allowing an inode to\nreserve a portion of the local alloc bitmap for itself. The reserved\nportion (allocation window) is advisory in that other allocation\nwindows might steal it if the local alloc bitmap becomes\nfull. Otherwise, the reservations are honored and guaranteed to be\nfree. When the local alloc window is moved to a different portion of\nthe bitmap, existing reservations are discarded.\n\nReservation windows are represented internally by a red-black\ntree. Within that tree, each node represents the reservation window of\none inode. An LRU of active reservations is also maintained. When new\ndata is written, we allocate it from the inodes window. When all bits\nin a window are exhausted, we allocate a new one as close to the\nprevious one as possible. Should we not find free space, an existing\nreservation is pulled off the LRU and cannibalized.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8571882c21e5073b2f96147ec4ff9b7042339e1b",
      "tree": "1f7925e293e656e5c1c6cd2c2876ea977a7277e5",
      "parents": [
        "4711954eaa8d30f653fda238cecf919f1ae40d6f"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Apr 13 14:38:06 2010 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Apr 13 14:38:06 2010 +0800"
      },
      "message": "ocfs2: ocfs2_group_bitmap_size has to handle old volume.\n\nocfs2_group_bitmap_size has to handle the case when the\nvolume don\u0027t have discontiguous block group support. So\npass the feature_incompat in and check it.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "4cbe4249d6586d5d88ef271e07302407a14c8443",
      "tree": "907eb8e61e3cf8ababfe1890f2c52ee82eb0e227",
      "parents": [
        "0467ae954d1843de65e7cf8f706f88fe65cd8418"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Apr 13 14:26:12 2010 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Apr 13 14:26:12 2010 +0800"
      },
      "message": "ocfs2: Define data structures for discontiguous block groups.\n\nDefines the OCFS2_FEATURE_INCOMPAT_DISCONTIG_BG feature bit and modifies\nstruct ocfs2_group_desc for the feature.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "b89c54282db0c8634a2d2dc200f196d571750ce5",
      "tree": "fbb34a01b3f0b2f4af6aae9ede9f3f21ef2a378d",
      "parents": [
        "a5f28ae4df291d81d9d23066f88c55ca45e388d3"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Jan 25 14:11:06 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 26 15:41:07 2010 -0800"
      },
      "message": "ocfs2: add extent block stealing for ocfs2 v5\n\nThis patch add extent block (metadata) stealing mechanism for\nextent allocation. This mechanism is same as the inode stealing.\nif no room in slot specific extent_alloc, we will try to\nallocate extent block from the next slot.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nAcked-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "2bd632165c1f783888bd4cbed95f2f304829159b",
      "tree": "a4938fece1a47d22b1f8ca652a8218736b27aa3a",
      "parents": [
        "e5f2cb2b1ad05473fffe6970618997b906f23873"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Mon Jan 25 16:57:38 2010 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jan 25 19:20:51 2010 -0800"
      },
      "message": "ocfs2/trivial: Remove trailing whitespaces\n\nPatch removes trailing whitespaces.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "45e62974fb110da926e2a6c5b357c15639bdc233",
      "tree": "0c2094de939e69fa3e44854c71aa45d7ec137895",
      "parents": [
        "756fe285070feb254a770cefc5640fe005ea9c27",
        "8ff6af881deccca4f88e03f2fdadb1aac42e9489"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 24 12:59:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 24 12:59:11 2009 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2/trivial: Use le16_to_cpu for a disk value in xattr.c\n  ocfs2/trivial: Use proper mask for 2 places in hearbeat.c\n  Ocfs2: Let ocfs2 support fiemap for symlink and fast symlink.\n  Ocfs2: Should ocfs2 support fiemap for S_IFDIR inode?\n  ocfs2: Use FIEMAP_EXTENT_SHARED\n  fiemap: Add new extent flag FIEMAP_EXTENT_SHARED\n  ocfs2: replace u8 by __u8 in ocfs2_fs.h\n  ocfs2: explicit declare uninitialized var in user_cluster_connect()\n  ocfs2-devel: remove redundant OCFS2_MOUNT_POSIX_ACL check in ocfs2_get_acl_nolock()\n  ocfs2: return -EAGAIN instead of EAGAIN in dlm\n  ocfs2/cluster: Make fence method configurable - v2\n  ocfs2: Set MS_POSIXACL on remount\n  ocfs2: Make acl use the default\n  ocfs2: Always include ACL support\n"
    },
    {
      "commit": "837711f862bb71ac263837a0f0714dd8cc4ef7ea",
      "tree": "888b92d23a7563ef1d5a866ac46f2d48a8564101",
      "parents": [
        "2f48d593b6ceb7bb63d34124ceba77d33be298cf"
      ],
      "author": {
        "name": "Coly Li",
        "email": "coly.li@suse.de",
        "time": "Fri Jan 16 16:33:05 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Oct 29 15:02:20 2009 -0700"
      },
      "message": "ocfs2: return f_fsid info in ocfs2_statfs()\n\nCurrently the f_fsid of struct kstatfs returned from ocfs2_statfs() is\nundefined (vfs layer fills in 0 as default). Since in some conditions,\nf_fsid value might be used in a (f_fsid, ino) pair to uniquely identify\na file, ocfs2 should return a unique defined f_fsid value from\nocfs2_statfs().\n\nBecause uuid_str is the same on big or litlle endian machine, it\u0027s\nendian consistent to use osb-\u003euuid_str to generate f_fsid value.\n\nSigned-off-by: Coly Li \u003ccoly.li@suse.de\u003e\nCc: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "57b09bb5e492c37c1e4273fe4e435ffd1d2ddbe0",
      "tree": "6b14d5f30d05fbda217e3cb5982e766b15064a3a",
      "parents": [
        "5297aad80cd3a3e62116e0a0b29116ccd8ae397d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 15 14:54:05 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 23:06:37 2009 -0700"
      },
      "message": "ocfs2: Set MS_POSIXACL on remount\n\nWe have to set MS_POSIXACL on remount as well. Otherwise VFS\nwould not know we started supporting ACLs after remount and\nthus ACLs would not work.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5297aad80cd3a3e62116e0a0b29116ccd8ae397d",
      "tree": "67e6893713a281ea601e73866b026a4e05230fae",
      "parents": [
        "e6aabe0cac14a495d42f629a803c5e221089bae8"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 15 14:54:04 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 23:06:32 2009 -0700"
      },
      "message": "ocfs2: Make acl use the default\n\nChange acl mount options handling to match the one of XFS and BTRFS and\nhopefully it is also easier to use now. When admin does not specify any\nacl mount option, acls are enabled if and only if the filesystem has\nxattr feature enabled. If admin specifies \u0027acl\u0027 mount option, we fail\nthe mount if the filesystem does not have xattr feature and thus acls\ncannot be enabled.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "e6aabe0cac14a495d42f629a803c5e221089bae8",
      "tree": "39972946024d893ecbdcdbb30447bdb5b9fc5201",
      "parents": [
        "2f48d593b6ceb7bb63d34124ceba77d33be298cf"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Oct 15 14:54:03 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 23:05:57 2009 -0700"
      },
      "message": "ocfs2: Always include ACL support\n\nTo become consistent with filesystems such as XFS or BTRFS, make posix\nACLs always available. This also reduces possibility of\nmisconfiguration on admin\u0027s side.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "fb5cbe9efd741b16e72133613747f76490bbecd3",
      "tree": "014ef905e4c4ff708ad7dbceef445a2e0e567757",
      "parents": [
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 22:28:24 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Oct 28 22:28:24 2009 -0700"
      },
      "message": "ocfs2: Return -EINVAL when a device is not ocfs2.\n\nIn case of non-modular kernels the root filesystem is mounted by trying\nseveral filesystems. If ocfs2 was tried before the actual filesystem\ntype, the mount would fail because ocfs2_sb_probe() returns -EAGAIN\ninstead of -EINVAL.  ocfs2 will now return -EINVAL properly.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nReported-by: Laszlo Attila Toth \u003cpanther@balabit.hu\u003e\n"
    },
    {
      "commit": "828c09509b9695271bcbdc53e9fc9a6a737148d2",
      "tree": "072ffad6f02db7bf4095e07e2b90247cfa042998",
      "parents": [
        "1c4115e595dec42aa0e81ba47ef46e35b34ed428"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 01 15:43:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 01 16:11:11 2009 -0700"
      },
      "message": "const: constify remaining file_operations\n\n[akpm@linux-foundation.org: fix KVM]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bcd57ab61e7cabed626226a3771617981c11ce1",
      "tree": "687c0c35fb2a632cb8c56b2729f9c3873c9461bd",
      "parents": [
        "95e0d86badc410d525ea7218fd32df7bfbf9c837"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Sep 24 04:22:25 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:13:10 2009 -0700"
      },
      "message": "headers: utsname.h redux\n\n* remove asm/atomic.h inclusion from linux/utsname.h --\n   not needed after kref conversion\n * remove linux/utsname.h inclusion from files which do not need it\n\nNOTE: it looks like fs/binfmt_elf.c do not need utsname.h, however\ndue to some personality stuff it _is_ needed -- cowardly leave ELF-related\nheaders and files alone.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b64ada6b23d4a305fb3ca59b79dd38707fc53b69",
      "tree": "61bc87dc3a2549f54231261aaa544acffcd12281",
      "parents": [
        "be90a49ca22a95f184d9f32d35b5247b44032849",
        "b80474b432913f73cce8db001e9fa3104f9b79ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:29:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:29:20 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (85 commits)\n  ocfs2: Use buffer IO if we are appending a file.\n  ocfs2: add spinlock protection when dealing with lockres-\u003epurge.\n  dlmglue.c: add missed mlog lines\n  ocfs2: __ocfs2_abort() should not enable panic for local mounts\n  ocfs2: Add ioctl for reflink.\n  ocfs2: Enable refcount tree support.\n  ocfs2: Implement ocfs2_reflink.\n  ocfs2: Add preserve to reflink.\n  ocfs2: Create reflinked file in orphan dir.\n  ocfs2: Use proper parameter for some inode operation.\n  ocfs2: Make transaction extend more efficient.\n  ocfs2: Don\u0027t merge in 1st refcount ops of reflink.\n  ocfs2: Modify removing xattr process for refcount.\n  ocfs2: Add reflink support for xattr.\n  ocfs2: Create an xattr indexed block if needed.\n  ocfs2: Call refcount tree remove process properly.\n  ocfs2: Attach xattr clusters to refcount tree.\n  ocfs2: Abstract ocfs2 xattr tree extend rec iteration process.\n  ocfs2: Abstract the creation of xattr block.\n  ocfs2: Remove inode from ocfs2_xattr_bucket_get_name_value.\n  ...\n"
    },
    {
      "commit": "a2f2ddbf2bafdbc7e4f3bbf09439b42c8fee2747",
      "tree": "0b027ad2957530c457b2589d96c361232eabe740",
      "parents": [
        "bd50873dc725a9fa72592ecc986c58805e823051"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Aug 19 15:16:01 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 23 01:54:46 2009 -0700"
      },
      "message": "ocfs2: __ocfs2_abort() should not enable panic for local mounts\n\nIn a clustered setup, we have to panic the box on journal abort. This is\nbecause we don\u0027t have the facility to go hard readonly. With hard ro, another\nnode would detect node failure and initiate recovery.\n\nHaving said that, we shouldn\u0027t force panic if the volume is mounted locally.\nThis patch defers the handling to the mount option, errors.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "374a263e790c4de85844283c098810a92985f623",
      "tree": "a72b1f072b973723ea1cf7def27608717cf1c033",
      "parents": [
        "c732eb16bf07f9bfb7fa72b6868462471273bdbd"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Aug 24 11:13:37 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Sep 22 20:09:29 2009 -0700"
      },
      "message": "ocfs2: Add refcount tree lock mechanism.\n\nImplement locking around struct ocfs2_refcount_tree.  This protects\nall read/write operations on refcount trees.  ocfs2_refcount_tree\nhas its own lock and its own caching_info, protecting buffers among\nmultiple nodes.\n\nUser must call ocfs2_lock_refcount_tree before his operation on\nthe tree and unlock it after that.\n\nocfs2_refcount_trees are referenced by the block number of the\nrefcount tree root block, So we create an rb-tree on the ocfs2_super\nto look them up.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n\n"
    },
    {
      "commit": "0d54b217a247f39605361f867fefbb9e099a5432",
      "tree": "5af6a2cc4cbc6c327e735ac5edb642d47a1f0013",
      "parents": [
        "61e225dc341107be304fd1088146c2a5e88ff9e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:24 2009 -0700"
      },
      "message": "const: make struct super_block::s_qcop const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "292dd27ec76b96cebcef576f330ab121f59ccf05",
      "tree": "d98f4d359f610e7dad53eb5b68fdb1517a043fb3",
      "parents": [
        "66fb345ddd2d343e36692da0ff66126d7a99dc1b"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Feb 12 15:41:59 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:49 2009 -0700"
      },
      "message": "ocfs2: move ip_created_trans to struct ocfs2_caching_info\n\nSimilar ip_last_trans, ip_created_trans tracks the creation of a journal\nmanaged inode.  This specifically tracks what transaction created the\ninode.  This is so the code can know if the inode has ever been written\nto disk.\n\nThis behavior is desirable for any journal managed object.  We move it\nto struct ocfs2_caching_info as ci_created_trans so that any object\nusing ocfs2_caching_info can rely on this behavior.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "66fb345ddd2d343e36692da0ff66126d7a99dc1b",
      "tree": "7e53f68bbf4c910cd81be7e39378d9552bbce4c3",
      "parents": [
        "8cb471e8f82506937fe5e2e9fb0bf90f6b1f1170"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Feb 12 15:24:40 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:49 2009 -0700"
      },
      "message": "ocfs2: move ip_last_trans to struct ocfs2_caching_info\n\nWe have the read side of metadata caching isolated to struct\nocfs2_caching_info, now we need the write side.  This means the journal\nfunctions.  The journal only does a couple of things with struct inode.\n\nThis change moves the ip_last_trans field onto struct\nocfs2_caching_info as ci_last_trans.  This field tells the journal\nwhether a pending journal flush is required.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "8cb471e8f82506937fe5e2e9fb0bf90f6b1f1170",
      "tree": "e275a8f5db101a9990ba44931cfd116123112b11",
      "parents": [
        "6e5a3d7538ad4e46a976862f593faf65750e37cc"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 20:00:41 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:48 2009 -0700"
      },
      "message": "ocfs2: Take the inode out of the metadata read/write paths.\n\nWe are really passing the inode into the ocfs2_read/write_blocks()\nfunctions to get at the metadata cache.  This commit passes the cache\ndirectly into the metadata block functions, divorcing them from the\ninode.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "6e5a3d7538ad4e46a976862f593faf65750e37cc",
      "tree": "e87ce6d69bdbcce23eed0a195a7f80a59c01d3d9",
      "parents": [
        "47460d65a483529b3bc2bf6ccf461ad45f94df83"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 19:00:37 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:48 2009 -0700"
      },
      "message": "ocfs2: Change metadata caching locks to an operations structure.\n\nWe don\u0027t really want to cart around too many new fields on the\nocfs2_caching_info structure.  So let\u0027s wrap all our access of the\nparent object in a set of operations.  One pointer on caching_info, and\nmore flexibility to boot.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "47460d65a483529b3bc2bf6ccf461ad45f94df83",
      "tree": "0727cae9477749e5f2596e86253a210e79c96a83",
      "parents": [
        "8379e7c46cc48f51197dd663fc6676f47f2a1e71"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 10 16:05:07 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 04 16:07:47 2009 -0700"
      },
      "message": "ocfs2: Make the ocfs2_caching_info structure self-contained.\n\nWe want to use the ocfs2_caching_info structure in places that are not\ninodes.  To do that, it can no longer rely on referencing the inode\ndirectly.\n\nThis patch moves the flags to ocfs2_caching_info-\u003eci_flags, stores\npointers to the parent\u0027s locks on the ocfs2_caching_info, and renames\nthe constants and flags to reflect its independant state.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "5fd131893793567c361ae64cbeb28a2a753bbe35",
      "tree": "962a79225308d855ee7b1d27e5c49864af78e108",
      "parents": [
        "60e2ec48665b8495360ca4a6004c5cd52beb2bc1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jul 30 17:01:53 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Aug 17 14:32:24 2009 -0700"
      },
      "message": "ocfs2: Don\u0027t oops in ocfs2_kill_sb on a failed mount\n\nIf we fail to mount the filesystem, we have to be careful not to dereference\nuninitialized structures in ocfs2_kill_sb.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "1c1d9793ff6720531c0125a28d321f283716e32f",
      "tree": "64316a07d5c0b434c852b3fdc8e4c9e42a363730",
      "parents": [
        "7669f54c55df225cbb2db939a6c9f111445ffc1c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jul 22 13:17:19 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Thu Jul 23 10:59:24 2009 -0700"
      },
      "message": "ocfs2: Fix initialization of blockcheck stats\n\nWe just set blockcheck stats to zeros but we should also\nproperly initialize the spinlock there.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "f7b1aa69be138ad9d7d3f31fa56f4c9407f56b6a",
      "tree": "3d3ca30071d9d92ff3ad5c6d522ea6c05efb3885",
      "parents": [
        "3c5e10683e684ef45614c9071847e48f633d9806"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jul 20 12:12:36 2009 +0200"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jul 21 15:47:55 2009 -0700"
      },
      "message": "ocfs2: Fix deadlock on umount\n\nIn commit ea455f8ab68338ba69f5d3362b342c115bea8e13, we moved the dentry lock\nput process into ocfs2_wq. This causes problems during umount because ocfs2_wq\ncan drop references to inodes while they are being invalidated by\ninvalidate_inodes() causing all sorts of nasty things (invalidate_inodes()\nending in an infinite loop, \"Busy inodes after umount\" messages etc.).\n\nWe fix the problem by stopping ocfs2_wq from doing any further releasing of\ninode references on the superblock being unmounted, wait until it finishes\nthe current round of releasing and finally cleaning up all the references in\ndentry_lock_list from ocfs2_put_super().\n\nThe issue was tracked down by Tao Ma \u003ctao.ma@oracle.com\u003e.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "8b712cd58adfe6aeeb0be4ecc011dc35620719e7",
      "tree": "98a0cdc0b210392fc0fd0feb464603224c2863b1",
      "parents": [
        "44b572809581d5a10dbe35aa6bf689f32b9c5ad6"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Tue Jul 07 17:22:12 2009 -0400"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jul 08 15:34:02 2009 -0700"
      },
      "message": "ocfs2: Fixup orphan scan cleanup after failed mount\n\nIf the mount fails for any reason, ocfs2_dismount_volume calls\nocfs2_orphan_scan_stop. It requires that ocfs2_orphan_scan_init\nbe called to setup the mutex and work queues, but that doesn\u0027t\nhappen if the mount has failed and we oops accessing an uninitialized\nwork queue.\n\nThis patch splits the init and startup of the orphan scan, eliminating\nthe oops.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "cf5434e894a17bb8385997adc6d56642055a85d6",
      "tree": "60a02d312038f24ca24578ebefb47391d4a63c13",
      "parents": [
        "7b58fc21847950db8fcc6a142288b042564ffb76",
        "d246ab307d1d003c80fe279897dea22bf52b6e41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 19:36:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 23 19:36:02 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2/trivial: Wrap ocfs2_sysfile_cluster_lock_key within define.\n  ocfs2: Add lockdep annotations\n  vfs: Set special lockdep map for dirs only if not set by fs\n  ocfs2: Disable orphan scanning for local and hard-ro mounts\n  ocfs2: Do not initialize lvb in ocfs2_orphan_scan_lock_res_init()\n  ocfs2: Stop orphan scan as early as possible during umount\n  ocfs2: Fix ocfs2_osb_dump()\n  ocfs2: Pin journal head before accessing jh-\u003eb_committed_data\n  ocfs2: Update atime in splice read if necessary.\n  ocfs2: Provide the ocfs2_dlm_lvb_valid() stack API.\n"
    },
    {
      "commit": "df152c241df9e9d2b9a65d37bd02961abe7f591a",
      "tree": "47e0c71919ed437db33530a200113a562b9c6b89",
      "parents": [
        "3211949f8998dde71d9fe2e063de045ece5e0473"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Mon Jun 22 11:40:07 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:24:55 2009 -0700"
      },
      "message": "ocfs2: Disable orphan scanning for local and hard-ro mounts\n\nLocal and Hard-RO mounts do not need orphan scanning.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "692684e19e317a374c18e70a44d6413e51f71c11",
      "tree": "c47da5b21e66f80458fff3da4cda72b8e0644c0f",
      "parents": [
        "c3d38840abaa45c1c5a5fabbb8ffc9a0d1a764d1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Jun 19 16:53:17 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:24:51 2009 -0700"
      },
      "message": "ocfs2: Stop orphan scan as early as possible during umount\n\nCurrently if the orphan scan fires a tick before the user issues the umount,\nthe umount will wait for the queued orphan scan tasks to complete.\n\nThis patch makes the umount stop the orphan scan as early as possible so as\nto reduce the probability of the queued tasks slowing down the umount.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "c3d38840abaa45c1c5a5fabbb8ffc9a0d1a764d1",
      "tree": "d42dca338681a53ca1bdbdfb17e932f1e4e96885",
      "parents": [
        "94e41ecfe0f202df948fdbb19a53308a58cf2184"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Jun 19 14:45:55 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Mon Jun 22 14:24:49 2009 -0700"
      },
      "message": "ocfs2: Fix ocfs2_osb_dump()\n\nSkip printing information that is not valid for local mounts.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "90c699a9ee4be165966d40f1837909ccb8890a68",
      "tree": "ff136ce7b73c7d7bbf5eb4241d01cb3b930d3566",
      "parents": [
        "3a02c8e8142f7f133d4c6e72bc3e1d830e6b8b9e"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 19 08:08:50 2009 +0200"
      },
      "message": "block: rename CONFIG_LBD to CONFIG_LBDAF\n\nFollow-up to \"block: enable by default support for large devices\nand files on 32-bit archs\".\n\nRename CONFIG_LBD to CONFIG_LBDAF to:\n- allow update of existing [def]configs for \"default y\" change\n- reflect that it is used also for large files support nowadays\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "300df7dc89cc276377fc020704e34875d5c473b6",
      "tree": "6b280000815b0562255cecf3da1a8c9597bce702",
      "parents": [
        "661adc423d70203a56723701aaf255e16950dfdb",
        "9af0b38ff3f4f79c62dd909405b113bf7c1a23aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:11:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 12:11:57 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:\n  ocfs2/net: Use wait_event() in o2net_send_message_vec()\n  ocfs2: Adjust rightmost path in ocfs2_add_branch.\n  ocfs2: fdatasync should skip unimportant metadata writeout\n  ocfs2: Remove redundant gotos in ocfs2_mount_volume()\n  ocfs2: Add statistics for the checksum and ecc operations.\n  ocfs2 patch to track delayed orphan scan timer statistics\n  ocfs2: timer to queue scan of all orphan slots\n  ocfs2: Correct ordering of ip_alloc_sem and localloc locks for directories\n  ocfs2: Fix possible deadlock in quota recovery\n  ocfs2: Fix possible deadlock with quotas in ocfs2_setattr()\n  ocfs2: Fix lock inversion in ocfs2_local_read_info()\n  ocfs2: Fix possible deadlock in ocfs2_global_read_dquot()\n  ocfs2: update comments in masklog.h\n  ocfs2: Don\u0027t printk the error when listing too many xattrs.\n"
    },
    {
      "commit": "337eb00a2c3a421999c39c94ce7e33545ee8baa7",
      "tree": "d9b780d095b638b1d8fa23841ff70347cf5daa08",
      "parents": [
        "4195f73d1329e49727bcceb028e58cb38376c2b0"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Tue May 12 15:10:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Push BKL down into -\u003eremount_fs()\n\n[xfs, btrfs, capifs, shmem don\u0027t need BKL, exempt]\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6cfd0148425e528b859b26e436b01f23f6926224",
      "tree": "60e3257053554ff198fe5825e6f12a00c3b4422a",
      "parents": [
        "a9e220f8322e2b0e0b8903fe00265461cffad3f0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:40:36 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "push BKL down into -\u003eput_super\n\nMove BKL into -\u003eput_super from the only caller.  A couple of\nfilesystems had trivial enough -\u003eput_super (only kfree and NULLing of\ns_fs_info + stuff in there) to not get any locking: coda, cramfs, efs,\nhugetlbfs, omfs, qnx4, shmem, all others got the full treatment.  Most\nof them probably don\u0027t need it, but I\u0027d rather sort that out individually.\nPreferably after all the other BKL pushdowns in that area.\n\n[AV: original used to move lock_super() down as well; these changes are\nremoved since we don\u0027t do lock_super() at all in generic_shutdown_super()\nnow]\n[AV: fuse, btrfs and xfs are known to need no damn BKL, exempt]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "94cb993f2ee99f3a9318e7b4dbb383497c4bedea",
      "tree": "71c2436a8588d253938d50e30b561dcefbb83cd7",
      "parents": [
        "b7d245de25d1f0bb75a0d04194b647762b30d3db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:44 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "ocfs2: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "06c59bb896ce23c56829f6acf667faebd51dd3b8",
      "tree": "ff2f51748ca5baddc1b03ce28ac7223815570b81",
      "parents": [
        "73be192b17e43b6dc4f492dab41d70ab5b9d2908"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue May 19 06:47:20 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:20:15 2009 -0700"
      },
      "message": "ocfs2: Remove redundant gotos in ocfs2_mount_volume()\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "73be192b17e43b6dc4f492dab41d70ab5b9d2908",
      "tree": "9482070421cda81f490036b28033d4f300a58a94",
      "parents": [
        "15633a220ffe74fc61bc8117e6a89a494011ea3d"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 06 14:57:08 2009 -0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:15:36 2009 -0700"
      },
      "message": "ocfs2: Add statistics for the checksum and ecc operations.\n\nIt would be nice to know how often we get checksum failures.  Even\nbetter, how many of them we can fix with the single bit ecc.  So, we add\na statistics structure.  The structure can be installed into debugfs\nwherever the user wants.\n\nFor ocfs2, we\u0027ll put it in the superblock-specific debugfs directory and\npass it down from our higher-level functions.  The stats are only\nregistered with debugfs when the filesystem supports metadata ecc.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "15633a220ffe74fc61bc8117e6a89a494011ea3d",
      "tree": "18bf3b92b4ec3988f78c5e07b1471b8f89a2f474",
      "parents": [
        "83273932fbefb6ceef9c0b82ac4d23900728f4d9"
      ],
      "author": {
        "name": "Srinivas Eeda",
        "email": "srinivas.eeda@oracle.com",
        "time": "Wed Jun 03 17:02:56 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:14:31 2009 -0700"
      },
      "message": "ocfs2 patch to track delayed orphan scan timer statistics\n\nPatch to track delayed orphan scan timer statistics.\n\nModifies ocfs2_osb_dump to print the following:\n  Orphan Scan\u003d\u003e Local: 10  Global: 21  Last Scan: 67 seconds ago\n\nSigned-off-by: Srinivas Eeda \u003csrinivas.eeda@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "83273932fbefb6ceef9c0b82ac4d23900728f4d9",
      "tree": "7ece8471af3d2a22543542e990369aca47aa3d25",
      "parents": [
        "edd45c08499a3e9d4c25431cd2b6a9ce5f692c92"
      ],
      "author": {
        "name": "Srinivas Eeda",
        "email": "srinivas.eeda@oracle.com",
        "time": "Wed Jun 03 17:02:55 2009 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jun 03 19:14:31 2009 -0700"
      },
      "message": "ocfs2: timer to queue scan of all orphan slots\n\nWhen a dentry is unlinked, the unlinking node takes an EX on the dentry lock\nbefore moving the dentry to the orphan directory. Other nodes that have\nthis dentry in cache have a PR on the same dentry lock.  When the EX is\nrequested, the other nodes flag the corresponding inode as MAYBE_ORPHANED\nduring downconvert.  The inode is finally deleted when the last node to iput\nthe inode sees that i_nlink\u003d\u003d0 and the MAYBE_ORPHANED flag is set.\n\nA problem arises if a node is forced to free dentry locks because of memory\npressure. If this happens, the node will no longer get downconvert\nnotifications for the dentries that have been unlinked on another node.\nIf it also happens that node is actively using the corresponding inode and\nhappens to be the one performing the last iput on that inode, it will fail\nto delete the inode as it will not have the MAYBE_ORPHANED flag set.\n\nThis patch fixes this shortcoming by introducing a periodic scan of the\norphan directories to delete such inodes. Care has been taken to distribute\nthe workload across the cluster so that no one node has to perform the task\nall the time.\n\nSigned-off-by: Srinivas Eeda \u003csrinivas.eeda@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1",
      "tree": "d60d15a082171c58ac811d547d51a9c3119f23e3",
      "parents": [
        "9bd7de51ee8537094656149eaf45338cadb7d7d4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Do away with the notion of hardsect_size\n\nUntil now we have had a 1:1 mapping between storage device physical\nblock size and the logical block sized used when addressing the device.\nWith SATA 4KB drives coming out that will no longer be the case.  The\nsector size will be 4KB but the logical block size will remain\n512-bytes.  Hence we need to distinguish between the physical block size\nand the logical ditto.\n\nThis patch renames hardsect_size to logical_block_size.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9140db04ef185f934acf2b1b15b3dd5e6a6bfc22",
      "tree": "354dbc0351195ae2b6ea5f7dfbf68a99307c3d69",
      "parents": [
        "1fca3a05ef2823830925dfb66711d6d920265a8d"
      ],
      "author": {
        "name": "Srinivas Eeda",
        "email": "srinivas.eeda@oracle.com",
        "time": "Fri Mar 06 14:21:46 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:26 2009 -0700"
      },
      "message": "ocfs2: recover orphans in offline slots during recovery and mount\n\nDuring recovery, a node recovers orphans in it\u0027s slot and the dead node(s). But\nif the dead nodes were holding orphans in offline slots, they will be left\nunrecovered.\n\nIf the dead node is the last one to die and is holding orphans in other slots\nand is the first one to mount, then it only recovers it\u0027s own slot, which\nleaves orphans in offline slots.\n\nThis patch queues complete_recovery to clean orphans for all offline slots\nduring mount and node recovery.\n\nSigned-off-by: Srinivas Eeda \u003csrinivas.eeda@oracle.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9b7895efac906d66d19856194e1ba61f37e231a4",
      "tree": "1ee6d2630cf3617251638170dcaceef41ddda8ec",
      "parents": [
        "4a12ca3a00a244e1fd1e673d151ea38b71e11d55"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Wed Nov 12 16:27:44 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Add a name indexed b-tree to directory inodes\n\nThis patch makes use of Ocfs2\u0027s flexible btree code to add an additional\ntree to directory inodes. The new tree stores an array of small,\nfixed-length records in each leaf block. Each record stores a hash value,\nand pointer to a block in the traditional (unindexed) directory tree where a\ndirent with the given name hash resides. Lookup exclusively uses this tree\nto find dirents, thus providing us with constant time name lookups.\n\nSome of the hashing code was copied from ext3. Unfortunately, it has lots of\nunfixed checkpatch errors. I left that as-is so that tracking changes would\nbe easier.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "50397507e856455b3f5cb3d5c7c482209f9e46a0",
      "tree": "537d1aa6aec9108aa080a2b58f68fac767420416",
      "parents": [
        "96a6c64b5354b804b3ccfd1b31306565a01ebcb1"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Wed Dec 17 14:17:43 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 03 11:39:15 2009 -0700"
      },
      "message": "ocfs2: Expose the file system state via debugfs\n\nThis patch creates a per mount debugfs file, fs_state, which exposes\ninformation like, cluster stack in use, states of the downconvert, recovery\nand commit threads, number of journal txns, some allocation stats, list of\nall slots, etc.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "28d57d437786eb3e44f1ca3f0f41e7cfe29c6dd4",
      "tree": "f6dfd111dac45ee7e2b366eb47a2598f46460a1e",
      "parents": [
        "4442f518269c6b3686fcbcadad22dc4475309b16"
      ],
      "author": {
        "name": "wengang wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Fri Feb 13 10:11:47 2009 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:12 2009 -0800"
      },
      "message": "ocfs2: add IO error check in ocfs2_get_sector()\n\nCheck for IO error in ocfs2_get_sector().\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "c8b9cf9a7cd25ba65166116d0a958f0bc709f0a7",
      "tree": "81ab9d6d0be93e57bcb17130abed3516574b3752",
      "parents": [
        "89a907afe073b8971a83d0ad54f391542b64d327"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Feb 24 17:40:26 2009 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Feb 26 11:51:11 2009 -0800"
      },
      "message": "ocfs2: lock the metaecc process for xattr bucket\n\nFor other metadata in ocfs2, metaecc is checked in ocfs2_read_blocks\nwith io_mutex held. While for xattr bucket, it is calculated by\nthe whole buckets. So we have to add a spin_lock to prevent multiple\nprocesses calculating metaecc.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nTested-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "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": "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": "19ece546a418997226bd91552fbc41abcb05cea6",
      "tree": "f10ba25a07d020551833f53720bbba475788f957",
      "parents": [
        "2205363dce7447b8e85f1ead14387664c1a98753"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Aug 21 20:13:17 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:24 2009 -0800"
      },
      "message": "ocfs2: Enable quota accounting on mount, disable on umount\n\nEnable quota usage tracking on mount and disable it on umount. Also\nadd support for quota on and quota off quotactls and usrquota and\ngrpquota mount options. Add quota features among supported ones.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "171bf93ce11f4c9929fdce6ce63df8da2f3c4475",
      "tree": "a6f29032a86bcc2b0e9971c85ec8fab22b3300ef",
      "parents": [
        "a90714c150e3ce677c57a9dac3ab1ec342c75a95"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 20 15:36:47 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:24 2009 -0800"
      },
      "message": "ocfs2: Periodic quota syncing\n\nThis patch creates a work queue for periodic syncing of locally cached quota\ninformation to the global quota files. We constantly queue a delayed work\nitem, to get the periodic behavior.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9e33d69f553aaf11377307e8d6f82deb3385e351",
      "tree": "ded5f48f6cf82db976f30d5f0f4d44b941f60f44",
      "parents": [
        "bbbd0eb34bf801dee01e345785959a75258f6567"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Aug 25 19:56:50 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:23 2009 -0800"
      },
      "message": "ocfs2: Implementation of local and global quota file handling\n\nFor each quota type each node has local quota file. In this file it stores\nchanges users have made to disk usage via this node. Once in a while this\ninformation is synced to global file (and thus with other nodes) so that\nlimits enforcement at least aproximately works.\n\nGlobal quota files contain all the information about usage and limits. It\u0027s\nmostly handled by the generic VFS code (which implements a trie of structures\ninside a quota file). We only have to provide functions to convert structures\nfrom on-disk format to in-memory one. We also have to provide wrappers for\nvarious quota functions starting transactions and acquiring necessary cluster\nlocks before the actual IO is really started.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "1a224ad11eeb190da4a123e156601aad1bb67f24",
      "tree": "093f4e8449c0fed95af2d73904f67c65a93241ff",
      "parents": [
        "90e86a63eadf1a3b2f19b68d82150dc63fe01443"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 20 15:43:36 2008 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:40:23 2009 -0800"
      },
      "message": "ocfs2: Assign feature bits and system inodes to quota feature and quota files\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a68979b857283daf4acc405e476dcc8812a3ff2b",
      "tree": "6bbf9d235e1ae38f4263f92d4075df6913befc8a",
      "parents": [
        "89c38bd0ade3c567707ed8fce088b253b0369c50"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Fri Nov 14 11:17:52 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jan 05 08:36:52 2009 -0800"
      },
      "message": "ocfs2: add mount option and Kconfig option for acl\n\nThis patch adds the Kconfig option \"CONFIG_OCFS2_FS_POSIX_ACL\"\nand mount options \"acl\" to enable acls in Ocfs2.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a81cb88b64a479b78c6dd5666678d50171865db8",
      "tree": "9fe0f67e30d7c70d43785827e57736ac01558c24",
      "parents": [
        "fd8351f83d413b41da956109cf429c15881886e2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:25:16 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Don\u0027t check for NULL before brelse()\n\nThis is pointless as brelse() already does the check.\n\nSigned-off-by: Mark Fasheh\n"
    },
    {
      "commit": "b0f73cfc36ed62decdd3f78e943bbfd00ee80e49",
      "tree": "66449d0a071b68774edc85e17d09af737d4b83d6",
      "parents": [
        "2b4e30fbde425828b17f0e9c8f8e3fd3ecb2bc75"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Fri Sep 05 11:29:14 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Add xattr mount option in ocfs2_show_options()\n\nPatch adds check for [no]user_xattr in ocfs2_show_options() that completes\nthe list of all mount options.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "2b4e30fbde425828b17f0e9c8f8e3fd3ecb2bc75",
      "tree": "5b340cde72e058b51642f0c7255818f62014bc91",
      "parents": [
        "12462f1d9f0b96389497438dc2730c6f7410be82"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:41 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:43 2008 -0700"
      },
      "message": "ocfs2: Switch over to JBD2.\n\nocfs2 wants JBD2 for many reasons, not the least of which is that JBD is\nlimiting our maximum filesystem size.\n\nIt\u0027s a pretty trivial change.  Most functions are just renamed.  The\nonly functional change is moving to Jan\u0027s inode-based ordered data mode.\nIt\u0027s better, too.\n\nBecause JBD2 reads and writes JBD journals, this is compatible with any\nexisting filesystem.  It can even interact with JBD-based ocfs2 as long\nas the journal is formated for JBD.\n\nWe provide a compatibility option so that paranoid people can still use\nJBD for the time being.  This will go away shortly.\n\n[ Moved call of ocfs2_begin_ordered_truncate() from ocfs2_delete_inode() to\n  ocfs2_truncate_for_delete(). --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "12462f1d9f0b96389497438dc2730c6f7410be82",
      "tree": "d96dec791dd45cc8901dc6a894bdbe96ad7e7c67",
      "parents": [
        "1187c968852e3c668f3b9376083851f81f6eee22"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Sep 03 20:03:40 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:08 2008 -0700"
      },
      "message": "ocfs2: Add the \u0027inode64\u0027 mount option.\n\nNow that ocfs2 limits inode numbers to 32bits, add a mount option to\ndisable the limit.  This parallels XFS.  64bit systems can handle the\nlarger inode numbers.\n\n[ Added description of inode64 mount option in ocfs2.txt. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8154da3d2114241cf3edb108b43e2172be86d483",
      "tree": "a6d1c1652469d9a34b50dbdab4a435376bf3f32c",
      "parents": [
        "a394425643e1e9c3a624d629fc8ba5633d8474c6"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:11:46 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:03 2008 -0700"
      },
      "message": "ocfs2: Add incompatible flag for extended attribute\n\nThis patch adds the s_incompat flag for extended attribute support. This\nhelps us ensure that older versions of Ocfs2 or ocfs2-tools will not be able\nto mount a volume with xattr support.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "cf1d6c763fbcb115263114302485ad17e7933d87",
      "tree": "85717dc9d20b7ac1e31b683653933f2d30099f44",
      "parents": [
        "fdd77704a8b4666a32120fcd1e4a9fedaf3263d8"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:11:00 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:02 2008 -0700"
      },
      "message": "ocfs2: Add extended attribute support\n\nThis patch implements storing extended attributes both in inode or a single\nexternal block. We only store EA\u0027s in-inode when blocksize \u003e 512 or that\ninode block has free space for it. When an EA\u0027s value is larger than 80\nbytes, we will store the value via b-tree outside inode or block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "fdd77704a8b4666a32120fcd1e4a9fedaf3263d8",
      "tree": "bfc7ba78487c5c6287354b2b07ee4042bff566bc",
      "parents": [
        "f56654c435c06f2b2bd5751889b1a08a3add7d6c"
      ],
      "author": {
        "name": "Tiger Yang",
        "email": "tiger.yang@oracle.com",
        "time": "Mon Aug 18 17:08:55 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 16:57:02 2008 -0700"
      },
      "message": "ocfs2: reserve inline space for extended attribute\n\nAdd the structures and helper functions we want for handling inline extended\nattributes. We also update the inline-data handlers so that they properly\nfunction in the event that we have both inline data and inline attributes\nsharing an inode block.\n\nSigned-off-by: Tiger Yang \u003ctiger.yang@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "9c7af40b210e87f8fddd97b0badc0a352862234a",
      "tree": "deb248e5295439b96ad9bd1789e8512f93803142",
      "parents": [
        "ebcee4b5c9136096f64ee6f691a013d7c0a4bc34"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 28 18:02:53 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:57 2008 -0700"
      },
      "message": "ocfs2: throttle back local alloc when low on disk space\n\nOcfs2\u0027s local allocator disables itself for the duration of a mount point\nwhen it has trouble allocating a large enough area from the primary bitmap.\nThat can cause performance problems, especially for disks which were only\ntemporarily full or fragmented. This patch allows for the allocator to\nshrink it\u0027s window first, before being disabled. Later, it can also be\nre-enabled so that any performance drop is minimized.\n\nTo do this, we allow the value of osb-\u003elocal_alloc_bits to be shrunk when\nneeded. The default value is recorded in a mostly read-only variable so that\nwe can re-initialize when required.\n\nLocking had to be updated so that we could protect changes to\nlocal_alloc_bits. Mostly this involves protecting various local alloc values\nwith the osb spinlock. A new state is also added, OCFS2_LA_THROTTLED, which\nis used when the local allocator is has shrunk, but is not disabled. If the\navailable space dips below 1 megabyte, the local alloc file is disabled. In\neither case, local alloc is re-enabled 30 seconds after the event, or when\nan appropriate amount of bits is seen in the primary bitmap.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "ebcee4b5c9136096f64ee6f691a013d7c0a4bc34",
      "tree": "cb28c9135559a8f5aaf4c61b9d39f9c4ce733b55",
      "parents": [
        "53da4939f349d4edd283b043219221ca5b78e4d4"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 28 14:55:20 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 13:57:57 2008 -0700"
      },
      "message": "ocfs2: Track local alloc bits internally\n\nDo this instead of tracking absolute local alloc size. This avoids\nneedless re-calculatiion of bits from bytes in localalloc.c. Additionally,\nthe value is now in a more natural unit for internal file system bitmap\nwork.\n\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "a447c0932445f92ce6f4c1bd020f62c5097a7842",
      "tree": "bacf05bc7f9764515cdd6f7dc5e2254776b4f160",
      "parents": [
        "54cebc68c81eacac41a21bdfe99dc889d3882c60"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 13 10:46:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:10:37 2008 -0700"
      },
      "message": "vfs: Use const for kernel parser table\n\nThis is a much better version of a previous patch to make the parser\ntables constant. Rather than changing the typedef, we put the \"const\" in\nall the various places where its required, allowing the __initconst\nexception for nfsroot which was the cause of the previous trouble.\n\nThis was posted for review some time ago and I believe its been in -mm\nsince then.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "539d8264093560b917ee3afe4c7f74e5da09d6a5",
      "tree": "1fce83387272c0b2d61bd945769f4984aa5e79ce",
      "parents": [
        "c69991aac71a8beb57c11d651c7fd4b24c32aa8b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Mon Jul 14 17:31:10 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Thu Jul 31 16:21:14 2008 -0700"
      },
      "message": "[PATCH 2/2] ocfs2: Fix race between mount and recovery\n\nAs the fs recovery is asynchronous, there is a small chance that another\nnode can mount (and thus recover) the slot before the recovery thread\ngets to it.\n\nIf this happens, the recovery thread will block indefinitely on the\njournal/slot lock as that lock will be held for the duration of the mount\n(by design) by the node assigned to that slot.\n\nThe solution implemented is to keep track of the journal replays using\na recovery generation in the journal inode, which will be incremented by the\nthread replaying that journal. The recovery thread, before attempting the\nblocking lock on the journal/slot lock, will compare the generation on disk\nwith what it has cached and skip recovery if it does not match.\n\nThis bug appears to have been inadvertently introduced during the mount/umount\nvote removal by mainline commit 34d024f84345807bf44163fac84e921513dde323. In the\nmount voting scheme, the messaging would indirectly indicate that the slot\nwas being recovered.\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01af482037d32c215aab208a0b110ffe6fd782c0",
      "tree": "c15e6ca3753aded21dc6e0821ffc66519c5c1abb",
      "parents": [
        "56753bd3b9220f6f2477eb1cf97f40c24e0a4c91"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Tue Jun 10 14:24:48 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Jul 14 13:57:15 2008 -0700"
      },
      "message": "ocfs2: Handle error during journal load\n\nThis patch ensures the mount fails if the fs is unable to load the journal.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nAcked-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4d0ddb2ce25db2254d468233d942276ecf40bff8",
      "tree": "6a114da03bb9911de637146f2b24866f1ae96718",
      "parents": [
        "a4a4891164d4f6f383cc17e7c90828a7ca6a1146"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Mar 05 16:11:46 2008 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:10 2008 -0700"
      },
      "message": "ocfs2: Add inode stealing for ocfs2_reserve_new_inode\n\nInode allocation is modified to look in other nodes allocators during\nextreme out of space situations. We retry our own slot when space is freed\nback to the global bitmap, or whenever we\u0027ve allocated more than 1024 inodes\nfrom another slot.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "b61817e1166c5e19c08baf05196477cc345e1b1a",
      "tree": "8da1c387086313aecdbb8f96fd0ab33417860620",
      "parents": [
        "74ae4e104dfc57017783fc07d5f2f9129062207f"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 15:08:23 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:05 2008 -0700"
      },
      "message": "ocfs2: Add the USERSPACE_STACK incompat bit.\n\nThe filesystem gains the USERSPACE_STACK incomat bit and the\ns_cluster_info field on the superblock.  When a userspace stack is in\nuse, the name of the stack is stored on-disk for mount-time\nverification.\n\nThe \"cluster_stack\" option is added to mount(2) processing.  The mount\nprocess needs to pass the matching stack name.  If the passed name and\nthe on-disk name do not match, the mount is failed.\n\nWhen using the classic o2cb stack, the incompat bit is *not* set and no\nmount option is used other than the usual heartbeat\u003dlocal.  Thus, the\nfilesystem is compatible with older tools.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "286eaa95c5c5915a6b72cc3f0a2534161fd7928b",
      "tree": "dce03b619389cc5b5e2508b30ca3e1411401cf4e",
      "parents": [
        "e3dad42bf993a0f24eb6e46152356c9b119c15e8"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 15:03:57 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:05 2008 -0700"
      },
      "message": "ocfs2: Break out stackglue into modules.\n\nWe define the ocfs2_stack_plugin structure to represent a stack driver.\nThe o2cb stack code is split into stack_o2cb.c.  This becomes the\nocfs2_stack_o2cb.ko module.\n\nThe stackglue generic functions are similarly split into the\nocfs2_stackglue.ko module.  This module now provides an interface to\nregister drivers.  The ocfs2_stack_o2cb driver registers itself.  As\npart of this interface, ocfs2_stackglue can load drivers on demand.\nThis is accomplished in ocfs2_cluster_connect().\n\nocfs2_cluster_disconnect() is now notified when a _hangup() is pending.\nIf a hangup is pending, it will not release the driver module and will\nlet _hangup() do that.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "63e0c48ae6986a5bbb8e8dd9210c0e6ca79f2e50",
      "tree": "761be605ec94525d51ad09074bc70a2f9ddb2537",
      "parents": [
        "cf0acdcd640e9466059e69951c557e90b4bee45a"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jan 30 16:58:36 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:05 2008 -0700"
      },
      "message": "ocfs2: Clean up stackglue initialization\n\nThe stack glue initialization function needs a better name so that it can be\nused cleanly when stackglue becomes a module.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0abd6d1803b01c741430af270026d1d95a103d9c",
      "tree": "c1aca3d286990be6f9043e28ad0bacaf3443ef54",
      "parents": [
        "6953b4c008628b945bfe0cee97f6e78a98773859"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Jan 29 16:59:56 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Fill node number during cluster stack init\n\nIt doesn\u0027t make sense to query for a node number before connecting to the\ncluster stack. This should be safe to do because node_num is only just\nprinted,\nand we\u0027re actually only moving the setting of node num a small amount\nfurther in the mount process.\n\n[ Disconnect when node query fails -- Joel ]\n\nReviewed-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "6953b4c008628b945bfe0cee97f6e78a98773859",
      "tree": "de00a19f59466d9e83b00112696afa5b02abbd9c",
      "parents": [
        "19fdb624dc8ccb663f6e48b3a3a3fa4e4e567fc1"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 29 16:59:56 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Move o2hb functionality into the stack glue.\n\nThe last bit of classic stack used directly in ocfs2 code is o2hb.\nSpecifically, the check for heartbeat during mount and the call to\nocfs2_hb_ctl during unmount.\n\nWe create an extra API, ocfs2_cluster_hangup(), to encapsulate the call\nto ocfs2_hb_ctl.  Other stacks will just leave hangup() empty.\n\nThe check for heartbeat is moved into ocfs2_cluster_connect().  It will\nbe matched by a similar check for other stacks.\n\nWith this change, only stackglue.c includes cluster/ headers.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "19fdb624dc8ccb663f6e48b3a3a3fa4e4e567fc1",
      "tree": "b50e358686ca63789af4af07526e0d21f2806bfb",
      "parents": [
        "4670c46ded9a18268d1265417ff4ac72145a7917"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Wed Jan 30 15:38:24 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Abstract out node number queries.\n\nocfs2 asks the cluster stack for the local node\u0027s node number for two\nreasons; to fill the slot map and to print it. While the slot map isn\u0027t\nnecessary for userspace cluster stacks, the printing is very nice for\ndebugging. Thus we add ocfs2_cluster_this_node() as a generic API to get\nthis value. It is anticipated that the slot map will not be used under a\nuserspace cluster stack, so validity checks of the node num only need to\nexist in the slot map code. Otherwise, it just gets used and printed as an\nopaque value.\n\n[ Fixed up some \"int\" versus \"unsigned int\" issues and made osb-\u003enode_num\n  truly opaque. --Mark ]\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "4670c46ded9a18268d1265417ff4ac72145a7917",
      "tree": "4f70822ddee389a9c8ed572b215a3355c20db3a1",
      "parents": [
        "8f2c9c1b16bf6ed0903b29c49d56fa0109a390e4"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 14:39:35 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Introduce the new ocfs2_cluster_connect/disconnect() API.\n\nThis step introduces a cluster stack agnostic API for initializing and\nexiting.  fs/ocfs2/dlmglue.c no longer uses o2cb/o2dlm knowledge to\nconnect to the stack.  It is all handled in stackglue.c.\n\nheartbeat.c no longer needs to know how it gets called.\nocfs2_do_node_down() is now a clean recovery trigger.\n\nThe big gotcha is the ordering of initializations and de-initializations done\nunderneath ocfs2_cluster_connect().  ocfs2_dlm_init() used to do all\no2dlm initialization in one block.  Thus, the o2dlm functionality of\nocfs2_cluster_connect() is very straightforward.  ocfs2_dlm_shutdown(),\nhowever, did a few things between de-registration of the eviction\ncallback and actually shutting down the domain.  Now de-registration and\nshutdown of the domain are wrapped within the single\nocfs2_cluster_disconnect() call.  I\u0027ve checked the code paths to make\nsure we can safely tear down things in ocfs2_dlm_shutdown() before\ncalling ocfs2_cluster_disconnect().  The filesystem has already set\nitself to ignore the callback.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "24ef1815e5e13e50196eb1ab8ddc0d783443bdf8",
      "tree": "4c44e87b1a80d4745416c9973258c40db8433829",
      "parents": [
        "386a2ef8576e966076c293f6496b9e3d7e3d9035"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 29 17:37:32 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:03 2008 -0700"
      },
      "message": "ocfs2: Separate out dlm lock functions.\n\nThis is the first in a series of patches to isolate ocfs2 from the\nunderlying cluster stack. Here we wrap the dlm locking functions with\nocfs2-specific calls. Because ocfs2 always uses the same dlm lock status\ncallbacks, we can eliminate the callbacks from the filesystem visible\nfunctions.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "553abd046af609191a91af7289d87d477adc659f",
      "tree": "cff21f65d49c0041993095a051edf76840c2af28",
      "parents": [
        "d85b20e4b300edfd290f21fc2d790ba16d2f225b"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Feb 01 12:03:57 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:02 2008 -0700"
      },
      "message": "ocfs2: Change the recovery map to an array of node numbers.\n\nThe old recovery map was a bitmap of node numbers.  This was sufficient\nfor the maximum node number of 254.  Going forward, we want node numbers\nto be UINT32.  Thus, we need a new recovery map.\n\nNote that we can\u0027t keep track of slots here.  We must write down the\nnode number to recovery *before* we get the locks needed to convert a\nnode number into a slot number.\n\nThe recovery map is now an array of unsigned ints, max_slots in size.\nIt moves to journal.c with the rest of recovery.\n\nBecause it needs to be initialized, we move all of recovery initialization\ninto a new function, ocfs2_recovery_init().  This actually cleans up\nocfs2_initialize_super() a little as well.  Following on, recovery cleaup\nbecomes part of ocfs2_recovery_exit().\n\nA number of node map functions are rendered obsolete and are removed.\n\nFinally, waiting on recovery is wrapped in a function rather than naked\nchecks on the recovery_event.  This is a cleanup from Mark.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "8e8a4603b5422c9145880e73b23bc4c2c4de0098",
      "tree": "4d388ae74ed9e5f8cfec19ff20d07d81ca742592",
      "parents": [
        "4b119e21d0c66c22e8ca03df05d9de623d0eb50f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Feb 01 11:59:09 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:02 2008 -0700"
      },
      "message": "ocfs2: Move slot map access into slot_map.c\n\njournal.c and dlmglue.c would refresh the slot map by hand.  Instead, have\nthe update and clear functions do the work inside slot_map.c.  The eventual\nresult is to make ocfs2_slot_info defined privately in slot_map.c\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "d24fbcda0c4988322949df3d759f1cfb32b32953",
      "tree": "d8454796d58649126005001472e9dcee8bd557ca",
      "parents": [
        "3e6bdf473f489664dac4d7511d26c7ac3dfdc748"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "Joel.Becker@oracle.com",
        "time": "Fri Jan 25 17:02:21 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Feb 06 16:11:29 2008 -0800"
      },
      "message": "ocfs2: Negotiate locking protocol versions.\n\nCurrently, when ocfs2 nodes connect via TCP, they advertise their\ncompatibility level.  If the versions do not match, two nodes cannot speak\nto each other and they disconnect. As a result, this provides no forward or\nbackwards compatibility.\n\nThis patch implements a simple protocol negotiation at the dlm level by\nintroducing a major/minor version number scheme for entities that\ncommunicate.  Specifically, o2dlm has a major/minor version for interaction\nwith o2dlm on other nodes, and ocfs2 itself has a major/minor version for\ninteracting with the filesystem on other nodes.\n\nThis will allow rolling upgrades of ocfs2 clusters when changes to the\nlocking or network protocols can be done in a backwards compatible manner.\nIn those cases, only the minor number is changed and the negotatied protocol\nminor is returned from dlm join. In the far less likely event that a\nrequired protocol change makes backwards compatibility impossible, we simply\nbump the major number.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "5fa0613ea58a80f69852b242337121bd39dc798e",
      "tree": "21170694624428a8903efc6cba843fd10de93c64",
      "parents": [
        "53fc622b9e829c8e632e45ef8c14f054388759c1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jan 11 00:11:45 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:44 2008 -0800"
      },
      "message": "ocfs2: Silence false lockdep warnings\n\nCreate separate lockdep lock classes for system file\u0027s i_mutexes. They are\nused to guard allocations and similar things and thus rank differently\nthan i_mutex of a regular file or directory.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "53fc622b9e829c8e632e45ef8c14f054388759c1",
      "tree": "6b8585ab00312dd798d8087c452393bf6cc0d344",
      "parents": [
        "cf8e06f1a860d8680d6bb4ac8ec7d7724988e46f"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Dec 20 16:49:04 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:43 2008 -0800"
      },
      "message": "[PATCH 2/2] ocfs2: cluster aware flock()\n\nHook up ocfs2_flock(), using the new flock lock type in dlmglue.c. A new\nmount option, \"localflocks\" is added so that users can revert to old\nfunctionality as need be.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "2fbe8d1ebe004425b4f7b8bba345623d2280be82",
      "tree": "7620954c7a364c41306a3becc0046dd1e235158f",
      "parents": [
        "d147b3d630edef1d34de6ea819787a1ac1b8603b"
      ],
      "author": {
        "name": "Sunil Mushran",
        "email": "sunil.mushran@oracle.com",
        "time": "Thu Dec 20 14:58:11 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:43 2008 -0800"
      },
      "message": "ocfs2: Local alloc window size changeable via mount option\n\nLocal alloc is a performance optimization in ocfs2 in which a node\ntakes a window of bits from the global bitmap and then uses that for\nall small local allocations. This window size is fixed to 8MB currently.\nThis patch allows users to specify the window size in MB including\ndisabling it by passing in 0. If the number specified is too large,\nthe fs will use the default value of 8MB.\n\nmount -o localalloc\u003dX /dev/sdX /mntpoint\n\nSigned-off-by: Sunil Mushran \u003csunil.mushran@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "d147b3d630edef1d34de6ea819787a1ac1b8603b",
      "tree": "bd417b27fd58fa3c44be6b8451d929f848981ffd",
      "parents": [
        "0957f00796157564281ea6ff2cea7ef4f897775a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Nov 07 14:40:36 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:42 2008 -0800"
      },
      "message": "ocfs2: Support commit\u003d mount option\n\nMostly taken from ext3. This allows the user to set the jbd commit interval,\nin seconds. The default of 5 seconds stays the same, but now users can\neasily increase the commit interval. Typically, this would be increased in\norder to benefit performance at the expense of data-safety.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e9d578a8f279d5e7d1e903f436aefc76ba330b43",
      "tree": "ac5ee47053d00940d25f6dd9d2b23cb18e587cf0",
      "parents": [
        "1252c434e39dc60ca9e8ed682f3e04930e2c08de"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Dec 18 15:46:10 2007 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:48:54 2008 -0800"
      },
      "message": "ocfs2: Initalize bitmap_cpg of ocfs2_super to be the maximum.\n\nThis value is initialized from global_bitmap-\u003eid2.i_chain.cl_cpg. If there\nis only 1 group, it will be equal to the total clusters in the volume. So\nas for online resize, it should change for all the nodes in the cluster.\nIt isn\u0027t easy and there is no corresponding lock for it.\n\nbitmap_cpg is only used in 2 areas:\n1. Check whether the suballoc is too large for us to allocate from the global\n   bitmap, so it is little used. And now the suballoc size is 2048, it rarely\n   meet this situation and the check is almost useless.\n2. Calculate which group a cluster belongs to. We use it during truncate to\n   figure out which cluster group an extent belongs too. But we should be OK\n   if we increase it though as the cluster group calculated shouldn\u0027t change\n   and we only ever have a small bitmap_cpg on file systems with a single\n   cluster group.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e63aecb651ba73dffc62f9608ee1b7ae2a0ffd4b",
      "tree": "06a4b727230120fe73421dc3149c21aaed5fe91e",
      "parents": [
        "c934a92d05b549dd2f25db72c5fc3cb9dcf1b611"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Oct 18 15:30:42 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:46:01 2008 -0800"
      },
      "message": "ocfs2: Rename ocfs2_meta_[un]lock\n\nCall this the \"inode_lock\" now, since it covers both data and meta data.\nThis patch makes no functional changes.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "c934a92d05b549dd2f25db72c5fc3cb9dcf1b611",
      "tree": "57150c87d1d465db28fceaa14c9d5b220c7a3954",
      "parents": [
        "f1f540688eae66c274ff1c1133b5d9c687b28f58"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Oct 18 15:23:46 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:45:57 2008 -0800"
      },
      "message": "ocfs2: Remove data locks\n\nThe meta lock now covers both meta data and data, so this just removes the\nnow-redundant data lock.\n\nCombining locks saves us a round of lock mastery per inode and one less lock\nto ping between nodes during read/write.\n\nWe don\u0027t lose much - since meta locks were always held before a data lock\n(and at the same level) ordered writeout mode (the default) ensured that\nflushing for the meta data lock also pushed out data anyways.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "34d024f84345807bf44163fac84e921513dde323",
      "tree": "aef303ae5feeb42cb8791acc1c0b8a74f0a97674",
      "parents": [
        "6f7b056ea9c6fa978c79ca626eff43549df94dbb"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Sep 24 15:56:19 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:45:34 2008 -0800"
      },
      "message": "ocfs2: Remove mount/unmount votes\n\nThe node maps that are set/unset by these votes are no longer relevant, thus\nwe can remove the mount and umount votes. Since those are the last two\nremaining votes, we can also remove the entire vote infrastructure.\n\nThe vote thread has been renamed to the downconvert thread, and the small\namount of functionality related to managing it has been moved into\nfs/ocfs2/dlmglue.c. All references to votes have been removed or updated.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "6f7b056ea9c6fa978c79ca626eff43549df94dbb",
      "tree": "e8318b4f7390547ad84208c393608f7141c027d3",
      "parents": [
        "6561168cb442be8d2769dce663870b6a28573e16"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Sep 24 15:09:41 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:36:40 2008 -0800"
      },
      "message": "ocfs2: Remove fs dependency on ocfs2_heartbeat module\n\nNow that the dlm exposes domain information to us, we don\u0027t need generic\nnode up / node down callbacks. And since the DLM is only telling us when a\nnode goes down unexpectedly, we no longer need to optimize away node down\ncallbacks via the umount map.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    }
  ],
  "next": "e001e796e47d29c470de6c2cd36400e03c66118b"
}
