)]}'
{
  "log": [
    {
      "commit": "da477737c5ec99d37cb78dab909aa0402a0ebf18",
      "tree": "dba1fa168ff9673a3079d4d4c9394c3d8be24ddc",
      "parents": [
        "02456169e03bcfcebd3115b2a54c1c4a6829c875"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed May 23 13:55:45 2012 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu May 24 10:10:05 2012 +0200"
      },
      "message": "s390/headers: remove #ifdef __KERNEL__ from not exported headers\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "cd10502b8276b0486850685383243cbd26d50c8d",
      "tree": "aadada6e2334dbea754e25b8370bd32a1049052b",
      "parents": [
        "923e9a1399b620d063cd88537c64561bc3d5f905"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "Julia.Lawall@lip6.fr",
        "time": "Wed Apr 11 14:28:04 2012 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Apr 11 14:28:24 2012 +0200"
      },
      "message": "[S390] drivers/s390/block/dasd_eckd.c: add missing dasd_sfree_request\n\nExtend some error paths to call dasd_sfree_request as done earlier in the\nfunction.  The error-handling code is also moved to the end of the function.\n\nSigned-off-by: Julia Lawall \u003cJulia.Lawall@lip6.fr\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "25e2cf1c1ac52d5078cf8cc3fd2f2ad084669ddd",
      "tree": "17cc628cb917ee6165bbbaa323c501d7653d7ffb",
      "parents": [
        "35424f636e9b6e79a362162aaac96b12cc8e8f69"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Sun Mar 11 11:59:37 2012 -0400"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Mar 11 11:59:29 2012 -0400"
      },
      "message": "[S390] dasd: prevent validate server for offline devices\n\nCalling validate server on devices in offline processing may cause\nan OOPS in the dasd_sleep_on function.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nReviewed-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "fde15c3a3adc7b65cd0610dd6bca4804ee7ffd38",
      "tree": "62c1f93d33a7449fb07250993e4cf4086d5aa273",
      "parents": [
        "2215011dd9c1b01f1fc430620ed31f2baad267c3"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Sun Mar 11 11:59:31 2012 -0400"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Mar 11 11:59:29 2012 -0400"
      },
      "message": "[S390] irq: external interrupt code passing\n\nThe external interrupt handlers have a parameter called ext_int_code.\nBesides the name this paramter does not only contain the ext_int_code\nbut in addition also the \"cpu address\" (POP) which caused the external\ninterrupt.\nTo make the code a bit more obvious pass a struct instead so the called\nfunction can easily distinguish between external interrupt code and\ncpu address. The cpu address field however is named \"subcode\" since\nsome external interrupt sources do not pass a cpu address but a\ndifferent parameter (or none at all).\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "048cd4e51d24ebf7f3552226d03c769d6ad91658",
      "tree": "286c958b37b8934f1df0120c746a18d98d2ae009",
      "parents": [
        "500dd2370e77c9551ba298bdeeb91b02d8402199"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Feb 27 10:01:52 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 27 07:54:27 2012 -0800"
      },
      "message": "compat: fix compile breakage on s390\n\nThe new is_compat_task() define for the !COMPAT case in\ninclude/linux/compat.h conflicts with a similar define in\narch/s390/include/asm/compat.h.\n\nThis is the minimal patch which fixes the build issues.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f16330316321d1c388d13096f6858f5d2dac29dc",
      "tree": "0dda4b86553b3e5881c8a53391f24210b17a2eb6",
      "parents": [
        "f9f8d02fae0dc47d8868fd069bb88d12f8d1d71f"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Wed Jan 18 18:03:41 2012 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Jan 18 18:03:42 2012 +0100"
      },
      "message": "[S390] dasd: revalidate server for new pathgroup\n\nIf a pathgroup is established we get an event and have to revalidate\nthe server to propagate supported features like PAV and enable them.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f9f8d02fae0dc47d8868fd069bb88d12f8d1d71f",
      "tree": "fa37c08bfe9d581382642286122cfbaa12ca00bd",
      "parents": [
        "e0a15d5bf4e2fc46a867c43c41b6a41622f673ad"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Wed Jan 18 18:03:40 2012 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Jan 18 18:03:42 2012 +0100"
      },
      "message": "[S390] dasd: revert LCU optimization\n\nRemove the optimization that validate server is only called once per\nLCU. If a device is set online we only know that we already know the\nLCU. But if the pathgroup was lost in between we have to do a\nvalidate server again to activate some features.\nSince we have no indication when a pathgroup gets lost we have to do\na validate server every time a device is set online.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "72f318897e50c29b91efd1ed24515a93c138a2ba",
      "tree": "7e7ef8138d5afacd1be4655e4458dc4cee432d1e",
      "parents": [
        "a0e86bd4252519321b0d102dc4ed90557aa7bee9",
        "2fa1d4fce599809e6bd7d95756709a5faef30710"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 08:11:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 09 08:11:13 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (31 commits)\n  [S390] disassembler: mark exception causing instructions\n  [S390] Enable exception traces by default\n  [S390] return address of compat signals\n  [S390] sysctl: get rid of dead declaration\n  [S390] dasd: fix fixpoint divide exception in define_extent\n  [S390] dasd: add sanity check to detect path connection error\n  [S390] qdio: fix kernel panic for zfcp 31-bit\n  [S390] Add s390x description to Documentation/kdump/kdump.txt\n  [S390] Add VMCOREINFO_SYMBOL(high_memory) to vmcoreinfo\n  [S390] dasd: fix expiration handling for recovery requests\n  [S390] outstanding interrupts vs. smp_send_stop\n  [S390] ipc: call generic sys_ipc demultiplexer\n  [S390] zcrypt: Fix error return codes.\n  [S390] zcrypt: Rework length parameter checking.\n  [S390] cleanup trap handling\n  [S390] Remove Kerntypes leftovers\n  [S390] topology: increase poll frequency if change is anticipated\n  [S390] entry[64].S improvements\n  [S390] make arch/s390 subdirectories depend on config option\n  [S390] kvm: move cmf host id constant out of lowcore\n  ...\n\nFix up conflicts in arch/s390/kernel/{smp.c,topology.c} due to the\nsysdev removal clashing with \"topology: get rid of ifdefs\" which moved\nsome of that code around.\n"
    },
    {
      "commit": "972b2c719990f91eb3b2310d44ef8a2d38955a14",
      "tree": "b25a250ec5bec4b7b6355d214642d8b57c5cab32",
      "parents": [
        "02550d61f49266930e674286379d3601006b2893",
        "c3aa077648e147783a7a53b409578234647db853"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)\n  reiserfs: Properly display mount options in /proc/mounts\n  vfs: prevent remount read-only if pending removes\n  vfs: count unlinked inodes\n  vfs: protect remounting superblock read-only\n  vfs: keep list of mounts for each superblock\n  vfs: switch -\u003eshow_options() to struct dentry *\n  vfs: switch -\u003eshow_path() to struct dentry *\n  vfs: switch -\u003eshow_devname() to struct dentry *\n  vfs: switch -\u003eshow_stats to struct dentry *\n  switch security_path_chmod() to struct path *\n  vfs: prefer -\u003edentry-\u003ed_sb to -\u003emnt-\u003emnt_sb\n  vfs: trim includes a bit\n  switch mnt_namespace -\u003eroot to struct mount\n  vfs: take /proc/*/mounts and friends to fs/proc_namespace.c\n  vfs: opencode mntget() mnt_set_mountpoint()\n  vfs: spread struct mount - remaining argument of next_mnt()\n  vfs: move fsnotify junk to struct mount\n  vfs: move mnt_devname\n  vfs: move mnt_list to struct mount\n  vfs: switch pnode.h macros to struct mount *\n  ...\n"
    },
    {
      "commit": "ece2ccb668046610189d88d6aaf05aeb09c988a1",
      "tree": "a0349945f7537de2aca420b47ced23b6294f8b65",
      "parents": [
        "d10577a8d86a0c735488d66d32289a6d66bcfa20",
        "a218d0fdc5f9004164ff151d274487f6799907d0",
        "ff01bb4832651c6d25ac509a06a10fcbd75c461c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:15:54 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:15:54 2012 -0500"
      },
      "message": "Merge branches \u0027vfsmount-guts\u0027, \u0027umode_t\u0027 and \u0027partitions\u0027 into Z\n"
    },
    {
      "commit": "f4ae40a6a50a98ac23d4b285f739455e926a473e",
      "tree": "c84d7393700bd85e5285a194f8c22d4d00e36b28",
      "parents": [
        "48176a973d65572e61d0ce95495e5072887e6fb6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 04:33:43 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:56 2012 -0500"
      },
      "message": "switch debugfs to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ff01bb4832651c6d25ac509a06a10fcbd75c461c",
      "tree": "bbfdebd317db97d346df78293566f36e883b1be9",
      "parents": [
        "94ea4158f1733e3b10cef067d535f504866e0c41"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Sep 16 02:31:11 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:07 2012 -0500"
      },
      "message": "fs: move code out of buffer.c\n\nMove invalidate_bdev, block_sync_page into fs/block_dev.c.  Export\nkill_bdev as well, so brd doesn\u0027t have to open code it.  Reduce\nbuffer_head.h requirement accordingly.\n\nRemoved a rather large comment from invalidate_bdev, as it looked a bit\nobsolete to bother moving.  The small comment replacing it says enough.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b38f27e8425a132ed2dc49ffb3741404e81363d8",
      "tree": "8f1e09bc2bd902ace0307d7a1639db349303829d",
      "parents": [
        "b206181d636d416fde48c7f493d7ac5d935b57e3"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Tue Dec 27 11:27:28 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Dec 27 11:27:14 2011 +0100"
      },
      "message": "[S390] dasd: fix fixpoint divide exception in define_extent\n\nIf an IO request is build on an alias device without prefix enabled\nwe try to calculate with zero data from the alias device. This\ntriggers a BUG statement with fixpoint divide exception.\nThis case is very unlikely and can only happen if the pathgroup is\nlost with an alias device already in use.\nPrevent the alias device from being used in this case.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "b206181d636d416fde48c7f493d7ac5d935b57e3",
      "tree": "d28c27ee31d1fbfc6cfb3b3abf01c465f2c2607a",
      "parents": [
        "e58b0d902f7c7c407bae9c8bc8d90fa1d06184c5"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Tue Dec 27 11:27:27 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Dec 27 11:27:14 2011 +0100"
      },
      "message": "[S390] dasd: add sanity check to detect path connection error\n\nPrevents possible data corruption by detecting cabling error.\nTherefor read and compare the UID for all available channel paths.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "1afcfd5948ff27cdbc6d91e9f3cdbdd7f3b1e566",
      "tree": "bef462a868ceca3a1af8509da68c981e17be2ced",
      "parents": [
        "85ac7ca5972d63d23aa5ea75c3834a33b951f89d"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Tue Dec 27 11:27:23 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Dec 27 11:27:13 2011 +0100"
      },
      "message": "[S390] dasd: fix expiration handling for recovery requests\n\nThe \u0027expires\u0027 value of a ccw requests defines how long the device\ndriver should wait for a response from the evice after the request has\nbeen submitted to the channel subsystem. After the expiration time\n(e.g. 30 seconds) the waiting request will be cancelled and started\nagain. This protects the DASD devices from beeing blocked by errors\nthat cause the answering I/O interrupt to be lost.\n\nIn case of error recovery requests, this \u0027expires\u0027 value used to be\nset to 0, so in case of a lost interrupt, such a recovery request\nwould never expire and block the device. To prevent this kind of\nproblem, all recovery requests need to have an expires value \u003e 0 as\nwell. If not specified otherwise, this should be the same expires\nvalue as for the original request.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "edbaa603eb801655e80808a9cf3d3b622e8ac66b",
      "tree": "a0a0091fc1d17fea32d6d21e3ce13d228fba6325",
      "parents": [
        "7239f65cf364180cdb100a4ed211b2a9f9a72119"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 21 16:26:03 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 21 16:26:03 2011 -0800"
      },
      "message": "driver-core: remove sysdev.h usage.\n\nThe sysdev.h file should not be needed by any in-kernel code, so remove\nthe .h file from these random files that seem to still want to include\nit.\n\nThe sysdev code will be going away soon, so this include needs to be\nremoved no matter what.\n\nCc: Jiandong Zheng \u003cjdzheng@broadcom.com\u003e\nCc: Scott Branden \u003csbranden@broadcom.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\nCc: David Brown \u003cdavidb@codeaurora.org\u003e\nCc: Daniel Walker \u003cdwalker@fifo99.com\u003e\nCc: Bryan Huntsman \u003cbryanh@codeaurora.org\u003e\nCc: Ben Dooks \u003cben-linux@fluff.org\u003e\nCc: Wan ZongShun \u003cmcuos.com@gmail.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: \"Venkatesh Pallipadi\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\n"
    },
    {
      "commit": "b4fdcb02f1e39c27058a885905bd0277370ba441",
      "tree": "fd4cfd1994f21f44afe5e7904681fb5ac09f81b8",
      "parents": [
        "044595d4e448305fbaec472eb7d22636d24e7d8c",
        "6dd9ad7df2019b1e33a372a501907db293ebcd0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:06:58 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:06:58 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.2/core\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.2/core\u0027 of git://git.kernel.dk/linux-block: (29 commits)\n  block: don\u0027t call blk_drain_queue() if elevator is not up\n  blk-throttle: use queue_is_locked() instead of lockdep_is_held()\n  blk-throttle: Take blkcg-\u003elock while traversing blkcg-\u003epolicy_list\n  blk-throttle: Free up policy node associated with deleted rule\n  block: warn if tag is greater than real_max_depth.\n  block: make gendisk hold a reference to its queue\n  blk-flush: move the queue kick into\n  blk-flush: fix invalid BUG_ON in blk_insert_flush\n  block: Remove the control of complete cpu from bio.\n  block: fix a typo in the blk-cgroup.h file\n  block: initialize the bounce pool if high memory may be added later\n  block: fix request_queue lifetime handling by making blk_queue_cleanup() properly shutdown\n  block: drop @tsk from attempt_plug_merge() and explain sync rules\n  block: make get_request[_wait]() fail if queue is dead\n  block: reorganize throtl_get_tg() and blk_throtl_bio()\n  block: reorganize queue draining\n  block: drop unnecessary blk_get/put_queue() in scsi_cmd_ioctl() and blk_get_tg()\n  block: pass around REQ_* flags instead of broken down booleans during request alloc/free\n  block: move blk_throtl prototypes to block/blk.h\n  block: fix genhd refcounting in blkio_policy_parse_and_set()\n  ...\n\nFix up trivial conflicts due to \"mddev_t\" -\u003e \"struct mddev\" conversion\nand making the request functions be of type \"void\" instead of \"int\" in\n - drivers/md/{faulty.c,linear.c,md.c,md.h,multipath.c,raid0.c,raid1.c,raid10.c,raid5.c}\n - drivers/staging/zram/zram_drv.c\n"
    },
    {
      "commit": "246ccea184423ccdec3be1ca3d400cc3c547404d",
      "tree": "ca81c9592dadeed4f6152e89f0fd227c4c8eadf1",
      "parents": [
        "3c52e49d7c81434e3d2ccb520b3a654c2cc7d03d"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:17:16 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:46 2011 +0100"
      },
      "message": "[S390] sparse: fix sparse NULL pointer warnings\n\nFix two NULL pointer warnings in the dasd driver:\n\ndrivers/s390/block/dasd_eckd.c:2353:20: warning: Using plain integer as NULL pointer\ndrivers/s390/block/dasd_eckd.c:2415:44: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "c8d1c0ff840bbf06c60ff4235202a4b1457d8f59",
      "tree": "b183231aa76a1268141c68cf8566f9e07915800b",
      "parents": [
        "6ffed94ea73c0c15e3201d4d479b6efe8343fb96"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Sun Oct 30 15:17:09 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:45 2011 +0100"
      },
      "message": "[S390] dasd: prevent path verification before resume\n\nMark the device as suspended and delay execution of the path\nverification worker to prevent mix-up.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "5915a873fcb1cea5260940be519f2cdf898f7be3",
      "tree": "ca7ce2f06e46f74ed771d93ed97ce55b113dadb3",
      "parents": [
        "214b8ffc205bcf2ca5b04b3903be13a9257c3fbd"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Sun Oct 30 15:16:57 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:44 2011 +0100"
      },
      "message": "[S390] dasd: re-initialize read_conf buffer for retries\n\nThe buffer for read configuration data has to be initialized with an\nEBCDIC string to show support for extended UIDs to z/VM.\nIf this read configuration data CQR needs to be retried, the buffer\nmay have changed in between. So re-initialize the buffer to get a\ncorrect extended UID under z/VM.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "214b8ffc205bcf2ca5b04b3903be13a9257c3fbd",
      "tree": "a5344a72ee114692c7fd179529cc912be5ccc178",
      "parents": [
        "3948a102509f3bc3cc8728b2556a1ad7a4dbd7e7"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Sun Oct 30 15:16:56 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:44 2011 +0100"
      },
      "message": "[S390] dasd: wait for terminated request\n\nAfter terminating a request in the dasd_sleep_on_immediatly function,\nwait for the clear interrupt to be received before starting the\nnew request. This prevents the requests from getting mixed up.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "de400d6b78d15a73023485f050bc6b1709dc7a79",
      "tree": "2d2e7233a76982db4cf12ff0859054a33e46a911",
      "parents": [
        "ce949717b559709423c1ef716a9db16d1dcadaed"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "peter.oberparleiter@de.ibm.com",
        "time": "Sun Oct 30 15:16:04 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Oct 30 15:16:15 2011 +0100"
      },
      "message": "[S390] fix mismatch in summation of I/O IRQ statistics\n\nCurrent IRQ statistics support does not show detail counts for I/O\ninterrupts which are processed internally only. The result is a\nsummation count which is way off such as this one:\n\n           CPU0       CPU1       CPU2\nI/O:       1331        710        442\n[...]\nQAI:         15         16         16   [I/O] QDIO Adapter Interrupt\nQDI:          1          0          0   [I/O] QDIO Interrupt\nDAS:        706        645        381   [I/O] DASD\nC15:         26         10          0   [I/O] 3215\nC70:          0          0          0   [I/O] 3270\nTAP:          0          0          0   [I/O] Tape\nVMR:          0          0          0   [I/O] Unit Record Devices\nLCS:          0          0          0   [I/O] LCS\nCLW:          0          0          0   [I/O] CLAW\nCTC:          0          0          0   [I/O] CTC\nAPB:          0          0          0   [I/O] AP Bus\n\nFix this by moving I/O interrupt accounting into the common I/O layer.\n\nSigned-off-by: Peter Oberparleiter \u003cpeter.oberparleiter@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "5c04b426f2e8b46cfc7969a35b2631063a3c646c",
      "tree": "2d27d9f5d2fe5d5e8fbc01a467ec58bcb50235c1",
      "parents": [
        "499337bb6511e665a236a6a947f819d98ea340c6",
        "899e3ee404961a90b828ad527573aaaac39f0ab1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Oct 19 14:30:42 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Oct 19 14:30:42 2011 +0200"
      },
      "message": "Merge branch \u0027v3.1-rc10\u0027 into for-3.2/core\n\nConflicts:\n\tblock/blk-core.c\n\tinclude/linux/blkdev.h\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "5a7bbad27a410350e64a2d7f5ec18fc73836c14f",
      "tree": "3447cd62dbcbd77b4071e2eb7576f1d7632ef2d3",
      "parents": [
        "c20e8de27fef9f59869c81c288ad6cf28200e00c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Mon Sep 12 12:12:01 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Sep 12 12:12:01 2011 +0200"
      },
      "message": "block: remove support for bio remapping from -\u003emake_request\n\nThere is very little benefit in allowing to let a -\u003emake_request\ninstance update the bios device and sector and loop around it in\n__generic_make_request when we can archive the same through calling\ngeneric_make_request from the driver and letting the loop in\ngeneric_make_request handle it.\n\nNote that various drivers got the return value from -\u003emake_request and\nreturned non-zero values for errors.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ba465d830ed1703713251917f154688ec537580f",
      "tree": "972fd00c8b2c72f320887c9910ba46f1d12314f7",
      "parents": [
        "27e7318c3e47e4fac71fcb472623434063ccc7a5"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Wed Aug 24 17:15:10 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Aug 24 17:15:23 2011 +0200"
      },
      "message": "[S390] drivers/s390/block/dasd_ioctl.c: add missing kfree\n\nData is only used to temporarily hold information to be copied to the user\nlevel, so it should be freed before leaving the function.\n\nA simplified version of the semantic match that finds this problem is as\nfollows: (http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@exists@\nlocal idexpression x;\nstatement S,S1;\nexpression E;\nidentifier fl;\nexpression *ptr !\u003d NULL;\n@@\n\nx \u003d \\(kmalloc\\|kzalloc\\|kcalloc\\)(...);\n...\nif (x \u003d\u003d NULL) S\n\u003c... when !\u003d x\n     when !\u003d if (...) { \u003c+...kfree(x)...+\u003e }\n     when any\n     when !\u003d true x \u003d\u003d NULL\nx-\u003efl\n...\u003e\n(\nif (x \u003d\u003d NULL) S1\n|\nif (...) { ... when !\u003d x\n               when forall\n(\n return \\(0\\|\u003c+...x...+\u003e\\|ptr\\);\n|\n* return ...;\n)\n}\n)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "34cd551a31cd4e35cd3f9ed9f13bb46b4ee98508",
      "tree": "7dbea7ccd0d77864f75e85b353450fb8bd54f2c2",
      "parents": [
        "9dc7356ee1266d6a69fc80f28d006f71c20bf172"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Wed Aug 03 16:44:23 2011 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Aug 03 16:44:19 2011 +0200"
      },
      "message": "[S390] dasd: check if raw track access is supported\n\nTo use raw track access some special storage server commands are\nneeded. Older storage hardware may not support these commands.\nSo check if raw track access is possible while setting the DASD\nonline.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "e4258d55bff06780cd424c671b576a90acc1592f",
      "tree": "a8a7da35bff7d9379678ba8f59f512f12681f768",
      "parents": [
        "7dd6b3343fdc190712d1620ee8848d25c4c77c33"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Wed Aug 03 16:44:20 2011 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Aug 03 16:44:19 2011 +0200"
      },
      "message": "[S390] dasd: use vmalloc for statistics input buffer\n\nThe size of the buffer that is used to store DASD statistics input\nstrings depends on the user input. If the input string is to large,\nthe write operation could fail with -ENOMEM. To avoid this, use\nvmalloc instead of kmalloc.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fa52aa7a82f9226b3874a69816bda3af821f002",
      "tree": "7d61364211cf22bb942b5eff7286c3c1f037fdf0",
      "parents": [
        "8bb3a2ebcf2a406a60d04f5a8756ea936b7f0bf3"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Sun Jul 24 10:48:32 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Sun Jul 24 10:48:23 2011 +0200"
      },
      "message": "[S390] dasd: add enhanced DASD statistics interface\n\nThis patch extends the DASD statistics to allow for a more detailed\nanalysis of DASD I/O operations. In particular we want the statistics\nto provide answers to the following questions:\n- How many requests used a PAV alias?\n- How many requests used High Performance FICON?\n- How do read request perform versus write requests?\n\nThe existing DASD statistics interface has several shortcomings\n- The interface for global data is a formatted text table in procfs\n  (/proc/dasd/statistics). The layout is meant for human readers and\n  is not to easy to parse. If values get to large for the table\n  layout, they get scaled down.\n- The statistics which are collected per block device can be\n  accessed via an ioctl interface, which can only be extended by\n  defining a new ioctl.\n- There is no statistics interface for individual PAV base and alias\n  devices.\n\nTo overcome theses shortcomings we create a new DASD statistics\ninterface in debugfs. This interface will contain one entry for global\ndata, one per DASD block device, and one per DASD base and alias\ndevice. Each file contains the statistic data in easy to parse\nname/value and name/array pairs. The existing interfaces will remain\nfunctional, but they will not be extended.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "d7b250e2a2d7f3cd23cf8d8d6689285e6f51a98d",
      "tree": "5bfb94fff047818db31613762a8986784241ca8c",
      "parents": [
        "df7997ab1ca82ae3c37a2f5eb98613fc24527f95"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu May 26 09:48:24 2011 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu May 26 09:48:24 2011 +0200"
      },
      "message": "[S390] irq: merge irq.c and s390_ext.c\n\nMerge irq.c and s390_ext.c into irq.c. That way all external interrupt\nrelated functions are together.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "df7997ab1ca82ae3c37a2f5eb98613fc24527f95",
      "tree": "51794f46cb7fc7fa4db8fbadb8feb265fc8ef499",
      "parents": [
        "902050bcdece6191565c055539e82c5cc534feed"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu May 26 09:48:23 2011 +0200"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Thu May 26 09:48:24 2011 +0200"
      },
      "message": "[S390] irq: fix service signal external interrupt handling\n\nInterrupt sources like pfault, sclp, dasd_diag and virtio all use the\nservice signal external interrupt subclass mask in control register 0\nto enable and disable the corresponding interrupt.\nBecause no reference counting is implemented each subsystem thinks it\nis the only user of subclass and sets and clears the bit like it wants.\nThis leads to case that unloading the dasd diag module under z/VM\ncauses both sclp and pfault interrupts to be masked. The result will\nbe locked up system sooner or later.\nFix this by introducing a new way to set (register) and clear\n(unregister) the service signal subclass mask bit in cr0.\nAlso convert all drivers.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "364c18d817a6beb3303e6b8f28ea37d9c06ff382",
      "tree": "6089e8ee580db186bdb6f20d813deea2e8c3874d",
      "parents": [
        "7712f83aa904fef0d7d6e5ba7684c3272bddbb19"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon May 23 10:24:26 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon May 23 10:24:28 2011 +0200"
      },
      "message": "[S390] dasd: fix return code handling\n\nCheck return value of itcw_add_dcw() for error code and return it.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "7712f83aa904fef0d7d6e5ba7684c3272bddbb19",
      "tree": "39bf9b46fbe385eb7cb44118be12f6637b83659f",
      "parents": [
        "66ceed5ad1318863c21710f316942bcefff8081c"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon May 23 10:24:25 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon May 23 10:24:28 2011 +0200"
      },
      "message": "[S390] get rid of unused variables\n\nRemove trivially unused variables as detected with -Wunused-but-set-variable.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "aade6c0dfb46ff7ce7df0ed7a2ef15d2d3c47f05",
      "tree": "a4fca8380efa83444a7256a038ad29b545bbf6ed",
      "parents": [
        "fdb1bb157525907163e2a0c96fe8bb19fbe867a8"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Tue May 10 17:13:38 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Tue May 10 17:13:42 2011 +0200"
      },
      "message": "[S390] dasd: prevent IO error during reserve/release loop\n\nThe termination of running CQR caused by reserve/release operations\nmay lead to an IO error if reserve/release is done in a tight loop.\nPrevent this by increasing the retry counter after termination.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "a9851832857dc1e4efefca1713f5cff3e168a25c",
      "tree": "f5ca038fcc00f5ed2cac37c575aec550e170c65c",
      "parents": [
        "ed961581a7ca91d6a4852af2e44333e983100505"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Apr 29 10:42:19 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Fri Apr 29 10:42:25 2011 +0200"
      },
      "message": "[S390] irqstats: fix counting of pfault, dasd diag and virtio irqs\n\npfault, dasd diag and virtio all use the same external interrupt number.\nThe respective interrupt handlers decide by the subcode if they are\nmeant to handle the interrupt.\nCounting is currently done before looking at the subcode which means\neach handler counts an interrupt even if it is not handling it.\nFix this by moving the kstat code after the code which looks at the\nsubcode.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "c7a29e56f0a3526b71e9694b403b8e2cbe9c31e5",
      "tree": "5ff321fdec6bdaff9e1d58a38df2fdef2c28324b",
      "parents": [
        "e35c76cd47c244eaa7a74adaabde4d0a1cadb907"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Wed Apr 20 10:15:35 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Apr 20 10:15:44 2011 +0200"
      },
      "message": "[S390] dasd: check sense type in device change handler\n\nWhen evaluating sense data in dasd_eckd_check_for_device_change, we\nmust always check for the type of sense data in byte 27, bit 0, to\nmake sure that the rest of the sense data is interpreted correctly.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "65f8da475995f667af5298c644707dbd9d646ca6",
      "tree": "bca8597443060e79f09a8843903bbc55b2dece52",
      "parents": [
        "2f666bcf757cb72549f360ef6da02f03620a48b6"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Wed Apr 20 10:15:30 2011 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Apr 20 10:15:43 2011 +0200"
      },
      "message": "[S390] dasd: fix race between open and offline\n\nThe dasd_open function uses the private_data pointer of the gendisk to\nfind the dasd_block structure that matches the gendisk. When a DASD\ndevice is set offline, we set the private_data pointer of the gendisk\nto NULL and later remove the dasd_block structure, but there is still\na small race window, in which dasd_open could first read a pointer\nfrom the private_data field and then try to use it, after the structure\nhas already been freed.\nTo close this race window, we will store a pointer to the dasd_devmap\nstructure of the base device in the private_data field. The devmap\nentries are not deleted, and we already have proper locking and\nreference counting in place, so that we can safely get from a devmap\npointer to the dasd_device and dasd_block structures of the device.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "7c8d891c2c7714965db1685289787b0c526f9c42",
      "tree": "63f4bb25df1a3b9798d318e8c2c28b959709f182",
      "parents": [
        "62d00867514ae1c81ab5e809e189ca159536daee",
        "54eaae3028e6b09de0bd2232a8176fc0d0a2397a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:47:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 25 17:47:04 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6:\n  [S390] cmpxchg: implement cmpxchg64()\n  [S390] xchg/cmpxchg: move to own header file\n  [S390] ccwgroup_driver: remove duplicate members\n  [S390] ccw_bus_type: make it static\n  [S390] ccw_driver: remove duplicate members\n  [S390] qdio: prevent handling of buffers if count is zero\n  [S390] setup: register bss section as resource\n  [S390] setup: simplify setup_resources()\n  [S390] wire up sys_syncfs\n  [S390] wire up sys_clock_adjtime\n  [S390] wire up sys_open_by_handle_at\n  [S390] wire up sys_name_to_handle_at\n  [S390] oprofile: disable hw sampling for CONFIG_32BIT\n  [S390] early: limit savesys cmd string handling\n  [S390] early: Fix possible overlapping data buffer\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "3bda058b0c39fc72188116d2fd71af08dd0fe5b0",
      "tree": "94d2cb60f495ebb6b14b40ad9e23feb9ba001ce9",
      "parents": [
        "9a26513eb67ec4b2cb1744834076afad21b68aac"
      ],
      "author": {
        "name": "Sebastian Ott",
        "email": "sebott@linux.vnet.ibm.com",
        "time": "Wed Mar 23 10:16:02 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Mar 23 10:15:59 2011 +0100"
      },
      "message": "[S390] ccw_driver: remove duplicate members\n\nRemove the owner and name members of struct\nccw_driver and convert all drivers to store\nthis data in the embedded struct device_driver.\n\nSigned-off-by: Sebastian Ott \u003csebott@linux.vnet.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "d54cddb620fa493968111f479029dcd910fcb921",
      "tree": "c448ba8da77a7fd47cef03bf6ec7e71c24d22ad1",
      "parents": [
        "ee5894fb0f128476dc9afb2ed50cab1427dfe0c3"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Mar 15 17:08:21 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Tue Mar 15 17:08:22 2011 +0100"
      },
      "message": "[S390] dasd: get rid of compile warning\n\nGet rid of this:\n\ndrivers/s390/block/dasd_eckd.c: In function \u0027dasd_eckd_build_cp_tpm_track.clone.8\u0027:\ndrivers/s390/block/dasd_eckd.c:2589:34: warning: \u0027len_to_track_end\u0027 may be used uninitialized in this function\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0c0db0355bc070b4c623622248d3f577642536b9",
      "tree": "6bb3a0464d621bae16c5f61ba3920c5c1359a61d",
      "parents": [
        "cbdbb4c1d22e26f9d5314fefe6f2c7e5ed7f6a0f"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Mar 03 17:56:05 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Thu Mar 03 17:56:14 2011 +0100"
      },
      "message": "[S390] xpram: remove __initdata attribute from module parameters\n\nThe module parameter \u0027devs\u0027 and \u0027sizes\u0027 are marked as __initdata. The\nmemory for the parameters are freed after module_init completed. This\ncan lead to kernel crashes in param_free_charp. Remove the __initdata\nattribute to fix the problem.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "5da24b7627ff821e154a3aaecd5d60e1d8e228a5",
      "tree": "62934f77909e29097807d0bb28122990fd3e51f5",
      "parents": [
        "ee715087024b91a6ceb85ba2d02f6c35d354a48c"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Thu Feb 17 13:13:55 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Thu Feb 17 13:13:58 2011 +0100"
      },
      "message": "[S390] dasd: correct device table\n\nThe 3880 storage control unit supports a 3380 device\ntype, but not a 3390 device type.\n\nReported-by: Stephen Powell \u003czlinuxman@wowway.com\u003e\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f602f6d694a99a0141c066c8f0b360a0b3c16915",
      "tree": "cde04e5bf11edeeb54e32153a90ec024a76c921a",
      "parents": [
        "70d1f365568e0cdbc9f4ab92428e1830fdb09ab0"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Mon Jan 31 11:30:03 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Jan 31 11:30:20 2011 +0100"
      },
      "message": "[S390] dasd: prevent panic with unresumed devices\n\nIf a device is not resumed correctly the system crashes when this\ndevice is set offline. This may happen if it gets disconnected\nduring suspend.\nCheck if the device is already removed from alias handling and skip\nthese steps to prevent the kernel panic.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "275220f0fcff1adf28a717076e00f575edf05fda",
      "tree": "d249bccc80c64443dab211639050c4fb14332648",
      "parents": [
        "fe3c560b8a22cb28e54fe8950abef38e88d75831",
        "81c5e2ae33c4b19e53966b427e33646bf6811830"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 10:45:01 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.38/core\u0027 of git://git.kernel.dk/linux-2.6-block: (43 commits)\n  block: ensure that completion error gets properly traced\n  blktrace: add missing probe argument to block_bio_complete\n  block cfq: don\u0027t use atomic_t for cfq_group\n  block cfq: don\u0027t use atomic_t for cfq_queue\n  block: trace event block fix unassigned field\n  block: add internal hd part table references\n  block: fix accounting bug on cross partition merges\n  kref: add kref_test_and_get\n  bio-integrity: mark kintegrityd_wq highpri and CPU intensive\n  block: make kblockd_workqueue smarter\n  Revert \"sd: implement sd_check_events()\"\n  block: Clean up exit_io_context() source code.\n  Fix compile warnings due to missing removal of a \u0027ret\u0027 variable\n  fs/block: type signature of major_to_index(int) to major_to_index(unsigned)\n  block: convert !IS_ERR(p) \u0026\u0026 p to !IS_ERR_NOR_NULL(p)\n  cfq-iosched: don\u0027t check cfqg in choose_service_tree()\n  fs/splice: Pull buf-\u003eops-\u003econfirm() from splice_from_pipe actors\n  cdrom: export cdrom_check_events()\n  sd: implement sd_check_events()\n  sr: implement sr_check_events()\n  ...\n"
    },
    {
      "commit": "09a8e7adcf960bd6a7204f3f3b377a89ce22efbf",
      "tree": "837be99a9d6d7e2019233c5a27efe38974c7ead7",
      "parents": [
        "e4dbb0f2b5dd6a836d0e5c60aa5f573e0bbcf76a"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Wed Jan 05 12:48:07 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:30 2011 +0100"
      },
      "message": "[S390] dasd: Correct retry counter for terminated I/O.\n\nIn case the DASD driver needs to term a running I/O the retry counter\nis decreased twice.\nRemove the unnecessary retry counter decrease in das_term_IO.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "e4dbb0f2b5dd6a836d0e5c60aa5f573e0bbcf76a",
      "tree": "cb18d0b08f2ccc8d6a078456b77f111805777db8",
      "parents": [
        "6f272b9cec285a9610a2acf101f694bc58bed37e"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Wed Jan 05 12:48:06 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:30 2011 +0100"
      },
      "message": "[S390] dasd: Add support for raw ECKD access.\n\nNormal I/O operations through the DASD device driver give only access\nto the data fields of an ECKD device even for track based I/O.\nThis patch extends the DASD device driver to give access to whole\nECKD tracks including count, key and data fields.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "6f272b9cec285a9610a2acf101f694bc58bed37e",
      "tree": "5c333d47bfaefa34ccd827744f35381133f4444b",
      "parents": [
        "5a27e60dec59a95bd7f8ae9a19ae2ede4f76395b"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Wed Jan 05 12:48:05 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:30 2011 +0100"
      },
      "message": "[S390] dasd: Prevent deadlock during suspend/resume.\n\nThe freeze callback may set a stop bit so that a worker thread could\nnot start I/O. The discipline specific freeze function waits for the\nworker to be completed.\nSet the stop_bit after the discipline specific freeze function has\nreturned and no worker is running.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "5a27e60dec59a95bd7f8ae9a19ae2ede4f76395b",
      "tree": "20595cba0caebf7a8a5f0afac9785c7d717f3e8c",
      "parents": [
        "a4d26c6aeceea330ee5e0fb6b017d57e3b252d29"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Wed Jan 05 12:48:04 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:30 2011 +0100"
      },
      "message": "[S390] dasd: Improve handling of stolen DASD reservation\n\nIf a DASD device has been reserved by a Linux system, and later\nthis reservation is ‘stolen’ by a second system by means of an\nunconditional reserve, then the first system receives a\nnotification about this fact. With this patch such an event can\nbe either ignored, as before, or it can be used to let the device\nfail all I/O request, so that the device will not block anymore.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "a4d26c6aeceea330ee5e0fb6b017d57e3b252d29",
      "tree": "eed358de48ff28e4fba73d9925abafa2699a7b6c",
      "parents": [
        "ef19298b406f93af4bb249f0776deb8366e97532"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Wed Jan 05 12:48:03 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:30 2011 +0100"
      },
      "message": "[S390] dasd: do path verification for paths added at runtime\n\nWhen a new path is added at runtime, the CIO layer will call the drivers\npath_event callback. The DASD device driver uses this callback to trigger\na path verification for the new path. The driver will use only those\npaths for I/O, which have been successfully verified.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "ef19298b406f93af4bb249f0776deb8366e97532",
      "tree": "8b729739a57fd50e9fe67232b1c3b1264bf678a5",
      "parents": [
        "9062014cb60194630272709da82d5879d563865e"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Wed Jan 05 12:48:02 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:29 2011 +0100"
      },
      "message": "[S390] dasd: add High Performance FICON multitrack support\n\nSome storage systems support multitrack High Performance FICON\nrequests, which read or write data to more than one track.\nThis patch enables the DASD device driver to generate multitrack\nHigh Performance FICON requests.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "3283942b71eb5023184b378230f5f0e3fbb40991",
      "tree": "269d2d33b7eade2a3dc1092e217ff00bcc8a6e6f",
      "parents": [
        "30d77c3e1cbdff304b16ae02cb56baaa308e42fd"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 05 12:47:30 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:25 2011 +0100"
      },
      "message": "[S390] dasd: add support for irq statistics\n\nAdd support for DASD I/O interrupt statistics in /proc/interrupts.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "052ff461c8427629aee887ccc27478fc7373237c",
      "tree": "1b2cae2956cc94c5b32730d467e20ff447b8c072",
      "parents": [
        "545b288dcbdea58a2ce2afba5f6a8302d31ac459"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 05 12:47:28 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:25 2011 +0100"
      },
      "message": "[S390] irq: have detailed statistics for interrupt types\n\nUp to now /proc/interrupts only has statistics for external and i/o\ninterrupts but doesn\u0027t split up them any further.\nThis patch adds a line for every single interrupt source so that it\nis possible to easier tell what the machine is/was doing.\nPart of the output now looks like this;\n\n           CPU0       CPU2       CPU4\nEXT:       3898       4232       2305\nI/O:        782        315        245\nCLK:       1029       1964        727   [EXT] Clock Comparator\nIPI:       2868       2267       1577   [EXT] Signal Processor\nTMR:          0          0          0   [EXT] CPU Timer\nTAL:          0          0          0   [EXT] Timing Alert\nPFL:          0          0          0   [EXT] Pseudo Page Fault\n[...]\nNMI:          0          1          1   [NMI] Machine Checks\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "6f9a3c330652b0fdb65d89e94977a8e79fe730e7",
      "tree": "bdf071266d5b2d423ee7d4adb8cf25621d598ed9",
      "parents": [
        "53ec24b1e6c7118a127cf029a1519a2ce55268ec"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Jan 05 12:47:15 2011 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Jan 05 12:47:23 2011 +0100"
      },
      "message": "[S390] cleanup s390 Kconfig\n\nMake use of def_bool and def_tristate where possible and add sensible\ndefaults to the config symbols where applicable. This shortens the\ndefconfig file by another ~40 lines.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e525fd89d380c4a94c0d63913a1dd1a593ed25e7",
      "tree": "d226ef40d3f99e42fcf272ad432585cbd641ebec",
      "parents": [
        "e09b457bdb7e8d23fc54dcef0930ac697d8de895"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:17 2010 +0100"
      },
      "message": "block: make blkdev_get/put() handle exclusive access\n\nOver time, block layer has accumulated a set of APIs dealing with bdev\nopen, close, claim and release.\n\n* blkdev_get/put() are the primary open and close functions.\n\n* bd_claim/release() deal with exclusive open.\n\n* open/close_bdev_exclusive() are combination of open and claim and\n  the other way around, respectively.\n\n* bd_link/unlink_disk_holder() to create and remove holder/slave\n  symlinks.\n\n* open_by_devnum() wraps bdget() + blkdev_get().\n\nThe interface is a bit confusing and the decoupling of open and claim\nmakes it impossible to properly guarantee exclusive access as\nin-kernel open + claim sequence can disturb the existing exclusive\nopen even before the block layer knows the current open if for another\nexclusive access.  Reorganize the interface such that,\n\n* blkdev_get() is extended to include exclusive access management.\n  @holder argument is added and, if is @FMODE_EXCL specified, it will\n  gain exclusive access atomically w.r.t. other exclusive accesses.\n\n* blkdev_put() is similarly extended.  It now takes @mode argument and\n  if @FMODE_EXCL is set, it releases an exclusive access.  Also, when\n  the last exclusive claim is released, the holder/slave symlinks are\n  removed automatically.\n\n* bd_claim/release() and close_bdev_exclusive() are no longer\n  necessary and either made static or removed.\n\n* bd_link_disk_holder() remains the same but bd_unlink_disk_holder()\n  is no longer necessary and removed.\n\n* open_bdev_exclusive() becomes a simple wrapper around lookup_bdev()\n  and blkdev_get().  It also has an unexpected extra bdev_read_only()\n  test which probably should be moved into blkdev_get().\n\n* open_by_devnum() is modified to take @holder argument and pass it to\n  blkdev_get().\n\nMost of bdev open/close operations are unified into blkdev_get/put()\nand most exclusive accesses are tested atomically at the open time (as\nit should).  This cleans up code and removes some, both valid and\ninvalid, but unnecessary all the same, corner cases.\n\nopen_bdev_exclusive() and open_by_devnum() can use further cleanup -\nrename to blkdev_get_by_path() and blkdev_get_by_devt() and drop\nspecial features.  Well, let\u0027s leave them for another day.\n\nMost conversions are straight-forward.  drbd conversion is a bit more\ninvolved as there was some reordering, but the logic should stay the\nsame.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Peter Osterlund \u003cpetero2@telia.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Alex Elder \u003caelder@sgi.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: dm-devel@redhat.com\nCc: drbd-dev@lists.linbit.com\nCc: Leo Chen \u003cleochen@broadcom.com\u003e\nCc: Scott Branden \u003csbranden@broadcom.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "196339f1733726ffd69ab81ec1c66678585f5846",
      "tree": "2974211770a2d0ead128f80fef972748673e7e3c",
      "parents": [
        "b25c477b3456ce87a5938d2ea511bf13187d0f0d"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Fri Oct 29 16:50:43 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Fri Oct 29 16:50:50 2010 +0200"
      },
      "message": "[S390] dasd: provide a Sense Path Group ID ioctl\n\nThe BIODASDSNID ioctl executes a \u0027Sense Path Group ID\u0027\ncommand on a DASD ECKD device. The returned path group data\nallows user space programs to determine path state and\npath group ID of the channel paths to the device.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "56b86b615b807e043339979878a2de88f900ee4f",
      "tree": "7ca79c9f6c39ff7cef764aad4240d3ec353e13f4",
      "parents": [
        "6d00d00bf23b86b352e2d075cfe751acd1908278"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Mon Oct 25 16:10:49 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Oct 25 16:10:21 2010 +0200"
      },
      "message": "[S390] dasd: ignore unsolicited interrupts for DIAG\n\nFor the DASD DIAG discipline IO is started through special diagnose\ncalls. Unsolicited interrupts may contain information about the device\nitself. But this information is not needed because the device is not\nused directly.\nFix the case that an unimplemented dicipline function may be called\nby ignoring unsolicited interrupts for the DIAG disciplin.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "a5a0061fb3a22bbd9b108af8382142fd0f41ebee",
      "tree": "03e643e12b634b201201cddb162de46aa744595b",
      "parents": [
        "26cffecf84c8cb33787dd13a72bd2124d107d413"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Mon Oct 25 16:10:47 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Oct 25 16:10:20 2010 +0200"
      },
      "message": "[S390] dasd: fix unsolicited interrupt recognition\n\nThe dasd interrupt handler needs to distinguish solicited from\nunsolicited interrupts, as unsolicited interrupts may require special\nhandling (e.g. summary unit checks) and solicited interrupts require\nproper error recovery for the failed I/O request.\nThe interrupt handler needs to check several bit fields in the\ninterrupt response block (irb) to make this distinction.\nSo far our check of the status control bits has not been specific\nenough, which may lead to a failed request getting just retried\ninstead of the necessary error recovery.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "26cffecf84c8cb33787dd13a72bd2124d107d413",
      "tree": "aa50aaad1c06c9a3adb5d5bc15066f6167c2851d",
      "parents": [
        "e05ef9bdb899e2f3798be74691842fc597d8ce60"
      ],
      "author": {
        "name": "Sebastian Ott",
        "email": "sebott@linux.vnet.ibm.com",
        "time": "Mon Oct 25 16:10:46 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Oct 25 16:10:20 2010 +0200"
      },
      "message": "[S390] dasd: fix use after free in dbf\n\nWriting to /proc/dasd/statistics while the debug level of the\ngeneric dasd debug entry is set to DBF_DEBUG will lead to an\nuse after free when accessing the debug entry later.\nSince for the format string \"%s\" in the s390 dbf only a pointer\nto the string is stored in the debug feature and the buffer used\nhere is freed afterwards.\n\nTo fix this just remove the debug message.\n\nSigned-off-by: Sebastian Ott \u003csebott@linux.vnet.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f6649a7e5a9ee99e9623878f4a5579cc2f6cdd51",
      "tree": "183438313c7593565980a1445f208e0ba30162cd",
      "parents": [
        "1e54622e0403891b10f2105663e0f9dd595a1f17"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Oct 25 16:10:38 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Oct 25 16:10:19 2010 +0200"
      },
      "message": "[S390] cleanup lowcore access from external interrupts\n\nRead external interrupts parameters from the lowcore in the first\nlevel interrupt handler in entry[64].S.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "ed3640b285d831065eb0507cdca7d125f6f78e8d",
      "tree": "1a2d6988d4bcdb4bae61098fc98d92149994adfa",
      "parents": [
        "a8481c2afeed297426f67ce3fd4ad7eea6b7ddf5"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Mon Oct 25 16:10:24 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Oct 25 16:10:17 2010 +0200"
      },
      "message": "[S390] dasd fix dump_sense_dbf\n\nThe dasd_eckd_dump_sense_dbf function uses a macro for s390 debug\nfeature that can handle up to 8 parameters (for the DASD device\ndriver).\nFix the function to use only the maximum number of parameters.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "7ea8d32199a3751527bf06b91c03de92d5ad5b3e",
      "tree": "20d1fd5138ee695f647dbc7dd9c3d0459a09ffe0",
      "parents": [
        "238ec4efeee4461d5cff2ed3e5a15a3ab850959b"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Mon Oct 25 16:10:08 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Oct 25 16:10:14 2010 +0200"
      },
      "message": "[S390] dasd: let recovery cqr inherit flags from failed cqr\n\nThe usual way to recover a failed DASD ECKD request (cqr) is to create\na new request with an appropriate recovery CCW program.  Certain\nfeatures, e.g. failfast, can be enabled per request and are stored in\nthe requests flags. These flags have to be copied from the failed to\nthe recovery request, to let the recovery request use the same\nfeatures as the original one.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "229aebb873e29726b91e076161649cf45154b0bf",
      "tree": "acc02a3702215bce8d914f4c8cc3d7a1382b1c67",
      "parents": [
        "8de547e1824437f3c6af180d3ed2162fa4b3f389",
        "50a23e6eec6f20d55a3a920e47adb455bff6046e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 24 13:41:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)\n  Update broken web addresses in arch directory.\n  Update broken web addresses in the kernel.\n  Revert \"drivers/usb: Remove unnecessary return\u0027s from void functions\" for musb gadget\n  Revert \"Fix typo: configuation \u003d\u003e configuration\" partially\n  ida: document IDA_BITMAP_LONGS calculation\n  ext2: fix a typo on comment in ext2/inode.c\n  drivers/scsi: Remove unnecessary casts of private_data\n  drivers/s390: Remove unnecessary casts of private_data\n  net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data\n  drivers/infiniband: Remove unnecessary casts of private_data\n  drivers/gpu/drm: Remove unnecessary casts of private_data\n  kernel/pm_qos_params.c: Remove unnecessary casts of private_data\n  fs/ecryptfs: Remove unnecessary casts of private_data\n  fs/seq_file.c: Remove unnecessary casts of private_data\n  arm: uengine.c: remove C99 comments\n  arm: scoop.c: remove C99 comments\n  Fix typo configue \u003d\u003e configure in comments\n  Fix typo: configuation \u003d\u003e configuration\n  Fix typo interrest[ing|ed] \u003d\u003e interest[ing|ed]\n  Fix various typos of valid in comments\n  ...\n\nFix up trivial conflicts in:\n\tdrivers/char/ipmi/ipmi_si_intf.c\n\tdrivers/usb/gadget/rndis.c\n\tnet/irda/irnet/irnet_ppp.c\n"
    },
    {
      "commit": "a2887097f25cd38cadfc11d10769e2b349fb5eca",
      "tree": "cd4adcb305365d6ba9acd2c02d4eb9d0125c6f8d",
      "parents": [
        "8abfc6e7a45eb74e51904bbae676fae008b11366",
        "005a1d15f5a6b2bb4ada80349513effbf22b4588"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 17:07:18 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.37/barrier\u0027 of git://git.kernel.dk/linux-2.6-block: (46 commits)\n  xen-blkfront: disable barrier/flush write support\n  Added blk-lib.c and blk-barrier.c was renamed to blk-flush.c\n  block: remove BLKDEV_IFL_WAIT\n  aic7xxx_old: removed unused \u0027req\u0027 variable\n  block: remove the BH_Eopnotsupp flag\n  block: remove the BLKDEV_IFL_BARRIER flag\n  block: remove the WRITE_BARRIER flag\n  swap: do not send discards as barriers\n  fat: do not send discards as barriers\n  ext4: do not send discards as barriers\n  jbd2: replace barriers with explicit flush / FUA usage\n  jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier\n  jbd: replace barriers with explicit flush / FUA usage\n  nilfs2: replace barriers with explicit flush / FUA usage\n  reiserfs: replace barriers with explicit flush / FUA usage\n  gfs2: replace barriers with explicit flush / FUA usage\n  btrfs: replace barriers with explicit flush / FUA usage\n  xfs: replace barriers with explicit flush / FUA usage\n  block: pass gfp_mask and flags to sb_issue_discard\n  dm: convey that all flushes are processed as empty\n  ...\n"
    },
    {
      "commit": "092e0e7e520a1fca03e13c9f2d157432a8657ff2",
      "tree": "451897252c4c08c4b5a8ef535da156f1e817e80b",
      "parents": [
        "79f14b7c56d3b3ba58f8b43d1f70b9b71477a800",
        "776c163b1b93c8dfa5edba885bc2bfbc2d228a5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 10:52:56 2010 -0700"
      },
      "message": "Merge branch \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl\n\n* \u0027llseek\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:\n  vfs: make no_llseek the default\n  vfs: don\u0027t use BKL in default_llseek\n  llseek: automatically add .llseek fop\n  libfs: use generic_file_llseek for simple_attr\n  mac80211: disallow seeks in minstrel debug code\n  lirc: make chardev nonseekable\n  viotape: use noop_llseek\n  raw: use explicit llseek file operations\n  ibmasmfs: use generic_file_llseek\n  spufs: use llseek in all file operations\n  arm/omap: use generic_file_llseek in iommu_debug\n  lkdtm: use generic_file_llseek in debugfs\n  net/wireless: use generic_file_llseek in debugfs\n  drm: use noop_llseek\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "cfdb00a77ea7d5fb922fd985e5dfbcb36873411b",
      "tree": "d5b70c7edc95cad7271342214d3e4338f37e02c2",
      "parents": [
        "54066a57c584ee8ce767053116fc4943ed1168b5"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon May 31 22:38:40 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Sep 26 16:25:51 2010 +0200"
      },
      "message": "s390/block: kill the big kernel lock\n\nThe dasd and dcssblk drivers gained the big\nkernel lock in the recent pushdown from the\nblock layer, but they don\u0027t really need it,\nso remove the calls without a replacement.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: linux-s390@vger.kernel.org\n"
    },
    {
      "commit": "817f2c842d6c38acfd58d20d29ba583ec467ae35",
      "tree": "f1afe7175e0a2b3ecf465f26804ad8c3f6f7d263",
      "parents": [
        "0bc79f7f58f5d0670c776818e38f482555bc27ae"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Mon Sep 20 11:44:00 2010 +0530"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Sep 21 17:04:50 2010 +0200"
      },
      "message": "Fix various typos of valid in comments\n\nFix various typos of valid.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "4913efe456c987057e5d36a3f0a55422a9072cae",
      "tree": "295f04a7214e1933df3301dd42c12ff3f282a22c",
      "parents": [
        "6958f145459ca7ad9715024de97445addacb8510"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Sep 03 11:56:16 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Sep 10 12:35:36 2010 +0200"
      },
      "message": "block: deprecate barrier and replace blk_queue_ordered() with blk_queue_flush()\n\nBarrier is deemed too heavy and will soon be replaced by FLUSH/FUA\nrequests.  Deprecate barrier.  All REQ_HARDBARRIERs are failed with\n-EOPNOTSUPP and blk_queue_ordered() is replaced with simpler\nblk_queue_flush().\n\nblk_queue_flush() takes combinations of REQ_FLUSH and FUA.  If a\ndevice has write cache and can flush it, it should set REQ_FLUSH.  If\nthe device can handle FUA writes, it should also set REQ_FUA.\n\nAll blk_queue_ordered() users are converted.\n\n* ORDERED_DRAIN is mapped to 0 which is the default value.\n* ORDERED_DRAIN_FLUSH is mapped to REQ_FLUSH.\n* ORDERED_DRAIN_FLUSH_FUA is mapped to REQ_FLUSH | REQ_FUA.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Chris Wright \u003cchrisw@sous-sol.org\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Pierre Ossman \u003cdrzeus@drzeus.cx\u003e\nCc: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "625c94df22fb4247c8ccd54635a8ec77cb60d651",
      "tree": "1641e24f21b2a89a718244957c25701e3fc2a242",
      "parents": [
        "320b2b8de12698082609ebbc1a17165727f4c893"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Aug 13 10:06:38 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Fri Aug 13 10:06:54 2010 +0200"
      },
      "message": "[S390] dasd: fix format string types\n\nGet rid of these warnings:\n\ndrivers/s390/block/dasd.c: In function \u0027__dasd_device_check_expire\u0027:\ndrivers/s390/block/dasd.c:1330: warning: format \u0027%i\u0027 expects type \u0027int\u0027, but argument 4 has type \u0027long unsigned int\u0027\ndrivers/s390/block/dasd.c:1337: warning: format \u0027%i\u0027 expects type \u0027int\u0027, but argument 4 has type \u0027long unsigned int\u0027\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "6396fc3b3ff3f6b942992b653a62df11dcef9bea",
      "tree": "db3c7cbe833b43c653adc99f70941431c5ff7c4e",
      "parents": [
        "4785879e4d340e24e54f6de2ccfc42728b912808",
        "3d30701b58970425e1d45994d6cb82f828924fdd"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 11 09:36:51 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Aug 11 09:36:51 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tfs/exofs/inode.c\n"
    },
    {
      "commit": "2f9e825d3e0e2b407ae8f082de5c00afcf7378fb",
      "tree": "f8b3ee40674ce4acd5508a0a0bf52a30904caf6c",
      "parents": [
        "7ae0dea900b027cd90e8a3e14deca9a19e17638b",
        "de75d60d5ea235e6e09f4962ab22541ce0fe176a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block: (149 commits)\n  block: make sure that REQ_* types are seen even with CONFIG_BLOCK\u003dn\n  xen-blkfront: fix missing out label\n  blkdev: fix blkdev_issue_zeroout return value\n  block: update request stacking methods to support discards\n  block: fix missing export of blk_types.h\n  writeback: fix bad _bh spinlock nesting\n  drbd: revert \"delay probes\", feature is being re-implemented differently\n  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n  drbd: Disable delay probes for the upcomming release\n  writeback: cleanup bdi_register\n  writeback: add new tracepoints\n  writeback: remove unnecessary init_timer call\n  writeback: optimize periodic bdi thread wakeups\n  writeback: prevent unnecessary bdi threads wakeups\n  writeback: move bdi threads exiting logic to the forker thread\n  writeback: restructure bdi forker loop a little\n  writeback: move last_active to bdi\n  writeback: do not remove bdi from bdi_list\n  writeback: simplify bdi code a little\n  writeback: do not lose wake-ups in bdi threads\n  ...\n\nFixed up pretty trivial conflicts in drivers/block/virtio_blk.c and\ndrivers/scsi/scsi_error.c as per Jens.\n"
    },
    {
      "commit": "0d6ffdb8f151a2b685c7b45bde7ab2d49fc1bb00",
      "tree": "1768c906e87750dc897a2f113e335886d9b906e8",
      "parents": [
        "7233e392760b3493095d3d5885cb15e44493d74a",
        "7c8faa86290c1a2607d6b768a0b874ec392a5c2a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 14:01:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 14:01:26 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6\n\n* \u0027for-linus\u0027 of git://git390.marist.edu/pub/scm/linux-2.6:\n  [S390] dasd: tunable missing interrupt handler\n  [S390] dasd: allocate fallback cqr for reserve/release\n  [S390] topology: use default MC domain initializer\n  [S390] initrd: change default load address\n  [S390] cmm, smsgiucv_app: convert sender to uppercase\n  [S390] cmm: add missing __init/__exit annotations\n  [S390] cio: use all available paths for some internal I/O\n  [S390] ccwreq: add ability to use all paths\n  [S390] cio: ccw_device_online_store return -EINVAL in case of missing driver\n  [S390] cio: Log the response from the unit check handler\n  [S390] cio: CHSC SIOSL Support\n"
    },
    {
      "commit": "fb8231a8b139035476f2a8aaac837d0099b66dad",
      "tree": "2875806beb96ea0cdab292146767a5085721dc6a",
      "parents": [
        "426d31071ac476ea62c62656b242930c17b58c00",
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Aug 10 13:22:08 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Aug 10 13:22:08 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n\nConflicts:\n\tarch/arm/mach-omap1/board-nokia770.c\n"
    },
    {
      "commit": "547415d5edf8660aee040dc81d8c71b081a59bda",
      "tree": "21221c9702e65a71354ce5c672a085d00ff9b5a6",
      "parents": [
        "b329becfc78b180d5c422c9cb24a6ab378603305"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Mon Aug 09 17:20:35 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:06 2010 -0700"
      },
      "message": "s390: remove WARN_ON for misc_deregister() failures\n\nThe previous change added WARN_ON() in misc_deregister().  So it is not\nnecessary to WARN_ON() misc_deregister() failure by callers.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c8faa86290c1a2607d6b768a0b874ec392a5c2a",
      "tree": "7cb94efdbd3ce3c5eb8fb7a2b7d8a5bedebcb1a2",
      "parents": [
        "f932bcea6b7317312ab38df12a84710fc6c67a81"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Mon Aug 09 18:13:00 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Aug 09 18:12:54 2010 +0200"
      },
      "message": "[S390] dasd: tunable missing interrupt handler\n\nThis feature provides a user interface to specify the timeout for\nmissing interrupts for standard I/O operations.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f932bcea6b7317312ab38df12a84710fc6c67a81",
      "tree": "6476fb6c8423ee65bc8b73182436ccfc7361ed05",
      "parents": [
        "eafd2b6ddd8604998bdfbf7550b23795c07f03bb"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Mon Aug 09 18:12:59 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Aug 09 18:12:54 2010 +0200"
      },
      "message": "[S390] dasd: allocate fallback cqr for reserve/release\n\nThe DASD reserve and release ioctls use the preallocated memory pool\nof the respective device to build their CCW requests. However, when\nthe device is busy, the pool may already be empty and the ioctl fails.\nUsually this can be recovered by calling the ioctl again, but in\na situation in which we need to issue an unconditional reserve to\nmake a device operational again, this would be not recoverable.\nTo avoid a failure due to lack of memory, DASD device driver will\npreallocate enough memory for a single reserve/release request, which\ncan be used if normal allocation fails.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "eef35c2d41ddcc653c20d26b977acaa45c811e1f",
      "tree": "616db0eb06b6a3881902db59a0a5bd590277b5a1",
      "parents": [
        "3cfc2c42c1cbc8e238bb9c0612c0df4565e3a8b4"
      ],
      "author": {
        "name": "Stefan Weil",
        "email": "weil@mail.berlios.de",
        "time": "Fri Aug 06 21:11:15 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Aug 09 11:22:49 2010 +0200"
      },
      "message": "Fix spelling fuction -\u003e function in comments\n\nTo avoid more patches, I also fixed other spelling\nand grammar bugs when they were in the same or\nfollowing line:\n\nsuccessfull -\u003e successful\nparse -\u003e parses\ncontroler -\u003e controller\ncontrolers -\u003e controllers\n\nCc: Jiri Kosina \u003ctrivial@kernel.org\u003e\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Stefan Weil \u003cweil@mail.berlios.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "6e9624b8caec290d28b4c6d9ec75749df6372b87",
      "tree": "47225b544e1da82742795553dc4e8aa70c17afdc",
      "parents": [
        "8a6cfeb6deca3a8fefd639d898b0d163c0b5d368"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sat Aug 07 18:25:34 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:25:34 2010 +0200"
      },
      "message": "block: push down BKL into .open and .release\n\nThe open and release block_device_operations are currently\ncalled with the BKL held. In order to change that, we must\nfirst make sure that all drivers that currently rely\non this have no regressions.\n\nThis blindly pushes the BKL into all .open and .release\noperations for all block drivers to prepare for the\nnext step. The drivers can subsequently replace the BKL\nwith their own locks or remove it completely when it can\nbe shown that it is not needed.\n\nThe functions blkdev_get and blkdev_put are the only\nremaining users of the big kernel lock in the block\nlayer, besides a few uses in the ioctl code, none\nof which need to serialize with blkdev_{get,put}.\n\nMost of these two functions is also under the protection\nof bdev-\u003ebd_mutex, including the actual calls to\n-\u003eopen and -\u003erelease, and the common code does not\naccess any global data structures that need the BKL.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "00fff26539bfe3fad21c164fc4002d9ede056fb0",
      "tree": "4909c8eed03133b1d46f689e465ed1f579b8e282",
      "parents": [
        "afc23068103ccfbf1917eb2a007bc15ab5418cc9"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Sat Jul 03 17:45:40 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Sat Aug 07 18:24:15 2010 +0200"
      },
      "message": "block: remove q-\u003eprepare_flush_fn completely\n\nThis removes q-\u003eprepare_flush_fn completely (changes the\nblk_queue_ordered API).\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "0abccf77402af44855da739b439d01cfb65b4bfd",
      "tree": "125232a749ad17ae39db7ce6c52205233f51e240",
      "parents": [
        "cffab6bc5511cd6f67a60bf16b62de4267b68c4c"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Mon Jul 19 09:22:36 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Jul 19 09:22:50 2010 +0200"
      },
      "message": "[S390] add missing device put\n\nThe dasd_alias_show function does not return a device reference\nin case the device is an alias.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "a23ed009a726feeafdbabeaf5f0bde1a3f04d121",
      "tree": "cd2448ca9544f23acacc40e5ab2b95b4636ef923",
      "parents": [
        "094f2100d6bb16ef0c4f82167cc55173ca22ee93"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Wed May 26 23:27:09 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed May 26 23:27:09 2010 +0200"
      },
      "message": "[S390] dasd: unit check handling during internal cio I/O\n\nReact on unit checks during cio internal I/O.\nHandle as unsolicited interrupt and advice cio to retry.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "2dedf0d9eadf39660f2e1686b5d36e4a7515803f",
      "tree": "39fefcb959ee6e7c9c15b07b58eb9ef6a9e6304d",
      "parents": [
        "501183f2ed74434e30a1b039b2f3af30f1f3f461"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Mon May 17 10:00:11 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon May 17 10:00:16 2010 +0200"
      },
      "message": "[S390] dasd: remove uid from devmap\n\nRemove the duplicate of the DASD uid from the devmap structure.\nUse the uid from the device private structure instead.\nThis also removes a lockdep warning complaining about a possible\nSOFTIRQ-safe -\u003e SOFTIRQ-unsafe lock order.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "501183f2ed74434e30a1b039b2f3af30f1f3f461",
      "tree": "785b6f2b2d5c7858e557354f71bdb0928fa098b1",
      "parents": [
        "f3cb31e495668eae568c584c666631e26c68bdea"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Mon May 17 10:00:10 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon May 17 10:00:16 2010 +0200"
      },
      "message": "[S390] dasd: add dynamic pav toleration\n\nFor base Parallel Access Volume (PAV) there is a fixed mapping of\nbase and alias devices. With dynamic PAV this mapping can be changed\nso that an alias device is used with another base device.\nThis patch enables the DASD device driver to tolerate dynamic PAV\nchanges.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "1c1e093cbf6d3a7576ba0bd10363362a1c5c74ee",
      "tree": "a3970653539aa4a9b71536a204efbe7d5ba8ff07",
      "parents": [
        "cea0d767c29669bf89f86e4aee46ef462d2ebae8"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Wed May 12 09:32:11 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed May 12 09:32:26 2010 +0200"
      },
      "message": "[S390] dasd: fix race between tasklet and dasd_sleep_on\n\nThe various dasd_sleep_on functions use a global wait queue when\nwaiting for a cqr. The wait condition checks the status and devlist\nfields of the cqr to determine if it is safe to continue. This\nevaluation may return true, although the tasklet has not finished\nprocessing of the cqr and the callback function has not been called\nyet. When the callback is finally called, the data in the cqr may\nalready be invalid. The sleep_on wait condition needs a safe way to\ndetermine if the tasklet has finished processing. Use the\ncallback_data field of the cqr to store a token, which is set by\nthe callback function itself.\n\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "6a5176c474e3e722ab273d940442238e554e5e58",
      "tree": "0a623a707647b4511e99822fee37a7e2139689e4",
      "parents": [
        "1ef6ce7a340f9ed139a73147ff9cf7ad56889414"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Thu Apr 22 17:17:02 2010 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Thu Apr 22 17:17:19 2010 +0200"
      },
      "message": "[S390] dasd: fix endless loop in erp\n\nIf not enough memory is available to build a new erp request it ended\nup in an endless loop trying to build erp requests. Fixed the loop to\nproceed the next request instead.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "b8fde7224d771ce55bfd67cb57d7c4c8f430972f",
      "tree": "a9baa7a98c798d0e8477d168bfa543aae39b0952",
      "parents": [
        "4a31ba57cae853ce1ac00a22c0f5d80bd36685ed"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Wed Mar 24 11:49:54 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Mar 24 11:49:53 2010 +0100"
      },
      "message": "[S390] dasd: check tsb validity\n\nCheck tsb validity before the tcw_get_tsb function is called.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "4a31ba57cae853ce1ac00a22c0f5d80bd36685ed",
      "tree": "c604002362185f60f02b4ad364e23030e15b8f26",
      "parents": [
        "1bff779285f89cd0b62955c20cca70ada4074236"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Wed Mar 24 11:49:53 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Wed Mar 24 11:49:53 2010 +0100"
      },
      "message": "[S390] dasd: fix alignment of transport mode recovery TCW\n\nAll TCWs need to be aligned on a 64 byte boundary or the I/O will be\nrejected. For recovery requests we create fresh TCWs, so we need to\ndo the proper alignment here as well.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "33b62a30f78536b976183cc764c08038ac011e0a",
      "tree": "60a18b4478c68082835fa6fee9a24bb1e7e8b312",
      "parents": [
        "584dfddfce1bd81d877f14de2b56d4bc747af821"
      ],
      "author": {
        "name": "Stefan Weinhuber",
        "email": "wein@de.ibm.com",
        "time": "Mon Mar 08 12:26:24 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Mar 08 12:26:27 2010 +0100"
      },
      "message": "[S390] dasd: automatic recognition of read-only devices\n\nIn z/VM it is possible to attach a device as read-only. To prevent\nunintentional write requests and subsequent I/O errors, we can detect\nthis configuration using the z/VM DIAG 210 interface and set the\nrespective linux block device to read-only as well.\n\nSigned-off-by: Stefan Weinhuber \u003cwein@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "52898025cf7d458d029c18773d0ef49b4789d829",
      "tree": "f7a7b99a6001d4edb625d669fc6d59073269bb82",
      "parents": [
        "91a970d9889c7d6f451ee91ed361d0f0119d3778"
      ],
      "author": {
        "name": "Nigel Hislop",
        "email": "hislop_nigel@emc.com",
        "time": "Mon Mar 08 12:25:16 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Mon Mar 08 12:25:30 2010 +0100"
      },
      "message": "[S390] dasd: security and PSF update patch for EMC CKD ioctl\n\nRemove the PSF order/suborder check from the Symmetrix CKD dasd ioctl.\nIn exchange restrict the ioctl to CAP_SYS_ADMIN and CAP_SYS_RAWIO.\n\nSigned-off-by: Nigel Hislop \u003chislop_nigel@emc.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "b1bf9368407ae7e89d8a005bb40beb70a41df539",
      "tree": "3815c8aab19c6c186736673c624fef5f3faab716",
      "parents": [
        "524df55725217b13d5a232fb5badb5846418ea0e",
        "4671a1322052425afa38fcb7980d2fd2bb0fc99b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:00:29 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 01 09:00:29 2010 -0800"
      },
      "message": "Merge branch \u0027for-2.6.34\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.34\u0027 of git://git.kernel.dk/linux-2.6-block: (38 commits)\n  block: don\u0027t access jiffies when initialising io_context\n  cfq: remove 8 bytes of padding from cfq_rb_root on 64 bit builds\n  block: fix for \"Consolidate phys_segment and hw_segment limits\"\n  cfq-iosched: quantum check tweak\n  blktrace: perform cleanup after setup error\n  blkdev: fix merge_bvec_fn return value checks\n  cfq-iosched: requests \"in flight\" vs \"in driver\" clarification\n  cciss: Fix problem with scatter gather elements in the scsi half of the driver\n  cciss: eliminate unnecessary pointer use in cciss scsi code\n  cciss: do not use void pointer for scsi hba data\n  cciss: factor out scatter gather chain block mapping code\n  cciss: fix scatter gather chain block dma direction kludge\n  cciss: simplify scatter gather code\n  cciss: factor out scatter gather chain block allocation and freeing\n  cciss: detect bad alignment of scsi commands at build time\n  cciss: clarify command list padding calculation\n  cfq-iosched: rethink seeky detection for SSDs\n  cfq-iosched: rework seeky detection\n  block: remove padding from io_context on 64bit builds\n  block: Consolidate phys_segment and hw_segment limits\n  ...\n"
    },
    {
      "commit": "34b9243a300736c08dc32eaeb2f359401fcf9c0a",
      "tree": "b20eb0bf67e5cf169e378d3686cda83ca418058d",
      "parents": [
        "618708ff04f3a7b74f54210bd518aa1d827d8e65"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Feb 26 22:37:50 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Fri Feb 26 22:37:32 2010 +0100"
      },
      "message": "[S390] seq_file: convert drivers/s390/\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "b695adfaa118fd7c50eca8990e348dd7372ee0aa",
      "tree": "feaa24ac072741256220f039fc2e22c27fe7f8b6",
      "parents": [
        "589c74d5076dd1bde13a5a36d97ca79be8bd72b2"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Fri Feb 26 22:37:48 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Fri Feb 26 22:37:32 2010 +0100"
      },
      "message": "[S390] dasd: correct offline processing\n\nFlushing the dasd ccw request queue may stop the processing of the\nblock device request queue. Destroy partitions may wait for\noutstanding requests and thus hang.\nSwapping dasd_destroy_partitions and dasd_flush_request_queue so that\nthe request queue is empty before dasd_destroy_partitions is called.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "589c74d5076dd1bde13a5a36d97ca79be8bd72b2",
      "tree": "252349a17326853d7e026b357921da6192958d26",
      "parents": [
        "9eb251225ab4dbea3119cfcf4c5194eed223a740"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Fri Feb 26 22:37:47 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Fri Feb 26 22:37:32 2010 +0100"
      },
      "message": "[S390] dasd: fix refcounting.\n\nThe function dasd_device_from_cdev returns a reference to the dasd\ndevice and increases the refcount by one. If an exception occurs,\nthe refcount was not decreased in all cases\ne.g. in dasd_discipline_show.\nPrevent the offline processing from hang by correcting two functions\nto decrease the refcount even if an error occured.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "9eb251225ab4dbea3119cfcf4c5194eed223a740",
      "tree": "6305782cf36aee2949b7a6d1661db24ef618e2ce",
      "parents": [
        "22e0a0467292222214d1974d9bc2664a6c05980d"
      ],
      "author": {
        "name": "Stefan Haberland",
        "email": "stefan.haberland@de.ibm.com",
        "time": "Fri Feb 26 22:37:46 2010 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "sky@mschwide.boeblingen.de.ibm.com",
        "time": "Fri Feb 26 22:37:32 2010 +0100"
      },
      "message": "[S390] dasd: fix online/offline race\n\nSetting a DASD online and offline in quick succession may cause\na kernel panic or let the chhccwdev command wait forever.\nThe Online process is split into two parts. After the first part\nis finished the offline process may be called. This may result\nin a situation where the second online processing part tries to\nset the DASD offline as well.\nUse a mutex to protect online and offline against each other.\nAlso correct some checking.\n\nSigned-off-by: Stefan Haberland \u003cstefan.haberland@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "8a78362c4eefc1deddbefe2c7f38aabbc2429d6b",
      "tree": "c095d95af1aec0f9cee5975b1dcdc6bc1d17d401",
      "parents": [
        "086fa5ff0854c676ec333760f4c0154b3b242616"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Feb 26 00:20:39 2010 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Feb 26 13:58:08 2010 +0100"
      },
      "message": "block: Consolidate phys_segment and hw_segment limits\n\nExcept for SCSI no device drivers distinguish between physical and\nhardware segment limits.  Consolidate the two into a single segment\nlimit.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    }
  ],
  "next": "086fa5ff0854c676ec333760f4c0154b3b242616"
}
