)]}'
{
  "log": [
    {
      "commit": "489f7ab6c18cdd64a2d444e056d60a0e722f4ad7",
      "tree": "2c7ed6a0042dc15c91ece08c5a3866f610ddca6d",
      "parents": [
        "b322b7816908487c08b89b72f838174c37d8c836",
        "82d27b2b2f3a80ffa7759a49b9cba39e47df476e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 13:46:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 14 13:46:25 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (31 commits)\n  trivial: remove the trivial patch monkey\u0027s name from SubmittingPatches\n  trivial: Fix a typo in comment of addrconf_dad_start()\n  trivial: usb: fix missing space typo in doc\n  trivial: pci hotplug: adding __init/__exit macros to sgi_hotplug\n  trivial: Remove the hyphen from git commands\n  trivial: fix ETIMEOUT -\u003e ETIMEDOUT typos\n  trivial: Kconfig: .ko is normally not included in module names\n  trivial: SubmittingPatches: fix typo\n  trivial: Documentation/dell_rbu.txt: fix typos\n  trivial: Fix Pavel\u0027s address in MAINTAINERS\n  trivial: ftrace:fix description of trace directory\n  trivial: unnecessary (void*) cast removal in sound/oss/msnd.c\n  trivial: input/misc: Fix typo in Kconfig\n  trivial: fix grammo in bus_for_each_dev() kerneldoc\n  trivial: rbtree.txt: fix rb_entry() parameters in sample code\n  trivial: spelling fix in ppc code comments\n  trivial: fix typo in bio_alloc kernel doc\n  trivial: Documentation/rbtree.txt: cleanup kerneldoc of rbtree.txt\n  trivial: Miscellaneous documentation typo fixes\n  trivial: fix typo milisecond/millisecond for documentation and source comments.\n  ...\n"
    },
    {
      "commit": "fd40261354802b0f05f6f67121235aa002e87069",
      "tree": "935f23fa1528f6fe5a078383c9343907ea27fbb3",
      "parents": [
        "f3ad116588151b3371ae4e092290e4f48e62b8bb",
        "e83f1eb6bfc4004c19a99ee5f5aa65bd3fbecec3"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:28:59 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:28:59 2009 -0500"
      },
      "message": "Merge branch \u0027master\u0027 of git://oss.sgi.com/xfs/xfs into for-linus\n"
    },
    {
      "commit": "e83f1eb6bfc4004c19a99ee5f5aa65bd3fbecec3",
      "tree": "24e6783973cb580a1074c4689b4978bff29c2167",
      "parents": [
        "493b87e5ed352cf548e6456ddfc36576e28278ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 12 11:19:11 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:15:31 2009 -0500"
      },
      "message": "xfs: fix small mismerge in xfs_vn_mknod\n\nIdentation got messed up when merging the current_umask changes with\nthe generic ACL support.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "493b87e5ed352cf548e6456ddfc36576e28278ea",
      "tree": "50d7419e1de1f5818906f0e2bb801b616cfa3dc6",
      "parents": [
        "7747a0b0af5976ba3828796b4f7a7adc3bb76dbd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 12 11:34:55 2009 -0400"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 21:15:12 2009 -0500"
      },
      "message": "xfs: fix warnings with CONFIG_XFS_QUOTA disabled\n\nFix warnings about unitialized dquot variables by making sure\nxfs_qm_vop_dqalloc touches it even when quotas are disabled.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\n"
    },
    {
      "commit": "f3ad116588151b3371ae4e092290e4f48e62b8bb",
      "tree": "d652861a54132e35de2a80631f671cd7be0b26f6",
      "parents": [
        "d645727bdc2aed8e2e0e9496248f735481b5049a",
        "420118caa32c8ccdf9fce5a623b9de3f951573c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 18:21:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 18:21:19 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/configfs\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/configfs:\n  configfs: Rework configfs_depend_item() locking and make lockdep happy\n  configfs: Silence lockdep on mkdir() and rmdir()\n"
    },
    {
      "commit": "c53567ad4528b6efefc3fc22a354d20f6226a098",
      "tree": "faa289a41715e0a9a174623a76c7d52b10d4a6df",
      "parents": [
        "4ddbac98980fe0a42cf57af5d1032e024aced6a1",
        "748285ccf7ea76d3d76d0d5f2945ad6fb91f5329"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 13:17:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 13:17:12 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: use more NOFS allocation\n  dlm: connect to nodes earlier\n  dlm: fix use count with multiple joins\n  dlm: Make name input parameter of {,dlm_}new_lockspace() const\n"
    },
    {
      "commit": "c9b8af00ff71f86ff3d092cc60ca673e1d0eae5b",
      "tree": "25cc016481cc693552bebb4040041817280c2ccf",
      "parents": [
        "c59a264c9e932c828d533497e286b89e43c8d1be",
        "82681a318f9f028ea64e61f24bbd9ac535531921"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:50:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:50:42 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (154 commits)\n  [SCSI] osd: Remove out-of-tree left overs\n  [SCSI] libosd: Use REQ_QUIET requests.\n  [SCSI] osduld: use filp_open() when looking up an osd-device\n  [SCSI] libosd: Define an osd_dev wrapper to retrieve the request_queue\n  [SCSI] libosd: osd_req_{read,write} takes a length parameter\n  [SCSI] libosd: Let _osd_req_finalize_data_integrity receive number of out_bytes\n  [SCSI] libosd: osd_req_{read,write}_kern new API\n  [SCSI] libosd: Better printout of OSD target system information\n  [SCSI] libosd: OSD2r05: Attribute definitions\n  [SCSI] libosd: OSD2r05: Additional command enums\n  [SCSI] mpt fusion: fix up doc book comments\n  [SCSI] mpt fusion: Added support for Broadcast primitives Event handling\n  [SCSI] mpt fusion: Queue full event handling\n  [SCSI] mpt fusion: RAID device handling and Dual port Raid support is added\n  [SCSI] mpt fusion: Put IOC into ready state if it not already in ready state\n  [SCSI] mpt fusion: Code Cleanup patch\n  [SCSI] mpt fusion: Rescan SAS topology added\n  [SCSI] mpt fusion: SAS topology scan changes, expander events\n  [SCSI] mpt fusion: Firmware event implementation using seperate WorkQueue\n  [SCSI] mpt fusion: rewrite of ioctl_cmds internal generated function\n  ...\n"
    },
    {
      "commit": "6cb8a911745616eee0bdd97a2e82eb9723e9599a",
      "tree": "f5a95d10443653009ee0db290657b938c5215695",
      "parents": [
        "7f3591cfacf2d79c4f42238e46c7d053da8e020d",
        "3ea400581f2b595afd91207bbd79c11cb38598e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:43:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:43:44 2009 -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:\n  GFS2: Remove lock_kernel from gfs2_put_super()\n  GFS2: Add tracepoints\n"
    },
    {
      "commit": "7f3591cfacf2d79c4f42238e46c7d053da8e020d",
      "tree": "f2e9ed7b6b0bc176facaa49846734790023a6b16",
      "parents": [
        "16ffc3eeaa00d513b0076b7b2b96419f28acc912",
        "d1f0132e76a11b05167313c606a853953f416081"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:32:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:32:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest: (31 commits)\n  lguest: add support for indirect ring entries\n  lguest: suppress notifications in example Launcher\n  lguest: try to batch interrupts on network receive\n  lguest: avoid sending interrupts to Guest when no activity occurs.\n  lguest: implement deferred interrupts in example Launcher\n  lguest: remove obsolete LHREQ_BREAK call\n  lguest: have example Launcher service all devices in separate threads\n  lguest: use eventfds for device notification\n  eventfd: export eventfd_signal and eventfd_fget for lguest\n  lguest: allow any process to send interrupts\n  lguest: PAE fixes\n  lguest: PAE support\n  lguest: Add support for kvm_hypercall4()\n  lguest: replace hypercall name LHCALL_SET_PMD with LHCALL_SET_PGD\n  lguest: use native_set_* macros, which properly handle 64-bit entries when PAE is activated\n  lguest: map switcher with executable page table entries\n  lguest: fix writev returning short on console output\n  lguest: clean up length-used value in example launcher\n  lguest: Segment selectors are 16-bit long. Fix lg_cpu.ss1 definition.\n  lguest: beyond ARRAY_SIZE of cpu-\u003earch.gdt\n  ...\n"
    },
    {
      "commit": "c34752bc8b3196aee3115d1aa41972604ab0aea8",
      "tree": "db93341ab4043e1c21d83f0b7dfdbc1798b88845",
      "parents": [
        "65d52cc9d47975f4fbd0a50e62f4a49be2c0514a",
        "151060ac13144208bd7601d17e4c92c59b98072f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:31:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:31:20 2009 -0700"
      },
      "message": "Merge branch \u0027cuse\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027cuse\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  CUSE: implement CUSE - Character device in Userspace\n  fuse: export symbols to be used by CUSE\n  fuse: update fuse_conn_init() and separate out fuse_conn_kill()\n  fuse: don\u0027t use inode in fuse_file_poll\n  fuse: don\u0027t use inode in fuse_do_ioctl() helper\n  fuse: don\u0027t use inode in fuse_sync_release()\n  fuse: create fuse_do_open() helper for CUSE\n  fuse: clean up args in fuse_finish_open() and fuse_release_fill()\n  fuse: don\u0027t use inode in helpers called by fuse_direct_io()\n  fuse: add members to struct fuse_file\n  fuse: prepare fuse_direct_io() for CUSE\n  fuse: clean up fuse_write_fill()\n  fuse: use struct path in release structure\n  fuse: misc cleanups\n"
    },
    {
      "commit": "d614aec4752f8c61b2e7cb77806b6bd59aa50836",
      "tree": "3b0cfb3085c43415931dbf18666d582fb8ae3c75",
      "parents": [
        "db8e7f10ed67933ca272f4030eb7057b7f13de07",
        "ad7c52d0988a8965989dc06d630c52a5bde849d5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:29:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:29:42 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* \u0027for-2.6.31\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (29 commits)\n  ide: re-implement ide_pci_init_one() on top of ide_pci_init_two()\n  ide: unexport ide_find_dma_mode()\n  ide: fix PowerMac bootup oops\n  ide: skip probe if there are no devices on the port (v2)\n  sl82c105: add printk() logging facility\n  ide-tape: fix proc warning\n  ide: add IDE_DFLAG_NIEN_QUIRK device flag\n  ide: respect quirk_drives[] list on all controllers\n  hpt366: enable all quirks for devices on quirk_drives[] list\n  hpt366: sync quirk_drives[] list with pdc202xx_{new,old}.c\n  ide: remove superfluous SELECT_MASK() call from do_rw_taskfile()\n  ide: remove superfluous SELECT_MASK() call from ide_driveid_update()\n  icside: remove superfluous -\u003emaskproc method\n  ide-tape: fix IDE_AFLAG_* atomic accesses\n  ide-tape: change IDE_AFLAG_IGNORE_DSC non-atomically\n  pdc202xx_old: kill resetproc() method\n  pdc202xx_old: don\u0027t call pdc202xx_reset() on IRQ timeout\n  pdc202xx_old: use ide_dma_test_irq()\n  ide: preserve Host Protected Area by default (v2)\n  ide-gd: implement block device -\u003eset_capacity method (v2)\n  ...\n"
    },
    {
      "commit": "76d93ff344f547c633fd7b2ee6511bad82c4616f",
      "tree": "6e1dc59a1747f579abc4d726135d127f3b4e021d",
      "parents": [
        "27af1da4b58675d5c6bacf9b7de9c2746687d272"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Apr 22 13:38:58 2009 +0530"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 12 18:01:47 2009 +0200"
      },
      "message": "trivial: fix typo in bio_alloc kernel doc\n\nFix typo in bio_alloc kernel doc.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ab2274af0569a43c6da390e969759d1138799839",
      "tree": "daac5b9cea7fd1248b2d78206f61e925e31b1637",
      "parents": [
        "1dc492a0a4470852cb451db1e00d580ce9fd7a28"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@holoscopio.com",
        "time": "Fri Apr 17 08:14:23 2009 -0300"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 12 18:01:46 2009 +0200"
      },
      "message": "trivial: fix typo compatiable/compatiability has extra \u0027a\u0027.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2eadfc0ed68690075dcff08b30d87831388a1663",
      "tree": "5d27bab1a06b164371d13d47bc41ebacd83572fb",
      "parents": [
        "ff677f8d10a7b7dea6fbfc48d5ceeb3018cabb23"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Thu Apr 02 15:23:37 2009 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 12 18:01:45 2009 +0200"
      },
      "message": "trivial: fs/inode: Fix typo in file_update_time nanodoc\n\nThe advertised flag for not updating the time was wrong.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "ff677f8d10a7b7dea6fbfc48d5ceeb3018cabb23",
      "tree": "38c1a36a4f6394b61289f402abdf8b33899a0e34",
      "parents": [
        "88164ff4fca75051315d73729ea5a014e8986234"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Apr 01 14:40:51 2009 +0530"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 12 18:01:44 2009 +0200"
      },
      "message": "trivial: fix comment typo in fs/compat.c\n\nFix a typo in fs/compat.c\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "88164ff4fca75051315d73729ea5a014e8986234",
      "tree": "3ff161c15dd41f713820363ae16c8f754cf24c43",
      "parents": [
        "8ebf975608aaebd7feb33d77f07ba21a6380e086"
      ],
      "author": {
        "name": "Ali Gholami Rudi",
        "email": "ali@rudi.ir",
        "time": "Mon Mar 30 16:49:27 2009 +0430"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Jun 12 18:01:44 2009 +0200"
      },
      "message": "trivial: ext2: fix a typo in comment in ext2.h\n\nSigned-off-by: Ali Gholami Rudi \u003cali@rudi.ir\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7747a0b0af5976ba3828796b4f7a7adc3bb76dbd",
      "tree": "cf56450f057c3045341fe50c4e865466ee8a4522",
      "parents": [
        "35fd035968de4f674b9d62ee7b1d80ab7a50c384"
      ],
      "author": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Thu Jun 11 17:07:28 2009 -0500"
      },
      "committer": {
        "name": "Felix Blyakher",
        "email": "felixb@sgi.com",
        "time": "Fri Jun 12 10:26:52 2009 -0500"
      },
      "message": "xfs: fix freeing memory in xfs_getbmap()\n\nRegression from commit 28e211700a81b0a934b6c7a4b8e7dda843634d2f.\nNeed to free temporary buffer allocated in xfs_getbmap().\n\nSigned-off-by: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Hedi Berriche \u003chedi@sgi.com\u003e\nReported-by: Justin Piszcz \u003cjpiszcz@lucidpixels.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "82681a318f9f028ea64e61f24bbd9ac535531921",
      "tree": "529b6a5b4fd040fb54b7672b1a224ebd47445876",
      "parents": [
        "3860c97bd60a4525bb62eb90e3e7d2f02662ac59",
        "8ebf975608aaebd7feb33d77f07ba21a6380e086"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jun 12 10:02:03 2009 -0500"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Jun 12 10:02:03 2009 -0500"
      },
      "message": "[SCSI] Merge branch \u0027linus\u0027\n\nConflicts:\n\tdrivers/message/fusion/mptsas.c\n\nfixed up conflict between req-\u003edata_len accessors and mptsas driver updates.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "5718607bb670c721f45f0dbb1cc7d6c64969aab1",
      "tree": "9b595af2cd4649bea4c130b9dc223a5f886c34d2",
      "parents": [
        "9f155a9b3d5a5444bcc5e049ec2547bb5107150e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:09 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Jun 12 22:27:09 2009 +0930"
      },
      "message": "eventfd: export eventfd_signal and eventfd_fget for lguest\n\nlguest wants to attach eventfds to guest notifications, and lguest is\nusually a module.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nTo: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\n"
    },
    {
      "commit": "3ea400581f2b595afd91207bbd79c11cb38598e0",
      "tree": "c8d1095b2cb4b516c91f93646fea4d7cb14db92f",
      "parents": [
        "63997775b795f97ef51f3e56bc3abc9edc04bbb0"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 12 13:40:47 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 12 13:40:47 2009 +0100"
      },
      "message": "GFS2: Remove lock_kernel from gfs2_put_super()\n\nIt is not required here.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat,com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "63997775b795f97ef51f3e56bc3abc9edc04bbb0",
      "tree": "607519910f92b1101fbe0223c301c503001bc0ef",
      "parents": [
        "8ebf975608aaebd7feb33d77f07ba21a6380e086"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 12 08:49:20 2009 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Fri Jun 12 08:49:20 2009 +0100"
      },
      "message": "GFS2: Add tracepoints\n\nThis patch adds the ability to trace various aspects of the GFS2\nfilesystem. The trace points are divided into three groups,\nglocks, logging and bmap. These points have been chosen because\nthey allow inspection of the major internal functions of GFS2\nand they are also generic enough that they are unlikely to need\nany major changes as the filesystem evolves.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "aa7dfb8954ccf49e026ba13d12991a4eb7defb96",
      "tree": "ff2d6cf81629322906bd0cea1423e9efe516ffee",
      "parents": [
        "e59399d0102c1813cec48db5cebe1750313f88a0"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 08 01:39:33 2009 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:18 2009 -0400"
      },
      "message": "nilfs2: get rid of bd_mount_sem use from nilfs\n\nThis will remove every bd_mount_sem use in nilfs.\n\nThe intended exclusion control was replaced by the previous patch\n(\"nilfs2: correct exclusion control in nilfs_remount function\") for\nnilfs_remount(), and this patch will replace remains with a new mutex\nthat this inserts in nilfs object.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e59399d0102c1813cec48db5cebe1750313f88a0",
      "tree": "cd4fde6b5c442ede5d00b9640d3a545f847aeb8c",
      "parents": [
        "6dd4740662405a68bb229ac2b9e0aeaaf2188bf2"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 08 01:39:32 2009 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:18 2009 -0400"
      },
      "message": "nilfs2: correct exclusion control in nilfs_remount function\n\nnilfs_remount() changes mount state of a superblock instance.  Even\nthough nilfs accesses other superblock instances during mount or\nremount, the mount state was not properly protected in\nnilfs_remount().\n\nMoreover, nilfs_remount() has a lock order reversal problem;\nnilfs_get_sb() holds:\n\n  1. bdev-\u003ebd_mount_sem\n  2. sb-\u003es_umount  (sget acquires)\n\nand nilfs_remount() holds:\n\n  1. sb-\u003es_umount  (locked by the caller in vfs)\n  2. bdev-\u003ebd_mount_sem\n\nTo avoid these problems, this patch divides a semaphore protecting\nsuper block instances from nilfs-\u003ens_sem, and applies it to the mount\nstate protection in nilfs_remount().\n\nWith this change, bd_mount_sem use is removed from nilfs_remount() and\nthe lock order reversal will be resolved.  And the new rw-semaphore,\nnilfs-\u003ens_super_sem will properly protect the mount state except the\nmodification from nilfs_error function.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6dd4740662405a68bb229ac2b9e0aeaaf2188bf2",
      "tree": "36e6ae2a095613be1c36e8828ee9471e60c09de6",
      "parents": [
        "3f82ff55168e92859119bf348e9e0bd6714d2fea"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 08 01:39:31 2009 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:18 2009 -0400"
      },
      "message": "nilfs2: simplify remaining sget() use\n\nThis simplifies the test function passed on the remaining sget()\ncallsite in nilfs.\n\nInstead of checking mount type (i.e. ro-mount/rw-mount/snapshot mount)\nin the test function passed to sget(), this patch first looks up the\nnilfs_sb_info struct which the given mount type matches, and then\nacquires the super block instance holding the nilfs_sb_info.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3f82ff55168e92859119bf348e9e0bd6714d2fea",
      "tree": "f35bf723b02d6fe8c101252aa4a2c0e0172fd4aa",
      "parents": [
        "33c8e57c86d1bd1548c12a4f7c4bceb94b862cca"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 08 01:39:30 2009 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:17 2009 -0400"
      },
      "message": "nilfs2: get rid of sget use for checking if current mount is present\n\nThis stops using sget() for checking if an r/w-mount or an r/o-mount\nexists on the device.  This elimination uses a back pointer to the\ncurrent mount added to nilfs object.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "33c8e57c86d1bd1548c12a4f7c4bceb94b862cca",
      "tree": "8e2052a81dc1036e64d78da1082ab6af01ae4bbd",
      "parents": [
        "81fc20bd0e75ba6357bce2403767d7c2585d8f28"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 08 01:39:29 2009 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:17 2009 -0400"
      },
      "message": "nilfs2: get rid of sget use for acquiring nilfs object\n\nThis will change the way to obtain nilfs object in nilfs_get_sb()\nfunction.\n\nPreviously, a preliminary sget() call was performed, and the nilfs\nobject was acquired from a super block instance found by the sget()\ncall.\n\nThis patch, instead, instroduces a new dedicated function\nfind_or_create_nilfs(); as the name implies, the function finds an\nexistent nilfs object from a global list or creates a new one if no\nobject is found on the device.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "81fc20bd0e75ba6357bce2403767d7c2585d8f28",
      "tree": "e3680d7c8184da3cbb4b7efe83fe99626d08cd68",
      "parents": [
        "0c95ee190e1dea60c55c834d14695341085c9b7b"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Mon Jun 08 01:39:28 2009 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:17 2009 -0400"
      },
      "message": "nilfs2: remove meaningless EBUSY case from nilfs_get_sb function\n\nThe following EBUSY case in nilfs_get_sb() is meaningless.  Indeed,\nthis error code is never returned to the caller.\n\n    if (!s-\u003es_root) {\n          ...\n    } else if (!(s-\u003es_flags \u0026 MS_RDONLY)) {\n        err \u003d -EBUSY;\n    }\n\nThis simply removes the else case.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0c95ee190e1dea60c55c834d14695341085c9b7b",
      "tree": "2d0899f7aa04acc0679a760e6710c8605745ac92",
      "parents": [
        "d731e06323cb705003e4172ec209e469be4c18e1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:08:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:17 2009 -0400"
      },
      "message": "remove the call to -\u003ewrite_super in __sync_filesystem\n\nNow that all filesystems provide -\u003esync_fs methods we can change\n__sync_filesystem to only call -\u003esync_fs.\n\nThis gives us a clear separation between periodic writeouts which\nare driven by -\u003ewrite_super and data integrity syncs that go\nthrough -\u003esync_fs. (modulo file_fsync which is also going away)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d731e06323cb705003e4172ec209e469be4c18e1",
      "tree": "636b1b2f7aaea08fa7be27b3d908fe6dbe6ec70b",
      "parents": [
        "d579ed00aa96a7f7486978540a0d7cecaff742ae"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:08:36 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:17 2009 -0400"
      },
      "message": "nilfs2: call nilfs2_write_super from nilfs2_sync_fs\n\nThe call to -\u003ewrite_super from __sync_filesystem will go away, so make\nsure nilfs2 performs the same actions from inside -\u003esync_fs.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d579ed00aa96a7f7486978540a0d7cecaff742ae",
      "tree": "a1c988e4f97ea9e3750779ff9cfa0f12d95386e4",
      "parents": [
        "8c8006564a58d0ea912bf7f2d0a758d97e4b464f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:08:21 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:16 2009 -0400"
      },
      "message": "jffs2: call jffs2_write_super from jffs2_sync_fs\n\nThe call to -\u003ewrite_super from __sync_filesystem will go away, so make\nsure jffs2 performs the same actions from inside -\u003esync_fs.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8c8006564a58d0ea912bf7f2d0a758d97e4b464f",
      "tree": "696dd67b5b2c3e303fe17bf992ced9ccb4b34806",
      "parents": [
        "ad43ffdeea0a7bd3e6036c4aeec2e6699aef8ac7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:08:05 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:16 2009 -0400"
      },
      "message": "ufs: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs, and reimplement\n-\u003ewrite_super ontop of it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ad43ffdeea0a7bd3e6036c4aeec2e6699aef8ac7",
      "tree": "dcab8568dca72f130287dbe356c0fe0d7afe4ab7",
      "parents": [
        "7fbc6df0e7a561a313f49faa77829d5de45a97f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:07:45 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:16 2009 -0400"
      },
      "message": "sysv: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs, and reimplement\n-\u003ewrite_super ontop of it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7fbc6df0e7a561a313f49faa77829d5de45a97f8",
      "tree": "c19d60ff362527ce66489d2fdbecc34a89b0a0ef",
      "parents": [
        "58bc5bbb873eb5d86126a3fd3ff02aaa69ec15d0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:05:12 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:16 2009 -0400"
      },
      "message": "hfsplus: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs, and reimplement\n-\u003ewrite_super ontop of it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "58bc5bbb873eb5d86126a3fd3ff02aaa69ec15d0",
      "tree": "ecc9df2d1205d031cdca77f0d2fb4cd588621f3e",
      "parents": [
        "f83d6d46e7adf241a064a4a425e5cd8a8fd8925f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:04:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:15 2009 -0400"
      },
      "message": "hfs: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f83d6d46e7adf241a064a4a425e5cd8a8fd8925f",
      "tree": "3ebefc6dc784ec0156fd3a074b694630b5a88d88",
      "parents": [
        "40f31dd47e7c3d15af1f9845eda0fa0c4c33f32f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:04:35 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:15 2009 -0400"
      },
      "message": "fat: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "40f31dd47e7c3d15af1f9845eda0fa0c4c33f32f",
      "tree": "f711eb7629ced0f4ffd3cfb47eb69a9717143559",
      "parents": [
        "80e09fb942d38beb19dcffbeb14d496beeb0a989"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:04:17 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:15 2009 -0400"
      },
      "message": "ext2: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs, and reimplement\n-\u003ewrite_super ontop of it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "80e09fb942d38beb19dcffbeb14d496beeb0a989",
      "tree": "cdaa5cf4baf745ee4c83b8e03cb75581e7ea1ffa",
      "parents": [
        "561e47ce7244168788d4ecef9a2271df204b3c89"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:03:58 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:15 2009 -0400"
      },
      "message": "exofs: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs, and reimplement\n-\u003ewrite_super ontop of it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "561e47ce7244168788d4ecef9a2271df204b3c89",
      "tree": "b587db305924ff4fea0ca1ad18b341dfda65281e",
      "parents": [
        "e28964365faf3b9961695eb62b48cbc9f2a2a245"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:03:38 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:14 2009 -0400"
      },
      "message": "bfs: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs, and reimplement\n-\u003ewrite_super ontop of it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e28964365faf3b9961695eb62b48cbc9f2a2a245",
      "tree": "413a1bfac3009e2f9a370b8f709c37b1ea8878d0",
      "parents": [
        "c475879556a8602bbe2faa9a06f6e5fcc8c05bb2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jun 08 10:03:15 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:14 2009 -0400"
      },
      "message": "affs: add -\u003esync_fs\n\nAdd a -\u003esync_fs method for data integrity syncs.  Factor out common code\nbetween affs_put_super, affs_write_super and the new affs_sync_fs into\na helper.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c475879556a8602bbe2faa9a06f6e5fcc8c05bb2",
      "tree": "9d7e4882a08171d1ff1b84e3f02d3e604756815b",
      "parents": [
        "4427f0c36e22e2cd6696b2fe7643e9756a14b3d3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 01:22:00 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:14 2009 -0400"
      },
      "message": "sanitize -\u003efsync() for affs\n\nunfortunately, for affs (especially for affs directories) we have\nno real way to keep track of metadata ownership.  So we have to\ndo more or less what file_fsync() does, but we do *not* need to\ncall write_super() there.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4427f0c36e22e2cd6696b2fe7643e9756a14b3d3",
      "tree": "1d3035350178d974a1099b7795dc4a5f64b29fe8",
      "parents": [
        "224c886643e52e6b4c1143489cd0b289b6c03976"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 01:15:58 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:14 2009 -0400"
      },
      "message": "repair bfs_write_inode(), switch bfs to simple_fsync()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "224c886643e52e6b4c1143489cd0b289b6c03976",
      "tree": "62b7ca28fa19649acc39eb25f9b9c439a07ba87b",
      "parents": [
        "ffdc9064f8b4fa9db37a7d5180f41cce2ea2b7ad"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 00:46:40 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:14 2009 -0400"
      },
      "message": "Fix adfs GET_FRAG_ID() on big-endian\n\nMissing conversion to host-endian before doing shifts\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ffdc9064f8b4fa9db37a7d5180f41cce2ea2b7ad",
      "tree": "a7cc3f3940211682289983865e453b4d7083554b",
      "parents": [
        "bea6b64c277f0824cdaea6190209b26a164419d6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 00:44:42 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:13 2009 -0400"
      },
      "message": "repair adfs -\u003ewrite_inode(), switch to simple_fsync()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bea6b64c277f0824cdaea6190209b26a164419d6",
      "tree": "0eebdf31c3faf13d5ed7cc81f9e5e253dd4afe54",
      "parents": [
        "90de066443a8632bb42fed0a8216313d7da07aba"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 15:44:50 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:13 2009 -0400"
      },
      "message": "switch omfs to simple_fsync()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90de066443a8632bb42fed0a8216313d7da07aba",
      "tree": "7ee2fb0e0a87fd83cf7cce88e1044293fc438fc0",
      "parents": [
        "a932801543fe74050ebee07fde082234c46b624f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 15:40:27 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:13 2009 -0400"
      },
      "message": "switch udf to simple_fsync()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a932801543fe74050ebee07fde082234c46b624f",
      "tree": "2cda35832500fd0003a467b685fd9fb82968db73",
      "parents": [
        "05459ca81ac3064cb040d983342bc453cccec458"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 15:35:18 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:13 2009 -0400"
      },
      "message": "switch ufs to simple_fsync()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "05459ca81ac3064cb040d983342bc453cccec458",
      "tree": "3f563253b1d980a24659fcf0967be3b57ec020c5",
      "parents": [
        "0d7916d7e985da52cdd2989c900485e17b035972"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 15:29:45 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:12 2009 -0400"
      },
      "message": "repair sysv_write_inode(), switch sysv to simple_fsync()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0d7916d7e985da52cdd2989c900485e17b035972",
      "tree": "dfb4992f5150ece7ebb09754501e9e5981bb12ca",
      "parents": [
        "e1740a462ecb2eae213be15857b577cc6f6bb8b4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 15:21:06 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:12 2009 -0400"
      },
      "message": "switch minix to simple_fsync()\n\n* get minix_write_inode() to honour the second argument\n* now we can use simple_fsync() for minixfs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e1740a462ecb2eae213be15857b577cc6f6bb8b4",
      "tree": "8ac67062735e9bbf6ec9ef450ba3a7e5a74405f1",
      "parents": [
        "b522412aeabadbb302fd4338eaabf09d10e2d29c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 15:14:02 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:12 2009 -0400"
      },
      "message": "switch ext2 to simple_fsync()\n\nkill ext2_sync_file() (along with ext2/fsync.c), get rid of\next2_update_inode() - it\u0027s an alias of ext2_write_inode().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b522412aeabadbb302fd4338eaabf09d10e2d29c",
      "tree": "6b6b73686bc77e10a3a8275e84bc545ddf7755b6",
      "parents": [
        "964f5369667b342994fe3f384e9ba41d404ee796"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 13:44:36 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:12 2009 -0400"
      },
      "message": "Sanitize -\u003efsync() for FAT\n\n* mark directory data blocks as assoc. metadata\n* add new inode to deal with FAT, mark FAT blocks as assoc. metadata of that\n* now -\u003efsync() is trivial both for files and directories\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "964f5369667b342994fe3f384e9ba41d404ee796",
      "tree": "ad8a5f942af0696d69fb58abf05773c19d05e58b",
      "parents": [
        "79d25767583e4e086f8309bfd1f502660a64fe7f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 09:47:13 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:12 2009 -0400"
      },
      "message": "fs/qnx4: sanitize includes\n\nfs-internal parts of qnx4_fs.h taken to fs/qnx4/qnx4.h, includes adjusted,\nqnx4_fs.h doesn\u0027t need unifdef anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79d25767583e4e086f8309bfd1f502660a64fe7f",
      "tree": "f13414f324d859f82c604bb4027a4aab19bed909",
      "parents": [
        "d5aacad548db1ff547adf35d0a77eb2a8ed4fe14"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 09:30:08 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Sanitize qnx4 fsync handling\n\n* have directory operations use mark_buffer_dirty_inode(),\n  so that sync_mapping_buffers() would get those.\n* make qnx4_write_inode() honour its last argument.\n* get rid of insane copies of very ancient \"walk the indirect blocks\"\n  in qnx4/fsync - they never matched the actual fs layout and, fortunately,\n  never\u0027d been called.  Again, all this junk is not needed; -\u003efsync()\n  should just do sync_mapping_buffers + sync_inode (and if we implement\n  block allocation for qnx4, we\u0027ll need to use mark_buffer_dirty_inode()\n  for extent blocks)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d5aacad548db1ff547adf35d0a77eb2a8ed4fe14",
      "tree": "fbdf12dbacde76a1bb57738f1f67b87a673ddff2",
      "parents": [
        "337eb00a2c3a421999c39c94ce7e33545ee8baa7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 07 14:56:44 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "New helper - simple_fsync()\n\nwrites associated buffers, then does sync_inode() to write\nthe inode itself (and to make it clean).  Depends on\n-\u003ewrite_inode() honouring the second argument.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "337eb00a2c3a421999c39c94ce7e33545ee8baa7",
      "tree": "d9b780d095b638b1d8fa23841ff70347cf5daa08",
      "parents": [
        "4195f73d1329e49727bcceb028e58cb38376c2b0"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Tue May 12 15:10:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Push BKL down into -\u003eremount_fs()\n\n[xfs, btrfs, capifs, shmem don\u0027t need BKL, exempt]\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4195f73d1329e49727bcceb028e58cb38376c2b0",
      "tree": "b4c729c164d6907e4186f6dc51e319a604dee416",
      "parents": [
        "545b9fd3d737afc0bb5203b1e79194a471605acd"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu May 28 09:01:15 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:10 2009 -0400"
      },
      "message": "fs: block_dump missing dentry locking\n\nI think the block_dump output in __mark_inode_dirty is missing dentry locking.\nSurely the i_dentry list can change any time, so we may not even *get* a\ndentry there. If we do get one by chance, then it would appear to be able to\ngo away or get renamed at any time...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "545b9fd3d737afc0bb5203b1e79194a471605acd",
      "tree": "9b9a39b55c3145a225c5256ff2be3b07a1ee43bb",
      "parents": [
        "8688b8635266cf98f00c6b0350ea2dbe7c42c321"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jun 02 12:07:47 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:10 2009 -0400"
      },
      "message": "fs: remove incorrect I_NEW warnings\n\nSome filesystems can call in to sync an inode that is still in the\nI_NEW state (eg. ext family, when mounted with -osync). This is OK\nbecause the filesystem has sole access to the new inode, so it can\nmodify i_state without races (because no other thread should be\nmodifying it, by definition of I_NEW). Ie. a false positive, so\nremove the warnings.\n\nThe races are described here 7ef0d7377cb287e08f3ae94cebc919448e1f5dff,\nwhich is also where the warnings were introduced.\n\nReported-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f95022161d23ee661a48af8f280472209f513a67",
      "tree": "9e7c8455e4126b1dd5586ae973ad16c17653f5b3",
      "parents": [
        "13205fb9260c2377438599ef0773c6a3eaeb0b07"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 05 12:26:23 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:10 2009 -0400"
      },
      "message": "xfs: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nthe write_super method is used for\n\n (1) writing back the superblock periodically from pdflush\n (2) called just before -\u003esync_fs for data integerity syncs\n\nWe don\u0027t need (1) because we have our own peridoc writeout through xfssyncd,\nand we don\u0027t need (2) because xfs_fs_sync_fs performs a proper synchronous\nsuperblock writeout after all other data and metadata has been written out.\n\nAlso remove -\u003es_dirt tracking as it\u0027s only used to decide when too call\n-\u003ewrite_super.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Eric Sandeen \u003csandeen@sandeen.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "13205fb9260c2377438599ef0773c6a3eaeb0b07",
      "tree": "bcf5dee805d504ccc173c17cf28488a42cef2cb3",
      "parents": [
        "28ad0c118b0ed98b042d362acfe0017591921138"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon May 25 09:30:45 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:10 2009 -0400"
      },
      "message": "ntfs: remove old debug check for dirty data in ntfs_put_super()\n\nThis should not trigger anymore, so kill it.\n\nAcked-by: Anton Altaparmakov \u003caia21@cam.ac.uk\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9fd5746fd3d7838bf6ff991d50f1257057d1156f",
      "tree": "e0afe14ea9415b0e54c40703bb44acfec100a4b3",
      "parents": [
        "ebc1ac164560a241d9bf1b7519062910c3f90a01"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu May 21 16:01:00 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:09 2009 -0400"
      },
      "message": "fs: Remove i_cindex from struct inode\n\nThe only user of the i_cindex element in the inode structure is used\nis by the firewire drivers.  As part of an attempt to slim down the\ninode structure to save memory --- since a typical Linux system will\nhave hundreds of thousands if not millions of inodes cached, a\nreduction in the size inode has high leverage.\n\nThe firewire driver does not need i_cindex in any fast path, so it\u0027s\nsimple enough to calculate when it is needed, instead of wasting space\nin the inode structure.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: krh@redhat.com\nCc: stefanr@s5r6.in-berlin.de\nCc: linux-fsdevel@vger.kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ebc1ac164560a241d9bf1b7519062910c3f90a01",
      "tree": "db17fd3043b15f8269cce2c2d00213814022fc30",
      "parents": [
        "01ba687577647beef6c5f2ea59bfb56fac9fcde2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon May 11 23:35:03 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:09 2009 -0400"
      },
      "message": "-\u003ewrite_super lock_super pushdown\n\nPush down lock_super into -\u003ewrite_super instances and remove it from the\ncaller.\n\nFollowing filesystem don\u0027t need -\u003es_lock in -\u003ewrite_super and are skipped:\n\n * bfs, nilfs2 - no other uses of s_lock and have internal locks in\n\t-\u003ewrite_super\n * ext2 - uses BKL in ext2_write_super and has internal calls without s_lock\n * reiserfs - no other uses of s_lock as has reiserfs_write_lock (BKL) in\n \t-\u003ewrite_super\n * xfs - no other uses of s_lock and uses internal lock (buffer lock on\n\tsuperblock buffer) to serialize -\u003ewrite_super.  Also xfs_fs_write_super\n\tis superflous and will go away in the next merge window\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "01ba687577647beef6c5f2ea59bfb56fac9fcde2",
      "tree": "fadd888ca8568f3e373bda5b80857396cd79828a",
      "parents": [
        "4aa98cf768b6f2ea4b204620d949a665959214f6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon May 11 23:34:27 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:09 2009 -0400"
      },
      "message": "jffs2: move jffs2_write_super to super.c\n\njffs2_write_super is only called from super.c and doesn\u0027t use any\nfunctionality from fs.c.  So move it over to super.c and make it\nstatic there.\n\n[should go in through the vfs tree as it is a requirement for the\n next patch]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4aa98cf768b6f2ea4b204620d949a665959214f6",
      "tree": "dd6f5be97396b9e1f24a9697524da19463e7a8da",
      "parents": [
        "7f78d4cd4c5d01864943c22b79df1b6bde923129"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 08 13:36:58 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:08 2009 -0400"
      },
      "message": "Push BKL down into do_remount_sb()\n\n[folded fix from Jiri Slaby]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f78d4cd4c5d01864943c22b79df1b6bde923129",
      "tree": "c232d14121976caa8a38e49d6a8a555e99e27c04",
      "parents": [
        "6fac98dd218653c6aff8a0f56305c424930cea2a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 08 13:34:06 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:08 2009 -0400"
      },
      "message": "Push BKL down beyond VFS-only parts of do_mount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6fac98dd218653c6aff8a0f56305c424930cea2a",
      "tree": "0c5bdca0092e5ec3b201bae958071a7e8385409d",
      "parents": [
        "bbd6851a3213a525128473e978b692ab6ac11aba"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 08 13:31:17 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:08 2009 -0400"
      },
      "message": "Push BKL into do_mount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bbd6851a3213a525128473e978b692ab6ac11aba",
      "tree": "8ebddebadd8992871ab98456187cb00849a82058",
      "parents": [
        "6cfd0148425e528b859b26e436b01f23f6926224"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 06 10:43:07 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:08 2009 -0400"
      },
      "message": "Push lock_super() into the -\u003eremount_fs() of filesystems that care about it\n\nNote that since we can\u0027t run into contention between remount_fs and write_super\n(due to exclusion on s_umount), we have to care only about filesystems that\ntouch lock_super() on their own.  Out of those ext3, ext4, hpfs, sysv and ufs\ndo need it; fat doesn\u0027t since its -\u003eremount_fs() only accesses assign-once\ndata (basically, it\u0027s \"we have no atime on directories and only have atime on\nfiles for vfat; force nodiratime and possibly noatime into *flags\").\n\n[folded a build fix from hch]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6cfd0148425e528b859b26e436b01f23f6926224",
      "tree": "60e3257053554ff198fe5825e6f12a00c3b4422a",
      "parents": [
        "a9e220f8322e2b0e0b8903fe00265461cffad3f0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:40:36 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "push BKL down into -\u003eput_super\n\nMove BKL into -\u003eput_super from the only caller.  A couple of\nfilesystems had trivial enough -\u003eput_super (only kfree and NULLing of\ns_fs_info + stuff in there) to not get any locking: coda, cramfs, efs,\nhugetlbfs, omfs, qnx4, shmem, all others got the full treatment.  Most\nof them probably don\u0027t need it, but I\u0027d rather sort that out individually.\nPreferably after all the other BKL pushdowns in that area.\n\n[AV: original used to move lock_super() down as well; these changes are\nremoved since we don\u0027t do lock_super() at all in generic_shutdown_super()\nnow]\n[AV: fuse, btrfs and xfs are known to need no damn BKL, exempt]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a9e220f8322e2b0e0b8903fe00265461cffad3f0",
      "tree": "b3be7d58b8eb9fd810636223f0458191ec1b9d75",
      "parents": [
        "62c6943b4b1e818aea60c11c5a68a50785b83119"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 05 22:10:44 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "No need to do lock_super() for exclusion in generic_shutdown_super()\n\nWe can\u0027t run into contention on it.  All other callers of lock_super()\neither hold s_umount (and we have it exclusive) or hold an active\nreference to superblock in question, which prevents the call of\ngeneric_shutdown_super() while the reference is held.  So we can\nreplace lock_super(s) with get_fs_excl() in generic_shutdown_super()\n(and corresponding change for unlock_super(), of course).\n\nSince ext4 expects s_lock held for its put_super, take lock_super()\ninto it.  The rest of filesystems do not care at all.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "62c6943b4b1e818aea60c11c5a68a50785b83119",
      "tree": "ecdbb1c63d5c37b42f7074e4c53beaaa850ada2b",
      "parents": [
        "443b94baaa16771e98b29ca7c24f1e305738ffca"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 07 03:12:29 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "Trim a bit of crap from fs.h\n\ndo_remount_sb() is fs/internal.h fodder, fsync_no_super() is long gone.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "443b94baaa16771e98b29ca7c24f1e305738ffca",
      "tree": "cf498a25d012330928e0315222c46ea90c200530",
      "parents": [
        "5af7926ff33b68b3ba46531471c6e0564b285efc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 05 23:48:50 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "Make sure that all callers of remount hold s_umount exclusive\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5af7926ff33b68b3ba46531471c6e0564b285efc",
      "tree": "a25266f9db482ce9dd8e663148ffb0f1a524bd83",
      "parents": [
        "e5004753388dcf5e1b8a52ac0ab807d232340fbb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:41:25 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "enforce -\u003esync_fs is only called for rw superblock\n\nMake sure a superblock really is writeable by checking MS_RDONLY\nunder s_umount.  sync_filesystems needed some re-arragement for\nthat, but all but one sync_filesystem caller had the correct locking\nalready so that we could add that check there.  cachefiles grew\ns_umount locking.\n\nI\u0027ve also added a WARN_ON to sync_filesystem to assert this for\nfuture callers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e5004753388dcf5e1b8a52ac0ab807d232340fbb",
      "tree": "4a74a93f1468acb111ba9a3e9ed4a55f338f51fe",
      "parents": [
        "f3da392e9ff14b9f388e74319e6d195848991c07"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 16:08:56 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "cleanup sync_supers\n\nMerge the write_super helper into sync_super and move the check for\n-\u003ewrite_super earlier so that we can avoid grabbing a reference to\na superblock that doesn\u0027t have it.\n\nWhile we\u0027re at it also add a little comment documenting sync_supers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f3da392e9ff14b9f388e74319e6d195848991c07",
      "tree": "d9e7660e5c0b4524aeaafcc5b89a9d68a7ca3817",
      "parents": [
        "8c85e125124a473d6f3e9bb187b0b84207f81d91"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 04 03:32:03 2009 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "dcache: extrace and use d_unlinked()\n\nd_unlinked() will be used in middle-term to ban checkpointing when opened\nbut unlinked file is detected, and in long term, to detect such situation\nand special case on it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8c85e125124a473d6f3e9bb187b0b84207f81d91",
      "tree": "d883424a156c00c55193e46567efdffddb6ef6b9",
      "parents": [
        "517bfae28353e996160518add4d00033d3886e61"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 28 18:00:26 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "remove -\u003ewrite_super call in generic_shutdown_super\n\nWe just did a full fs writeout using sync_filesystem before, and if\nthat\u0027s not enough for the filesystem it can perform it\u0027s own writeout\nin -\u003eput_super, which many filesystems already do.\n\nMove a call to foofs_write_super into every foofs_put_super for now to\nguarantee identical behaviour until it\u0027s cleaned up by the individual\nfilesystem maintainers.\n\nExceptions:\n\n - affs already has identical copy \u0026 pasted code at the beginning of\n   affs_put_super so no need to do it twice.\n - xfs does the right thing without it and I have changes pending for\n   the xfs tree touching this are so I don\u0027t really need conflicts\n   here..\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "517bfae28353e996160518add4d00033d3886e61",
      "tree": "037d4c4de72da1c65a8be7c33a28f5ebcf0b31a3",
      "parents": [
        "94cb993f2ee99f3a9318e7b4dbb383497c4bedea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:45 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "qnx4: remove -\u003ewrite_super\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "94cb993f2ee99f3a9318e7b4dbb383497c4bedea",
      "tree": "71c2436a8588d253938d50e30b561dcefbb83cd7",
      "parents": [
        "b7d245de25d1f0bb75a0d04194b647762b30d3db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:44 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "ocfs2: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b7d245de25d1f0bb75a0d04194b647762b30d3db",
      "tree": "7c7f00651751db70432feef2a6a8327f67bc4109",
      "parents": [
        "ca41f7b918294c2a17780e057568413dcbfc6d49"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:43 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "gfs2: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ca41f7b918294c2a17780e057568413dcbfc6d49",
      "tree": "0f10dbd7e56d5e594802898d744820e551f17cda",
      "parents": [
        "59d697b70285c348c01cfc2695c3469ba71d7539"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:42 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "ext3: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "59d697b70285c348c01cfc2695c3469ba71d7539",
      "tree": "e383e5a2c0fc6196bed269aac032d3e363e9c4f7",
      "parents": [
        "c3f8a40c1cd5591b882497d1d00d43d0e5bb4698"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Apr 27 09:46:41 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:05 2009 -0400"
      },
      "message": "btrfs: remove -\u003ewrite_super and stop maintaining -\u003es_dirt\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c3f8a40c1cd5591b882497d1d00d43d0e5bb4698",
      "tree": "8280d4c7748be5d3b2b96c6bd11a643280d0b232",
      "parents": [
        "850b201b087f5525a0a7278551c2bcd0423c3b26"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:55 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "quota: Introduce writeout_quota_sb() (version 4)\n\nIntroduce this function which just writes all the quota structures but\navoids all the syncing and cache pruning work to expose quota structures\nto userspace. Use this function from __sync_filesystem when wait \u003d\u003d 0.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "850b201b087f5525a0a7278551c2bcd0423c3b26",
      "tree": "a076f135430380d2ffaeb041ee53d09352cb2752",
      "parents": [
        "60b0680fa236ac4e17ce31a50048c9d75f9ec831"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Apr 27 16:43:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "quota: cleanup dquota sync functions (version 4)\n\nCurrently the VFS calls vfs_dq_sync to sync out disk quotas for a given\nsuperblock.  This is a small wrapper around sync_dquots which for the\ncase of a non-NULL superblock is a small wrapper around quota_sync_sb.\n\nJust make quota_sync_sb global (rename it to sync_quota_sb) and call it\ndirectly.  Also call it directly for those cases in quota.c that have a\nsuperblock and leave sync_dquots purely an iterator over sync_quota_sb and\nremove it\u0027s superblock argument.\n\nTo make this nicer move the check for the lack of a quota_sync method\nfrom the callers into sync_quota_sb.\n\n[folded build fix from Alexander Beregalov \u003ca.beregalov@gmail.com\u003e]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "60b0680fa236ac4e17ce31a50048c9d75f9ec831",
      "tree": "c8ca34340a173326694247eab779e713c57202c2",
      "parents": [
        "c15c54f5f056ee4819da9fde59a5f2cd45445f23"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:53 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "vfs: Rename fsync_super() to sync_filesystem() (version 4)\n\nRename the function so that it better describe what it really does. Also\nremove the unnecessary include of buffer_head.h.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c15c54f5f056ee4819da9fde59a5f2cd45445f23",
      "tree": "0b8d142f0b8d44b71bf7ff9db7a373f90d0556a3",
      "parents": [
        "5cee5815d1564bbbd505fea86f4550f1efdb5cd0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:52 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "vfs: Move syncing code from super.c to sync.c (version 4)\n\nMove sync_filesystems(), __fsync_super(), fsync_super() from\nsuper.c to sync.c where it fits better.\n\n[build fixes folded]\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5cee5815d1564bbbd505fea86f4550f1efdb5cd0",
      "tree": "ba99c38932dc534bf56f0d7dcfeeca153f50b007",
      "parents": [
        "429479f031322a0cc5c921ffb2321a51718dc875"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:51 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:03 2009 -0400"
      },
      "message": "vfs: Make sys_sync() use fsync_super() (version 4)\n\nIt is unnecessarily fragile to have two places (fsync_super() and do_sync())\ndoing data integrity sync of the filesystem. Alter __fsync_super() to\naccommodate needs of both callers and use it. So after this patch\n__fsync_super() is the only place where we gather all the calls needed to\nproperly send all data on a filesystem to disk.\n\nNice bonus is that we get a complete livelock avoidance and write_supers()\nis now only used for periodic writeback of superblocks.\n\nsync_blockdevs() introduced a couple of patches ago is gone now.\n\n[build fixes folded]\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "429479f031322a0cc5c921ffb2321a51718dc875",
      "tree": "6741f7f1bfa1d889bbc4f44ab0489de97a3e47c0",
      "parents": [
        "bfe881255c74800147523b59c85328a1a826ba21"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:50 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:03 2009 -0400"
      },
      "message": "vfs: Make __fsync_super() a static function (version 4)\n\n__fsync_super() does the same thing as fsync_super(). So change the only\ncaller to use fsync_super() and make __fsync_super() static. This removes\nunnecessarily duplicated call to sync_blockdev() and prepares ground\nfor the changes to __fsync_super() in the following patches.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bfe881255c74800147523b59c85328a1a826ba21",
      "tree": "4ed9b761a440ee0b69a35a5c8bddc42c64195e47",
      "parents": [
        "5a3e5cb8e08bd876e2542c1451c9a93dab1b0e39"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:49 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:03 2009 -0400"
      },
      "message": "vfs: Call -\u003esync_fs() even if s_dirt is 0 (version 4)\n\nsync_filesystems() has a condition that if wait \u003d\u003d 0 and s_dirt \u003d\u003d 0, then\n-\u003esync_fs() isn\u0027t called. This does not really make much sence since s_dirt is\ngenerally used by a filesystem to mean that -\u003ewrite_super() needs to be called.\nBut -\u003esync_fs() does different things. I even suspect that some filesystems\n(btrfs?) sets s_dirt just to fool this logic.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a3e5cb8e08bd876e2542c1451c9a93dab1b0e39",
      "tree": "3b792d21246f1001adeca8b67df24ca71593dd3f",
      "parents": [
        "876a9f76abbcb775f8d21cbc99fa161f9e5937f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:48 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:03 2009 -0400"
      },
      "message": "vfs: Fix sys_sync() and fsync_super() reliability (version 4)\n\nSo far, do_sync() called:\n  sync_inodes(0);\n  sync_supers();\n  sync_filesystems(0);\n  sync_filesystems(1);\n  sync_inodes(1);\n\nThis ordering makes it kind of hard for filesystems as sync_inodes(0) need not\nsubmit all the IO (for example it skips inodes with I_SYNC set) so e.g. forcing\ntransaction to disk in -\u003esync_fs() is not really enough. Therefore sys_sync has\nnot been completely reliable on some filesystems (ext3, ext4, reiserfs, ocfs2\nand others are hit by this) when racing e.g. with background writeback. A\nsimilar problem hits also other filesystems (e.g. ext2) because of\nwrite_supers() being called before the sync_inodes(1).\n\nChange the ordering of calls in do_sync() - this requires a new function\nsync_blockdevs() to preserve the property that block devices are always synced\nafter write_super() / sync_fs() call.\n\nThe same issue is fixed in __fsync_super() function used on umount /\nremount read-only.\n\n[AV: build fixes]\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "876a9f76abbcb775f8d21cbc99fa161f9e5937f1",
      "tree": "971a1ac276c365a53ef1563c9d9f71013a563f09",
      "parents": [
        "864d7c4c068f23642efe91b33be3a84afe5f71e0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Apr 28 18:05:55 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "remove s_async_list\n\nRemove the unused s_async_list in the superblock, a leftover of the\nbroken async inode deletion code that leaked into mainline.  Having this\nin the middle of the sync/unmount path is not helpful for the following\ncleanups.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "864d7c4c068f23642efe91b33be3a84afe5f71e0",
      "tree": "512b253428958e95ca99274a664ace103f6bb10e",
      "parents": [
        "96029c4e09ccbd73a6d0ed2b29e80bf2586ad7ef"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Sun Apr 26 20:25:56 2009 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "fs: move mark_files_ro into file_table.c\n\nThis function walks the s_files lock, and operates primarily on the\nfiles in a superblock, so it better belongs here (eg. see also\nfs_may_remount_ro).\n\n[AV: ... and it shouldn\u0027t be static after that move]\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "96029c4e09ccbd73a6d0ed2b29e80bf2586ad7ef",
      "tree": "032d2ac7024250c18487a2c7122af68fe56567ff",
      "parents": [
        "d3ef3d7351ccfbef3e5d926efc5ee332136f40d4"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Sun Apr 26 20:25:55 2009 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "fs: introduce mnt_clone_write\n\nThis patch speeds up lmbench lat_mmap test by about another 2% after the\nfirst patch.\n\nBefore:\n avg \u003d 462.286\n std \u003d 5.46106\n\nAfter:\n avg \u003d 453.12\n std \u003d 9.58257\n\n(50 runs of each, stddev gives a reasonable confidence)\n\nIt does this by introducing mnt_clone_write, which avoids some heavyweight\noperations of mnt_want_write if called on a vfsmount which we know already\nhas a write count; and mnt_want_write_file, which can call mnt_clone_write\nif the file is open for write.\n\nAfter these two patches, mnt_want_write and mnt_drop_write go from 7% on\nthe profile down to 1.3% (including mnt_clone_write).\n\n[AV: mnt_want_write_file() should take file alone and derive mnt from it;\nnot only all callers have that form, but that\u0027s the only mnt about which\nwe know that it\u0027s already held for write if file is opened for write]\n\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3ef3d7351ccfbef3e5d926efc5ee332136f40d4",
      "tree": "bd875a2b267ae03b350e259675ccb1a04453b9b9",
      "parents": [
        "3174c21b74b56c6a53fddd41a30fd6f757a32bd0"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Sun Apr 26 20:25:54 2009 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:02 2009 -0400"
      },
      "message": "fs: mnt_want_write speedup\n\nThis patch speeds up lmbench lat_mmap test by about 8%. lat_mmap is set up\nbasically to mmap a 64MB file on tmpfs, fault in its pages, then unmap it.\nA microbenchmark yes, but it exercises some important paths in the mm.\n\nBefore:\n avg \u003d 501.9\n std \u003d 14.7773\n\nAfter:\n avg \u003d 462.286\n std \u003d 5.46106\n\n(50 runs of each, stddev gives a reasonable confidence, but there is quite\na bit of variation there still)\n\nIt does this by removing the complex per-cpu locking and counter-cache and\nreplaces it with a percpu counter in struct vfsmount. This makes the code\nmuch simpler, and avoids spinlocks (although the msync is still pretty\ncostly, unfortunately). It results in about 900 bytes smaller code too. It\ndoes increase the size of a vfsmount, however.\n\nIt should also give a speedup on large systems if CPUs are frequently operating\non different mounts (because the existing scheme has to operate on an atomic in\nthe struct vfsmount when switching between mounts). But I\u0027m most interested in\nthe single threaded path performance for the moment.\n\n[AV: minor cleanup]\n\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3174c21b74b56c6a53fddd41a30fd6f757a32bd0",
      "tree": "2fc978162ecc591e3005afd820663c7c869999de",
      "parents": [
        "1c755af4df75996b0dd4b7e6cacaf9d57a6ef2ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Apr 07 13:19:18 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "Move junk from proc_fs.h to fs/proc/internal.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1c755af4df75996b0dd4b7e6cacaf9d57a6ef2ef",
      "tree": "0a75e35164912f53b21ca48b829cabdfa6ea507d",
      "parents": [
        "79ed0226198c628133530b179a90dbf42b1c2eba"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 14:06:57 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch lookup_mnt()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79ed0226198c628133530b179a90dbf42b1c2eba",
      "tree": "7c6efb33209cc075257d3c1f5aa938b5f2d2feae",
      "parents": [
        "9393bd07cf218ca51d0e627653f906a9d76a9131"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:59:41 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_mount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9393bd07cf218ca51d0e627653f906a9d76a9131",
      "tree": "402205fe6336028df48cd65b31da0482f0b0bb41",
      "parents": [
        "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 13:58:15 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "switch follow_down()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "589ff870ed60a9ebdd5ec99ec3f5afe1282fe151",
      "tree": "a628f8db3bd587df6e2a918216aa64946b506e6f",
      "parents": [
        "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:28:19 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:01 2009 -0400"
      },
      "message": "Switch collect_mounts() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bab77ebf51e3902f608ecf08c9d34a0a52ac35a9",
      "tree": "710a8bba0a4f3738b32e4e5230ccf3665cd1b815",
      "parents": [
        "e64c390ca0b60fd2119331ef1fa888d7ea27e424"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:26:48 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch follow_up() to struct path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e64c390ca0b60fd2119331ef1fa888d7ea27e424",
      "tree": "f1fc964af0abc20b2325cea513cbafdf09537c39",
      "parents": [
        "91c9fa8f75877c0c1e455c23e8f8206c91c8f77f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 03:00:46 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch rqst_exp_parent()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "91c9fa8f75877c0c1e455c23e8f8206c91c8f77f",
      "tree": "ee26e614577b079102327393832b2ed503a4b527",
      "parents": [
        "5bf3bd2b5cb68ba43c91f5bd0ac043543fba2558"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:42:05 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch rqst_exp_get_by_name()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5bf3bd2b5cb68ba43c91f5bd0ac043543fba2558",
      "tree": "a8804b29b2e025a2d0f5a81d5f286b2c5d3fd84e",
      "parents": [
        "55430e2ecee574e729c12d4063b3ecabfa98fa82"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:14:32 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:00 2009 -0400"
      },
      "message": "switch exp_parent() to struct path\n\n... and lose the always-NULL last argument (non-NULL case had been\nsplit off a while ago).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "55430e2ecee574e729c12d4063b3ecabfa98fa82",
      "tree": "37a243110480207785cee25940538008b3e25859",
      "parents": [
        "dd5cae6e9772ecc62fd374f7a8ec10eb51c96c4d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 18 02:04:46 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:35:59 2009 -0400"
      },
      "message": "nfsd struct path use: exp_get_by_name()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "dd5cae6e9772ecc62fd374f7a8ec10eb51c96c4d"
}
