)]}'
{
  "log": [
    {
      "commit": "541010e4b8921cd781ff02ae68028501457045b6",
      "tree": "58bd529d4c6e69899a0aa20afa2d7f1c23326417",
      "parents": [
        "e457f790d8b05977853aa238bbc667b3bb375671",
        "5e7fc436426b1f9e106f511a049de91c82ec2c53"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:07:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 15 16:07:40 2007 -0700"
      },
      "message": "Merge branch \u0027locks\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027locks\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: remove IS_ISMNDLCK macro\n  Rework /proc/locks via seq_files and seq_list helpers\n  fs/locks.c: use list_for_each_entry() instead of list_for_each()\n  NFS: clean up explicit check for mandatory locks\n  AFS: clean up explicit check for mandatory locks\n  9PFS: clean up explicit check for mandatory locks\n  GFS2: clean up explicit check for mandatory locks\n  Cleanup macros for distinguishing mandatory locks\n  Documentation: move locks.txt in filesystems/\n  locks: add warning about mandatory locking races\n  Documentation: move mandatory locking documentation to filesystems/\n  locks: Fix potential OOPS in generic_setlease()\n  Use list_first_entry in locks_wake_up_blocks\n  locks: fix flock_lock_file() comment\n  Memory shortage can result in inconsistent flocks state\n  locks: kill redundant local variable\n  locks: reverse order of posix_locks_conflict() arguments\n"
    },
    {
      "commit": "efefc6eb38d43b8e5daef482f575d767b002004e",
      "tree": "8a3933db1f8721f9bcc9912c800dc8406f4bdf94",
      "parents": [
        "117494a1b65183f0e3fcc817b07944bc5c465050",
        "cd59abfcc441b2abb4cf2cd62c1eb0f02a60e8dd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 12 15:49:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 12 15:49:37 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (75 commits)\n  PM: merge device power-management source files\n  sysfs: add copyrights\n  kobject: update the copyrights\n  kset: add some kerneldoc to help describe what these strange things are\n  Driver core: rename ktype_edd and ktype_efivar\n  Driver core: rename ktype_driver\n  Driver core: rename ktype_device\n  Driver core: rename ktype_class\n  driver core: remove subsystem_init()\n  sysfs: move sysfs file poll implementation to sysfs_open_dirent\n  sysfs: implement sysfs_open_dirent\n  sysfs: move sysfs_dirent-\u003es_children into sysfs_dirent-\u003es_dir\n  sysfs: make sysfs_root a regular directory dirent\n  sysfs: open code sysfs_attach_dentry()\n  sysfs: make s_elem an anonymous union\n  sysfs: make bin attr open get active reference of parent too\n  sysfs: kill unnecessary NULL pointer check in sysfs_release()\n  sysfs: kill unnecessary sysfs_get() in open paths\n  sysfs: reposition sysfs_dirent-\u003es_mode.\n  sysfs: kill sysfs_update_file()\n  ...\n"
    },
    {
      "commit": "34980ca8faebfcce31094eba6ffbb0113950361f",
      "tree": "1339b5a059fdc34e688d5571749577e8f3f96f09",
      "parents": [
        "7e7654a92a5a75a350cc3458389bc76273498f6a"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Sep 12 15:06:57 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:02 2007 -0700"
      },
      "message": "Drivers: clean up direct setting of the name of a kset\n\nA kset should not have its name set directly, so dynamically set the\nname at runtime.\n\nThis is needed to remove the static array in the kobject structure which\nwill be changed in a future patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "f26e51f67ae6a75ffc57b96cf5fe096f75e778cb",
      "tree": "1e848187885426430cc93bffaadc539312ce636d",
      "parents": [
        "1462222b76a09a24b240563a51d5f9fbea8bd3e1",
        "c36258b5925e6cf6bf72904635100593573bfcff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 12 09:14:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 12 09:14:51 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (51 commits)\n  [DLM] block dlm_recv in recovery transition\n  [DLM] don\u0027t overwrite castparam if it\u0027s NULL\n  [GFS2] Get superblock a different way\n  [GFS2] Don\u0027t try to remove buffers that don\u0027t exist\n  [GFS2] Alternate gfs2_iget to avoid looking up inodes being freed\n  [GFS2] Data corruption fix\n  [GFS2] Clean up journaled data writing\n  [GFS2] GFS2: chmod hung - fix race in thread creation\n  [DLM] Make dlm_sendd cond_resched more\n  [GFS2] Move inode deletion out of blocking_cb\n  [GFS2] flocks from same process trip kernel BUG at fs/gfs2/glock.c:1118!\n  [GFS2] Clean up gfs2_trans_add_revoke()\n  [GFS2] Use slab operations for all gfs2_bufdata allocations\n  [GFS2] Replace revoke structure with bufdata structure\n  [GFS2] Fix ordering of dirty/journal for ordered buffer unstuffing\n  [GFS2] Clean up ordered write code\n  [GFS2] Move pin/unpin into lops.c, clean up locking\n  [GFS2] Don\u0027t mark jdata dirty in gfs2_unstuffer_page()\n  [GFS2] Introduce gfs2_remove_from_ail\n  [GFS2] Correct lock ordering in unlink\n  ...\n"
    },
    {
      "commit": "782e3b3b3804c38d5130c7f21d7ec7bf6709023f",
      "tree": "54e790dfd52f0451189fa1591dc97bc5ff5f5866",
      "parents": [
        "cbd09dbbb62096c1da627eca865f988d2ed0a84e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 12 07:17:47 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 12 00:29:50 2007 -0700"
      },
      "message": "Fix up more bio fallout\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a60c532c9224babc172fafccc9e2fec6937af6f",
      "tree": "1acf07fea71d33fbce3ae0404b05a94087406984",
      "parents": [
        "891ba6d4a5f9e6302bb6542592d73feb4d0d3687"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Sep 26 09:39:31 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:34 2007 +0100"
      },
      "message": "[GFS2] Get superblock a different way\n\nThe mapping may be NULL by the time the I/O has completed, so\nwe now get the superblock by a different route (via the bd and glock)\nto avoid this problem.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Wendy Cheng \u003cwcheng@redhat.com\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": "7a9f53b3c1875bef22ad4588e818bc046ef183da",
      "tree": "0b23b5b8a667d0d57c695c47f6b4eb6d50c2d661",
      "parents": [
        "de986e859a29097fb9211b052d86a9a2c868f6cd"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Tue Sep 18 13:33:18 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:29 2007 +0100"
      },
      "message": "[GFS2] Alternate gfs2_iget to avoid looking up inodes being freed\n\nThere is a possible deadlock between two processes on the same node, where one\nprocess is deleting an inode, and another process is looking for allocated but\nunused inodes to delete in order to create more space.\n\nprocess A does an iput() on inode X, and it\u0027s i_count drops to 0. This causes\niput_final() to be called, which puts an inode into state I_FREEING at\ngeneric_delete_inode(). There no point between when iput_final() is called, and\nwhen I_FREEING is set where GFS2 could acquire any glocks. Once I_FREEING is\nset, no other process on that node can successfully look up that inode until\nthe delete finishes.\n\nprocess B locks the the resource group for the same inode in get_local_rgrp(),\nwhich is called by gfs2_inplace_reserve_i()\n\nprocess A tries to lock the resource group for the inode in\ngfs2_dinode_dealloc(), but it\u0027s already locked by process B\n\nprocess B waits in find_inode for the inode to have the I_FREEING state cleared.\n\nDeadlock.\n\nThis patch solves the problem by adding an alternative to gfs2_iget(),\ngfs2_iget_skip(), that simply skips any inodes that are in the I_FREEING\nstate.o The alternate test function is just like the original one, except that\nit fails if the inode is being freed, and sets a skipped flag. The alternate\nset function is just like the original, except that it fails if the skipped\nflag is set. Only try_rgrp_unlink() calls gfs2_iget_skip() instead of\ngfs2_iget().\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\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": "55c0c4ac0be144014651b19e77c9b77f367955de",
      "tree": "dbea7f24657f8e99f4ff94519cb4f24373930320",
      "parents": [
        "d66f8277f53407754f50ae6bada68f1b68d04d48"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Fri Sep 14 09:27:59 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:22 2007 +0100"
      },
      "message": "[GFS2] GFS2: chmod hung - fix race in thread creation\n\nThe problem boiled down to a race between the gdlm_init_threads()\nfunction initializing thread1 and its setting of blist \u003d 1.\nEssentially, \"if (current \u003d\u003d ls-\u003ethread1)\" was checked by the thread\nbefore the thread creator set ls-\u003ethread1.\n\nSince thread1 is the only thread who is allowed to work on the\nblocking queue, and since neither thread thought it was thread1, no one\nwas working on the queue.  So everything just sat.\n\nThis patch reuses the ls-\u003easync_lock spin_lock to fix the race,\nand it fixes the problem.  I\u0027ve done more than 2000 iterations of the\nloop that was recreating the failure and it seems to work.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n--\n"
    },
    {
      "commit": "49e61f2ef6f7d1d0296e3e30d366b28e0ca595c2",
      "tree": "7f2efb6c0dce87f3f16809e8cd1072137b12271c",
      "parents": [
        "b4c20166dcfca106f0f416bfce200099ed76ab18"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Sep 13 17:52:42 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:17 2007 +0100"
      },
      "message": "[GFS2] Move inode deletion out of blocking_cb\n\nMove inode deletion code out of blocking_cb handle_callback route to\navoid racy conditions that end up blocking lock_dlm1 thread. Fix\nbugzilla 286821.\n\nSigned-off-by: Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b4c20166dcfca106f0f416bfce200099ed76ab18",
      "tree": "474e8c3bda161953202793c0801ab00a5b5433de",
      "parents": [
        "1ad38c437fa33f85ba4b6a85ea8c5478ee72d5bd"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Thu Sep 13 23:35:27 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:14 2007 +0100"
      },
      "message": "[GFS2] flocks from same process trip kernel BUG at fs/gfs2/glock.c:1118!\n\nThis patch adds a new flag to the gfs2_holder structure GL_FLOCK.\nIt is set on holders of glocks representing flocks. This flag is\nchecked in add_to_queue() and a process is permitted to queue more\nthan one holder onto a glock if it is set. This solves the issue\nof a process not being able to do multiple flocks on the same file.\nThrough a single descriptor, a process can now promote and demote\nflocks. Through multiple descriptors a process can now queue\nmultiple flocks on the same file. There\u0027s still the problem of\na process deadlocking itself (because gfs2 blocking locks are not\ninterruptible) by queueing incompatible deadlock.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1ad38c437fa33f85ba4b6a85ea8c5478ee72d5bd",
      "tree": "11a5fc7993ba9ae343fc72f03f9a11f312fd6128",
      "parents": [
        "0820ab517e1b100ee3f9584ec27f93309689ebe7"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Sep 03 11:01:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:12 2007 +0100"
      },
      "message": "[GFS2] Clean up gfs2_trans_add_revoke()\n\nThe following alters gfs2_trans_add_revoke() to take a struct\ngfs2_bufdata as an argument. This eliminates the memory allocation which\nwas previously required by making use of the already existing struct\ngfs2_bufdata. It makes some sanity checks to ensure that the\ngfs2_bufdata has been removed from all the lists before its recycled as\na revoke structure. This saves one memory allocation and one free per\nrevoke structure.\n\nAlso as a result, and to simplify the locking, since there is no longer\nany blocking code in gfs2_trans_add_revoke() we must hold the log lock\nwhenever this function is called. This reduces the amount of times we\ntake and unlock the log lock.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0820ab517e1b100ee3f9584ec27f93309689ebe7",
      "tree": "db2baf9e6d2ac545c344a412fe31371a09bf9b68",
      "parents": [
        "82e86087bb774cd54d47db4a7c771b5b29bea9ed"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Sep 02 16:47:38 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:10 2007 +0100"
      },
      "message": "[GFS2] Use slab operations for all gfs2_bufdata allocations\n\nThe old revoke structure was allocated using kalloc/kfree but\nthere is a slab cache for gfs2_bufdata, so we should use that\nnow that the structures have been converted.\n\nThis is part two of the patch series to merge the revoke\nand gfs2_bufdata structures.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "82e86087bb774cd54d47db4a7c771b5b29bea9ed",
      "tree": "c067773861203becfa6c8cf9e4ee449787cf65f6",
      "parents": [
        "8475487befb29eeb038fef374a7433d276336a25"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Sep 02 15:39:43 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:07 2007 +0100"
      },
      "message": "[GFS2] Replace revoke structure with bufdata structure\n\nBoth the revoke structure and the bufdata structure are quite similar.\nThey are basically small tags which are put on lists. In addition to\nwhich the revoke structure is always allocated when there is a bufdata\nstructure which is (or can be) freed. As such it should be possible to\nreduce the number of frees and allocations by using the same structure\nfor both purposes.\n\nThis patch is the first step along that path. It replaces existing uses\nof the revoke structure with the bufdata structure.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8475487befb29eeb038fef374a7433d276336a25",
      "tree": "1fb635fc8880475ab2042f4030b2643b31a63654",
      "parents": [
        "d7b616e252b125f12b007c392f7644053bb6f140"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Sun Sep 02 10:55:29 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:05 2007 +0100"
      },
      "message": "[GFS2] Fix ordering of dirty/journal for ordered buffer unstuffing\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\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": "9b9107a5a8b190e6cf09bbdf893869c6a9c482cc",
      "tree": "77016dd5476f6ba72605ac0cdcbccec3ce794057",
      "parents": [
        "eaf965270ffff3086ef929e660ace45e862cfd2d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 27 13:54:05 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:56:00 2007 +0100"
      },
      "message": "[GFS2] Move pin/unpin into lops.c, clean up locking\n\ngfs2_pin and gfs2_unpin are only used in lops.c, despite being\ndefined in meta_io.c, so this patch moves them into lops.c and\nmakes them static. At the same time, its possible to clean up\nthe locking in the buf and databuf _lo_add() functions so that\nwe only need to grab the spinlock once. Also we have to move\nlock_buffer() around the _lo_add() functions since we can\u0027t\ndo that in gfs2_pin() any more since we hold the spinlock\nfor the duration of that function.\n\nAs a result, the code shrinks by 12 lines and we do far fewer\noperations when adding buffers to the log. It also makes the\ncode somewhat easier to read \u0026 understand.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eaf965270ffff3086ef929e660ace45e862cfd2d",
      "tree": "7fda326324431424573ba5d62170637aa8f41d59",
      "parents": [
        "1e1a3d03e927d39282208aed676e49d25129feea"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 27 09:49:37 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:58 2007 +0100"
      },
      "message": "[GFS2] Don\u0027t mark jdata dirty in gfs2_unstuffer_page()\n\nJournaled data is marked dirty by gfs2_unpin and should not be marked\ndirty here.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1e1a3d03e927d39282208aed676e49d25129feea",
      "tree": "731cca9b4df1a6164c809f002290a3d7fd6af1f4",
      "parents": [
        "8497a46e178addb27ad1c981befaa17ca788b5c3"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Aug 27 09:45:26 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:55 2007 +0100"
      },
      "message": "[GFS2] Introduce gfs2_remove_from_ail\n\nThis collects together the operations required to remove a gfs2_bufdata\nfrom the ail lists. Its only called from two places to start with, but\nexpect to see more of this function in future.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8497a46e178addb27ad1c981befaa17ca788b5c3",
      "tree": "a2793792fb63da1aa582b66e9ae1f05dbb90c00c",
      "parents": [
        "e9bd2b3bafd29bf75522546207f0bba0ec4515c2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Sun Aug 26 14:23:56 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:53 2007 +0100"
      },
      "message": "[GFS2] Correct lock ordering in unlink\n\nThis patch corrects the lock ordering in unlink to be the same as\nthat in the rest of GFS2, i.e. parent -\u003e child -\u003e rgrp.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e9bd2b3bafd29bf75522546207f0bba0ec4515c2",
      "tree": "fac6201981d94d827390ba23fe8fe6afc2fb0119",
      "parents": [
        "c4f68a130fc1795e4a75ec5bdaf9e85d86c22419"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Fri Aug 24 09:15:01 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:51 2007 +0100"
      },
      "message": "[GFS2] fix inode meta data corruption\n\nFix a nasty inode meta data corruption issue by keeping the buffer head in\nicache array. This buffer needs to stay in memory until journal flush occurs\nOtherwise, gfs2_meta_inode_buffer could do a disk read before the inode hits\ndisk. It ends up with meta data corruptions. The buffer will be released as\npart of the existing journal flush logic.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c4f68a130fc1795e4a75ec5bdaf9e85d86c22419",
      "tree": "37251ae5634d4b73b5224e3e8679f92472de0ebe",
      "parents": [
        "d1e2777d4f419a865ddccdb9b3412021d0e4de51"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Thu Aug 23 13:19:05 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:48 2007 +0100"
      },
      "message": "[GFS2] delay glock demote for a minimum hold time\n\nWhen a lot of IO, with some distributed mmap IO, is run on a GFS2 filesystem in\na cluster, it will deadlock. The reason is that do_no_page() will repeatedly\ncall gfs2_sharewrite_nopage(), because each node keeps giving up the glock\ntoo early, and is forced to call unmap_mapping_range(). This bumps the\nmapping-\u003etruncate_count sequence count, forcing do_no_page() to retry. This\npatch institutes a minimum glock hold time a tenth a second.  This insures\nthat even in heavy contention cases, the node has enough time to get some\nuseful work done before it gives up the glock.\n\nA second issue is that when gfs2_glock_dq() is called from within a page fault\nto demote a lock, and the associated page needs to be written out, it will\ntry to acqire a lock on it, but it has already been locked at a higher level.\nThis patch puts makes gfs2_glock_dq() use the work queue as well, to avoid this\nissue. This is the same patch as Steve Whitehouse originally proposed to fix\nthis issue, execpt that gfs2_glock_dq() now grabs a reference to the glock\nbefore it queues up the work on it.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d1e2777d4f419a865ddccdb9b3412021d0e4de51",
      "tree": "e21f64e03846aeae4a1118a2debfaac331e6256f",
      "parents": [
        "ec217e0ece60f2240772e6f08e0529775846c627"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Thu Aug 23 13:33:01 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:46 2007 +0100"
      },
      "message": "[GFS2] panic after can\u0027t parse mount arguments\n\nWhen you try to mount gfs2 with -o garbage, the mount fails and the gfs2\nsuperblock is deallocated and becomes NULL. The vfs comes around later\non and calls gfs2_kill_sb. At this point the hidden gfs2 superblock\npointer (sb-\u003es_fs_info) is NULL and dereferencing it through\ngfs2_meta_syncfs causes the panic. (the other function call to\ngfs2_delete_debugfs_file() succeeds because this function already checks\nfor a NULL pointer)\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ec217e0ece60f2240772e6f08e0529775846c627",
      "tree": "2b06b31dbb9165cf086580fe589249e8a54313c2",
      "parents": [
        "a947e0335699a1d387c3826e5b8eff9e0afe505e"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Aug 22 11:15:29 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:43 2007 +0100"
      },
      "message": "[GFS2] Patch to protect sd_log_num_jdata\n\nThis is a patch to GFS2 to protect sd_log_num_jdata with the\ngfs2_log_lock.  Without this patch, there is a timing window\nwhere you can get hit the following assert from function\ngfs2_log_flush():\n\ngfs2_assert_withdraw(sdp,\n\t\t\tsdp-\u003esd_log_num_buf + sdp-\u003esd_log_num_jdata \u003d\u003d\n\t\t\tsdp-\u003esd_log_commited_buf +\n\t\t\tsdp-\u003esd_log_commited_databuf);\n\nI\u0027ve tested it on my roth cluster and it fixes the problem.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a947e0335699a1d387c3826e5b8eff9e0afe505e",
      "tree": "7ddf0cdec03bda17e21006cb5d5bc25d36b86a92",
      "parents": [
        "61d96be0f474df354c2ff4a2b2bf410b23a5cd60"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Tue Aug 21 09:57:29 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:41 2007 +0100"
      },
      "message": "[GFS2] Wendy\u0027s dump lockname in hex \u0026 fix glock dump\n\nWith this patch, gfs2 glockdump through the debugfs filesystem will only\ndump glocks for the specified filesystem instead of all glocks. Also, to\naid debugging, the glock number is dumped in hex instead of decimal.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\n"
    },
    {
      "commit": "a13b8c5f2381495879e6facd3b3ada51c9e68194",
      "tree": "79852951c3074af8b2d9e84fdc03d622bc022be3",
      "parents": [
        "9a5ad13856cbd10be429f09517c51277c02530f7"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Mon Aug 20 09:29:53 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:36 2007 +0100"
      },
      "message": "[GFS2] Reduce truncate IO traffic\n\nCurrent GFS2 setattr call unconditionally invokes do_shrink even the\nrequested size and actual file size are equal. This has generated large\namount of extra IOs found during NFS benchmark runs. This patch moves\nthe relevant logic out of shrink code path. Since setattr is a system\ncall, the time stamps update is still required.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "9a5ad13856cbd10be429f09517c51277c02530f7",
      "tree": "b71fd5ffe5ded4538cee1082bc680eefe24349d8",
      "parents": [
        "382e6e256b0cb1a84a45a520cef75d1b8ff44663"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Fri Aug 17 20:22:07 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:34 2007 +0100"
      },
      "message": "[GFS2] Add NULL entry to token table\n\nmatch_token() was returning garbage data instead of a fail value. This data\nhappened to match a valid option id for an option that required an argument (in\nthis case, lockproto\u003d%s) For match_token() to correctly fail if the option\ndoesn\u0027t match any of the tokens, the token table must end with a NULL entry.\nThis patch adds the NULL entry.\n\nSigned-off-by: Benjamin E. Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "382e6e256b0cb1a84a45a520cef75d1b8ff44663",
      "tree": "897cb4a2df63f5f9304bc5d486ec110c1d7ef8c9",
      "parents": [
        "bb3b0e3df5420fdf2c6bbb4417525c6d2ef55bbb"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Aug 16 17:08:20 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:32 2007 +0100"
      },
      "message": "[GFS2] Add a missing gfs2_trans_add_bh()\n\nThis was missing from the dir_split_leaf() function although in\nmost cases its not a problem due to other functions having\nalready previously called gfs2_trans_add_bh. This makes certain\nthat it is correct.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Wendy Cheng \u003cwcheng@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": "2d9a4bbf6d28673f4057682cc02d16bf288b4a35",
      "tree": "da4e598c88bc6df06e920951ad4d47deb350fc57",
      "parents": [
        "34eaae398e29dadeed95efd30f1eb694e5932b34"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Wed Aug 15 11:25:05 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:27 2007 +0100"
      },
      "message": "[GFS2] Fix quota do_list operation hang\n\nThis is the filesystem part of the patches to fix this bz. There are\nadditional userland patches (gfs2_quota, libgfs2) for the complete\nsolution. This patch adds a new field qu_ll_next to the gfs2_quota\nstructure. This field allows us to create linked lists of quotas in the\nondisk quota inode. Instead of scanning through the entire sparse quota\nfile for valid quotas, we can now simply walk through the user and group\nquota linked lists to perform the do_list operation.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "34eaae398e29dadeed95efd30f1eb694e5932b34",
      "tree": "d5484d7a8d7530027deadcc0cb869fc6e0afdb2c",
      "parents": [
        "0fd5355470ea40355b8af76d01748ec7b9926d4d"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Wed Aug 15 23:54:44 2007 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:24 2007 +0100"
      },
      "message": "[GFS2] fixed a NULL pointer assignment BUG\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0fd5355470ea40355b8af76d01748ec7b9926d4d",
      "tree": "455b844806e81ea43bbb69925d70b011d5efcff2",
      "parents": [
        "5d35e31f43c4910d0b6afc5160728a84bbaf86f0"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Tue Aug 14 15:34:58 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:22 2007 +0100"
      },
      "message": "[GFS2] Force unstuff of hidden quota inode\n\nThis patch forcibly unstuffs (if stuffed) the hidden quota inode at the\nfirst availble opportunity. In any practical scenario the quota inode\nwon\u0027t be stuffed, so this is ok to do. Unstuffing the quota inode allows\nus to ignore the case of a stuffed quota inode in gfs2_adjust_quota().\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "5d35e31f43c4910d0b6afc5160728a84bbaf86f0",
      "tree": "81464e36e7b63e8244d689bb0bd85f641860b43e",
      "parents": [
        "2d3ba1ea97d839e60d742ccf9a6de5bf039c0b53"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Mon Aug 13 11:01:58 2007 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:20 2007 +0100"
      },
      "message": "[GFS2] better code for translating characters\n\nthe original code could work, but I think this code could work better.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2d3ba1ea97d839e60d742ccf9a6de5bf039c0b53",
      "tree": "f38ce5bb0c71a5176d02a99646029ff9c01ad417",
      "parents": [
        "adb4ec13cdddb6ab8280e4c7808ba30f46504e1d"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Sat Aug 11 10:27:08 2007 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:17 2007 +0100"
      },
      "message": "[GFS2] unneeded typecast\n\nsb-\u003es_fs_info is a void pointer, thus the type cast is not needed.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "adb4ec13cdddb6ab8280e4c7808ba30f46504e1d",
      "tree": "f0ed06f93097f85ec649b4e903c367d2e8bd1ccb",
      "parents": [
        "75be73a8246ef96f7fa3f05a6a1450159fbb7a64"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Sat Aug 11 10:27:07 2007 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:15 2007 +0100"
      },
      "message": "[GFS2] use list_for_each_entry instead\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "75be73a8246ef96f7fa3f05a6a1450159fbb7a64",
      "tree": "d525c4c3c4e5f777ff9b96f50cc606433fcad8b6",
      "parents": [
        "5f3eae7546093d845ca8ada1b95714202a136a1a"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Aug 08 17:08:14 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:12 2007 +0100"
      },
      "message": "[GFS2] Ensure journal file cache is flushed after recovery\n\nThis is for bugzilla bug #248176: GFS2: invalid metadata block\n\nPatches 1 thru 3 were accepted upstream, but there were problems\nwith 4 and 5.  Those issues have been resolved and now the recovery\ntests are passing without errors.  This code has gone through\n41 * 3 successful gfs2 recovery tests before it hit an\nunrelated (openais) problem.  I\u0027m continuing to test it.\n\nThis is a complete rewrite of patch 5 for bug #248176, written by\nSteve Whitehouse.  This is referred to in the bugzilla record as\n\"new 6\" and \"a different solution\".\n\nThe problem was that the journal inodes, although protected by\na glock, were not synched with the other nodes because they don\u0027t\nuse the inode glock synch operations (i.e. no \"glops\" were defined).\nTherefore, journal recovery on a journal-recovering node were causing\nthe blocks to get out of sync with the node that was actually trying\nto use that journal as it comes back up from a reboot.\n\nThere are two possible solutions: (1) To make the journals use the\nnormal inode glock sync operations, or (2) To make the journal\noperations take effect immediately (i.e. no caching).  Although\noption 1 works, it turns out to be a lot more code.  Steve opted\nfor option 2, which is much simpler and therefore less prone to\nregression errors.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n\n--\n"
    },
    {
      "commit": "5f3eae7546093d845ca8ada1b95714202a136a1a",
      "tree": "c5b45d1a313f8a7357e7ab25954356904b68c010",
      "parents": [
        "8fbbfd214c853102b614f4705c1904ed14f5a808"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Aug 08 16:52:09 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:10 2007 +0100"
      },
      "message": "[GFS2] invalid metadata block - REVISED\n\nThis is for bugzilla bug #248176: GFS2: invalid metadata block\n\nPatches 1 thru 3 were accepted upstream, but there were problems\nwith 4 and 5.  Those issues have been resolved and now the recovery\ntests are passing without errors.  This code has gone through\n41 * 3 successful gfs2 recovery tests before it hit an\nunrelated (openais) problem.\n\nThis is a complete rewrite of patch 4 for bug #248176.\n\nPart of the problem was that inodes were being recycled\nbefore their buffers were flushed to the journal logs.\nAnother problem was that the clone bitmaps were being\nsearched for deleted inodes to recycle, but only the\n\"real\" bitmaps should be searched for that purpose.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "8fbbfd214c853102b614f4705c1904ed14f5a808",
      "tree": "b33cb7ee7392d64f99124588ef6af7c0d0bc7e9d",
      "parents": [
        "ca5a939b33166a9f5a2556e6c4ec031524852ba2"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Aug 01 13:57:10 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:08 2007 +0100"
      },
      "message": "[GFS2] Reduce number of gfs2_scand processes to one\n\nWe only need a single gfs2_scand process rather than the one\nper filesystem which we had previously. As a result the parameter\ndetermining the frequency of gfs2_scand runs becomes a module\nparameter rather than a mount parameter as it was before.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ca5a939b33166a9f5a2556e6c4ec031524852ba2",
      "tree": "36753cbdaff5447776912b604edbf22f6c0895d5",
      "parents": [
        "4ef290025ccde7c52ba219cf733a4295acd5401f"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Jul 31 18:31:12 2007 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:05 2007 +0100"
      },
      "message": "[GFS2] use the declaration of gfs2_dops in the header file instead\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4ef290025ccde7c52ba219cf733a4295acd5401f",
      "tree": "9879ae00580d4869bfa0a443f00b3713c34f4bda",
      "parents": [
        "0f8468c8bef3d04637c924e7bef20ca53018b319"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Tue Jul 31 18:31:11 2007 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:03 2007 +0100"
      },
      "message": "[GFS2] mark struct *_operations const\n\nthese struct *_operations are all method tables, thus should be const.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0f8468c8bef3d04637c924e7bef20ca53018b319",
      "tree": "fc4fa6fedb9fe4e704c8bedc749a0b90a39d0218",
      "parents": [
        "cee23c79d08c57bbbb9923703409af3b17518c58"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jul 25 10:06:22 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:55:01 2007 +0100"
      },
      "message": "[GFS2] Detach buf data during in-place writeback\n\nThis is patch 5 of 5 for bug #248176\n\nMetadata corruption was occurring because page references weren\u0027t\nbeing removed in all cases.  I previously added a function called\ndetach_bufdata, but I discovered there already WAS a function out\nthere to do the job.  It\u0027s called gfs2_meta_cache_flush.  So I added\na call to that to remove the page references.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "cee23c79d08c57bbbb9923703409af3b17518c58",
      "tree": "57a09aa5c4d846a1fc65e8c576b5fd9bfbe8bc4f",
      "parents": [
        "6760bdcd03a12d7d082794311ccbaf44bfc23b06"
      ],
      "author": {
        "name": "Denis Cheng",
        "email": "crquan@gmail.com",
        "time": "Wed Jul 25 17:53:58 2007 +0800"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:58 2007 +0100"
      },
      "message": "[GFS2] use an temp variable to reduce a spin_unlock\n\nthis is more clear.\n\nSigned-off-by: Denis Cheng \u003ccrquan@gmail.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6760bdcd03a12d7d082794311ccbaf44bfc23b06",
      "tree": "0cd1fcaac75dea97139eb54298866ea06a18b99d",
      "parents": [
        "693ddeabbb3e563f192a7ac74ec04168aa92e8d8"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jul 24 14:09:32 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:56 2007 +0100"
      },
      "message": "[GFS2] Prevent infinite loop in try_rgrp_unlink()\n\nThis is patch three of five for bug #248176.\n\nThe try_rgrp_unlink code in rgrp.c had an infinite loop.  This was\ncaused because the bitmap function rgblk_search can return a block\nless than the \"goal\" block, in which case it was looping.  The fix is\nto make it always march forward as needed.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "693ddeabbb3e563f192a7ac74ec04168aa92e8d8",
      "tree": "c82fb871747d8dc05c43d1627bb2f777a869a115",
      "parents": [
        "905d2aefa9e06ebb995df96920d273a516fcd3f9"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jul 24 14:07:33 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:53 2007 +0100"
      },
      "message": "[GFS2] Revert part of earlier log.c changes\n\nThis is patch 2 of 5 for bug #248176.\n\nThe list_move code previously concocted in log.c for bug #238162\n(see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d238162#c23)\nnever runs as bh can now never be NULL at this point.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "905d2aefa9e06ebb995df96920d273a516fcd3f9",
      "tree": "0c4ac325365a673d82bd5b00cbdc0cc22ac7d8e6",
      "parents": [
        "7b08fc620109c2f66575e9ae884f45c37933ea18"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Tue Jul 24 14:05:31 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:51 2007 +0100"
      },
      "message": "[GFS2] Move some code inside the log lock\n\nThis is the first of five patches for bug #248176:\n\nThere were still some critical variables being manipulated outside\nthe log_lock spinlock.  That usually resulted in a hang.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "7b08fc620109c2f66575e9ae884f45c37933ea18",
      "tree": "17fd00263b24dfd88242648a7bbd4de73826daec",
      "parents": [
        "afd0942d98f74296b74993739e41d2ca7cb9fd5a"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 24 13:53:36 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:49 2007 +0100"
      },
      "message": "[GFS2] Fix an oops in glock dumping\n\nThis fixes an oops which was occurring during glock dumping due to the\nseq file code not taking a reference to the glock. Also this fixes a\nmemory leak which occurred in certain cases, in turn preventing the\nfilesystem from unmounting.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "afd0942d98f74296b74993739e41d2ca7cb9fd5a",
      "tree": "bf2568363daa826db9a8c00eb9038f67b0ab0005",
      "parents": [
        "aa0481e58a9a97a97035725a712920b5fe32f348"
      ],
      "author": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Fri Jul 20 13:07:26 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:46 2007 +0100"
      },
      "message": "[GFS2] GFS2 not checking pointer on create when running under nfsd\n\nWhen looking at an unrelated problem, I noticed that nfsd does not\nset nameidata pointer on create (ie nd is NULL).  This should\ncause an oops in some cases in which when NFSd is mounted over GFS2.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "aa0481e58a9a97a97035725a712920b5fe32f348",
      "tree": "53a0244e0e1de14762ad1803aec1550e555064e5",
      "parents": [
        "26caee5bc643b318fa2e9bd4f66dace1755ec413"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Sat Jul 21 17:03:22 2007 +0200"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:44 2007 +0100"
      },
      "message": "[GFS2] Clean up duplicate includes in fs/gfs2/\n\nThis patch cleans up duplicate includes in\n\tfs/gfs2/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "26caee5bc643b318fa2e9bd4f66dace1755ec413",
      "tree": "d41f2a4c131de2eb6e0981b9d7c8eb9c2ae25255",
      "parents": [
        "87124e581bfeaa5864662a435b6ee2a19e91b905"
      ],
      "author": {
        "name": "Josef Whiter",
        "email": "jwhiter@redhat.com",
        "time": "Mon Jul 23 10:02:40 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:42 2007 +0100"
      },
      "message": "[GFS2] Fix calculation of demote state\n\nIf a glock is in the exclusive state and a request for demote to\ndeferred has been received, then further requests for demote to\nshared are being ignored. This patch fixes that by ensuring that\nwe demote to unlocked in that case.\n\nSigned-off-by: Josef Whiter \u003cjwhiter@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "87124e581bfeaa5864662a435b6ee2a19e91b905",
      "tree": "f9bc5d965834f1c7435123f26b9ab8f961c8848f",
      "parents": [
        "bbf25010f1a6b761914430f5fca081ec8c7accd1"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 23 09:54:36 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Oct 10 08:54:39 2007 +0100"
      },
      "message": "[GFS2] Fix two races relating to glock callbacks\n\nOne of the races relates to referencing a variable while not holding\nits protecting spinlock. The patch simply moves the test inside the\nspin lock. The other races occurs when a demote to unlocked request\noccurs during the time a demote to shared request is already running.\nThis of course only happens in the case that the lock was in the\nexclusive mode to start with. The patch adds a check to see if another\ndemote request has occurred in the mean time and if it has, then it\nperforms a second demote.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "6712ecf8f648118c3363c142196418f89a510b90",
      "tree": "347d39a7d5a7ed96d3b1afecd28de2a0f98b98c9",
      "parents": [
        "5bb23a688b2de23d7765a1dd439d89c038378978"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Sep 27 12:47:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:57 2007 +0200"
      },
      "message": "Drop \u0027size\u0027 argument from bio_endio and bi_end_io\n\nAs bi_end_io is only called once when the reqeust is complete,\nthe \u0027size\u0027 argument is now redundant.  Remove it.\n\nNow there is no need for bio_endio to subtract the size completed\nfrom bi_size.  So don\u0027t do that either.\n\nWhile we are at it, change bi_end_io to return void.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "7afaac6202782ec28f2039503bdaef666834d60c",
      "tree": "d848662aa677f5fe47fa7c93c2ac9925b3e888ae",
      "parents": [
        "a16877ca9cec211708a161057a7cbfbf2cbc3a53"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Oct 01 14:41:13 2007 -0700"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Oct 09 18:32:46 2007 -0400"
      },
      "message": "GFS2: clean up explicit check for mandatory locks\n\nThe __mandatory_lock(inode) function makes the same check, but makes the code\nmore readable.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d18c4d687dd4625360ee14047d7eb454217719ee",
      "tree": "89d80e6157bbf7bfae035c79e3e7ce2f32b1853a",
      "parents": [
        "b9af7ca6d37d541fb0ed96355fd5c65501cbbda8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 19 16:12:50 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 14 10:34:40 2007 +0100"
      },
      "message": "[GFS2] Revert remounting w/o acl option leaves acls enabled\n\nThis reverts commit 569a7b6c2e8965ff4908003b925757703a3d649c. The\ncode was correct originally. The default setting for ACLs after a\nremount should be to be the same as before the remount.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b9af7ca6d37d541fb0ed96355fd5c65501cbbda8",
      "tree": "d343aefac556709cc543aafa961496175d138892",
      "parents": [
        "a867bb28c1cb49ae86d034d8bd8fe6dbcbb19566"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Jul 18 11:40:06 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 14 10:34:11 2007 +0100"
      },
      "message": "[GFS2] Fix setting of inherit jdata attr\n\nDue to a mix up between the jdata attribute and inherit jdata attribute\nit has not been possible to set the inherit jdata attribute on\ndirectories. This is now fixed and the ioctl will report the inherit\njdata attribute for directories rather than the jdata attribute as it\ndid previously. This stems from our need to have the one bit in the\nioctl attr flags mean two different things according to whether the\nunderlying inode is a directory or not.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@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": "6eefaf61f664053c1dd6534a994cab3f8bb07263",
      "tree": "fddd9218cd7ac92f8f2b850c52d4b2dbca7fb568",
      "parents": [
        "24c7387333c77b602ece7ecd6a85fc94f8f16d8c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 17 10:26:56 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 14 10:33:15 2007 +0100"
      },
      "message": "[GFS2] Fix incorrect return code in rgrp.c\n\nThe following patch fixes a bug where 0 was being used as a return code\nto indicate \"nothing to do\" when in fact 0 was a valid block location\nwhich might be returned by the function.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "24c7387333c77b602ece7ecd6a85fc94f8f16d8c",
      "tree": "8fd9bba4310f176d8c538e2a22c083882b10dec5",
      "parents": [
        "bdcb88562ca90e6cfac13130e147c63aaa4f9e41"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Jul 12 16:58:50 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 14 10:32:43 2007 +0100"
      },
      "message": "[GFS2] soft lockup in rgblk_search\n\nThis patch seems to fix the problem described in bugzilla bug 246114.\nIt was written by Steve Whitehouse with some tweaking by me.\n\nThe code was looping in the relatively new section of code designed to\nsearch for and reuse unlinked inodes.  In cases where it was finding an\nappropriate inode to reuse, it was looping around and finding the same\nblock over and over because a \"\u003c\u003d\" check should have been a \"\u003c\" when\ncomparing the goal block to the last unlinked block found.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bdcb88562ca90e6cfac13130e147c63aaa4f9e41",
      "tree": "54411e375cfd212e641ec464855f7da14e60cf4a",
      "parents": [
        "3650925893469ccb03dbcc6a440c5d363350f591"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jul 11 15:55:23 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Aug 14 10:32:04 2007 +0100"
      },
      "message": "[GFS2] soft lockup detected in databuf_lo_before_commit\n\nThis is part 2 of the patch for bug #245832, part 1 of which is already\nin the git tree.\n\nThe problem was that sdp-\u003esd_log_num_databuf was not always being\nprotected by the gfs2_log_lock spinlock, but the sd_log_le_databuf\n(which it is supposed to reflect) was protected.  That meant there\nwas a timing window during which gfs2_log_flush called\ndatabuf_lo_before_commit and the count didn\u0027t match what was\nreally on the linked list in that window.  So when it ran out of\nitems on the linked list, it decremented total_dbuf from 0 to -1 and\nthus never left the \"while(total_dbuf)\" loop.\n\nThe solution is to protect the variable sdp-\u003esd_log_num_databuf so\nthat the value will always match the contents of the linked list,\nand therefore the number will never go negative, and therefore, the\nloop will be exited properly.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "0af1a4504699524c876361845bc2e301ecc45d0f",
      "tree": "72c6d1ac9d7dfb44d25c58eea599c2df63aa2562",
      "parents": [
        "86d0004abc87025bae1cca43c94e99a27b7bbbd6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Jul 31 00:39:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 31 15:39:43 2007 -0700"
      },
      "message": "rename setlease to generic_setlease\n\nMake it a little more clear that this is the default implementation for\nthe setleast operation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nAcked-by: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "83c54070ee1a2d05c89793884bea1a03f2851ed4",
      "tree": "dc732f5a9b93fb7004ed23f551bd98b77cc580e0",
      "parents": [
        "d0217ac04ca6591841e5665f518e38064f4e65bd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:47:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: fault feedback #2\n\nThis patch completes Linus\u0027s wish that the fault return codes be made into\nbit flags, which I agree makes everything nicer.  This requires requires\nall handle_mm_fault callers to be modified (possibly the modifications\nshould go further and do things like fault accounting in handle_mm_fault --\nhowever that would be for another patch).\n\n[akpm@linux-foundation.org: fix alpha build]\n[akpm@linux-foundation.org: fix s390 build]\n[akpm@linux-foundation.org: fix sparc build]\n[akpm@linux-foundation.org: fix sparc64 build]\n[akpm@linux-foundation.org: fix ia64 build]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ian Molton \u003cspyro@f2s.com\u003e\nCc: Bryan Wu \u003cbryan.wu@analog.com\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Kazumoto Kojima \u003ckkojima@rr.iij4u.or.jp\u003e\nCc: Richard Curnow \u003crc@rc0.org.uk\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Miles Bader \u003cuclinux-v850@lsi.nec.co.jp\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Still apparently needs some ARM and PPC loving - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0217ac04ca6591841e5665f518e38064f4e65bd",
      "tree": "d3309094bb734d34773f97d642593e298a5cfcfc",
      "parents": [
        "ed2f2f9b3ff8debdf512f7687b232c3c1d7d60d7"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:47:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: fault feedback #1\n\nChange -\u003efault prototype.  We now return an int, which contains\nVM_FAULT_xxx code in the low byte, and FAULT_RET_xxx code in the next byte.\n FAULT_RET_ code tells the VM whether a page was found, whether it has been\nlocked, and potentially other things.  This is not quite the way he wanted\nit yet, but that\u0027s changed in the next patch (which requires changes to\narch code).\n\nThis means we no longer set VM_CAN_INVALIDATE in the vma in order to say\nthat a page is locked which requires filemap_nopage to go away (because we\ncan no longer remain backward compatible without that flag), but we were\ngoing to do that anyway.\n\nstruct fault_data is renamed to struct vm_fault as Linus asked. address\nis now a void __user * that we should firmly encourage drivers not to use\nwithout really good reason.\n\nThe page is now returned via a page pointer in the vm_fault struct.\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": "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": "d00806b183152af6d24f46f0c33f14162ca1262a",
      "tree": "36f829cf13d5410374a3f00b56ec0b1f8dc3ce3c",
      "parents": [
        "589f1e81bde732dd0b1bc5d01b6bddd4bcb4527b"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Jul 19 01:46:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:41 2007 -0700"
      },
      "message": "mm: fix fault vs invalidate race for linear mappings\n\nFix the race between invalidate_inode_pages and do_no_page.\n\nAndrea Arcangeli identified a subtle race between invalidation of pages from\npagecache with userspace mappings, and do_no_page.\n\nThe issue is that invalidation has to shoot down all mappings to the page,\nbefore it can be discarded from the pagecache.  Between shooting down ptes to\na particular page, and actually dropping the struct page from the pagecache,\ndo_no_page from any process might fault on that page and establish a new\nmapping to the page just before it gets discarded from the pagecache.\n\nThe most common case where such invalidation is used is in file truncation.\nThis case was catered for by doing a sort of open-coded seqlock between the\nfile\u0027s i_size, and its truncate_count.\n\nTruncation will decrease i_size, then increment truncate_count before\nunmapping userspace pages; do_no_page will read truncate_count, then find the\npage if it is within i_size, and then check truncate_count under the page\ntable lock and back out and retry if it had subsequently been changed (ptl\nwill serialise against unmapping, and ensure a potentially updated\ntruncate_count is actually visible).\n\nComplexity and documentation issues aside, the locking protocol fails in the\ncase where we would like to invalidate pagecache inside i_size.  do_no_page\ncan come in anytime and filemap_nopage is not aware of the invalidation in\nprogress (as it is when it is outside i_size).  The end result is that\ndangling (-\u003emapping \u003d\u003d NULL) pages that appear to be from a particular file\nmay be mapped into userspace with nonsense data.  Valid mappings to the same\nplace will see a different page.\n\nAndrea implemented two working fixes, one using a real seqlock, another using\na page-\u003eflags bit.  He also proposed using the page lock in do_no_page, but\nthat was initially considered too heavyweight.  However, it is not a global or\nper-file lock, and the page cacheline is modified in do_no_page to increment\n_count and _mapcount anyway, so a further modification should not be a large\nperformance hit.  Scalability is not an issue.\n\nThis patch implements this latter approach.  -\u003enopage implementations return\nwith the page locked if it is possible for their underlying file to be\ninvalidated (in that case, they must set a special vm_flags bit to indicate\nso).  do_no_page only unlocks the page after setting up the mapping\ncompletely.  invalidation is excluded because it holds the page lock during\ninvalidation of each page (and ensures that the page is not mapped while\nholding the lock).\n\nThis also allows significant simplifications in do_no_page, because we have\nthe page locked in the right place in the pagecache from the start.\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": "60446067ba7a8e890a91db3b4a7436fe0ebd2dee",
      "tree": "17ce000f5f70ef7f53a94ce594d15f10fa964cd0",
      "parents": [
        "4698afe8e3a725576366f86560a8a8242b21b9f7"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Mon Jan 15 18:33:36 2007 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jul 18 19:17:19 2007 -0400"
      },
      "message": "gfs2: stop giving out non-cluster-coherent leases\n\nSince gfs2 can\u0027t prevent conflicting opens or leases on other nodes, we\nprobably shouldn\u0027t allow it to give out leases at all.\n\nPut the newly defined lease operation into use in gfs2 by turning off\nlease, unless we\u0027re using the \"nolock\u0027 locking module (in which case all\nlocking is local anyway).\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "3bd858ab1c451725c07a805dcb315215dc85b86e",
      "tree": "5d49c4300e350d64fd81eb3230b81f754117e0c1",
      "parents": [
        "49c13b51a15f1ba9f6d47e26e4a3886c4f3931e2"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "ssatyam@cse.iitk.ac.in",
        "time": "Tue Jul 17 15:00:08 2007 +0530"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 12:00:03 2007 -0700"
      },
      "message": "Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check\n\nIntroduce is_owner_or_cap() macro in fs.h, and convert over relevant\nusers to it. This is done because we want to avoid bugs in the future\nwhere we check for only effective fsuid of the current task against a\nfile\u0027s owning uid, without simultaneously checking for CAP_FOWNER as\nwell, thus violating its semantics.\n[ XFS uses special macros and structures, and in general looked ...\nuntouchable, so we leave it alone -- but it has been looked over. ]\n\nThe (current-\u003efsuid !\u003d inode-\u003ei_uid) check in generic_permission() and\nexec_permission_lite() is left alone, because those operations are\ncovered by CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH. Similarly operations\nfalling under the purview of CAP_CHOWN and CAP_LEASE are also left alone.\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a569425512253992cc64ebf8b6d00a62f986db3e",
      "tree": "7ea72c75c54697bddbad807af89cc549d7426a69",
      "parents": [
        "6dd4ac3b30b81b5bd0d628af1c89b7da689a38ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Jul 17 04:04:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:06 2007 -0700"
      },
      "message": "knfsd: exportfs: add exportfs.h header\n\ncurrently the export_operation structure and helpers related to it are in\nfs.h.  fs.h is already far too large and there are very few places needing the\nexport bits, so split them off into a separate header.\n\n[akpm@linux-foundation.org: fix cifs build]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa0ac36518be648dda3a32f0b37a8b2b546e1b24",
      "tree": "b37eac59221187c4dec9ce8445a21c4119d425fb",
      "parents": [
        "cb510b8172602a66467f3551b4be1911f5a7c8c2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Jul 15 23:40:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:45 2007 -0700"
      },
      "message": "Remove capability.h from mm.h\n\nI forgot to remove capability.h from mm.h while removing sched.h!  This\npatch remedies that, because the only inline function which was using\nCAP_something was made out of line.\n\nCross-compile tested without regressions on:\n\n\tall powerpc defconfigs\n\tall mips defconfigs\n\tall m68k defconfigs\n\tall arm defconfigs\n\tall ia64 defconfigs\n\n\talpha alpha-allnoconfig alpha-defconfig alpha-up\n\tarm\n\ti386 i386-allnoconfig i386-defconfig i386-up\n\tia64 ia64-allnoconfig ia64-defconfig ia64-up\n\tm68k\n\tmips\n\tparisc parisc-allnoconfig parisc-defconfig parisc-up\n\tpowerpc powerpc-up\n\ts390 s390-allnoconfig s390-defconfig s390-up\n\tsparc sparc-allnoconfig sparc-defconfig sparc-up\n\tsparc64 sparc64-allnoconfig sparc64-defconfig sparc64-up\n\tum-x86_64\n\tx86_64 x86_64-allnoconfig x86_64-defconfig x86_64-up\n\nas well as my two usual configs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b21f458ddbc8fb6fceeb68158e9e04b2571dabd",
      "tree": "6ad7a02eba52a17e7a5d2e5de07b2918705c97bb",
      "parents": [
        "01370f0603f8435d415a19f7e62d1bab826c3589",
        "3ebf44902f77537b5784eb5059c2b78d8b5a920a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 13:56:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 10 13:56:13 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (57 commits)\n  [GFS2] Accept old format NFS filehandles\n  [GFS2] Small fixes to logging code\n  [DLM] dump more lock values\n  [GFS2] Remove i_mode passing from NFS File Handle\n  [GFS2] Obtaining no_formal_ino from directory entry\n  [GFS2] git-gfs2-nmw-build-fix\n  [GFS2] System won\u0027t suspend with GFS2 file system mounted\n  [GFS2] remounting w/o acl option leaves acls enabled\n  [GFS2] inode size inconsistency\n  [DLM] Telnet to port 21064 can stop all lockspaces\n  [GFS2] Fix gfs2_block_truncate_page err return\n  [GFS2] Addendum to the journaled file/unmount patch\n  [GFS2] Simplify multiple glock aquisition\n  [GFS2] assertion failure after writing to journaled file, umount\n  [GFS2] Use zero_user_page() in stuffed_readpage()\n  [GFS2] Remove bogus \u0027\\0\u0027 in rgrp.c\n  [GFS2] Journaled file write/unstuff bug\n  [DLM] don\u0027t require FS flag on all nodes\n  [GFS2] Fix deallocation issues\n  [GFS2] return conflicts for GETLK\n  ...\n"
    },
    {
      "commit": "3ebf44902f77537b5784eb5059c2b78d8b5a920a",
      "tree": "77290d029e6652ed09bb23c05b8b203bc569cd69",
      "parents": [
        "a0a24741cac414aba5918e9939afafa70c37f952"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 10 12:28:27 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 10 12:28:27 2007 +0100"
      },
      "message": "[GFS2] Accept old format NFS filehandles\n\nOn Tue, 2007-07-10 at 10:06 +0100, Christoph Hellwig wrote:\n\u003e \u003e -#define GFS2_LARGE_FH_SIZE 10\n\u003e \u003e -\n\u003e \u003e -struct gfs2_fh_obj {\n\u003e \u003e -   struct gfs2_inum_host this;\n\u003e \u003e -   u32 imode;\n\u003e \u003e -};\n\u003e \u003e +#define GFS2_LARGE_FH_SIZE 8\n\u003e\n\u003e Because gfs2_decode_fh only accepts file handles with GFS2_LARGE_FH_SIZE\n\u003e or GFS2_LARGE_FH_SIZE you don\u0027t accept filehandles sent out by and older\n\u003e gfs version anymore.  Stale filehandles because of a new kernel version\n\u003e are a big no-no, so please add back code to handle the old filehandles\n\u003e on the decode side.\n\u003e\n\nThis should fix that problem I think since its only relating to end of\nthe fh we can just ignore that field in order to accept the older\nformat.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Wendy Cheng \u003cwcheng@redhat.com\u003e\n"
    },
    {
      "commit": "5ffc4ef45b3b0a57872f631b4e4ceb8ace0d7496",
      "tree": "437ec32a58ac5e4794565b2bbb3da6611f0d6a04",
      "parents": [
        "534f2aaa6ab07cd71164180bc958a7dcde41db11"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 01 11:49:19 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jul 10 08:04:13 2007 +0200"
      },
      "message": "sendfile: remove .sendfile from filesystems that use generic_file_sendfile()\n\nThey can use generic_file_splice_read() instead. Since sys_sendfile() now\nprefers that, there should be no change in behaviour.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a0a24741cac414aba5918e9939afafa70c37f952",
      "tree": "aee42799f08cff93d5d67d8093d8fe881978ed17",
      "parents": [
        "ac90a2552500996c529d5f0ddc16a9bf60bf670d"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 15:43:07 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 15:43:07 2007 +0100"
      },
      "message": "[GFS2] Small fixes to logging code\n\nThis reverts part of an earlier patch which tried to reclaim\ngfs2_bufdata structures too early and resulted in a \"use after free\"\ncase (this bit from me). Also a change to not write out log headers\nunless we really need to (in the case of flushing nothing we don\u0027t need\na header) from Bob.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\n"
    },
    {
      "commit": "35dcc52e3a916184b145fd840250244b81004200",
      "tree": "f3ab5a4094a676967e668fb407c0296a1150264a",
      "parents": [
        "bb9bcf061660661c57ddcf31337529f82414b937"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Wed Jun 27 17:07:53 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:24:11 2007 +0100"
      },
      "message": "[GFS2] Remove i_mode passing from NFS File Handle\n\nGFS2 has been passing i_mode within NFS File Handle. Other than the\nwrong assumption that there is always room for this extra 16 bit value,\nthe current gfs2_get_dentry doesn\u0027t really need the i_mode to work\ncorrectly. Note that GFS2 NFS code does go thru the same lookup code\npath as direct file access route (where the mode is obtained from name\nlookup) but gfs2_get_dentry() is coded for different purpose. It is not\nused during lookup time. It is part of the file access procedure call.\nWhen the call is invoked, if on-disk inode is not in-memory, it has to\nbe read-in. This makes i_mode passing a useless overhead.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb9bcf061660661c57ddcf31337529f82414b937",
      "tree": "0876874e5252c4939b8e7bbd62a22a6eb4ad1abf",
      "parents": [
        "f4fadb23ca49abd2f1387a0b7e78b385ebc760ce"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Wed Jun 27 17:07:08 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:24:08 2007 +0100"
      },
      "message": "[GFS2] Obtaining no_formal_ino from directory entry\n\nGFS2 lookup code doesn\u0027t ask for inode shared glock. This implies during\nin-memory inode creation for existing file, GFS2 will not disk-read in\nthe inode contents. This leaves no_formal_ino un-initialized during\nlookup time. The un-initialized no_formal_ino is subsequently encoded\ninto file handle. Clients will get ESTALE error whenever it tries to\naccess these files.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b3657629249eba0b3b61ff964d6e1539b469d117",
      "tree": "60db7f1b29c5e5432510986f3b3f2081acf4c991",
      "parents": [
        "569a7b6c2e8965ff4908003b925757703a3d649c"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Wed Jun 27 11:06:19 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:24:04 2007 +0100"
      },
      "message": "[GFS2] System won\u0027t suspend with GFS2 file system mounted\n\nThe kernel threads in gfs2, namely gfs2_scand, gfs2_logd, gfs2_quotad,\ngfs2_glockd, gfs2_recoverd weren\u0027t doing anything when the suspend\nmechanism was trying to freeze them.\n\nI put in calls to refrigerator() in the loops for all the daemons and\nsuspend works as expected.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "569a7b6c2e8965ff4908003b925757703a3d649c",
      "tree": "307b773ebf91ad0c2071e20c528549fa33af64a2",
      "parents": [
        "090ffaa55dacea774af9ee378d09e47fb7cea9ff"
      ],
      "author": {
        "name": "Bob Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jun 27 10:15:56 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:24:01 2007 +0100"
      },
      "message": "[GFS2] remounting w/o acl option leaves acls enabled\n\nThis patch is for bugzilla bug #245663.  This crosswrites a fix from\ngfs1 (bz #210369) so that the mount options are reset properly upon\nremount.  This was tested on system trin-10.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "090ffaa55dacea774af9ee378d09e47fb7cea9ff",
      "tree": "5482762609a8c2e3a312434eb7e997e5b72912f3",
      "parents": [
        "97d848365e603def43c69e160937f073bf9cf02e"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Wed Jun 27 11:00:03 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:59 2007 +0100"
      },
      "message": "[GFS2] inode size inconsistency\n\nThis should have been part of the NFS patch #1 but somehow I missed it\nwhen packaging the patches. It is not a critical issue as the others (I\nhope). RHEL 5.1 31.el5 kernel runs fine without this change.\n\nOur truncate code is chopped into two parts, one for vfs inode changes\n(in vmtruncate()) and one of gfs inode (in gfs2_truncatei()). These two\noperatons are, unfortunately, not atomic. So it could happens that\nvmtruncate() succeeds (inode-\u003ei_size is changed) but gfs2_truncatei\nfails (say kernel temporarily out of memory). This would leave gfs inode\ni_di.di_size out of sync with vfs inode i_size. It will later confuse\ngfs2_commit_write() if a write is issued. Last time I checked, it will\ncause file corruption.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1875f2f31b3955dff8c3712a56ae61836c8b90fe",
      "tree": "d2283452b7de1ae042cf6265cc9fe7f5dd08a20d",
      "parents": [
        "773ed1a044adc868036dee1722b8bca6ce5923e2"
      ],
      "author": {
        "name": "S. Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Mon Jun 25 21:14:31 2007 -0400"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:54 2007 +0100"
      },
      "message": "[GFS2] Fix gfs2_block_truncate_page err return\n\nCode segment inside gfs2_block_truncate_page() doesn\u0027t set the return\ncode correctly. This causes NFSD erroneously returns EIO back to client\nwith setattr procedure call (truncate error).\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "773ed1a044adc868036dee1722b8bca6ce5923e2",
      "tree": "dfa488af453c3afde1f8fa50d8771502808722f5",
      "parents": [
        "eaf5bd3cac92126e5825c6ebc10bee0fba35d555"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Wed Jun 20 08:34:06 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:52 2007 +0100"
      },
      "message": "[GFS2] Addendum to the journaled file/unmount patch\n\nThis patch is an addendum to the previous journaled file/unmount patch.\nIt fixes a problem discovered during testing.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "eaf5bd3cac92126e5825c6ebc10bee0fba35d555",
      "tree": "779ba2ba60bb6f18cf47a5155aa4164798a81a1f",
      "parents": [
        "2332c4435bb733b5cd4f612ee57532bd8fde4c1c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 19 15:38:17 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:50 2007 +0100"
      },
      "message": "[GFS2] Simplify multiple glock aquisition\n\nThere is a bug in the code which acquires multiple glocks where if the\ninitial out-of-order attempt fails part way though we can land up trying\nto acquire the wrong number of glocks. This is part of the fix for red\nhat bz #239737. The other part of the bz doesn\u0027t apply to upstream\nkernels since it was fixed by:\n\nhttp://git.kernel.org/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommitdiff;h\u003dd3717bdf8f08a0e1039158c8bab2c24d20f492b6\n\nSince the out-of-order code doesn\u0027t appear to add anything to the\nperformance of GFS2, this patch just removed it rather than trying to\nfix it. It should be much easier to see whats going on here now. In\naddition, we don\u0027t allocate any memory unless we are using a lot of\nglocks (which is a relatively uncommon case).\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "2332c4435bb733b5cd4f612ee57532bd8fde4c1c",
      "tree": "dfa006c482a6e9c1a5e693478b424db0f5492fbe",
      "parents": [
        "2840501ac822c5bf712f67b4b02640e16e145a29"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Mon Jun 18 14:50:20 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:47 2007 +0100"
      },
      "message": "[GFS2] assertion failure after writing to journaled file, umount\n\nThis patch passes all my nasty tests that were causing the code to\nfail under one circumstance or another.  Here is a complete summary\nof all changes from today\u0027s git tree, in order of appearance:\n\n1. There are now separate variables for metadata buffer accounting.\n2. Variable sd_log_num_hdrs is no longer needed, since the header\n   accounting is taken care of by the reserve/refund sequence.\n3. Fixed a tiny grammatical problem in a comment.\n4. Added a new function \"calc_reserved\" to calculate the reserved\n   log space.  This isn\u0027t entirely necessary, but it has two benefits:\n   First, it simplifies the gfs2_log_refund function greatly.\n   Second, it allows for easier debugging because I could sprinkle the\n   code with calls to this function to make sure the accounting is\n   proper (by adding asserts and printks) at strategic point of the code.\n5. In log_pull_tail there apparently was a kludge to fix up the\n   accounting based on a \"pull\" parameter.  The buffer accounting is\n   now done properly, so the kludge was removed.\n6. File sync operations were making a call to gfs2_log_flush that\n   writes another journal header.  Since that header was unplanned\n   for (reserved) by the reserve/refund sequence, the free space had\n   to be decremented so that when log_pull_tail gets called, the free\n   space is be adjusted properly.  (Did I hear you call that a kludge?\n   well, maybe, but a lot more justifiable than the one I removed).\n7. In the gfs2_log_shutdown code, it optionally syncs the log by\n   specifying the PULL parameter to log_write_header.  I\u0027m not sure\n   this is necessary anymore.  It just seems to me there could be\n   cases where shutdown is called while there are outstanding log\n   buffers.\n8. In the (data)buf_lo_before_commit functions, I changed some offset\n   values from being calculated on the fly to being constants.\tThat\n   simplified some code and we might as well let the compiler do the\n   calculation once rather than redoing those cycles at run time.\n9. This version has my rewritten databuf_lo_add function.\n   This version is much more like its predecessor, buf_lo_add, which\n   makes it easier to understand.  Again, this might not be necessary,\n   but it seems as if this one works as well as the previous one,\n   maybe even better, so I decided to leave it in.\n10. In databuf_lo_before_commit, a previous data corruption problem\n   was caused by going off the end of the buffer.  The proper solution\n   is to have the proper limit in place, rather than stopping earlier.\n   (Thus my previous attempt to fix it is wrong).\n   If you don\u0027t wrap the buffer, you\u0027re stopping too early and that\n   causes more log buffer accounting problems.\n11. In lops.h there are two new (previously mentioned) constants for\n   figuring out the data offset for the journal buffers.\n12. There are also two new functions, buf_limit and databuf_limit to\n   calculate how many entries will fit in the buffer.\n13. In function gfs2_meta_wipe, it needs to distinguish between pinned\n   metadata buffers and journaled data buffers for proper journal buffer\n   accounting.\tIt can\u0027t use the JDATA gfs2_inode flag because it\u0027s\n   sometimes passed the \"real\" inode and sometimes the \"metadata\n   inode\" and the inode flags will be random bits in a metadata\n   gfs2_inode.\tIt needs to base its decision on which was passed in.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\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": "c4201214cbf10636e2c1ab9131573f735b42c8d4",
      "tree": "e6ebff984bd0425a64704d25d511e10cba84744a",
      "parents": [
        "8fb68595d508fd30ec90939572484b263600376c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 14 16:39:13 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:43 2007 +0100"
      },
      "message": "[GFS2] Remove bogus \u0027\\0\u0027 in rgrp.c\n\nNot sure how it slipped in, but we don\u0027t want it anyway.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.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": "d93cfa9884354dac2d8ccd894594a43e0b962b6f",
      "tree": "72704d54aaa99e0021d3cc0b025fb8c67b09e4ce",
      "parents": [
        "a7a2ff8a951ab373732116e7c31e2e1fe025d5e0"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Mon Jun 11 08:22:32 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:36 2007 +0100"
      },
      "message": "[GFS2] Fix deallocation issues\n\nThere were two issues during deallocation of unlinked inodes. The\nfirst was relating to the use of a \"try\" lock which in the case of\nthe inode lock wasn\u0027t trying hard enough to deallocate in all\ncircumstances (now changed to a normal glock) and in the case of\nthe iopen lock didn\u0027t wait for the demotion of the shared lock before\nattempting to get the exclusive lock, and thereby sometimes (timing dependent)\nnot completing the deallocation when it should have done.\n\nThe second issue related to the lack of a way to invalidate dcache entries\non remote nodes (now fixed by this patch) which meant that unlinks were\ntaking a long time to return disk space to the fs. By adding some code to\ninvalidate the dcache entries across the cluster for unlinked inodes, that\nis now fixed.\n\nThis patch was written jointly by Abhijith Das and Steven Whitehouse.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "a7a2ff8a951ab373732116e7c31e2e1fe025d5e0",
      "tree": "aec05033231051f07af384f2e89dd500ff3d7a66",
      "parents": [
        "d88101d4d82ea09433692af30618c3b7afb7da02"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Jun 08 17:01:40 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:33 2007 +0100"
      },
      "message": "[GFS2] return conflicts for GETLK\n\nWe weren\u0027t returning the correct result when GETLK found a conflict,\nwhich is indicated by userspace passing back a 1.\n\nSigned-off-by: Abhijith Das \u003cadas redhat com\u003e\nSigned-off-by: David Teigland \u003cteigland redhat com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "d88101d4d82ea09433692af30618c3b7afb7da02",
      "tree": "fcf0763671852d48ec8aac356017c5be0f68dead",
      "parents": [
        "037bcbb7564e35aef937c54799550cd27735aac6"
      ],
      "author": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Fri Jun 08 16:00:22 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:31 2007 +0100"
      },
      "message": "[GFS2] set plock owner in GETLK info\n\nSet the owner field in the plock info sent to userspace for GETLK.\nWithout this, gfs_controld won\u0027t correctly see when the GETLK from a\nprocess matches one of the process\u0027s existing locks.\n\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "037bcbb7564e35aef937c54799550cd27735aac6",
      "tree": "8155f5365683068480b1cb61bfcaa9679e8431b8",
      "parents": [
        "c8cdf479377462315d6b4f56379f8ac989b0ef29"
      ],
      "author": {
        "name": "akpm@linux-foundation.org",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Jun 08 16:42:14 2007 -0700"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:29 2007 +0100"
      },
      "message": "[GFS2] gfs2_lookupi() uninitialised var fix\n\nfs/gfs2/inode.c: In function \u0027gfs2_lookupi\u0027:\nfs/gfs2/inode.c:392: warning: \u0027error\u0027 may be used uninitialized in this function\n\nLooks like a real bug to me.\n\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "c8cdf479377462315d6b4f56379f8ac989b0ef29",
      "tree": "3eee98ca4af8bba92a6df096f6fd2de615a71fa5",
      "parents": [
        "b35997d4482ed24b43a5951c5b021d224b24293c"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 08 10:05:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:26 2007 +0100"
      },
      "message": "[GFS2] Recovery for lost unlinked inodes\n\nUnder certain circumstances its possible (though rather unlikely) that\ninodes which were unlinked by one node while still open on another might\nget \"lost\" in the sense that they don\u0027t get deallocated if the node\nwhich held the inode open crashed before it was unlinked.\n\nThis patch adds the recovery code which allows automatic deallocation of\nthe inode if its found during block allocation (the sensible time to\nlook for such inodes since we are scanning the rgrp\u0027s bitmaps anyway at\nthis time, so it adds no overhead to do this).\n\nSince the inode will have had its i_nlink set to zero, all we need to\ntrigger recovery is a lookup and an iput(), and the normal deallocation\ncode takes care of the rest.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "b35997d4482ed24b43a5951c5b021d224b24293c",
      "tree": "2def1b57f91a9fe21e0aba4da3707b95778f967b",
      "parents": [
        "e1cc86037b689a82cdb2df50c32fa8cf9d6b6c3a"
      ],
      "author": {
        "name": "Robert Peterson",
        "email": "rpeterso@redhat.com",
        "time": "Thu Jun 07 09:10:01 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:24 2007 +0100"
      },
      "message": "[GFS2] Can\u0027t mount GFS2 file system on AoE device\n\nThis patch fixes bug 243131: Can\u0027t mount GFS2 file system on AoE device.\nWhen using AoE devices with lock_nolock, there is no locking table, so\ngfs2 (and gfs1) uses the superblock s_id.  This turns out to be the device\nname in some cases.  In the case of AoE, the device contains a slash,\n(e.g. \"etherd/e1.1p2\") which is an invalid character when we try to\nregister the table in sysfs.  This patch replaces the \"/\" with underscore.\nRather than add a new variable to the stack, I\u0027m just reusing a (char *)\nvariable that\u0027s no longer used: table.\n\nThis code has been tested on the failing system using a RHEL5 patch.\nThe upstream code was tested by using gfs2_tool sb to interject a \"/\"\ninto the table name of a clustered gfs2 file system.\n\nSigned-off-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e1cc86037b689a82cdb2df50c32fa8cf9d6b6c3a",
      "tree": "8d7502be9841fae1f13afd2676b86c9139ac0fc2",
      "parents": [
        "ffed8ab342e39b8b5f4d5c94c37a708e225ffcd8"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 07 11:47:52 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:22 2007 +0100"
      },
      "message": "[GFS2] Fix bug in error path of inode\n\nThis fixes a bug in the ordering of operations in the error path of\ncreatei. Its not valid to do an iput() when holding the inode\u0027s glock\nsince the iput() will (in this case) result in delete_inode() being\ncalled which needs to grab the lock itself. This was causing the\nrecursive lock checking code to trigger.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "ffed8ab342e39b8b5f4d5c94c37a708e225ffcd8",
      "tree": "9252837c88f117abbd5f1f6252d116f022067531",
      "parents": [
        "44f487a5536a3afd96a9f571de24c36559e9ae82"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jun 07 11:29:35 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:19 2007 +0100"
      },
      "message": "[GFS2] Fix typo in rename of directories\n\nA typo caused us to pass a NULL pointer when renaming directories. It\nwas accidentally introduced in: [GFS2] Clean up inode number handling\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "44f487a5536a3afd96a9f571de24c36559e9ae82",
      "tree": "1bbdb85a23c75a29e49ec0b7a1cbb6834a5b55e6",
      "parents": [
        "292e539e9386823df8aab556f3da09667f78da8c"
      ],
      "author": {
        "name": "Patrick Caulfield",
        "email": "pcaulfie@redhat.com",
        "time": "Wed Jun 06 09:21:22 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:17 2007 +0100"
      },
      "message": "[DLM] variable allocation\n\nAdd a new flag, DLM_LSFL_FS, to be used when a file system creates a lockspace.\nThis flag causes the dlm to use GFP_NOFS for allocations instead of GFP_KERNEL.\n(This updated version of the patch uses gfp_t for ls_allocation.)\n\nSigned-Off-By: Patrick Caulfield \u003cpcaulfie@redhat.com\u003e\nSigned-Off-By: David Teigland \u003cteigland@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "4bd91ba18198eee42c39d4c334c825d1a0a4b445",
      "tree": "f385969756303a17a7ce3d24280fc6bd64063c87",
      "parents": [
        "bb8d8a6f54c1c84d7c74623491bab043b36a38c5"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jun 05 09:39:18 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:12 2007 +0100"
      },
      "message": "[GFS2] Add nanosecond timestamp feature\n\nThis adds a nanosecond timestamp feature to the GFS2 filesystem. Due\nto the way that the on-disk format works, older filesystems will just\nappear to have this field set to zero. When mounted by an older version\nof GFS2, the filesystem will simply ignore the extra fields so that\nit will again appear to have whole second resolution, so that its\ntrivially backward compatible.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "bb8d8a6f54c1c84d7c74623491bab043b36a38c5",
      "tree": "76c62c505df2a1acd090f4aacc63fb9eddd3950f",
      "parents": [
        "ddf4b426aababdae4cb96326d7aeb9d119f42c50"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 01 14:11:58 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:10 2007 +0100"
      },
      "message": "[GFS2] Fix sign problem in quota/statfs and cleanup _host structures\n\nThis patch fixes some sign issues which were accidentally introduced\ninto the quota \u0026 statfs code during the endianess annotation process.\nAlso included is a general clean up which moves all of the _host\nstructures out of gfs2_ondisk.h (where they should not have been to\nstart with) and into the places where they are actually used (often only\none place). Also those _host structures which are not required any more\nare removed entirely (which is the eventual plan for all of them).\n\nThe conversion routines from ondisk.c are also moved into the places\nwhere they are actually used, which for almost every one, was just one\nsingle place, so all those are now static functions. This also cleans up\nthe end of gfs2_ondisk.h which no longer needs the #ifdef __KERNEL__.\n\nThe net result is a reduction of about 100 lines of code, many functions\nnow marked static plus the bug fixes as mentioned above. For good\nmeasure I ran the code through sparse after making these changes to\ncheck that there are no warnings generated.\n\nThis fixes Red Hat bz #239686\n\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": "89918647a445fddfe223b097e29f775dcfa81eab",
      "tree": "627b21140ea3b2655c6818c03d3df55157c2a387",
      "parents": [
        "1990e917651d58a3c5155d0491431c09e29e385b"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 01 15:19:33 2007 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:03 2007 +0100"
      },
      "message": "[GFS2] Make the log reserved blocks depend on block size\n\nThe number of blocks which we reserve in the log at the start of each\ntransaction needs to depends upon the block size since the overhead is\nrelated to the number of \"pointers\" which can be fitted into a single\nblock.\n\nThis relates to Red Hat bz #240435\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "1990e917651d58a3c5155d0491431c09e29e385b",
      "tree": "6e53188136db71ed9abe8982b457ab2d66f1792a",
      "parents": [
        "0b7cac0fb0e541a7f54d0ba55b31d829ce3dd899"
      ],
      "author": {
        "name": "Abhijith Das",
        "email": "adas@redhat.com",
        "time": "Thu May 31 17:52:02 2007 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 09 08:23:01 2007 +0100"
      },
      "message": "[GFS2] Quotas non-functional - fix another bug\n\nThis patch fixes a bug where gfs2 was writing update quota usage\ninformation to the wrong location in the quota file.\n\nSigned-off-by: Abhijith Das \u003cadas@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    }
  ],
  "next": "2a87ab080607d009b8b2a8706f4e27d70402ca9c"
}
