)]}'
{
  "log": [
    {
      "commit": "602c89d2e3e8652f94a697c9a919be739b9bcdd5",
      "tree": "791c0f4ea2b1f9028f7fdf60dbedd42fa0f8ce06",
      "parents": [
        "4cb947b59c5835783fb96aad2f7d92b1e4250aff"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Mar 25 14:32:43 2010 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 29 14:29:17 2010 +0100"
      },
      "message": "GFS2: Clean up stuffed file copying\n\nIf the inode size was corrupt for stuffed files, it was possible\nfor the copying of data to overrun the block and/or page. This patch\nchecks for that condition so that this is no longer possible.\n\nThis is also preparation for the new truncate sequence patch which\nrequires the ability to have stuffed files with larger sizes than\n(disk block size - sizeof(on disk inode)) with the restriction that\nonly the initial part of the file may be non-zero.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "009d851837ab26cab18adda6169a813f70b0b21b",
      "tree": "073bc05e3a8c527bf9ce3332e2c2f6694484984d",
      "parents": [
        "30ff056c42c665b9ea535d8515890857ae382540"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Dec 08 12:12:13 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 01 14:07:37 2010 +0000"
      },
      "message": "GFS2: Metadata address space clean up\n\nSince the start of GFS2, an \"extra\" inode has been used to store\nthe metadata belonging to each inode. The only reason for using\nthis inode was to have an extra address space, the other fields\nwere unused. This means that the memory usage was rather inefficient.\n\nThe reason for keeping each inode\u0027s metadata in a separate address\nspace is that when glocks are requested on remote nodes, we need to\nbe able to efficiently locate the data and metadata which relating\nto that glock (inode) in order to sync or sync and invalidate it\n(depending on the remotely requested lock mode).\n\nThis patch adds a new type of glock, which has in addition to\nits normal fields, has an address space. This applies to all\ninode and rgrp glocks (but to no other glock types which remain\nas before). As a result, we no longer need to have the second\ninode.\n\nThis results in three major improvements:\n 1. A saving of approx 25% of memory used in caching inodes\n 2. A removal of the circular dependency between inodes and glocks\n 3. No confusion between \"normal\" and \"metadata\" inodes in super.c\n\nAlthough the first of these is the more immediately apparent, the\nsecond is just as important as it now enables a number of clean\nups at umount time. Those will be the subject of future patches.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c29cd9004e72acb5a6cb8caf08508f1c5edee686",
      "tree": "f2cf39f10f99b551b7feddf759ab7775d6db8b9a",
      "parents": [
        "9ae3c6de6981a1e8765b5d029f94555fc0f0fea0"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Nov 18 18:09:41 2009 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:59:17 2009 +0000"
      },
      "message": "writeback: remove unused nonblocking and congestion checks (gfs2)\n\nNo one is calling wb_writeback and write_cache_pages with\nwbc.nonblocking\u003d1 any more. And lumpy pageout will want to do\nnonblocking writeback without the congestion wait.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9ae3c6de6981a1e8765b5d029f94555fc0f0fea0",
      "tree": "de903f8b904281ff44cc5ca0ec62b4f8e0010af2",
      "parents": [
        "0ab7d13fcbd7ce1658c563e345990ba453719deb"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Nov 10 12:54:56 2009 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 03 11:59:03 2009 +0000"
      },
      "message": "GFS2: drop rindex glock to refresh rindex list\n\nWhen a gfs2 filesystem is grown, it needs to rebuild the rindex list to be able\nto use the new space.  gfs2 does this when the rindex is marked not uptodate,\nwhich happens when the rindex glock is dropped.  However, on a single node\nsetup, there is never any reason to drop the rindex glock, so gfs2 never\ninvalidates the the rindex. This patch makes gfs2 automatically drop the\nrindex glock after filesystem grows, so it can refresh the rindex list.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "aa261f549d7652258331ebb12795f3bc4395d213",
      "tree": "0ca807db32a6e3f213fa52b5a053d2b27e5e6bac",
      "parents": [
        "6a46079cf57a7f7758e8b926980a4f852f89b34d"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:16 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:16 2009 +0200"
      },
      "message": "HWPOISON: Enable .remove_error_page for migration aware file systems\n\nEnable removing of corrupted pages through truncation\nfor a bunch of file systems: ext*, xfs, gfs2, ocfs2, ntfs\nThese should cover most server needs.\n\nI chose the set of migration aware file systems for this\nfor now, assuming they have been especially audited.\nBut in general it should be safe for all file systems\non the data area that support read/write and truncate.\n\nCaveat: the hardware error handler does not take i_mutex\nfor now before calling the truncate function. Is that ok?\n\nCc: tytso@mit.edu\nCc: hch@infradead.org\nCc: mfasheh@suse.com\nCc: aia21@cantab.net\nCc: hugh.dickins@tiscali.co.uk\nCc: swhiteho@redhat.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "1946f70ab5e4eb8b54a8eaaedba2293a3750ab7e",
      "tree": "91cc1850c7777d5cdea8713710081f70bb63a202",
      "parents": [
        "2163b1e616c41c286f5ab79912671cd4bf52057c"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Jun 25 15:09:51 2009 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 30 10:52:33 2009 +0100"
      },
      "message": "GFS2: keep statfs info in sync on grows\n\nGFS2 wasn\u0027t syncing its statfs info on grows.  This causes a problem\nwhen you grow the filesystem on multiple nodes.  GFS2 would calculate\nthe new space based on the resource groups (which are always current),\nand then assume that the filesystem had grown the from the existing\nstatfs size.  If you grew the filesystem on two different nodes in a\nshort time, the second node wouldn\u0027t see the statfs size change from the\nfirst node, and would assume that it was grown by a larger amount than\nit was.  When all these changes were synced out, the total fileystem\nsize would be incorrect (the first grow would be counted twice).\n\nThis patch syncs makes GFS2 read in the statfs changes from disk before\na grow, and write them out after the grow, while the master statfs inode\nis locked.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b1e71b0622974953e46a284aa986504a90869a9b",
      "tree": "0eb0f68c8b432b6332437e918ca2ab4e0c72d897",
      "parents": [
        "1ce97e564b628bee30b8dbb64e5e653a484308f6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:01:55 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri May 22 10:01:55 2009 +0100"
      },
      "message": "GFS2: Clean up some file names\n\nThis patch renames the ops_*.c files which have no counterpart\nwithout the ops_ prefix in order to shorten the name and make\nit more readable. In addition, ops_address.h (which was very\nsmall) is moved into inode.h and inode.h is cleaned up by\nadding extern where required.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7537d81aa7b7cd31b0caeac8091456e93d96fa8d",
      "tree": "a65c003b5514b7fd65a4337f33b971ff39f72ef4",
      "parents": [
        "48bf2b1711dc498494e77705c415ee46bb508fd9"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Tue May 12 11:16:20 2009 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 12 16:14:05 2009 +0100"
      },
      "message": "GFS2: Fix timestamps on write\n\nThis patch copies the timestamps from the vfs inode into gfs2 and syncs\nit to the disk inode during writes.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "229615def3f573fc448d20f62c6ec1bc9340cefb",
      "tree": "7ecbf85e483f18e5d2b25a9129bd887cf6e2a100",
      "parents": [
        "02ab1721591f7ac1f632fc74b301513bd6f5849f"
      ],
      "author": {
        "name": "Hisashi Hifumi",
        "email": "hifumi.hisashi@oss.ntt.co.jp",
        "time": "Tue Mar 03 11:45:20 2009 +0900"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:25 2009 +0000"
      },
      "message": "GFS2: Pagecache usage optimization on GFS2\n\nI introduced \"is_partially_uptodate\" aops for GFS2.\n\nA page can have multiple buffers and even if a page is not uptodate, some buffers\ncan be uptodate on pagesize !\u003d blocksize environment.\nThis aops checks that all buffers which correspond to a part of a file\nthat we want to read are uptodate. If so, we do not have to issue actual\nread IO to HDD even if a page is not uptodate because the portion we\nwant to read are uptodate.\n\"block_is_partially_uptodate\" function is already used by ext2/3/4.\nWith the following patch random read/write mixed workloads or random read after\nrandom write workloads can be optimized and we can get performance improvement.\n\nI did a performance test using the sysbench.\n\n#sysbench --num-threads\u003d16 --max-requests\u003d200000 --test\u003dfileio --file-num\u003d1\n--file-block-size\u003d8K --file-total-size\u003d2G --file-test-mode\u003drndrw --file-fsync-freq\u003d0\n--file-rw-ratio\u003d1 run\n\n-2.6.29-rc6\nTest execution summary:\n    total time:                          202.6389s\n    total number of events:              200000\n    total time taken by event execution: 2580.0480\n    per-request statistics:\n         min:                            0.0000s\n         avg:                            0.0129s\n         max:                            49.5852s\n         approx.  95 percentile:         0.0462s\n\n-2.6.29-rc6-patched\nTest execution summary:\n    total time:                          177.8639s\n    total number of events:              200000\n    total time taken by event execution: 2419.0199\n    per-request statistics:\n         min:                            0.0000s\n         avg:                            0.0121s\n         max:                            52.4306s\n         approx.  95 percentile:         0.0444s\n\narch: ia64\npagesize: 16k\nblocksize: 4k\n\nSigned-off-by: Hisashi Hifumi \u003chifumi.hisashi@oss.ntt.co.jp\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f057f6cdf64175db1151b1f5d110e29904f119a1",
      "tree": "582dbf358e351f64977620c29ebf772d693b1948",
      "parents": [
        "22077f57dec8fcbeb1112b35313961c0902ff038"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 12 10:43:39 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:14 2009 +0000"
      },
      "message": "GFS2: Merge lock_dlm module into GFS2\n\nThis is the big patch that I\u0027ve been working on for some time\nnow. There are many reasons for wanting to make this change\nsuch as:\n o Reducing overhead by eliminating duplicated fields between structures\n o Simplifcation of the code (reduces the code size by a fair bit)\n o The locking interface is now the DLM interface itself as proposed\n   some time ago.\n o Fewer lookups of glocks when processing replies from the DLM\n o Fewer memory allocations/deallocations for each glock\n o Scope to do further optimisations in the future (but this patch is\n   more than big enough for now!)\n\nPlease note that (a) this patch relates to the lock_dlm module and\nnot the DLM itself, that is still a separate module; and (b) that\nwe retain the ability to build GFS2 as a standalone single node\nfilesystem with out requiring the DLM.\n\nThis patch needs a lot of testing, hence my keeping it I restarted\nmy -git tree after the last merge window. That way, this has the maximum\nexposure before its merged. This is (modulo a few minor bug fixes) the\nsame patch that I\u0027ve been posting on and off the the last three months\nand its passed a number of different tests so far.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0a7ab79c5b5a16035e09b466c9013c8afc3b4bff",
      "tree": "bb82ea7f936b334b4de184288bc951f1642e9541",
      "parents": [
        "2db2aac255c38e75ad17c0b24feb589ccfccc0ae"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Wed Jan 07 16:03:37 2009 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "steve@dolmen.chygwyn.com",
        "time": "Tue Mar 24 11:21:12 2009 +0000"
      },
      "message": "GFS2: change gfs2_quota_scan into a shrinker\n\nDeallocation of gfs2_quota_data objects now happens on-demand through a\nshrinker instead of routinely deallocating through the quotad daemon.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e4fefbac6c5bcb0388d95e83801210e7d81a071b",
      "tree": "b9147be1dd2f388d21b6a8e898ee0b21a97ff39d",
      "parents": [
        "ede6f5aea054d3fb67c78857f7abdee602302043"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 06 10:08:33 2009 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jan 07 08:57:04 2009 +0000"
      },
      "message": "GFS2: Set GFP_NOFS when allocating page on write\n\nWe need to ensure that we always set GFP_NOFS in this one\nparticular case when allocating pages for write.\n\nReported-by: Fabio M. Di Nitto \u003cfdinitto@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7ed122e42c72b3e4531f8b4a9f72159e8303ac15",
      "tree": "aa9976f47cf34b0b6d267654e74b9ea4f7a29d75",
      "parents": [
        "9a776db7371b9c77a8f4f0d2ac6374d78ac7db7d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Dec 10 10:28:10 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:39:17 2009 +0000"
      },
      "message": "GFS2: Streamline alloc calculations for writes\n\nThis patch removes some unused code, and make the calculation\nof the number of blocks required conditional in order to reduce\nthe number of times this (potentially expensive) calculation\nis done.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c9e98886776386f1f7828d9685e78cd341849867",
      "tree": "5bf4ac819d1e9394f960f21a48881a9d2f9f69fe",
      "parents": [
        "3767ac21f471fe669a7d9f6abef682ddac8fc3d8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Nov 04 09:47:33 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:58 2009 +0000"
      },
      "message": "GFS2: Move i_size from gfs2_dinode_host and rename it to i_disksize\n\nThis patch moved the i_size field from the gfs2_dinode_host and\nfollowing the ext3 convention renames it i_disksize.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1bb7322fd0d5abdce396de51cbc5dbc489523018",
      "tree": "fb602151904bbfaa10dc671a059acce90011eca9",
      "parents": [
        "b276058371f5c2ad92f9f27373a72b219ed580ed"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 15 09:46:39 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 05 07:38:49 2009 +0000"
      },
      "message": "GFS2: Fix up jdata writepage/delete_inode\n\nThere is a bug in writepage and delete_inode which allows jdata files to\ninvalidate pages from the address space without being in a transaction at\nthe time. This causes problems in case the pages are in the journal. This\npatch fixes that case and prevents the resulting oops.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "719ee344675c2efed9115934f19aa66a526b6e5b",
      "tree": "7f9502d696a09eaf5eba0a0d3fa35557ffd3c503",
      "parents": [
        "37ec89e83c4ca98323fe74f139301ff3949cfdb6"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:53:59 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 18 13:53:59 2008 +0100"
      },
      "message": "GFS2: high time to take some time over atime\n\nUntil now, we\u0027ve used the same scheme as GFS1 for atime. This has failed\nsince atime is a per vfsmnt flag, not a per fs flag and as such the\n\"noatime\" flag was not getting passed down to the filesystems. This\npatch removes all the \"special casing\" around atime updates and we\nsimply use the VFS\u0027s atime code.\n\nThe net result is that GFS2 will now support all the same atime related\nmount options of any other filesystem on a per-vfsmnt basis. We do lose\nthe \"lazy atime\" updates, but we gain \"relatime\". We could add lazy\natime to the VFS at a later date, if there is a requirement for that\nvariant still - I suspect relatime will be enough.\n\nAlso we lose about 100 lines of code after this patch has been applied,\nand I have a suspicion that it will speed things up a bit, even when\natime is \"on\". So it seems like a nice clean up as well.\n\nFrom a user perspective, everything stays the same except the loss of\nthe per-fs atime quantum tweekable (ought to be per-vfsmnt at the very\nleast, and to be honest I don\u0027t think anybody ever used it) and that a\nnumber of options which were ignored before now work correctly.\n\nPlease let me know if you\u0027ve got any comments. I\u0027m pushing this out\nearly so that you can all see what my plans are.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "acb57a3652c614efed26080dad5972c0076166b1",
      "tree": "e459ed13f5a05eb6a2427015c60356e3afe85c55",
      "parents": [
        "bd1eb8818cc2c8ddab86be027ab43fb852942704"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Sep 11 15:35:37 2008 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 15 10:31:54 2008 +0100"
      },
      "message": "GFS2: Direct IO write at end of file error\n\nThis patch fixes a problem whereby a direct_io write doesn\u0027t fall\nback to buffered write properly at end of file.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "01b7c7ae88a6376c508b35a22bb61e04cb1b37f0",
      "tree": "01276b4382270285375540682d1eddf2a167103d",
      "parents": [
        "80274737220f8c5ea75696dde4c5c7feba39456f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 02 09:14:54 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:37 2008 +0100"
      },
      "message": "[GFS2] Revise readpage locking\n\nThe previous attempt to fix the locking in readpage failed due\nto the use of a \"try lock\" which resulted in occasional high\ncpu usage during testing (due to repeated tries) and also it\ndid not resolve all the ordering problems wrt the transaction\nlock (although it did solve all the inode lock ordering problems).\n\nThis patch avoids the problem by unlocking the page and getting the\nlocks in the correct order. This means that we have to retest the\npage to ensure that it hasn\u0027t changed when we relock the page.\n\nThis now passes the tests which were previously failing.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6802e3400ff4549525930ee744030c36fce9cc73",
      "tree": "db889bf5337c1d3bb12ebbf571c3c1cad1040496",
      "parents": [
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed May 21 17:03:22 2008 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 27 09:39:22 2008 +0100"
      },
      "message": "[GFS2] Clean up the glock core\n\nThis patch implements a number of cleanups to the core of the\nGFS2 glock code. As a result a lot of code is removed. It looks\nlike a really big change, but actually a large part of this patch\nis either removing or moving existing code.\n\nThere are some new bits too though, such as the new run_queue()\nfunction which is considerably streamlined. Highlights of this\npatch include:\n\n o Fixes a cluster coherency bug during SH -\u003e EX lock conversions\n o Removes the \"glmutex\" code in favour of a single bit lock\n o Removes the -\u003ego_xmote_bh() for inodes since it was duplicating\n   -\u003ego_lock()\n o We now only use the -\u003elm_lock() function for both locks and\n   unlocks (i.e. unlock is a lock with target mode LM_ST_UNLOCKED)\n o The fast path is considerably shortly, giving performance gains\n   especially with lock_nolock\n o The glock_workqueue is now used for all the callbacks from the DLM\n   which allows us to simplify the lock_dlm module (see following patch)\n o The way is now open to make further changes such as eliminating the two\n   threads (gfs2_glockd and gfs2_scand) in favour of a more efficient\n   scheme.\n\nThis patch has undergone extensive testing with various test suites\nso it should be pretty stable by now.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "3c18ddd160d1fcd46d1131d9ad6c594dd8e9af99",
      "tree": "7307ba1ae4bdb99d1363eb59b1ebefcf5295c8ef",
      "parents": [
        "4d3d5b41a72b52555d43efbfc4ccde6ba6e5444f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Apr 28 02:12:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:18 2008 -0700"
      },
      "message": "mm: remove nopage\n\nNothing in the tree uses nopage any more.  Remove support for it in the\ncore mm code and documentation (and a few stray references to it in\ncomments).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d82661d96993ac4efc1d54259ea85ffcd9b8bec6",
      "tree": "0a42b5a3ff34839673e0007fca4335f18078803a",
      "parents": [
        "860b25d4a913a00331d333f8e207a088c7a1b84a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 10 15:34:50 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:36 2008 +0100"
      },
      "message": "[GFS2] Streamline quota lock/check for no-quota case\n\nThis patch streamlines the quota checking in the \"no quota\" case by\nmaking the check inline in the calling function, thus reducing the\nnumber of function calls. Eventually we might be able to remove the\nchecks from the gfs2_quota_lock() and gfs2_quota_check() functions, but\ncurrently we can\u0027t as there are a very few places in the code which need\nto call these functions directly still.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Abhijith Das \u003cadas@redhat.com\u003e\n"
    },
    {
      "commit": "20b95bf2c4c5c28e093aa42699e67829b6cd7fd0",
      "tree": "e611fb6ee336f37609a5881a0846ffdf80bf58dc",
      "parents": [
        "182fe5abd8ebbb3a00c1be91f44e4783e139918c"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Thu Mar 06 17:43:52 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:30 2008 +0100"
      },
      "message": "[GFS2] gfs2_adjust_quota has broken unstuffing code\n\nThis patch combines the 2 patches in bug 434736 to correct the lock\nordering in the unstuffing of the quota inode in gfs2_adjust_quota and\nadjusting the number of revokes in gfs2_write_jdata_pagevec\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "182fe5abd8ebbb3a00c1be91f44e4783e139918c",
      "tree": "7404993656166f2b7cb78e54e4275d44336ba27c",
      "parents": [
        "105284970ba7d0d0ff4b97e57728eac7adf6a42a"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Mon Mar 03 21:54:21 2008 +0300"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:28 2008 +0100"
      },
      "message": "[GFS2] possible null pointer dereference fixup\n\ngfs2_alloc_get may fail so we have to check it to prevent\nNULL pointer dereference.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gamil.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7afd88d9166a752b52517648bcbe923e05d393fc",
      "tree": "2fb945189e3cb1be7ad007088f8ec86e9f67ece6",
      "parents": [
        "60b779cfc1fa52034a996ee12a23b62d32e86000"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Feb 22 16:07:18 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:41:12 2008 +0100"
      },
      "message": "[GFS2] Fix a page lock / glock deadlock\n\nWe\u0027ve previously been using a \"try lock\" in readpage on the basis that\nit would prevent deadlocks due to the inverted lock ordering (our normal\nlock ordering is glock first and then page lock). Unfortunately tests\nhave shown that this isn\u0027t enough. If the glock has a demote request\nqueued such that run_queue() in the glock code tries to do a demote when\nits called under readpage then it will try and write out all the dirty\npages which requires locking them. This then deadlocks with the page\nlocked by readpage.\n\nThe solution is to always require two calls into readpage. The first\nunlocks the page, gets the glock and returns AOP_TRUNCATED_PAGE, the\nsecond does the actual readpage and unlocks the glock \u0026 page as\nrequired.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7eabb77e65c559d9c284da232b9ba5354898028a",
      "tree": "b5df9c7ca0317abde3b76e56dc8f6c0050d9558e",
      "parents": [
        "d0109bfa84d6603becac8c2e87b3716f557f2039"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jan 28 11:24:35 2008 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Mar 31 10:39:57 2008 +0100"
      },
      "message": "[GFS2] Misc fixups\n\nThis patch contains two small fixups that didn\u0027t fit elsewhere.\nThey are: (1) get rid of temp variable in find_metapath.\n(2) Remove vestigial \"ret\" variable from gfs2_writepage_common.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eebd2aa355692afaf9906f62118620f1a1c19dbb",
      "tree": "207eead3a736963c3e50942038c463f2f611ccce",
      "parents": [
        "b98348bdd08dc4ec11828aa98a78edde15c53cfa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user\n\nSimplify page cache zeroing of segments of pages through 3 functions\n\nzero_user_segments(page, start1, end1, start2, end2)\n\n        Zeros two segments of the page. It takes the position where to\n        start and end the zeroing which avoids length calculations and\n\tmakes code clearer.\n\nzero_user_segment(page, start, end)\n\n        Same for a single segment.\n\nzero_user(page, start, length)\n\n        Length variant for the case where we know the length.\n\nWe remove the zero_user_page macro. Issues:\n\n1. Its a macro. Inline functions are preferable.\n\n2. The KM_USER0 macro is only defined for HIGHMEM.\n\n   Having to treat this special case everywhere makes the\n   code needlessly complex. The parameter for zeroing is always\n   KM_USER0 except in one single case that we open code.\n\nAvoiding KM_USER0 makes a lot of code not having to be dealing\nwith the special casing for HIGHMEM anymore. Dealing with\nkmap is only necessary for HIGHMEM configurations. In those\nconfigurations we use KM_USER0 like we do for a series of other\nfunctions defined in highmem.h.\n\nSince KM_USER0 is depends on HIGHMEM the existing zero_user_page\nfunction could not be a macro. zero_user_* functions introduced\nhere can be be inline because that constant is not used when these\nfunctions are called.\n\nAlso extract the flushing of the caches to be outside of the kmap.\n\n[akpm@linux-foundation.org: fix nfs and ntfs build]\n[akpm@linux-foundation.org: fix ntfs build some more]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6dbd822487d0a9f14432cb4680415b80656b63a2",
      "tree": "f0391d598c27cd7c39c67cfa13799a784f4c389a",
      "parents": [
        "ac39aadd0440ae696e6dacaa8006ce1737b17008"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 10 15:18:55 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:18:25 2008 +0000"
      },
      "message": "[GFS2] Reduce inode size by moving i_alloc out of line\n\nIt is possible to reduce the size of GFS2 inodes by taking the i_alloc\nstructure out of the gfs2_inode. This patch allocates the i_alloc\nstructure whenever its needed, and frees it afterward. This decreases\nthe amount of low memory we use at the expense of requiring a memory\nallocation for each page or partial page that we write. A quick test\nwith postmark shows that the overhead is not measurable and I also note\nthat OCFS2 use the same approach.\n\nIn the future I\u0027d like to solve the problem by shrinking down the size\nof the members of the i_alloc structure, but for now, this reduces the\nimmediate problem of using too much low-memory on x86 and doesn\u0027t add\ntoo much overhead.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9656b2c14c6ee0806c90a6be41dec71117fc8f50",
      "tree": "3e093571e695bf780885f36caec9594392da31fc",
      "parents": [
        "0811a127cb83ad2e0355e5e3e30164d7ef0f2d65"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jan 08 08:14:30 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:17:31 2008 +0000"
      },
      "message": "[GFS2] Fix problems relating to execution of files on GFS2\n\nThis patch fixes a couple of problems which affected the execution of files\non GFS2. The first is that there was a corner case where inodes were not\nalways uptodate at the point at which permissions checks were being carried\nout, this was resulting in refusal of execute permission, but only on the\nfirst lookup, subsequent requests worked correctly. The second was a problem\nrelating to incorrect updating of file sizes which was introduced with the\nwrite_begin/end code for GFS2 a little while back.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Abhijith Das \u003cadas@redhat.com\u003e\n"
    },
    {
      "commit": "e5d9dc278c7f79c220e4506cc1ade2efa2ca73fd",
      "tree": "f984562ccb3b29f31fa1e63d4dfe1f01d8e74be7",
      "parents": [
        "65a6290998f3d38b5c5e84423ae9e08bdd957095"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jan 03 11:31:38 2008 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:16:41 2008 +0000"
      },
      "message": "[GFS2] Allow page migration for writeback and ordered pages\n\nTo improve performance on NUMA, we use the VM\u0027s standard page\nmigration for writeback and ordered pages. Probably we could\nalso do the same for journaled data, but that would need a\ncareful audit of the code, so will be the subject of a later\npatch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9e1ef2b6ee401d7c1e1eb38052857b4b206d172",
      "tree": "68dff93cf4058eb06b162d800f08ff7752cd1a55",
      "parents": [
        "2066b58b0a038d7aedd24133677efb8856cac3a1"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Dec 10 14:13:27 2007 -0600"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:08:25 2008 +0000"
      },
      "message": "[GFS2] Remove function gfs2_get_block\n\nThis patch is just a cleanup.  Function gfs2_get_block() just calls\nfunction gfs2_block_map reversing the last two parameters.  By\nreversing the parameters, gfs2_block_map() may be called directly\nand function gfs2_get_block may be eliminated altogether.\nSince this function is done for every block operation,\nthis streamlines the code and makes it a little bit more efficient.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "47e83b509127f5e83ae5d93afd5c7cb9241acc38",
      "tree": "8f4412df56f8d65c355e553e7437035d2386b963",
      "parents": [
        "c41d4f09f13671f98ba4b82fdc94420cdc09be08"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Oct 18 11:15:50 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:32 2008 +0000"
      },
      "message": "[GFS2] Use correct include file in ops_address.c\n\nSomething changed in the upstream kernel, and it needs this\none-liner to allow ops_address.c to build.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c41d4f09f13671f98ba4b82fdc94420cdc09be08",
      "tree": "d1a9701517d56673c869077520ea59be9d6dce64",
      "parents": [
        "b8e7cbb65bcc99630e123422c6829ce3c0fcdf14"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 14:05:41 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:30 2008 +0000"
      },
      "message": "[GFS2] Don\u0027t hold page lock when starting transaction\n\nThis is an addendum to the new AOPs work which moves the point\nat which we take the page lock so that we don\u0027t get it until\nthe last possible moment. This resolves a conflict between\nstarting transactions and the page lock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b8e7cbb65bcc99630e123422c6829ce3c0fcdf14",
      "tree": "a9f68259b90e9e65ea7f0369f448d580a8944f06",
      "parents": [
        "9ff8ec32e58875022447af619bec6e5aee7c77e4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 09:04:24 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:28 2008 +0000"
      },
      "message": "[GFS2] Add writepages for GFS2 jdata\n\nThis patch resolves a lock ordering issue where we had been getting\na transaction lock in the wrong order with respect to the page lock.\nBy using writepages rather than just writepage, it is then possible\nto start a transaction before locking the page, and thus matching the\nlocking order elsewhere in the code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9ff8ec32e58875022447af619bec6e5aee7c77e4",
      "tree": "0c626762f334d1cc066113b3e47a2fa02a72af0c",
      "parents": [
        "5561093e2cac9f7d2a77e39cc689b8d2b7f9b2bc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 28 13:49:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:25 2008 +0000"
      },
      "message": "[GFS2] Split gfs2_writepage into three cases\n\nThis patch splits gfs2_writepage into separate functions for each of\nthe three cases: writeback, ordered and journalled. As a result\nit becomes a lot easier to see what each one is doing. The common\ncode is moved into gfs2_writepage_common.\n\nThis fixes a performance bug where we were doing more work than\nstrictly required in the ordered write case.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5561093e2cac9f7d2a77e39cc689b8d2b7f9b2bc",
      "tree": "aac1fa3e47604f2d7bb1e4d9e97f41b8ffebe91e",
      "parents": [
        "bf36a713169432643d4fc7eeb4e0ace96d791d26"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 08:47:38 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:23 2008 +0000"
      },
      "message": "[GFS2] Introduce gfs2_set_aops()\n\nJust like ext3 we now have three sets of address space operations\nto cover the cases of writeback, ordered and journalled data\nwrites. This means that the individual operations can now become\nless complicated as we are able to remove some of the tests for\nfile data mode from the code.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bf36a713169432643d4fc7eeb4e0ace96d791d26",
      "tree": "2cb69c9716b9ee8c687ef807bb88d5e635db3462",
      "parents": [
        "e7e36f143565d14950055c893cfaf4400ad64d34"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 17 08:35:19 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:21 2008 +0000"
      },
      "message": "[GFS2] Add gfs2_is_writeback()\n\nThis adds a function \"gfs2_is_writeback()\" along the lines of the\nexisting \"gfs2_is_jdata()\" in order to clean up the code and make\nthe various tests for the inode mode more obvious. It also fixes\nthe PageChecked() logic where we were resetting the flag too early\nin the case of an error path.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f91a0d3e24e4b0198be5fae20d45a35c40d1efce",
      "tree": "cda8095f9befd25cbfaf5f63a4c8ca26870d45ca",
      "parents": [
        "3cc3f710ce0effe397b830826a1a081fa81f11c7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 16:29:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:16 2008 +0000"
      },
      "message": "[GFS2] Remove useless i_cache from inodes\n\nThe i_cache was designed to keep references to the indirect blocks\nused during block mapping so that they didn\u0027t have to be looked\nup continually. The idea failed because there are too many places\nwhere the i_cache needs to be freed, and this has in the past been\nthe cause of many bugs.\n\nIn addition there was no performance benefit being gained since the\ndisk blocks in question were cached anyway. So this patch removes\nit in order to simplify the code to prepare for other changes which\nwould otherwise have had to add further support for this feature.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3cc3f710ce0effe397b830826a1a081fa81f11c7",
      "tree": "53f69f1b8d1cbc2849c6bac08ce7786f3ecd7447",
      "parents": [
        "51ff87bdd9f21a5d3672517b75d25ab5842d94a8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 15:40:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:13 2008 +0000"
      },
      "message": "[GFS2] Use -\u003epage_mkwrite() for mmap()\n\nThis cleans up the mmap() code path for GFS2 by implementing the\npage_mkwrite function for GFS2. We are thus able to use the\ngeneric filemap_fault function for our -\u003efault() implementation.\n\nThis now means that shared writable mappings will be much more\nefficiently shared across the cluster if there is a reasonable\nproportion of read activity (the greater proportion, the better).\n\nAs a side effect, it also reduces the size of the code, removes\nspecial cases from readpage and readpages, and makes the code\npath easier to follow.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "51ff87bdd9f21a5d3672517b75d25ab5842d94a8",
      "tree": "7a8de5720b2a63e8d7d03a940a2b06196b2a3776",
      "parents": [
        "cc7e79b168a552152299bd8a8254dc099aacc993"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 15 14:42:35 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jan 25 08:07:11 2008 +0000"
      },
      "message": "[GFS2] Clean up internal read function\n\nAs requested by Christoph, this patch cleans up GFS2\u0027s internal\nread function so that it no longer uses the do_generic_mapping_read\nfunction. This function is obsolete and GFS2 is the last user of it.\n\nAs a side effect the internal read code gets smaller and easier\nto read and gfs2_readpage is split into two. One function has the locking\nand the other function has the rest of the logic.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "7765ec26ae1c01bb29bedf910e4efcced8cc81d2",
      "tree": "8ce0e877daf805e5e546f10b389cd1c686ec0365",
      "parents": [
        "d79689c7038ea07182e8d7340786f7fcf8c77780"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 16 01:25:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "gfs2: convert to new aops\n\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "891ba6d4a5f9e6302bb6542592d73feb4d0d3687",
      "tree": "a99d059aa2f1803111b063ce99beb809f384e44a",
      "parents": [
        "7a9f53b3c1875bef22ad4588e818bc046ef183da"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 20 15:26:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:31 2007 +0100"
      },
      "message": "[GFS2] Don\u0027t try to remove buffers that don\u0027t exist\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "de986e859a29097fb9211b052d86a9a2c868f6cd",
      "tree": "85c97fe22e0eafb3c7440c8ff21fe73d8c456960",
      "parents": [
        "16615be18cadf53ee6f8a4f0bdd647f0753421b1"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Tue Sep 18 09:19:13 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:26 2007 +0100"
      },
      "message": "[GFS2] Data corruption fix\n\n* GFS2 has been using i_cache array to store its indirect meta blocks.\nIts flush routine doesn\u0027t correctly clean up all the entries. The\nproblem would show while multiple nodes do simultaneous writes to the\nsame file. Upon glock exclusive lock transfer, if the file is a sparse\nfile with large file size where the indirect meta blocks span multiple\narray entries with \"zero\" entries in between. The flush routine\nprematurely stops the flushing that leaves old (stale) entries around.\nThis leads to several nasty issues, including data corruption.\n* Fix gfs2_get_block_noalloc checking to correctly return EIO upon\nunmapped buffer.\n\nSigned-off-by: Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "16615be18cadf53ee6f8a4f0bdd647f0753421b1",
      "tree": "670c75e931e6d606211f338ee5e8b1d603c96521",
      "parents": [
        "55c0c4ac0be144014651b19e77c9b77f367955de"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 17 10:59:52 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:24 2007 +0100"
      },
      "message": "[GFS2] Clean up journaled data writing\n\nThis patch cleans up the code for writing journaled data into the log.\nIt also removes the need to allocate a small \"tag\" structure for each\nblock written into the log. Instead we just keep count of the outstanding\nI/O so that we can be sure that its all been written at the correct time.\nAnother result of this patch is that a number of ll_rw_block() calls\nhave become submit_bh() calls, closing some races at the same time.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d7b616e252b125f12b007c392f7644053bb6f140",
      "tree": "0794272905a1876ef74144a993f7a76400893813",
      "parents": [
        "9b9107a5a8b190e6cf09bbdf893869c6a9c482cc"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Sep 02 10:48:13 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:03 2007 +0100"
      },
      "message": "[GFS2] Clean up ordered write code\n\nThe following patch removes the ordered write processing from\ndatabuf_lo_before_commit() and moves it to log.c. This has the effect of\ngreatly simplyfying databuf_lo_before_commit() and well as potentially\nmaking the ordered write code more efficient.\n\nAs a side effect of this, its now possible to remove ordered buffers\nfrom the ordered buffer list at any time, so we now make use of this in\ninvalidatepage and releasepage to ensure timely release of these\nbuffers.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb3b0e3df5420fdf2c6bbb4417525c6d2ef55bbb",
      "tree": "6eab0fa06b4dc9f9a8d62cedaa6879327966a20c",
      "parents": [
        "2d9a4bbf6d28673f4057682cc02d16bf288b4a35"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 16 16:03:57 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:29 2007 +0100"
      },
      "message": "[GFS2] Clean up invalidatepage/releasepage\n\nThis patch fixes some bugs relating to journaled data files by cleaning\nup the gfs2_invalidatepage() and gfs2_releasepage() functions. We now\nnever block during gfs2_releasepage(), instead we always either release\nor refuse to release depending on the status of the buffers.\n\nThis fixes Red Hat bugzillas #248969 and #252392.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "a867bb28c1cb49ae86d034d8bd8fe6dbcbb19566",
      "tree": "0ab8fbdfa681ebb47979cc5ae645f7b8855581d5",
      "parents": [
        "6eefaf61f664053c1dd6534a994cab3f8bb07263"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 17 10:29:02 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 14 10:33:44 2007 +0100"
      },
      "message": "[GFS2] Fix incorrect error path in prepare_write()\n\nThe error path in prepare_write() was incorrect in the (very rare) event\nthat the transaction fails to start. The following prevents a NULL\npointer dereference,\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "54cb8821de07f2ffcd28c380ce9b93d5784b40d7",
      "tree": "1de676534963d96af42863b20191bc9f80060dea",
      "parents": [
        "d00806b183152af6d24f46f0c33f14162ca1262a"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:46:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: merge populate and nopage into fault (fixes nonlinear)\n\nNonlinear mappings are (AFAIKS) simply a virtual memory concept that encodes\nthe virtual address -\u003e file offset differently from linear mappings.\n\n-\u003epopulate is a layering violation because the filesystem/pagecache code\nshould need to know anything about the virtual memory mapping.  The hitch here\nis that the -\u003enopage handler didn\u0027t pass down enough information (ie.  pgoff).\n But it is more logical to pass pgoff rather than have the -\u003enopage function\ncalculate it itself anyway (because that\u0027s a similar layering violation).\n\nHaving the populate handler install the pte itself is likewise a nasty thing\nto be doing.\n\nThis patch introduces a new fault handler that replaces -\u003enopage and\n-\u003epopulate and (later) -\u003enopfn.  Most of the old mechanism is still in place\nso there is a lot of duplication and nice cleanups that can be removed if\neveryone switches over.\n\nThe rationale for doing this in the first place is that nonlinear mappings are\nsubject to the pagefault vs invalidate/truncate race too, and it seemed stupid\nto duplicate the synchronisation logic rather than just consolidate the two.\n\nAfter this patch, MAP_NONBLOCK no longer sets up ptes for pages present in\npagecache.  Seems like a fringe functionality anyway.\n\nNOPAGE_REFAULT is removed.  This should be implemented with -\u003efault, and no\nusers have hit mainline yet.\n\n[akpm@linux-foundation.org: cleanup]\n[randy.dunlap@oracle.com: doc. fixes for readahead]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2840501ac822c5bf712f67b4b02640e16e145a29",
      "tree": "6fe4bed0d7d80d324c5d39f7528668adb123311b",
      "parents": [
        "c4201214cbf10636e2c1ab9131573f735b42c8d4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jun 18 16:31:42 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:45 2007 +0100"
      },
      "message": "[GFS2] Use zero_user_page() in stuffed_readpage()\n\nAs suggested by Robert P. J. Day \u003crpjday@mindspring.com\u003e\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Robert P. J. Day \u003crpjday@mindspring.com\u003e\n"
    },
    {
      "commit": "8fb68595d508fd30ec90939572484b263600376c",
      "tree": "218a457675c111e2224fb57998d38e45d5786bd1",
      "parents": [
        "fad59c1390045b5adb7c7249ec4e77e0f868aca5"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jun 12 11:24:36 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:40 2007 +0100"
      },
      "message": "[GFS2] Journaled file write/unstuff bug\n\nThis patch is for bugzilla bug 283162, which uncovered a number of\nbugs pertaining to writing to files that have the journaled bit on.\nThese bugs happen most often when writing to the meta_fs because\nthe files are always journaled.  So operations like gfs2_grow were\nparticularly vulnerable, although many of the problems could be\nrecreated with normal files after setting the journaled bit on.\nThe problems fixed are:\n\n-GFS2 wasn\u0027t ever writing unstuffed journaled data blocks to their\n in-place location on disk. Now it does.\n\n-If you unmounted too quickly after doing IO to a journaled file,\n GFS2 was crashing because you would discard a buffer whose bufdata\n was still on the active items list.  GFS2 now deals with this\n gracefully.\n\n-GFS2 was losing track of the bufdata for journaled data blocks,\n and it wasn\u0027t getting freed, causing an error when you tried to\n unmount the module.  GFS2 now frees all the bufdata structures.\n\n-There was a memory corruption occurring because GFS2 wrote\n twice as many log entries for journaled buffers.\n\n-It was occasionally trying to write journal headers in buffers\n that weren\u0027t currently mapped.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ddf4b426aababdae4cb96326d7aeb9d119f42c50",
      "tree": "26aceb619f34e7b58e50a0ad0dc4db4e69664edc",
      "parents": [
        "afb853fb4eec380b492a3c369f837359359c28e8"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Jun 01 14:21:38 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:08 2007 +0100"
      },
      "message": "[GFS2] fix jdata issues\n\nThis is a patch for the first three issues of RHBZ #238162\n\nThe first issue is that when you allocate a new page for a file, it will not\nstart off uptodate. This makes sense, since you haven\u0027t written anything to that\npart of the file yet.  Unfortunately, gfs2_pin() checks to make sure that the\nbuffers are uptodate.  The solution to this is to mark the buffers uptodate in\ngfs2_commit_write(), after they have been zeroed out and have the data written\ninto them.  I\u0027m pretty confident with this fix, although it\u0027s not completely\nobvious that there is no problem with marking the buffers uptodate here.\n\nThe second issue is simply that you can try to pin a data buffer that is already\non the incore log, and thus, already pinned. This patch checks to see if this\nbuffer is already on the log, and exits databuf_lo_add() if it is, just like\nbuf_lo_add() does.\n\nThe third issue is that gfs2_log_flush() doesn\u0027t do it\u0027s block accounting\ncorrectly.  Both metadata and journaled data are logged, but gfs2_log_flush()\nonly compares the number of metadata blocks with the number of blocks to commit\nto the ondisk journal.  This patch also counts the journaled data blocks.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dbb7cae2a36170cd17ffbe286ec0c91a998740ff",
      "tree": "1f4da65b07ac31648fe9b72f2742075486a86008",
      "parents": [
        "41d7db0ab437bc84f8a6e77cccc626ce937605ac"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 15 15:37:50 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:24 2007 +0100"
      },
      "message": "[GFS2] Clean up inode number handling\n\nThis patch cleans up the inode number handling code. The main difference\nis that instead of looking up the inodes using a struct gfs2_inum_host\nwe now use just the no_addr member of this structure. The tests relating\nto no_formal_ino can then be done by the calling code. This has\nadvantages in that we want to do different things in different code\npaths if the no_formal_ino doesn\u0027t match. In the NFS patch we want to\nreturn -ESTALE, but in the -\u003elookup() path, its a bug in the fs if the\nno_formal_ino doesn\u0027t match and thus we can withdraw in this case.\n\nIn order to later fix bz #201012, we need to be able to look up an inode\nwithout knowing no_formal_ino, as the only information that is known to\nus is the on-disk location of the inode in question.\n\nThis patch will also help us to fix bz #236099 at a later date by\ncleaning up a lot of the code in that area.\n\nThere are no user visible changes as a result of this patch and there\nare no changes to the on-disk format either.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd81a4bac67d44742ab0aa1848f4a78e9d7e1093",
      "tree": "0cc323d20ff2cc8faffc99ee5a998409cb4f165d",
      "parents": [
        "0507ecf50f22e433592f5ec3a36dc831aaec2e02"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon May 14 12:42:18 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:19 2007 +0100"
      },
      "message": "[GFS2] Addendum patch 2 for gfs2_grow\n\nThis addendum patch 2 corrects three things:\n\n1. It fixes a stupid mistake in the previous addendum that broke gfs2.\n   Ref: https://www.redhat.com/archives/cluster-devel/2007-May/msg00162.html\n2. It fixes a problem that Dave Teigland pointed out regarding the\n   external declarations in ops_address.h being in the wrong place.\n3. It recasts a couple more %llu printks to (unsigned long long)\n   as requested by Steve Whitehouse.\n\nI would have loved to put this all in one revised patch, but there was\na rush to get some patches for RHEL5.\tTherefore, the previous patches\nwere applied to the git tree \"as is\" and therefore, I\u0027m posting another\naddendum.  Sorry.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6c53267f05dc6689ff662efeec426d25d2c0ab84",
      "tree": "af0cfca8828ff5047a23efb31de8ccdaf46f7744",
      "parents": [
        "7ae8fa8451dfb3879ecbc04f2760a707dc65b988"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu May 10 16:54:38 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:14 2007 +0100"
      },
      "message": "[GFS2] Kernel changes to support new gfs2_grow command (part 2)\n\nTo avoid code redundancy, I separated out the operational \"guts\" into\na new function called read_rindex_entry.  Then I made two functions:\nthe closer-to-original gfs2_ri_update (without the special condition\nchecks) and gfs2_ri_update_special that\u0027s designed with that condition\nin mind.  (I don\u0027t like the name, but if you have a suggestion, I\u0027m\nall ears).\n\nOh, and there\u0027s an added benefit:  we don\u0027t need all the ugly gotos\nanymore.  ;)\n\nThis patch has been tested with gfs2_fsck_hellfire (which runs for\nthree and a half hours, btw).\n\nSigned-off-By: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7ae8fa8451dfb3879ecbc04f2760a707dc65b988",
      "tree": "568b3b6b8a1b39d0e4177d81d2e8262cbafa4fa4",
      "parents": [
        "3168b0780d06ace875696f8a648d04d6089654e5"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed May 09 09:37:57 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:22:12 2007 +0100"
      },
      "message": "[GFS2] kernel changes to support new gfs2_grow command\n\nThis is another revision of my gfs2 kernel patch that allows\ngfs2_grow to function properly.\n\nSteve Whitehouse expressed some concerns about the previous\npatch and I restructured it based on his comments.\nThe previous patch was doing the statfs_change at file close time,\nunder its own transaction.  The current patch does the statfs_change\ninside the gfs2_commit_write function, which keeps it under the\numbrella of the inode transaction.\n\nI can\u0027t call ri_update to re-read the rindex file during the\ntransaction because the transaction may have outstanding unwritten\nbuffers attached to the rgrps that would be otherwise blown away.\nSo instead, I created a new function, gfs2_ri_total, that will\nre-read the rindex file just to total the file system space\nfor the sake of the statfs_change.  The ri_update will happen\nlater, when gfs2 realizes the version number has changed, as it\nhappened before my patch.\n\nSince the statfs_change is happening at write_commit time and there\nmay be multiple writes to the rindex file for one grow operation.\nSo one consequence of this restructuring is that instead of getting\none kernel message to indicate the change, you may see several.\nFor example, before when you did a gfs2_grow, you\u0027d get a single\nmessage like:\n\nGFS2: File system extended by 247876 blocks (968MB)\n\nNow you get something like:\n\nGFS2: File system extended by 207896 blocks (812MB)\nGFS2: File system extended by 39980 blocks (156MB)\n\nThis version has also been successfully run against the hours-long\n\"gfs2_fsck_hellfire\" test that does several gfs2_grow and gfs2_fsck\nwhile interjecting file system damage.  It does this repeatedly\nunder a variety Resource Group conditions.\n\nSigned-off-By: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bf126aee6d54fe1e509846abf3b27aba84c6d7ce",
      "tree": "5d21f057b2d5ee00cab9ac25f5d0e160bf57d533",
      "parents": [
        "476c006be009d4121e401a9e9f49a3362a7a272f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Apr 20 09:18:30 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:11:46 2007 +0100"
      },
      "message": "[GFS2] Patch to fix mmap of stuffed files\n\nIf a stuffed file is mmaped and a page fault is generated at some offset\nabove the initial page, we need to create a zero page to hang the buffer\nheads off before we can unstuff the file. This is a fix for bz #236087\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1de913909263ba7f7054debeda1b79771a7233db",
      "tree": "050e17a500f4dbe0d4d56e1b25af8243d5fe6ab8",
      "parents": [
        "89adc934f3f96600e7f31447426c7e99d62c5460"
      ],
      "author": {
        "name": "Josef Whiter",
        "email": "jwhiter@redhat.com",
        "time": "Mon Mar 12 16:55:07 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue May 01 09:10:37 2007 +0100"
      },
      "message": "[GFS2] Fix bz 231380, unlock page before dequeing glocks in gfs2_commit_write\n\nIf we are writing a file, and in the middle of writing the file\nanother node attempts to get a shared lock on that file (by doing a du for\nexample) the process doing the writing will hang waiting on lock_page.  The\nreason for this is because when we have waiters on a exclusive glock, we will go\nthrough and flush out all dirty pages associated with that inode and release the\nlock.  The problem is that when we flush the dirty pages, we could hit a page\nthat we have locked durring the generic_file_buffered_write part of this\noperation.  This patch unlocks the page before we go to dequeue the lock and\nlocks it immediatly afterwards, since generic_file_buffered_write needs the page\nlocked when the commit_write is completed.  This patch resolves the problem,\nhowever if somebody sees a better way to do this please don\u0027t hesistate to yell.\n\nSigned-off-by: Josef Whiter \u003cjwhiter@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a13cbe375303585fec1425135ed54adb62be41fc",
      "tree": "47e048bf645f370622776e75a8dd388cea4e89b8",
      "parents": [
        "a7d2b2bdc9a0b55d5b08e15756c7e65c48c4bca5"
      ],
      "author": {
        "name": "Josef Whiter",
        "email": "jwhiter@redhat.com",
        "time": "Fri Feb 23 12:49:51 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Mar 07 13:58:02 2007 -0500"
      },
      "message": "[GFS2] fix hangup when multiple processes are trying to write to the same file\n\nThis fixes a problem I encountered while running bonnie++.  When you have one\nthread that opens a file and starts to write to it, and then another thread that\ntries to open and write to the same file, the second thread will loop forever\ntrying to grab the inode lock for that inode.  Basically we come in through\ngeneric_buffered_file_write, which calls gfs2_prepare_write, which then attempts\nto grab the glock.  Because we don\u0027t own the lock, gfs2_prepare_write gets\nGLR_TRYFAILED, which returns AOP_TRUNCATED_PAGE to generic_buffered_file_write.\nAt this point generic_buffered_file_write loops around again and immediately\nretries the prepare_write.  This means that the second process never gets off of\nthe processor in order to allow the process that holds the lock to finish its\nwork and let go of the lock.  This patch makes gfs2_glock_nq schedule() if it\ngets back a GLR_TRYFAILED, which resolves this problem.\n\nSigned-off-by: Josef Whiter \u003cjwhiter@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a2cf822274b3d58a16a65c8338e299e18b3dc3a4",
      "tree": "2f24e59d6e7543cddb421a62ec28f744f9dc082e",
      "parents": [
        "2d72e7101cc7fff5c1eb21bfcbba51c8002418d2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Feb 06 23:12:49 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 07 10:48:48 2007 -0500"
      },
      "message": "[GFS2] make gfs2_writepages() static\n\nOn Mon, Jan 29, 2007 at 08:45:28PM -0800, Andrew Morton wrote:\n\u003e...\n\u003e Changes since 2.6.20-rc6-mm2:\n\u003e...\n\u003e  git-gfs2-nmw.patch\n\u003e...\n\u003e  git trees\n\u003e...\n\nThis patch makes the needlessly global gfs2_writepages() static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2d72e7101cc7fff5c1eb21bfcbba51c8002418d2",
      "tree": "4f67388942d5716fb18732c04b8a8d74bdff0ff8",
      "parents": [
        "549ae0ac3d574a682e82b02e79259a65445a675b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 07 10:25:59 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Feb 07 10:25:59 2007 -0500"
      },
      "message": "[GFS2] Unlock page on prepare_write try lock failure\n\nWhen the try lock of the glock failed in prepare_write we were\nincorrectly exiting this function with the page still locked.\nThis was resulting in further I/O to this page hanging.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a8d638e30e768adc6956541f79f7bf05139ba475",
      "tree": "07cee3c3d06eee9ff138f17023c7dadcb338f467",
      "parents": [
        "222d396092acc11b4af03bede309aa066945e920"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jan 15 13:52:17 2007 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:37:01 2007 -0500"
      },
      "message": "[GFS2] Add writepages for \"data\u003dwriteback\" mounts\n\nIt occurred to me that although a gfs2 specific writepages for ordered\nwrites and journaled data would be tricky, by hooking writepages only\nfor \"data\u003dwriteback\" mounts we could take advantage of not needing\nbuffer heads (we don\u0027t use them on the read side, nor have we for some\ntime) and create much larger I/Os for the block layer.\n\nUsing blktrace both before and after, its possible to see that for large\nI/Os, most of the requests generated through writepages are now 1024\nsectors after this patch is applied as opposed to 8 sectors before.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e1d5b18ae92d0bbfe66dc2b4bab65006d32c5f7d",
      "tree": "d74ca0e101e6146ecf00b4c495bde40f45d7e43e",
      "parents": [
        "c7b3383437ff41781964d1bf7f40ff8d7dd5bc47"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Dec 15 16:49:51 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:36:12 2007 -0500"
      },
      "message": "[GFS2] Fail over to readpage for stuffed files\n\nThis is partially derrived from a patch written by Russell Cattelan.\nIt fixes a bug where there is a race between readpages and truncate\nby ignoring readpages for stuffed files. This is ok because a stuffed\nfile will never be more than one block (minus sizeof(struct gfs2_dinode))\nin size and block size is always less than page size, so we do not lose\nanything efficiency-wise by not doing readahead for stuffed files. They\nwill have already been \"read ahead\" by the action of reading the inode\nin, in the first place.\n\nThis is the remaining part of the fix for Red Hat bugzilla #218966\nwhich had not yet made it upstream.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Russell Cattelan \u003ccattelan@redhat.com\u003e\n"
    },
    {
      "commit": "c7b3383437ff41781964d1bf7f40ff8d7dd5bc47",
      "tree": "dbe0e6cb267bfe1dc5f52ee6c30529b55ac58a16",
      "parents": [
        "927255f0383342f5d49b82adb6689b9cba52a6f5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Dec 14 18:24:26 2006 +0000"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Feb 05 13:36:09 2007 -0500"
      },
      "message": "[GFS2] Fix DIO deadlock\n\nThis patch fixes Red Hat bugzilla #212627 in which a deadlock occurs\ndue to trying to take the i_mutex while holding a glock. The correct\nlocking order is defined as i_mutex -\u003e glock in all cases.\n\nI\u0027ve left dealing with allocating writes. I know that we need to do\nthat, but for now this should do the trick. We don\u0027t need to take the\ni_mutex on write, because the VFS has already taken it for us. On read\nwe don\u0027t need it since the glock is enough protection. The reason that\nI\u0027ve made some of the checks into a separate function is that we\u0027ll need\nto do the checks again in the allocating write case eventually, so this\nis partly in preparation for this. Likewise the return value test of !\u003d\n1 might look a bit odd and thats because we\u0027ll need a third return value\nin case of requiring an allocation.\n\nI\u0027ve made the change to deferred mode on the glock to ensure flushing\nread caches on other nodes. I notice that (using blktrace to look at\nwhats going on) we appear to do a better job of large I/Os than ext3\nafter this patch (in terms of not splitting up the I/Os).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Wendy Cheng \u003cwcheng@redhat.com\u003e\n"
    },
    {
      "commit": "ae619320b22f8e0b2bbe4a3a5ac2f9ccf08d7ec2",
      "tree": "f4ccd44ca867c71d36807c373b81219c025bf0da",
      "parents": [
        "28626e2078571c4b776a17eaa486bbd2b7dfe2cd"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 22 11:28:47 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:36:36 2006 -0500"
      },
      "message": "[GFS2] mark_inode_dirty after write to stuffed file\n\nWrites to stuffed files were not being marked dirty correctly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dcd2479959c79d44f5dd77e71672e70f1f8b1f06",
      "tree": "a41926c69b0ea6aac9bc9970b59bcd04f5867866",
      "parents": [
        "175011cf6edddea32e5f5e0e04434104cc348de9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 16 11:08:16 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:35:57 2006 -0500"
      },
      "message": "[GFS2] Remove unused function from inode.c\n\nThe gfs2_glock_nq_m_atime function is unused in so far as its only\never called with num_gh \u003d 1, and this falls through to the\ngfs2_glock_nq_atime function, so we might as well call that directly.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "61057c6bb3a3d14cf2bea6ca20dc6d367e1d852e",
      "tree": "731f4c13ae3dee3f90b78a3ec381c29064b9f548",
      "parents": [
        "7020933156ac2a8a7386314933e49948bf0438f7"
      ],
      "author": {
        "name": "Russell Cattelan",
        "email": "cattelan@redhat.com",
        "time": "Thu Nov 09 11:42:33 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:57 2006 -0500"
      },
      "message": "[GFS2] Remove unused zero_readpage from stuffed_readpage\n\nStuffed files only consist of a maximum of\n(gfs2 block size - sizeof(struct gfs2_dinode)) bytes. Since the\ngfs2 block size is always less than page size, we will never see\na call to stuffed_readpage for anything other than the first page\nin the file.\n\nSigned-off-by: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2ca99501fa5422e84f18333918a503433449e2b5",
      "tree": "46bdb25c3be5bdc4e4c80b30a99dd3811f2ee1c0",
      "parents": [
        "c594d8866460a2710c436839d79f334a0714a2a7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 08 10:26:54 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:43 2006 -0500"
      },
      "message": "[GFS2] Fix page lock/glock deadlock\n\nThis fixes a race between the glock and the page lock encountered\nduring truncate in gfs2_readpage and gfs2_prepare_write. The gfs2_readpages\nfunction doesn\u0027t need the same fix since it only uses a try lock anyway, so\nit will fail back to gfs2_readpage in the case of a potential deadlock.\n\nThis bug was spotted by Russell Cattelan.\n\nCc: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1a7b1eed5802502fd649e04784becd58557fdcf1",
      "tree": "31e9e9ab8ba1296751985d49d55154848ae2eefa",
      "parents": [
        "4f56110a00af5fb2e22fbccfcaf944d62cae8fcf"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 14:35:17 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:23 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (6) - di_atime/di_mtime/di_ctime\n\nRemove the di_[amc]time fields and use inode-\u003ei_[amc]time\nfields instead. This saves 24 bytes from the gfs2_inode.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2933f9254a6af33db25270778c998a42029da668",
      "tree": "75dc8b32c901995352b0538607f2636cd2834a1d",
      "parents": [
        "b60623c238b6a819bd04090139704e2cb57a751f"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 13:23:29 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:17 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (4) - di_uid/di_gid\n\nRemove duplicate di_uid/di_gid fields in favour of using\ninode-\u003ei_uid/inode-\u003ei_gid instead. This saves 8 bytes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b60623c238b6a819bd04090139704e2cb57a751f",
      "tree": "fcecc0599003db66d937138be94bef4b4372f15b",
      "parents": [
        "e7f14f4d094ea1a9ce1953375f5bc1500c760c79"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Nov 01 12:22:46 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Nov 30 10:34:14 2006 -0500"
      },
      "message": "[GFS2] Shrink gfs2_inode (3) - di_mode\n\nThis removes the duplicate di_mode field in favour of using the\ninode-\u003ei_mode field. This saves 4 bytes.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7011774db8afca43be466f0f0428434a9edf053e",
      "tree": "66da3723ac709281aa1c0f2affd93f14f79379e2",
      "parents": [
        "2e990021bfc65b1a3778479a9e6b4811f9c1ff0e"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 02 22:07:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 03 12:27:57 2006 -0800"
      },
      "message": "[PATCH] gfs2: -\u003ereadpages() fixes\n\nThis just ignore the remaining pages, and remove unneeded unlock_pages().\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "23591256d61354e20f12e98d7a496ad5c23de74c",
      "tree": "3013a6e873a6e0a1d55fbace2fba638a978108c0",
      "parents": [
        "42fb00838a644d03f9a2a5fbbe0b668a5ff5df4d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 13 17:25:45 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Oct 20 09:13:40 2006 -0400"
      },
      "message": "[GFS2] Fix bmap to map extents properly\n\nThis fix means that bmap will map extents of the length requested\nby the VFS rather than guessing at it, or just mapping one block\nat a time. The other callers of gfs2_block_map are audited to ensure\nthey send the correct max extent lengths (i.e. set bh-\u003eb_size correctly).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c312c4fdc88514dd9522b7858eb879e610aeb9b1",
      "tree": "ab63777ca2eaafc9b46ce347bef1488c38794296",
      "parents": [
        "fe1a698ffef5af546dd4a8cd6a1f2f202491c4ef"
      ],
      "author": {
        "name": "Russell Cattelan",
        "email": "cattelan@redhat.com",
        "time": "Thu Oct 12 09:23:41 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Oct 12 17:11:13 2006 -0400"
      },
      "message": "[GFS2] Pass the correct value to kunmap_atomic\n\nPass kaddr rather than (incorrect) struct page to kunmap_atomic.\n\nSigned-off-by: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f5c54804d9e3bb23d8924af09d9ca1c8de9560b6",
      "tree": "34b1b098b93d41a796e3e528445fa3d87030808e",
      "parents": [
        "52ae7b7935a079aaba25da98fe90772d04109f26"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Oct 10 13:45:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Oct 12 17:10:15 2006 -0400"
      },
      "message": "[GFS2] Fix uninitialised variable\n\nThis fixes a bug where, in certain cases an uninitialised variable\ncould cause a dereference of a NULL pointer in gfs2_commit_write().\nAlso a typo in a comment is fixed at the same time.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "52ae7b7935a079aaba25da98fe90772d04109f26",
      "tree": "f03dbb3037136fe72fb05d886eb5a2b48c0548c1",
      "parents": [
        "c25d5180441e344a3368d100c57f0a481c6944f7"
      ],
      "author": {
        "name": "Russell Cattelan",
        "email": "cattelan@redhat.com",
        "time": "Mon Oct 09 12:11:54 2006 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Oct 12 17:09:54 2006 -0400"
      },
      "message": "[GFS2] Fix a size calculation error\n\nFix a size calculation error.\nThe size was incorrect being computed as a\nnegative length and then being passed to an\nunsigned parameter.\n\nThis in turn would cause the allocator to\nthink it needed enough meta data to store\na gigabyte file for every file created.\n\nSigned-off-by: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "48516ced21e83a755ebae3d1ed03f1731befc391",
      "tree": "9cf3c78506056d36909ce8da5560162d4c0fbc17",
      "parents": [
        "3cf1e7bed4681bdb1c14b6e146ae9c0afb6c1552"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 12:39:19 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 02 12:39:19 2006 -0400"
      },
      "message": "[GFS2] Remove uneeded endian conversion\n\nIn many places GFS2 was calling the endian conversion routines\nfor an inode even when only a single field, or a few fields might\nhave changed. As a result we were copying lots of data needlessly.\n\nThis patch replaces those calls with conversion of just the\nrequired fields in each case. This should be faster and easier\nto understand. There are still other places which suffer from this\nproblem, but this is a start in the right direction.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "907b9bceb41fa46beae93f79cc4a2247df502c0f",
      "tree": "7229e00c1f33fdd097fcacacd6208f2390e4728a",
      "parents": [
        "7276b3b0c77101f8b3f4e45e89a29cf9045e831a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 25 09:26:04 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 25 09:26:04 2006 -0400"
      },
      "message": "[GFS2/DLM] Fix trailing whitespace\n\nAs per Andrew Morton\u0027s request, removed trailing whitespace.\n\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7276b3b0c77101f8b3f4e45e89a29cf9045e831a",
      "tree": "3dd0a981218e490ddf47f925ba20c254e491ce98",
      "parents": [
        "91fa47964165a42401fbc1f41caa63ab78564305"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 21 17:05:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Sep 21 17:05:23 2006 -0400"
      },
      "message": "[GFS2] Tidy up meta_io code\n\nFix a bug in the directory reading code, where we might have dereferenced\na NULL pointer in case of OOM. Updated the directory code to use the new\n\u0026 improved version of gfs2_meta_ra() which now returns the first block\nthat was being read. Previously it was releasing it requiring following\ncode to grab the block again at each point it was called.\n\nAlso turned off readahead on directory lookups since we are reading a\nhash table, and therefore reading the entries in order is very\nunlikely. Readahead is still used for all other calls to the\ndirectory reading function (e.g. when growing the hash table).\n\nRemoved the DIO_START constant. Everywhere this was used, it was\nused to unconditionally start i/o aside from a couple of places, so\nI\u0027ve removed it and made the couple of exceptions to this rule into\nseparate functions.\n\nAlso hunted through the other DIO flags and removed them as arguments\nfrom functions which were always called with the same combination of\narguments.\n\nUpdated gfs2_meta_indirect_buffer to be a bit more efficient and\nhopefully also be a bit easier to read.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "56965536b8056f57830219efbba4b85218d96d6c",
      "tree": "7fe7553bb716bdb00c411f013cb0eed8a6b72ef6",
      "parents": [
        "f0e522a901f209d55992a20f4e30123b43af37dd"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 20 15:48:09 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 20 15:48:09 2006 -0400"
      },
      "message": "[GFS2] Remove unused constants\n\nThree of the DIO constants were not being used, so remove them.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7d308590ae60d1f038a54a94e78a385c5c163452",
      "tree": "f672724840a07022ff6deb8022082af35dbad44c",
      "parents": [
        "f3b30912e0eab0e4160c7649a5f2b10be68027b9"
      ],
      "author": {
        "name": "Fabio Massimo Di Nitto",
        "email": "fabbione@ubuntu.com",
        "time": "Tue Sep 19 07:56:29 2006 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Sep 19 08:45:18 2006 -0400"
      },
      "message": "[GFS2] Export lm_interface to kernel headers\n\n\nlm_interface.h has a few out of the tree clients such as GFS1\nand userland tools.\n\nRight now, these clients keeps a copy of the file in their build tree\nthat can go out of sync.\n\nMove lm_interface.h to include/linux, export it to userland and\nclean up fs/gfs2 to use the new location.\n\nSigned-off-by: Fabio M. Di Nitto \u003cfabbione@ubuntu.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n"
    },
    {
      "commit": "07903c02d056452da369595f00eac078bf4c7ef0",
      "tree": "240394ea3ef928657afeedda1383b73bb25afbdc",
      "parents": [
        "dc41aeedef6b776583064be8abe6813159b4901d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:30:05 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:30:05 2006 -0400"
      },
      "message": "[GFS2] Tweek unlock test in readpage()\n\nThis make the unlock test a bit simpler.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dc41aeedef6b776583064be8abe6813159b4901d",
      "tree": "59a80e3c6ef693f24359b46a1e254854938b2e71",
      "parents": [
        "7a6bbacbb8dec6fbd1242c959250388f907d429e"
      ],
      "author": {
        "name": "Russell Cattelan",
        "email": "cattelan@redhat.com",
        "time": "Mon Sep 18 17:26:48 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:26:48 2006 -0400"
      },
      "message": "[GFS2] Fix for mmap() bug in readpage\n\nFix for Red Hat bz 205307. Don\u0027t need to lock in readpage if\nthe higher level code has already grabbed the lock.\n\nSigned-off-by: Russell Cattelan \u003ccattelan@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7a6bbacbb8dec6fbd1242c959250388f907d429e",
      "tree": "8e314f0b3fd6e54154562c0a9b20173d539470a2",
      "parents": [
        "65952fb4e91c159d253bd28ceaf028a86dbb0b02"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:18:23 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 18 17:18:23 2006 -0400"
      },
      "message": "[GFS2] Map multiple blocks at once where possible\n\nThis is a tidy up of the GFS2 bmap code. The main change is that the\nbh is passed to gfs2_block_map allowing the flags to be set directly\nrather than having to repeat that code several times in ops_address.c.\n\nAt the same time, the extent mapping code from gfs2_extent_map has\nbeen moved into gfs2_block_map. This allows all calls to gfs2_block_map\nto map extents in the case that no allocation is taking place. As a\nresult reads and non-allocating writes should be faster. A quick test\nwith postmark appears to support this.\n\nThere is a limit on the number of blocks mapped in a single bmap\ncall in that it will only ever map blocks which are pointed to\nfrom a single pointer block. So in other words, it will never try\nto do additional i/o in order to satisfy read-ahead. The maximum\nnumber of blocks is thus somewhat less than 512 (the GFS2 4k block\nsize minus the header divided by sizeof(u64)). I\u0027ve further limited\nthe mapping of \"normal\" blocks to 32 blocks (to avoid extra work)\nsince readpages() will currently read a maximum of 32 blocks ahead (128k).\n\nSome further work will probably be needed to set a suitable value\nfor DIO as well, but for now thats left at the maximum 512 (see\nops_address.c:gfs2_get_block_direct).\n\nThere is probably a lot more that can be done to improve bmap for GFS2,\nbut this is a good first step.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0bd5996a00346fee772cbdebc5666fd4e514089b",
      "tree": "1ddcbd49888cb4eec7aa3f96693193c0fd1979a5",
      "parents": [
        "dd538c832aaf8e35c46c98a825fa9dacee3cf226"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 14:59:35 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 14:59:35 2006 -0400"
      },
      "message": "[GFS2] Style changes in ops_address.c\n\nAs per the remainder of Jan Engelhardt\u0027s fourth email comments,\nremove an cast thats not required. Also tidy up the \"limit\" code\nin stuck_releasepage().\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "dd538c832aaf8e35c46c98a825fa9dacee3cf226",
      "tree": "5b52ba595c0cfd7f802ff7b9d8bca080cbe1526c",
      "parents": [
        "38c60ef228596c8e331437ea9287ce035706b107"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 14:53:30 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 14:53:30 2006 -0400"
      },
      "message": "[GFS2] Spelling sentinal -\u003e sentinel\n\nA spelling mistake (one of mine).\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cd915493fce912f1bd838ee1250737ecf33b8fae",
      "tree": "e14ec6643de91f473edb26a89905e710596fe6bc",
      "parents": [
        "a91ea69ffd3f8a0b7139bfd44042ab384461e631"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 04 12:49:07 2006 -0400"
      },
      "message": "[GFS2] Change all types to uX style\n\nThis makes all fixed size types have consistent names.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9fc2aa091ab8fa46e60d4c9d06a89305c441652",
      "tree": "8cdf5fcc4adba8cd53c51f824b5d8107ce0f4bba",
      "parents": [
        "c6e6f0ba8fc1dea99c7bd020916f24d533b62697"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Sep 01 11:05:15 2006 -0400"
      },
      "message": "[GFS2] Update copyright, tidy up incore.h\n\nAs per comments from Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e this\nupdates the copyright message to say \"version\" in full rather than\n\"v.2\". Also incore.h has been updated to remove forward structure\ndeclarations which are not required.\n\nThe gfs2_quota_lvb structure has now had endianess annotations added\nto it. Also quota.c has been updated so that we now store the\nlvb data locally in endian independant format to avoid needing\na structure in host endianess too. As a result the endianess\nconversions are done as required at various points and thus the\nconversion routines in lvb.[ch] are no longer required. I\u0027ve\nmoved the one remaining constant in lvb.h thats used into lm.h\nand removed the unused lvb.[ch].\n\nI have not changed the HIF_ constants. That is left to a later patch\nwhich I hope will unify the gh_flags and gh_iflags fields of the\nstruct gfs2_holder.\n\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "623d93555c8884768db65ffc11509c93e50dd4db",
      "tree": "08be5484217e9c7851b129d2794b4afe8e44760c",
      "parents": [
        "899be4d3b7e00bf364d84c1c8cfe8bbbd1e3507b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 31 12:14:44 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 31 12:14:44 2006 -0400"
      },
      "message": "[GFS2] Fix releasepage bug (fixes direct i/o writes)\n\nThis patch fixes three main bugs. Firstly the direct i/o get_block\nwas returning the wrong return code in certain cases. Secondly, the\nGFS2\u0027s releasepage function was not dealing with cases when clean,\nordered buffers were found still queued on a transaction (which can\nhappen depending on the ordering of journal flushes). Thirdly, the\njournaling code itself needed altering to take account of the\nafter effects of removing the clean ordered buffers from the transactions\nbefore a journal flush.\n\nThe releasepage bug did also show up under \"normal\" buffered i/o\nas well, so its not just a fix for direct i/o. In fact its not\nnormally used in the direct i/o path at all, except when flushing\nexisting buffers after performing a direct i/o write, but that was\nthe code path that led us to spot this.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "166afccd71fbb7bd758ab9fc770eef4924081077",
      "tree": "05ba592267ca899e0f5b9313fc7a8d1415bc5f63",
      "parents": [
        "233e515f4062f99569c24f00ad7429a860b23db4"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 24 15:59:40 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 24 15:59:40 2006 -0400"
      },
      "message": "[GFS2] Tidy up error handling in gfs2_releasepage()\n\nThis should clarify the logic in gfs2_releasepage() relating to\nerror handling as well as making the response to errors a bit\nmore graceful.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "15d00c0b91ca776b51b5ab04f79ab35b06670d30",
      "tree": "a970b4f59086ecbf7d20ec9b2201cf26b8446019",
      "parents": [
        "fcc8abc8d4fcdbddc383091449f3696b411aa8fb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 18 15:51:09 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 18 15:51:09 2006 -0400"
      },
      "message": "[GFS2] Fix leak of gfs2_bufdata\n\nThis fixes a memory leak of struct gfs2_bufdata and also some\nproblems in the ordered write handling code. It needs a bit\nmore testing, but I believe that the reference counting of\nordered write buffers should now be correct.\n\nThis is aimed at fixing Red Hat bugzilla: #201028 and #201082\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f4387149ec71fed11535b49400bad17d22fdc935",
      "tree": "749c7fa407a835a731d4fbb33c54ff71cf46e799",
      "parents": [
        "cc346d555f2c3eb4a63b2df6bf9c9947f0a92a01"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 08 13:23:19 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 08 13:23:19 2006 -0400"
      },
      "message": "[GFS2] Fix lack of buffers in writepage bug\n\nIn some cases we can enter write page without there being buffers\nattached to the page. In this case the function to add gfs2_bufdata\nto the buffers fails sliently causing further failures down the\nstack.\n\nThis fix ensures that we always add buffers in writepage if they\ndidn\u0027t already exist (mmap is one way to trigger this).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "59a1cc6bdabf5ed148b48808ad1a418d87f5e6bf",
      "tree": "6463071a09201040267702e895d63359e62c393d",
      "parents": [
        "899bb264507cfed83922bf14cd66a073494601ba"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 04 15:41:22 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Aug 04 15:41:22 2006 -0400"
      },
      "message": "[GFS2] Fix lock ordering bug in page fault path\n\nMmapped files were able to trigger a lock ordering bug. Private\nmaps do not need to take the glock so early on. Shared maps do\nunfortunately, however we can get around that by adding a flag\ninto the flags for the struct gfs2_file. This only works because\nwe are taking an exclusive lock at this point, so we know that\nnobody else can be racing with us.\n\nFixes Red Hat bugzilla: #201196\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ba7f72901cfd437d6de087bf44d2b64357cb38a5",
      "tree": "8661e91d3f4866b0dbcf5f1887bc86ca6564a0d1",
      "parents": [
        "f25ef0c1b4e032b2641857ac4cff3315c6eb90e3"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 26 11:27:10 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 26 11:27:10 2006 -0400"
      },
      "message": "[GFS2] Remove page.[ch]\n\nThe remaining routines in page.c were all only used in one other\nfile, so they are now moved into the files where they are referenced\nand made static. Thus page.[ch] are no longer required.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "f25ef0c1b4e032b2641857ac4cff3315c6eb90e3",
      "tree": "bb07e8ed49264213cfb5d1694f19f3ece8cad1f0",
      "parents": [
        "81456807a33c2122e2f1f92acfbaaa77b3d06c3c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 26 10:51:20 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 26 10:51:20 2006 -0400"
      },
      "message": "[GFS2] Tidy gfs2_unstuffer_page\n\nTidy up gfs2_unstuffer_page by:\n\n a) Moving it into bmap.c\n b) Making it static\n c) Calling it directly from gfs2_unstuff_dinode\n d) Updating all callers of gfs2_unstuff_dinode due to one less\n    required argument.\n\nIt doesn\u0027t change the behaviour at all.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a9e5f4d0780ec9cda7a70b08294d7718431b62a1",
      "tree": "f21fa310b6ea63f49cf6d710fcd84fe8d66282f3",
      "parents": [
        "52f341cf75d2da84811127582616984eb0602360"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 25 17:24:12 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 25 17:24:12 2006 -0400"
      },
      "message": "[GFS2] Alter direct I/O path\n\nAs per comments received, alter the GFS2 direct I/O path so that\nit uses the standard read functions \"out of the box\". Needs a\nsmall change to one of the VFS functions. This reduces the size\nof the code quite a lot and also removes the need for one new export.\n\nSome more work remains to be done, but this is the bones of the\nthing.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4340fe62531f7d1dafb6f5359ffe0378bdb0db80",
      "tree": "95ee3f2ace3b07e2fa89a9a01ccd5ac40a556eee",
      "parents": [
        "ffeb874b2b893aea7d10b0b088e06a7b1ded2a3e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 11 09:46:33 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 11 09:46:33 2006 -0400"
      },
      "message": "[GFS2] Add generation number\n\nThis adds a generation number for the eventual use of NFS to the\nondisk inode. Its backward compatible with the current code since\nit doesn\u0027t really matter what the generation number is to start with,\nand indeed since its set to zero, due to it being taken from padding\nin both the inode and rgrp header, it should be fine.\n\nThe eventual plan is to use this rather than no_formal_ino in the\nNFS filehandles. At that point no_formal_ino will be unused.\n\nAt the same time we also add a releasepages call back to the\n\"normal\" address space for gfs2 inodes. Also I\u0027ve removed a\none-linrer function thats not required any more.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ffeb874b2b893aea7d10b0b088e06a7b1ded2a3e",
      "tree": "e670758c0ed4347fde74411603cf252978c966f6",
      "parents": [
        "dc3e130a08996e2b56381365a5ac7bb1ce2a9f47"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 10 15:47:01 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 10 15:47:01 2006 -0400"
      },
      "message": "[GFS2] Bug fix to gfs2_readpages()\n\nThis fixes a bug where we were releasing a page incorrectly\nsometimes when reading a stuffed file. This fixes the bug\nthat Kevin reported when using Xen.\n\nCc: Kevin Anderson \u003ckanderso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "faac9bd0e3ce7cb0572ec66e0a426cacf6afa970",
      "tree": "0300e043a01d1fd48e9157749da3bd10422c0e53",
      "parents": [
        "b0dd9308b703310e9a988df70f6ed3e87cb55655"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 05 08:24:34 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 05 08:24:34 2006 -0400"
      },
      "message": "[GFS2] Fix locking for Direct I/O reads\n\nWe need to hold i_mutex when doing direct i/o reads.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "66de045d9fe6147b065c47236d3b9d8d8a6cbd57",
      "tree": "3b9878eef16ddb60bf3daf9f17c1fa5b6bed105a",
      "parents": [
        "0c0834a30cceeaf2748705d2b31f0d058693b716"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 03 13:37:30 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 03 13:37:30 2006 -0400"
      },
      "message": "[GFS2] Make our address_space_operations const\n\nAs per Christoph\u0027s patch:\nhttp://www.kernel.org/git/?p\u003dlinux/kernel/git/steve/gfs2-2.6.git;a\u003dcommitdiff;h\u003df5e54d6e53a20cef45af7499e86164f0e0d16bb2\n\nWe mark struct address_space_operations const in GFS2.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "feaa7bba026c181ce071d5a4884f7f9dd26207a1",
      "tree": "c858deb225917265cb07820730e9764674d133e8",
      "parents": [
        "22da645fd6675b7abc55cf937ddf6132f343e5b9"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jun 14 15:32:57 2006 -0400"
      },
      "message": "[GFS2] Fix unlinked file handling\n\nThis patch fixes the way we have been dealing with unlinked,\nbut still open files. It removes all limits (other than memory\nfor inodes, as per every other filesystem) on numbers of these\nwhich we can support on GFS2. It also means that (like other\nfs) its the responsibility of the last process to close the file\nto deallocate the storage, rather than the person who did the\nunlinking. Note that with GFS2, those two events might take place\non different nodes.\n\nAlso there are a number of other changes:\n\n o We use the Linux inode subsystem as it was intended to be\nused, wrt allocating GFS2 inodes\n o The Linux inode cache is now the point which we use for\nlocal enforcement of only holding one copy of the inode in\ncore at once (previous to this we used the glock layer).\n o We no longer use the unlinked \"special\" file. We just ignore it\ncompletely. This makes unlinking more efficient.\n o We now use the 4th block allocation state. The previously unused\nstate is used to track unlinked but still open inodes.\n o gfs2_inoded is no longer needed\n o Several fields are now no longer needed (and removed) from the in\ncore struct gfs2_inode\n o Several fields are no longer needed (and removed) from the in core\nsuperblock\n\nThere are a number of future possible optimisations and clean ups\nwhich have been made possible by this patch.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ],
  "next": "3a8a9a1034813aa99f5ae3150f652d490c5ff10d"
}
