)]}'
{
  "log": [
    {
      "commit": "16c0cfa425b8e1488f7a1873bd112a7a099325f0",
      "tree": "eeba5728a8072096279c55ffc10a5ca7ac0ddf05",
      "parents": [
        "94574d9a4c236e8bd19721b4adb0ea30ef446901",
        "072611ed1f291053a74b28b813d683a09495eba7"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Mar 19 12:12:19 2012 -0400"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Mar 19 12:12:19 2012 -0400"
      },
      "message": "Merge branch \u0027stable/cleancache.v13\u0027 into linux-next\n\n* stable/cleancache.v13:\n  mm: cleancache: Use __read_mostly as appropiate.\n  mm: cleancache: report statistics via debugfs instead of sysfs.\n  mm: zcache/tmem/cleancache: s/flush/invalidate/\n  mm: cleancache: s/flush/invalidate/\n"
    },
    {
      "commit": "fe316bf2d5847bc5dd975668671a7b1067603bc7",
      "tree": "617f6a89b96a8c074d0a2fc1ef4ffc259fb4ed2f",
      "parents": [
        "621032ad6eaabf2fe771c4fa0d8f58e1fcfcdba6"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Fri Mar 02 10:38:33 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 02 10:38:33 2012 +0100"
      },
      "message": "block: Fix NULL pointer dereference in sd_revalidate_disk\n\nSince 2.6.39 (1196f8b), when a driver returns -ENOMEDIUM for open(),\n__blkdev_get() calls rescan_partitions() to remove\nin-kernel partition structures and raise KOBJ_CHANGE uevent.\n\nHowever it ends up calling driver\u0027s revalidate_disk without open\nand could cause oops.\n\nIn the case of SCSI:\n\n  process A                  process B\n  ----------------------------------------------\n  sys_open\n    __blkdev_get\n      sd_open\n        returns -ENOMEDIUM\n                             scsi_remove_device\n                               \u003cscsi_device torn down\u003e\n      rescan_partitions\n        sd_revalidate_disk\n          \u003coops\u003e\nOopses are reported here:\nhttp://marc.info/?l\u003dlinux-scsi\u0026m\u003d132388619710052\n\nThis patch separates the partition invalidation from rescan_partitions()\nand use it for -ENOMEDIUM case.\n\nReported-by: Huajun Li \u003chuajun.li.lee@gmail.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3167760f83899ccda312b9ad9306ec9e5dda06d4",
      "tree": "a040add1a9b267cb0fa92847c88526c1329a258b",
      "parents": [
        "972b2c719990f91eb3b2310d44ef8a2d38955a14"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Wed Sep 21 11:56:28 2011 -0400"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Mon Jan 23 16:06:24 2012 -0500"
      },
      "message": "mm: cleancache: s/flush/invalidate/\n\nPer akpm suggestions alter the use of the term flush to be\ninvalidate. The next patch will do this across all MM.\n\nThis change is completely cosmetic.\n\n[v9: akpm@linux-foundation.org: change \"flush\" to \"invalidate\", part 3]\n\nSigned-off-by: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jan Beulich \u003cJBeulich@novell.com\u003e\nReviewed-by: Seth Jennings \u003csjenning@linux.vnet.ibm.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Rik Riel \u003criel@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[v10: Fixed  fs: move code out of buffer.c conflict change]\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "87192a2a49c475cf322cb143e0fa63b0102d8567",
      "tree": "70acf2fb1e4a9a3a62559ad9218278d2fb114599",
      "parents": [
        "ae55e1aaa7e2e57e538cb98cf617f511c5dc4f73"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Jan 12 17:20:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "vfs: cache request_queue in struct block_device\n\nThis makes it possible to get from the inode to the request_queue with one\nless cache miss.  Used in followon optimization.\n\nThe livetime of the pointer is the same as the gendisk.\n\nThis assumes that the queue will always stay the same in the gendisk while\nit\u0027s visible to block_devices.  I think that\u0027s safe correct?\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ace8577aeb438025ecf642f5eda3aa551d251951",
      "tree": "217979e10b342dd4c7494d10948fb659e8dfdb90",
      "parents": [
        "eaf5f9073533cde21c7121c136f1c3f072d9cf59"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Jan 10 02:43:59 2012 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 10 13:08:55 2012 -0500"
      },
      "message": "block_dev: Suppress bdev_cache_init() kmemleak warninig\n\nKmemleak reports the following warning in bdev_cache_init()\n[    0.003738] kmemleak: Object 0xffff880153035200 (size 256):\n[    0.003823] kmemleak:   comm \"swapper/0\", pid 0, jiffies 4294667299\n[    0.003909] kmemleak:   min_count \u003d 1\n[    0.003988] kmemleak:   count \u003d 0\n[    0.004066] kmemleak:   flags \u003d 0x1\n[    0.004144] kmemleak:   checksum \u003d 0\n[    0.004224] kmemleak:   backtrace:\n[    0.004303]      [\u003cffffffff814755ac\u003e] kmemleak_alloc+0x21/0x3e\n[    0.004446]      [\u003cffffffff811100ba\u003e] kmem_cache_alloc+0xca/0x1dc\n[    0.004592]      [\u003cffffffff811371b1\u003e] alloc_vfsmnt+0x1f/0x198\n[    0.004736]      [\u003cffffffff811375c5\u003e] vfs_kern_mount+0x36/0xd2\n[    0.004879]      [\u003cffffffff8113929a\u003e] kern_mount_data+0x18/0x32\n[    0.005025]      [\u003cffffffff81ab9075\u003e] bdev_cache_init+0x51/0x81\n[    0.005169]      [\u003cffffffff81ab8abf\u003e] vfs_caches_init+0x101/0x10d\n[    0.005313]      [\u003cffffffff81a9bae3\u003e] start_kernel+0x344/0x383\n[    0.005456]      [\u003cffffffff81a9b2a7\u003e] x86_64_start_reservations+0xae/0xb2\n[    0.005602]      [\u003cffffffff81a9b3ad\u003e] x86_64_start_kernel+0x102/0x111\n[    0.005747]      [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n[    0.008653] kmemleak: Trying to color unknown object at 0xffff880153035220 as Grey\n[    0.008754] Pid: 0, comm: swapper/0 Not tainted 3.3.0-rc0-dbg-04200-g8180888-dirty #888\n[    0.008856] Call Trace:\n[    0.008934]  [\u003cffffffff81118704\u003e] ? find_and_get_object+0x44/0x118\n[    0.009023]  [\u003cffffffff81118fe6\u003e] paint_ptr+0x57/0x8f\n[    0.009109]  [\u003cffffffff81475935\u003e] kmemleak_not_leak+0x23/0x42\n[    0.009195]  [\u003cffffffff81ab9096\u003e] bdev_cache_init+0x72/0x81\n[    0.009282]  [\u003cffffffff81ab8abf\u003e] vfs_caches_init+0x101/0x10d\n[    0.009368]  [\u003cffffffff81a9bae3\u003e] start_kernel+0x344/0x383\n[    0.009466]  [\u003cffffffff81a9b2a7\u003e] x86_64_start_reservations+0xae/0xb2\n[    0.009555]  [\u003cffffffff81a9b140\u003e] ? early_idt_handlers+0x140/0x140\n[    0.009643]  [\u003cffffffff81a9b3ad\u003e] x86_64_start_kernel+0x102/0x111\n\ndue to attempt to mark pointer to `struct vfsmount\u0027 as a gray object, which\nis embedded into `struct mount\u0027 returned from alloc_vfsmnt().\n\nMake `bd_mnt\u0027 static, avoiding need to tell kmemleak to mark it gray, as\nsuggested by Al Viro.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\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": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f47ec3f28354795f000c14bf18ed967ec81a3ec3",
      "tree": "662d479706bd948963ad3f9f00c2e6caedbe5a92",
      "parents": [
        "5ede7b1cfa8201418fb35e12f770e9e7c2559a4d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Nov 21 21:15:42 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "trim fs/internal.h\n\nsome stuff in there can actually become static; some belongs to pnode.h\nas it\u0027s a private interface between namespace.c and pnode.c...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3d0a8d10cfb4cc3d1877c29a866ee7d8a46aa2fa",
      "tree": "11a85044d1472f5972ae47ce10a2f446ad981e9f",
      "parents": [
        "b4fdcb02f1e39c27058a885905bd0277370ba441",
        "a0eda62552eba4e1f92d5354bb65c68fb6b45f87"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:22:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 04 17:22:14 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.2/drivers\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.2/drivers\u0027 of git://git.kernel.dk/linux-block: (30 commits)\n  virtio-blk: use ida to allocate disk index\n  hpsa: add small delay when using PCI Power Management to reset for kump\n  cciss: add small delay when using PCI Power Management to reset for kump\n  xen/blkback: Fix two races in the handling of barrier requests.\n  xen/blkback: Check for proper operation.\n  xen/blkback: Fix the inhibition to map pages when discarding sector ranges.\n  xen/blkback: Report VBD_WSECT (wr_sect) properly.\n  xen/blkback: Support \u0027feature-barrier\u0027 aka old-style BARRIER requests.\n  xen-blkfront: plug device number leak in xlblk_init() error path\n  xen-blkfront: If no barrier or flush is supported, use invalid operation.\n  xen-blkback: use kzalloc() in favor of kmalloc()+memset()\n  xen-blkback: fixed indentation and comments\n  xen-blkfront: fix a deadlock while handling discard response\n  xen-blkfront: Handle discard requests.\n  xen-blkback: Implement discard requests (\u0027feature-discard\u0027)\n  xen-blkfront: add BLKIF_OP_DISCARD and discard request struct\n  drivers/block/loop.c: remove unnecessary bdev argument from loop_clr_fd()\n  drivers/block/loop.c: emit uevent on auto release\n  drivers/block/cpqarray.c: use pci_dev-\u003erevision\n  loop: always allow userspace partitions and optionally support automatic scanning\n  ...\n\nFic up trivial header file includsion conflict in drivers/block/loop.c\n"
    },
    {
      "commit": "523e1d399ce0e23bec562abe2b2f8d297af81161",
      "tree": "7d7c89d0a51fa4db19cc0b3436875c80406e37df",
      "parents": [
        "5c04b426f2e8b46cfc7969a35b2631063a3c646c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Oct 19 14:31:07 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Oct 19 14:31:07 2011 +0200"
      },
      "message": "block: make gendisk hold a reference to its queue\n\nThe following command sequence triggers an oops.\n\n# mount /dev/sdb1 /mnt\n# echo 1 \u003e /sys/class/scsi_device/0\\:0\\:1\\:0/device/delete\n# umount /mnt\n\n general protection fault: 0000 [#1] PREEMPT SMP\n CPU 2\n Modules linked in:\n\n Pid: 791, comm: umount Not tainted 3.1.0-rc3-work+ #8 Bochs Bochs\n RIP: 0010:[\u003cffffffff810d0879\u003e]  [\u003cffffffff810d0879\u003e] __lock_acquire+0x389/0x1d60\n...\n Call Trace:\n  [\u003cffffffff810d2845\u003e] lock_acquire+0x95/0x140\n  [\u003cffffffff81aed87b\u003e] _raw_spin_lock+0x3b/0x50\n  [\u003cffffffff811573bc\u003e] bdi_lock_two+0x5c/0x70\n  [\u003cffffffff811c2f6c\u003e] bdev_inode_switch_bdi+0x4c/0xf0\n  [\u003cffffffff811c3fcb\u003e] __blkdev_put+0x11b/0x1d0\n  [\u003cffffffff811c4010\u003e] __blkdev_put+0x160/0x1d0\n  [\u003cffffffff811c40df\u003e] blkdev_put+0x5f/0x190\n  [\u003cffffffff8118f18d\u003e] kill_block_super+0x4d/0x80\n  [\u003cffffffff8118f4a5\u003e] deactivate_locked_super+0x45/0x70\n  [\u003cffffffff8119003a\u003e] deactivate_super+0x4a/0x70\n  [\u003cffffffff811ac4ad\u003e] mntput_no_expire+0xed/0x130\n  [\u003cffffffff811acf2e\u003e] sys_umount+0x7e/0x3a0\n  [\u003cffffffff81aeeeab\u003e] system_call_fastpath+0x16/0x1b\n\nThis is because bdev holds on to disk but disk doesn\u0027t pin the\nassociated queue.  If a SCSI device is removed while the device is\nstill open, the sdev puts the base reference to the queue on release.\nWhen the bdev is finally released, the associated queue is already\ngone along with the bdi and bdev_inode_switch_bdi() ends up\ndereferencing already freed bdi.\n\nEven if it were not for this bug, disk not holding onto the associated\nqueue is very unusual and error-prone.\n\nFix it by making add_disk() take an extra reference to its queue and\nput it on disk_release() and ensuring that disk and its fops owner are\nput in that order after all accesses to the disk and queue are\ncomplete.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "94007751bb02797ba87bac7aacee2731ac2039a3",
      "tree": "ac45ec9aef327e0a77f3ffd8c09eff9ef1609f95",
      "parents": [
        "43220aa0f22cd3ce5b30246d50ccd696d119edea"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Sep 10 17:20:21 2011 +1000"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sat Sep 10 17:20:21 2011 +1000"
      },
      "message": "Avoid dereferencing a \u0027request_queue\u0027 after last close.\n\nOn the last close of an \u0027md\u0027 device which as been stopped, the device\nis destroyed and in particular the request_queue is freed.  The free\nis done in a separate thread so it might happen a short time later.\n\n__blkdev_put calls bdev_inode_switch_bdi *after* -\u003erelease has been\ncalled.\n\nSince commit f758eeabeb96f878c860e8f110f94ec8820822a9\nbdev_inode_switch_bdi will dereference the \u0027old\u0027 bdi, which lives\ninside a request_queue, to get a spin lock.  This causes the last\nclose on an md device to sometime take a spin_lock which lives in\nfreed memory - which results in an oops.\n\nSo move the called to bdev_inode_switch_bdi before the call to\n-\u003erelease.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: stable@kernel.org\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "d27769ec3df1a8de9ca450d2dcd72d1ab259ba32",
      "tree": "f17c064e0d8ac26fa80c1c72dccaca053bb55e94",
      "parents": [
        "322a8b034003c0d46d39af85bf24fee27b902f48"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 23 20:01:04 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Tue Aug 23 20:01:04 2011 +0200"
      },
      "message": "block: add GENHD_FL_NO_PART_SCAN\n\nThere are cases where suppressing partition scan is useful - e.g. for\nlo devices and pseudo SATA devices which advertise to be a disk but\nget upset on partition scan (some port multiplier control devices show\nsuch behavior).\n\nThis patch adds GENHD_FL_NO_PART_SCAN which suppresses partition scan\nregardless of the number of possible partitions.  disk_partitionable()\nis renamed to disk_part_scan_enabled() as suppressing partition scan\ndoesn\u0027t imply the device can\u0027t be partitioned using\nBLKPG_ADD/DEL_PARTITION calls from userland.  show_partition() now\ndirectly tests disk_max_parts() to maintain backward-compatibility.\n\n-v2: Updated to make it clear that only partition scan is suppressed\n     not partitioning itself as suggested by Kay Sievers.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "da5aa861bea09197e6ae4d7c46618616064891e4",
      "tree": "ed121115f16961ed9c3a77c86d943a90cea917e9",
      "parents": [
        "cfe22345ad5ef29e192e157fdc3e17d357e4bc24"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Aug 02 02:17:48 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 21:33:47 2011 -0400"
      },
      "message": "fix block device fallout from -\u003efsync() changes\n\nblkdev_fsync() needs to write pages in pagecache...\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "782b94cdf577b4df1feb376f372dccc28e66a771",
      "tree": "e0ea0054539a695707f4e54aacdb0c53cd990076",
      "parents": [
        "c4ae0c65455c1bb30d1b71c6dd9a1a62aadde8ef"
      ],
      "author": {
        "name": "Lachlan McIlroy",
        "email": "lmcilroy@redhat.com",
        "time": "Thu Jun 30 11:01:45 2011 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 01 01:57:44 2011 -0400"
      },
      "message": "block: initialise bd_super in bdget()\n\nbd_super is currently reset to NULL in kill_block_super() so we rely on previous\nusers of the block_device object to initialise this value for the next user.\nThis quirk was exposed on RHEL5 when a third party filesystem did not always use\nkill_block_super() and therefore bd_super wasn\u0027t being reset when a block_device\nobject was recycled within the cache.  This may not be a problem upstream but\nmakes sense to be defensive.\n\nSigned-off-by: Lachlan McIlroy \u003clmcilroy@redhat.com\u003e\nReviewed-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f01ef569cddb1a8627b1c6b3a134998ad1cf4b22",
      "tree": "29ea1a0942c8549c24411e976cd6891c7e995e89",
      "parents": [
        "a93a1329271038f0e8337061d3b41b3b212a851e",
        "bcff25fc8aa47a13faff8b4b992589813f7b450a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 10:39:54 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 10:39:54 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback: (27 commits)\n  mm: properly reflect task dirty limits in dirty_exceeded logic\n  writeback: don\u0027t busy retry writeback on new/freeing inodes\n  writeback: scale IO chunk size up to half device bandwidth\n  writeback: trace global_dirty_state\n  writeback: introduce max-pause and pass-good dirty limits\n  writeback: introduce smoothed global dirty limit\n  writeback: consolidate variable names in balance_dirty_pages()\n  writeback: show bdi write bandwidth in debugfs\n  writeback: bdi write bandwidth estimation\n  writeback: account per-bdi accumulated written pages\n  writeback: make writeback_control.nr_to_write straight\n  writeback: skip tmpfs early in balance_dirty_pages_ratelimited_nr()\n  writeback: trace event writeback_queue_io\n  writeback: trace event writeback_single_inode\n  writeback: remove .nonblocking and .encountered_congestion\n  writeback: remove writeback_control.more_io\n  writeback: skip balance_dirty_pages() for in-memory fs\n  writeback: add bdi_dirty_limit() kernel-doc\n  writeback: avoid extra sync work at enqueue time\n  writeback: elevate queue_io() into wb_writeback()\n  ...\n\nFix up trivial conflicts in fs/fs-writeback.c and mm/filemap.c\n"
    },
    {
      "commit": "096a705bbc080a4041636d07514560da8d78acbe",
      "tree": "38c3c01225709ffa53419083ea6332f8a72610de",
      "parents": [
        "fea80311a939a746533a6d7e7c3183729d6a3faf",
        "5757a6d76cdf6dda2a492c09b985c015e86779b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 10:33:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 10:33:36 2011 -0700"
      },
      "message": "Merge branch \u0027for-3.1/core\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.1/core\u0027 of git://git.kernel.dk/linux-block: (24 commits)\n  block: strict rq_affinity\n  backing-dev: use synchronize_rcu_expedited instead of synchronize_rcu\n  block: fix patch import error in max_discard_sectors check\n  block: reorder request_queue to remove 64 bit alignment padding\n  CFQ: add think time check for group\n  CFQ: add think time check for service tree\n  CFQ: move think time check variables to a separate struct\n  fixlet: Remove fs_excl from struct task.\n  cfq: Remove special treatment for metadata rqs.\n  block: document blk_plug list access\n  block: avoid building too big plug list\n  compat_ioctl: fix make headers_check regression\n  block: eliminate potential for infinite loop in blkdev_issue_discard\n  compat_ioctl: fix warning caused by qemu\n  block: flush MEDIA_CHANGE from drivers on close(2)\n  blk-throttle: Make total_nr_queued unsigned\n  block: Add __attribute__((format(printf...) and fix fallout\n  fs/partitions/check.c: make local symbols static\n  block:remove some spare spaces in genhd.c\n  block:fix the comment error in blkdev.h\n  ...\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "06222e491e663dac939f04b125c9dc52126a75c4",
      "tree": "99636fd666c8148a5bf58ea4844263d4b3a36310",
      "parents": [
        "c334b1138bd44bea578eab7971c59bd9212a1093"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Jul 18 13:21:38 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:58 2011 -0400"
      },
      "message": "fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n\nThis converts everybody to handle SEEK_HOLE/SEEK_DATA properly.  In some cases\nwe just return -EINVAL, in others we do the normal generic thing, and in others\nwe\u0027re simply making sure that the properly due-dilligence is done.  For example\nin NFS/CIFS we need to make sure the file size is update properly for the\nSEEK_HOLE and SEEK_DATA case, but since it calls the generic llseek stuff itself\nthat is all we have to do.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "85ef06d1d252f6a2e73b678591ab71caad4667bb",
      "tree": "dc5cbc4f2e54f5b5b3f8653a595799e5fe0f2f18",
      "parents": [
        "04bf7869ca0fd12009aee301cac2264a36df4d98"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 01 16:17:47 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Jul 01 16:17:47 2011 +0200"
      },
      "message": "block: flush MEDIA_CHANGE from drivers on close(2)\n\nCurrently, only open(2) is defined as the \u0027clearing\u0027 point.  It has\ntwo roles - first, it\u0027s an acknowledgement from userland indicating\nthat the event has been received and kernel can clear pending states\nand proceed to generate more events.  Secondly, it\u0027s passed on to\ndevice drivers as a hint indicating that a synchronization point has\nbeen reached and it might want to take a deeper look at the device.\n\nThe latter currently is only used by sr which uses two different\nmechanisms - GET_EVENT_MEDIA_STATUS_NOTIFICATION and TEST_UNIT_READY\nto discover events, where the former is lighter weight and safe to be\nused repeatedly but may not provide full coverage.  Among other\nthings, GET_EVENT can\u0027t detect media removal while TUR can.\n\nThis patch makes close(2) - blkdev_put() - indicate clearing hint for\nMEDIA_CHANGE to drivers.  disk_check_events() is renamed to\ndisk_flush_events() and updated to take @mask for events to flush\nwhich is or\u0027d to ev-\u003eclearing and will be passed to the driver on the\nnext -\u003echeck_events() invocation.\n\nThis change makes sr generate MEDIA_CHANGE when media is ejected from\nuserland - e.g. with eject(1).\n\nNote: Given the current usage, it seems @clearing hint is needlessly\ncomplex.  disk_clear_events() can simply clear all events and the hint\ncan be boolean @flush.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "d4c208b86b8be4254eba0e74071496e599f94639",
      "tree": "a6fdc5fd90ea028433d268038c07919c4f47eed4",
      "parents": [
        "08e8138adebdd511e0955e8d6c051904bb4082af"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jun 13 12:45:48 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Jun 13 12:45:48 2011 +0200"
      },
      "message": "block: use the passed in @bdev when claiming if partno is zero\n\n6b4517a791 (block: implement bd_claiming and claiming block)\nintroduced claiming block to support O_EXCL blkdev opens properly.\n\nbd_start_claiming() looks up the part 0 bdev and starts claiming\nblock.  The function assumed that there is only one part 0 bdev and\nalways used bdget_disk(disk, 0) to look it up; unfortunately, this\nisn\u0027t true for some drivers (floppy) which use multiple block devices\nto denote different operating parameters for the same physical device.\nThere can be multiple part 0 bdev\u0027s for the same device number.\n\nThis incorrect assumption caused the wrong bdev to be used during\nclaiming leading to unbalanced bd_holders as reported in the following\nbug.\n\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d28522\n\nThis patch updates bd_start_claiming() such that it uses the bdev\nspecified as argument if its partno is zero.\n\nNote that this means that different bdev\u0027s can be used for the same\ndevice and O_EXCL check can be effectively bypassed.  It has always\nbeen broken that way and floppy is fortunately on its way out.  Leave\nthat breakage alone.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Alex Villacis Lasso \u003cavillaci@ceibo.fiec.espol.edu.ec\u003e\nTested-by: Alex Villacis Lasso \u003cavillaci@ceibo.fiec.espol.edu.ec\u003e\nCc: stable@kernel.org\t# \u003e\u003d v2.6.36\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f758eeabeb96f878c860e8f110f94ec8820822a9",
      "tree": "fea5a465aa0aa38c6c9263eb264acbeb7f722c02",
      "parents": [
        "424b351fe1901fc909fd0ca4f21dab58f24c1aac"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Apr 21 18:19:44 2011 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Jun 08 08:25:21 2011 +0800"
      },
      "message": "writeback: split inode_wb_list_lock into bdi_writeback.list_lock\n\nSplit the global inode_wb_list_lock into a per-bdi_writeback list_lock,\nas it\u0027s currently the most contended lock in the system for metadata\nheavy workloads.  It won\u0027t help for single-filesystem workloads for\nwhich we\u0027ll need the I/O-less balance_dirty_pages, but at least we\ncan dedicate a cpu to spinning on each bdi now for larger systems.\n\nBased on earlier patches from Nick Piggin and Dave Chinner.\n\nIt reduces lock contentions to 1/4 in this test case:\n10 HDD JBOD, 100 dd on each disk, XFS, 6GB ram\n\nlock_stat version 0.3\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n                              class name    con-bounces    contentions   waittime-min   waittime-max waittime-total    acq-bounces   acquisitions   holdtime-min   holdtime-max holdtime-total\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\nvanilla 2.6.39-rc3:\n                      inode_wb_list_lock:         42590          44433           0.12         147.74      144127.35         252274         886792           0.08         121.34      917211.23\n                      ------------------\n                      inode_wb_list_lock              2          [\u003cffffffff81165da5\u003e] bdev_inode_switch_bdi+0x29/0x85\n                      inode_wb_list_lock             34          [\u003cffffffff8115bd0b\u003e] inode_wb_list_del+0x22/0x49\n                      inode_wb_list_lock          12893          [\u003cffffffff8115bb53\u003e] __mark_inode_dirty+0x170/0x1d0\n                      inode_wb_list_lock          10702          [\u003cffffffff8115afef\u003e] writeback_single_inode+0x16d/0x20a\n                      ------------------\n                      inode_wb_list_lock              2          [\u003cffffffff81165da5\u003e] bdev_inode_switch_bdi+0x29/0x85\n                      inode_wb_list_lock             19          [\u003cffffffff8115bd0b\u003e] inode_wb_list_del+0x22/0x49\n                      inode_wb_list_lock           5550          [\u003cffffffff8115bb53\u003e] __mark_inode_dirty+0x170/0x1d0\n                      inode_wb_list_lock           8511          [\u003cffffffff8115b4ad\u003e] writeback_sb_inodes+0x10f/0x157\n\n2.6.39-rc3 + patch:\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock:         11383          11657           0.14         151.69       40429.51          90825         527918           0.11         145.90      556843.37\n                ------------------------\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock             10          [\u003cffffffff8115b189\u003e] inode_wb_list_del+0x5f/0x86\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock           1493          [\u003cffffffff8115b1ed\u003e] writeback_inodes_wb+0x3d/0x150\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock           3652          [\u003cffffffff8115a8e9\u003e] writeback_sb_inodes+0x123/0x16f\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock           1412          [\u003cffffffff8115a38e\u003e] writeback_single_inode+0x17f/0x223\n                ------------------------\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock              3          [\u003cffffffff8110b5af\u003e] bdi_lock_two+0x46/0x4b\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock              6          [\u003cffffffff8115b189\u003e] inode_wb_list_del+0x5f/0x86\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock           2061          [\u003cffffffff8115af97\u003e] __mark_inode_dirty+0x173/0x1cf\n                \u0026(\u0026wb-\u003elist_lock)-\u003erlock           2629          [\u003cffffffff8115a8e9\u003e] writeback_sb_inodes+0x123/0x16f\n\nhughd@google.com: fix recursive lock when bdi_lock_two() is called with new the same as old\nakpm@linux-foundation.org: cleanup bdev_inode_switch_bdi() comment\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "4c49ff3fe128ca68dabd07537415c419ad7f82f9",
      "tree": "58898648d2b9d896804fa98fce9eecb2724e2a75",
      "parents": [
        "4495a7d41dbda03841c2a1c2a5ce7135a45131ba"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Jun 01 08:27:41 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Jun 01 08:28:47 2011 +0200"
      },
      "message": "block: blkdev_get() should access -\u003ebd_disk only after success\n\nd4dc210f69 (block: don\u0027t block events on excl write for non-optical\ndevices) added dereferencing of bdev-\u003ebd_disk to test\nGENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE; however, bdev-\u003ebd_disk can be\n%NULL if open failed which can lead to an oops.\n\nTest the flag after testing open was successful, not before.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: David Miller \u003cdavem@davemloft.net\u003e\nTested-by: David Miller \u003cdavem@davemloft.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7e69723fef8771a9d57bd27d36281d756130b4b5",
      "tree": "0b43d02f5c2eccb932564ed7c3999eb4e649b066",
      "parents": [
        "95cf3dd9dbe6883a0328724e2110e3fc6465630b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 23 13:26:07 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon May 23 13:26:07 2011 +0200"
      },
      "message": "block: move bd_set_size() above rescan_partitions() in __blkdev_get()\n\n02e352287a4 (block: rescan partitions on invalidated devices on\n-ENOMEDIA too) relocated partition rescan above explicit bd_set_size()\nto simplify condition check.  As rescan_partitions() does its own bdev\nsize setting, this doesn\u0027t break anything; however,\nrescan_partitions() prints out the following messages when adjusting\nbdev size, which can be confusing.\n\n  sda: detected capacity change from 0 to 146815737856\n  sdb: detected capacity change from 0 to 146815737856\n\nThis patch restores the original order and remove the warning\nmessages.\n\nstable: Please apply together with 02e352287a4 (block: rescan\n        partitions on invalidated devices on -ENOMEDIA too).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Tony Luck \u003ctony.luck@gmail.com\u003e\nTested-by: Tony Luck \u003ctony.luck@gmail.com\u003e\nCc: stable@kernel.org\n\nStable note: 2.6.39 only.\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "d4dc210f69bcb0b4bef5a83b1c323817be89bad1",
      "tree": "58774a27fa6faff1260a416a86d2c121f0013431",
      "parents": [
        "1196f8b814f32cd04df334abf47648c2a9fd8324"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 21 20:54:46 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Apr 21 20:54:46 2011 +0200"
      },
      "message": "block: don\u0027t block events on excl write for non-optical devices\n\nDisk event code automatically blocks events on excl write.  This is\nprimarily to avoid issuing polling commands while burning is in\nprogress.  This behavior doesn\u0027t fit other types of devices with\nremoveable media where polling commands don\u0027t have adverse side\neffects and door locking usually doesn\u0027t exist.\n\nThis patch introduces new genhd flag which controls the auto-blocking\nbehavior and uses it to enable auto-blocking only on optical devices.\n\nNote for stable: 2.6.38 and later only\n\nCc: stable@kernel.org\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "1196f8b814f32cd04df334abf47648c2a9fd8324",
      "tree": "851592da601be9fe51903a49c8da460fab69b487",
      "parents": [
        "ea6949b66d084a197dd7f243b72e216a71d9f2ca"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 21 20:54:45 2011 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Apr 21 20:54:45 2011 +0200"
      },
      "message": "block: rescan partitions on invalidated devices on -ENOMEDIA too\n\n__blkdev_get() doesn\u0027t rescan partitions if disk-\u003efops-\u003eopen() fails,\nwhich leads to ghost partition devices lingering after medimum removal\nis known to both the kernel and userland.  The behavior also creates a\nsubtle inconsistency where O_NONBLOCK open, which doesn\u0027t fail even if\nthere\u0027s no medium, clears the ghots partitions, which is exploited to\nwork around the problem from userland.\n\nFix it by updating __blkdev_get() to issue partition rescan after\n-ENOMEDIA too.\n\nThis was reported in the following bz.\n\n https://bugzilla.kernel.org/show_bug.cgi?id\u003d13029\n\nNote for stable: 2.6.38 and later only\n\nCc: stable@kernel.org\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: David Zeuthen \u003czeuthen@gmail.com\u003e\nReported-by: Martin Pitt \u003cmartin.pitt@ubuntu.com\u003e\nReported-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nTested-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.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": "d39dd11c3e6a7af5c20bfac40594db36cf270f42",
      "tree": "6384e07fa2f347b286cde9754c4507b5a738ab47",
      "parents": [
        "30f5b28e7f937608e0407edaa459cc8161de81d9",
        "0b2d0724e26a335cd326eb7ad552c109116a8795"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:01:30 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 19:01:30 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  fs: simplify iget \u0026 friends\n  fs: pull inode-\u003ei_lock up out of writeback_single_inode\n  fs: rename inode_lock to inode_hash_lock\n  fs: move i_wb_list out from under inode_lock\n  fs: move i_sb_list out from under inode_lock\n  fs: remove inode_lock from iput_final and prune_icache\n  fs: Lock the inode LRU list separately\n  fs: factor inode disposal\n  fs: protect inode-\u003ei_state with inode-\u003ei_lock\n  autofs4: Do not potentially dereference NULL pointer returned by fget() in autofs_dev_ioctl_setpipefd()\n  autofs4 - remove autofs4_lock\n  autofs4 - fix d_manage() return on rcu-walk\n  autofs4 - fix autofs4_expire_indirect() traversal\n  autofs4 - fix dentry leak in autofs4_expire_direct()\n  autofs4 - reinstate last used update on access\n  vfs - check non-mountpoint dentry might block in __follow_mount_rcu()\n"
    },
    {
      "commit": "a66979abad090b2765a6c6790c9fdeab996833f2",
      "tree": "e48b2d0fac8f96456286a503aeeb952620234961",
      "parents": [
        "55fa6091d83160ca772fc37cebae45d42695a708"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:41 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:17:51 2011 -0400"
      },
      "message": "fs: move i_wb_list out from under inode_lock\n\nProtect the inode writeback list with a new global lock\ninode_wb_list_lock and use it to protect the list manipulations and\ntraversals. This lock replaces the inode_lock as the inodes on the\nlist can be validity checked while holding the inode-\u003ei_lock and\nhence the inode_lock is no longer needed to protect the list.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "250df6ed274d767da844a5d9f05720b804240197",
      "tree": "b74f49a86c4451d9e3e82f90e3f791163025be21",
      "parents": [
        "3dc8fe4dca9cd3e4aa828ed36451e2bcfd2350da"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Mar 22 22:23:36 2011 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Mar 24 21:16:31 2011 -0400"
      },
      "message": "fs: protect inode-\u003ei_state with inode-\u003ei_lock\n\nProtect inode state transitions and validity checks with the\ninode-\u003ei_lock. This enables us to make inode state transitions\nindependently of the inode_lock and is the first step to peeling\naway the inode_lock from the code.\n\nThis requires that __iget() is done atomically with i_state checks\nduring list traversals so that we don\u0027t race with another thread\nmarking the inode I_FREEING between the state check and grabbing the\nreference.\n\nAlso remove the unlock_new_inode() memory barrier optimisation\nrequired to avoid taking the inode_lock when clearing I_NEW.\nSimplify the code by simply taking the inode-\u003ei_lock around the\nstate change and wakeup. Because the wakeup is no longer tricky,\nremove the wake_up_inode() function and open code the wakeup where\nnecessary.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4345caba340f051e10847924fc078ae18ed6695c",
      "tree": "aada9145e21b79f31129281bf7d1bb33a1710fbb",
      "parents": [
        "8184f93eced1e304721c2a55c00d87d5a14f8907"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat Mar 19 13:53:31 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl",
        "time": "Sat Mar 19 13:53:31 2011 +0100"
      },
      "message": "block: NULL dereference on error path in __blkdev_get()\n\n\"disk\" is always NULL when we goto out.  There was a check for this\nbefore, but it was removed in 69e02c59a7d9 \"block: Don\u0027t check events\nwhile open is in progress\".\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl\u003e\n"
    },
    {
      "commit": "4c63f5646e405b5010cc9499419060bf2e838f5b",
      "tree": "df91ba315032c8ec4aafeb3ab96fdfa7c6c656e1",
      "parents": [
        "cafb0bfca1a73efd6d8a4a6a6a716e6134b96c24",
        "69d60eb96ae8a73cf9b79cf28051caf973006011"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:58:35 2011 +0100"
      },
      "message": "Merge branch \u0027for-2.6.39/stack-plug\u0027 into for-2.6.39/core\n\nConflicts:\n\tblock/blk-core.c\n\tblock/blk-flush.c\n\tdrivers/md/raid1.c\n\tdrivers/md/raid10.c\n\tdrivers/md/raid5.c\n\tfs/nilfs2/btnode.c\n\tfs/nilfs2/mdt.c\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.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": "69e02c59a7d962dced8047401b81a8d897e1702e",
      "tree": "c1dc1ef45a7f2e8cda6189eb441320bd637e877b",
      "parents": [
        "6936217cc7e58573026bdba25b1bfb778e8f2267"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 09 19:54:27 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 09 19:54:27 2011 +0100"
      },
      "message": "block: Don\u0027t check events while open is in progress\n\nNot all block drivers clear events immediately after reporting.  Some\ndo so in -\u003erevalidate_disk() or other steps during -\u003eopen().  There is\na slim chance event poll may happen between the clearing event check\nfrom check_disk_change() and the actual clearing of the events which\nwould result in spurious events.\n\nBlock event checks while block device open is in progress.  There is\nno need to kick explicit event check afterwards as events are always\nchecked during open.\n\n-v2: The original patch could have called disk_unblock_events() with\n     an already released or %NULL @disk causing oops.  Fixed by making\n     sure references are put after disk_unblock_events() is called.\n     It also makes the error path of __blkdev_get() a bit simpler.\n     This problem was reported by Jens.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\n"
    },
    {
      "commit": "6936217cc7e58573026bdba25b1bfb778e8f2267",
      "tree": "7ddfbc4912d9a29a9719c13b8d1b58a3b3291762",
      "parents": [
        "facc31ddc3570a3a0d8951c94f16b898e01b464d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 09 19:54:27 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 09 19:54:27 2011 +0100"
      },
      "message": "block: Don\u0027t check events on close unless it was blocked\n\nThe block event mechanism currently always checks events when the\ndevice is being closed regardless of the open mode.  The intention was\nto allow detection of EJECT_REQUEST when a device is closed whether\ndisk event polling is enabled or not.\n\nThis is unnecessary as, for devices of interest, events are checked\nfrom either userland or kernel and in the former case -\u003echeck_events()\nis performed on open of each poll attempt anyway.  Furthermore, this\nunconditional event check on close makes the code susceptible to event\nloop if the block driver doesn\u0027t clear reported events correctly - an\nevent triggers userland to open and close the device which in turn\ncauses another event, rinse and repeat.\n\nCheck events on close only if it was blocked by excl write open.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\n"
    },
    {
      "commit": "facc31ddc3570a3a0d8951c94f16b898e01b464d",
      "tree": "23b8294910c26cabb4335a418b7ca27e52eaaaa8",
      "parents": [
        "df457f845e5449be2e7d96668791f789b3770ac7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 09 19:54:27 2011 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 09 19:54:27 2011 +0100"
      },
      "message": "block: Don\u0027t implicitly trigger event check on disk_unblock_events()\n\nCurrently, disk_unblock_events() implicitly kick event check if the\nblock count reaches zero.  This behavior is not described in the\ncomment and hinders with future changes.  Make the unblocker\nexplicitly check events by calling disk_check_events() as necessary.\n\nThis patch doesn\u0027t cause any behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\n"
    },
    {
      "commit": "e6eb5ce1b202ac9cdcfda5be559c9b9d8ec7542c",
      "tree": "804e89136479b335c2d4dd14dd6cbf8041a8ff8a",
      "parents": [
        "af06216a8ef1c430cc6ad22b562f3a11a512c5dd"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Feb 26 10:54:00 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Feb 28 18:08:31 2011 -0800"
      },
      "message": "fs/block_dev.c: fix new kernel-doc warning\n\nFix new kernel-doc warning in fs/block_dev.c:\n\nWarning(fs/block_dev.c:937): No description found for parameter \u0027kill_dirty\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "638691a7a46a4ae9a7b56c603299e42d7f6e722e",
      "tree": "f744b3fbdd4704ef9ae122b67a14785b4a7a6b65",
      "parents": [
        "0a93ea2e897bd793cc0aaaddc397eff32ac8d6fe",
        "f0b4f7e2f29af678bd9af43422c537dcb6008603"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 11:13:26 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 25 11:13:26 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://neil.brown.name/md\n\n* \u0027for-linus\u0027 of git://neil.brown.name/md:\n  md: Fix - again - partition detection when array becomes active\n  Fix over-zealous flush_disk when changing device size.\n  md: avoid spinlock problem in blk_throtl_exit\n  md: correctly handle probe of an \u0027mdp\u0027 device.\n  md: don\u0027t set_capacity before array is active.\n  md: Fix raid1-\u003eraid0 takeover\n"
    },
    {
      "commit": "e7407d1619713f4b1fdff3a485e1bd8e77bd480d",
      "tree": "18def7871239d5de7dea8cb115badb53d64fccb4",
      "parents": [
        "8074b26f67165bf045d92e778c9c10dc5e207fc6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Feb 24 09:56:32 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 24 08:55:55 2011 -0800"
      },
      "message": "block: bd_link_disk_holder() should hold on to holder_dir\n\nThe new implementation of bd_link_disk_holder() added by 49731baa41d\n(block: restore multiple bd_link_disk_holder() support) didn\u0027t get an\nextra reference for the holder_dir kobject of the slave bdev; however,\nbdev kills holder_dir on removal, not release, so if the slave bdev is\nremoved while there are holder links, the holder_dir will be destroyed\nwhile there still are holder links, which leads to oops later when\nbd_unlink_disk_order() tries to remove those links.\n\nMake bd_link_disk_holder() grab an extra reference for the slave\u0027s\nholder_dir and put it in bd_unlink_disk_holder().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: \"Hawrylewicz Czarnowski, Przemyslaw\" \u003cprzemyslaw.hawrylewicz.czarnowski@intel.com\u003e\nTested-by: \"Hawrylewicz Czarnowski, Przemyslaw\" \u003cprzemyslaw.hawrylewicz.czarnowski@intel.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93b270f76e7ef3b81001576860c2701931cdc78b",
      "tree": "abaca0e4d3e86721815498fafd06295dd9cfd002",
      "parents": [
        "da9cf5050a2e3dbc3cf26a8d908482eb4485ed49"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 24 17:25:47 2011 +1100"
      },
      "committer": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Feb 24 17:25:47 2011 +1100"
      },
      "message": "Fix over-zealous flush_disk when changing device size.\n\nThere are two cases when we call flush_disk.\nIn one, the device has disappeared (check_disk_change) so any\ndata will hold becomes irrelevant.\nIn the oter, the device has changed size (check_disk_size_change)\nso data we hold may be irrelevant.\n\nIn both cases it makes sense to discard any \u0027clean\u0027 buffers,\nso they will be read back from the device if needed.\n\nIn the former case it makes sense to discard \u0027dirty\u0027 buffers\nas there will never be anywhere safe to write the data.  In the\nsecond case it *does*not* make sense to discard dirty buffers\nas that will lead to file system corruption when you simply enlarge\nthe containing devices.\n\nflush_disk calls __invalidate_devices.\n__invalidate_device calls both invalidate_inodes and invalidate_bdev.\n\ninvalidate_inodes *does* discard I_DIRTY inodes and this does lead\nto fs corruption.\n\ninvalidate_bev *does*not* discard dirty pages, but I don\u0027t really care\nabout that at present.\n\nSo this patch adds a flag to __invalidate_device (calling it\n__invalidate_device2) to indicate whether dirty buffers should be\nkilled, and this is passed to invalidate_inodes which can choose to\nskip dirty inodes.\n\nflusk_disk then passes true from check_disk_change and false from\ncheck_disk_size_change.\n\ndm avoids tripping over this problem by calling i_size_write directly\nrathher than using check_disk_size_change.\n\nmd does use check_disk_size_change and so is affected.\n\nThis regression was introduced by commit 608aeef17a which causes\ncheck_disk_size_change to call flush_disk, so it is suitable for any\nkernel since 2.6.27.\n\nCc: stable@kernel.org\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "e51900f7d38cbcfb481d84567fd92540e7e1d23a",
      "tree": "f732388a0efab2967fddc0afd0f2200731e34d02",
      "parents": [
        "a2640111d5edb3f4e6dd6089c0dbddc7590110b4"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Wed Feb 16 18:11:53 2011 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 16 16:48:13 2011 -0800"
      },
      "message": "block: revert block_dev read-only check\n\nThis reverts commit 75f1dc0d076d (\"block: check bdev_read_only() from\nblkdev_get()\").  That commit added stricter checking to make sure\ndevices that were being used read-only were actually opened in that\nmode.\n\nIt turns out that the change breaks a bunch of kernel code that opens\nblock devices.  Affected systems include dm, md, and the loop device.\nBecause strict checking for read-only opens of block devices was not\ndone before this, the code that opens the devices was opening them\nread-write even if they were being used read-only.  Auditing all that\ncode will take time, and new userspace packages for dm, mdadm, etc.\nwill also be required.\n\nSigned-off-by: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49731baa41df404c2c3f44555869ab387363af43",
      "tree": "5d3476368fa546aebb1c223e9cf1bab5ad80f698",
      "parents": [
        "c553f8e335c00a7cff3ab3f13e793b13d3f2207f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 14 18:43:57 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Jan 14 18:44:22 2011 +0100"
      },
      "message": "block: restore multiple bd_link_disk_holder() support\n\nCommit e09b457b (block: simplify holder symlink handling) incorrectly\nassumed that there is only one link at maximum.  dm may use multiple\nlinks and expects block layer to track reference count for each link,\nwhich is different from and unrelated to the exclusive device holder\nidentified by @holder when the device is opened.\n\nRemove the single holder assumption and automatic removal of the link\nand revive the per-link reference count tracking.  The code\nessentially behaves the same as before commit e09b457b sans the\nunnecessary kobject reference count dancing.\n\nWhile at it, note that this facility should not be used by anyone else\nthan the current ones.  Sysfs symlinks shouldn\u0027t be abused like this\nand the whole thing doesn\u0027t belong in the block layer at all.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: linux-raid@vger.kernel.org\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.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": "c74a1cbb3cac348f276fabc381758f5b0b4713b2",
      "tree": "5b403590e41b5e91fce25c69d50a23b920b3497f",
      "parents": [
        "f772c4a6a320ec25d94ba951881474eeef1b7f48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 16:59:34 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:03:43 2011 -0500"
      },
      "message": "pass default dentry_operations to mount_pseudo()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "77ea887e433ad8389d416826936c110fa7910f80",
      "tree": "ac9d32aabcebf5a465acae2066b12c9335b5ca6f",
      "parents": [
        "d2bf1b6723ed0eab378363649d15b7893bf14e91"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 08 20:57:37 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Dec 16 17:53:38 2010 +0100"
      },
      "message": "implement in-kernel gendisk events handling\n\nCurrently, media presence polling for removeable block devices is done\nfrom userland.  There are several issues with this.\n\n* Polling is done by periodically opening the device.  For SCSI\n  devices, the command sequence generated by such action involves a\n  few different commands including TEST_UNIT_READY.  This behavior,\n  while perfectly legal, is different from Windows which only issues\n  single command, GET_EVENT_STATUS_NOTIFICATION.  Unfortunately, some\n  ATAPI devices lock up after being periodically queried such command\n  sequences.\n\n* There is no reliable and unintrusive way for a userland program to\n  tell whether the target device is safe for media presence polling.\n  For example, polling for media presence during an on-going burning\n  session can make it fail.  The polling program can avoid this by\n  opening the device with O_EXCL but then it risks making a valid\n  exclusive user of the device fail w/ -EBUSY.\n\n* Userland polling is unnecessarily heavy and in-kernel implementation\n  is lighter and better coordinated (workqueue, timer slack).\n\nThis patch implements framework for in-kernel disk event handling,\nwhich includes media presence polling.\n\n* bdops-\u003echeck_events() is added, which supercedes -\u003emedia_changed().\n  It should check whether there\u0027s any pending event and return if so.\n  Currently, two events are defined - DISK_EVENT_MEDIA_CHANGE and\n  DISK_EVENT_EJECT_REQUEST.  -\u003echeck_events() is guaranteed not to be\n  called parallelly.\n\n* gendisk-\u003eevents and -\u003easync_events are added.  These should be\n  initialized by block driver before passing the device to add_disk().\n  The former contains the mask of all supported events and the latter\n  the mask of all events which the device can report without polling.\n  /sys/block/*/events[_async] export these to userland.\n\n* Kernel parameter block.events_dfl_poll_msecs controls the system\n  polling interval (default is 0 which means disable) and\n  /sys/block/*/events_poll_msecs control polling intervals for\n  individual devices (default is -1 meaning use system setting).  Note\n  that if a device can report all supported events asynchronously and\n  its polling interval isn\u0027t explicitly set, the device won\u0027t be\n  polled regardless of the system polling interval.\n\n* If a device is opened exclusively with write access, event checking\n  is automatically disabled until all write exclusive accesses are\n  released.\n\n* There are event \u0027clearing\u0027 events.  For example, both of currently\n  defined events are cleared after the device has been successfully\n  opened.  This information is passed to -\u003echeck_events() callback\n  using @clearing argument as a hint.\n\n* Event checking is always performed from system_nrt_wq and timer\n  slack is set to 25% for polling.\n\n* Nothing changes for drivers which implement -\u003emedia_changed() but\n  not -\u003echeck_events().  Going forward, all drivers will be converted\n  to -\u003echeck_events() and -\u003emedia_change() will be dropped.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.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": "d4d77629953eabd3c14f6fa5746f6b28babfc55f",
      "tree": "38cce0d4764ecb34a9f7f49332959780e28bb786",
      "parents": [
        "75f1dc0d076d1c1168f2115f1941ea627d38bd5a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Nov 13 11:55:18 2010 +0100"
      },
      "message": "block: clean up blkdev_get() wrappers and their users\n\nAfter recent blkdev_get() modifications, open_by_devnum() and\nopen_bdev_exclusive() are simple wrappers around blkdev_get().\nReplace them with blkdev_get_by_dev() and blkdev_get_by_path().\n\nblkdev_get_by_dev() is identical to open_by_devnum().\nblkdev_get_by_path() is slightly different in that it doesn\u0027t\nautomatically add %FMODE_EXCL to @mode.\n\nAll users are converted.  Most conversions are mechanical and don\u0027t\nintroduce any behavior difference.  There are several exceptions.\n\n* btrfs now sets FMODE_EXCL in btrfs_device-\u003emode, so there\u0027s no\n  reason to OR it explicitly on blkdev_put().\n\n* gfs2, nilfs2 and the generic mount_bdev() now set FMODE_EXCL in\n  sb-\u003es_mode.\n\n* With the above changes, sb-\u003es_mode now always should contain\n  FMODE_EXCL.  WARN_ON_ONCE() added to kill_block_super() to detect\n  errors.\n\nThe new blkdev_get_*() functions are with proper docbook comments.\nWhile at it, add function description to blkdev_get() too.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Philipp Reisner \u003cphilipp.reisner@linbit.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: Joern Engel \u003cjoern@lazybastard.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: reiserfs-devel@vger.kernel.org\nCc: xfs-masters@oss.sgi.com\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "75f1dc0d076d1c1168f2115f1941ea627d38bd5a",
      "tree": "af12858b842579e8924b30cb636b96fcca6f46b1",
      "parents": [
        "6a027eff62f6ae32d49f2ae5dadd6f4eee1ddae2"
      ],
      "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: check bdev_read_only() from blkdev_get()\n\nbdev read-only status can be queried using bdev_read_only() and may\nchange while the device is being opened.  Enforce it by checking it\nfrom blkdev_get() after open succeeds.\n\nThis makes bdev_read_only() check in open_bdev_exclusive() and\nfsg_lun_open() unnecessary.  Drop them.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: linux-usb@vger.kernel.org\n"
    },
    {
      "commit": "6a027eff62f6ae32d49f2ae5dadd6f4eee1ddae2",
      "tree": "3ab86a6fb37d1e4a7d21708feafbb58d1be72e5c",
      "parents": [
        "e525fd89d380c4a94c0d63913a1dd1a593ed25e7"
      ],
      "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: reorganize claim/release implementation\n\nWith claim/release rolled into blkdev_get/put(), there\u0027s no reason to\nkeep bd_abort/finish_claim(), __bd_claim() and bd_release() as\nseparate functions.  It only makes the code difficult to follow.\nCollapse them into blkdev_get/put().  This will ease future changes\naround claim/release.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.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": "e09b457bdb7e8d23fc54dcef0930ac697d8de895",
      "tree": "41035bf61a8acb08292d01c0f66e5450502688af",
      "parents": [
        "37004c42f7240035bc2726c340c4efa726b4818e"
      ],
      "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: simplify holder symlink handling\n\nCode to manage symlinks in /sys/block/*/{holders|slaves} are overly\ncomplex with multiple holder considerations, redundant extra\nreferences to all involved kobjects, unused generic kobject holder\nsupport and unnecessary mixup with bd_claim/release functionalities.\n\nStrip it down to what\u0027s necessary (single gendisk holder) and make it\nuse a separate interface.  This is a step for cleaning up\nbd_claim/release.  This patch makes dm-table slightly more complex but\nit will be simplified again with further changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: dm-devel@redhat.com\n"
    },
    {
      "commit": "51139adac92f7160ad3ca1cab2de1b4b8d19dc96",
      "tree": "ea12df0927809e8d5333e82d51cbdb96288c9e6b",
      "parents": [
        "3c26ff6e499ee7e6f9f2bc7da5f2f30d80862ecf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 23:47:46 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:33 2010 -0400"
      },
      "message": "convert get_sb_pseudo() users\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ccf19a8042e343f8159f8a5fdd6a9422aa90c78",
      "tree": "9a69aaad6eb8992cae06f44dfea8c1d94f2a7f99",
      "parents": [
        "a5491e0c7bb7387e3e6ff9994d6dc2efc78af56c"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu Oct 21 11:49:30 2010 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:15 2010 -0400"
      },
      "message": "fs: inode split IO and LRU lists\n\nThe use of the same inode list structure (inode-\u003ei_list) for two\ndifferent list constructs with different lifecycles and purposes\nmakes it impossible to separate the locking of the different\noperations. Therefore, to enable the separation of the locking of\nthe writeback and reclaim lists, split the inode-\u003ei_list into two\nseparate lists dedicated to their specific tracking functions.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a5491e0c7bb7387e3e6ff9994d6dc2efc78af56c",
      "tree": "7573138ef2350fbf0ea02e237d5acebcdaea2780",
      "parents": [
        "99a38919241fd051b8d93b2e4d0c05ef0556d795"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Thu Oct 21 11:49:26 2010 +1100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:14 2010 -0400"
      },
      "message": "fs: switch bdev inode bdi\u0027s correctly\n\nbdev inodes can remain dirty even after their last close. Hence the\nBDI associated with the bdev-\u003einode gets modified duringthe last\nclose to point to the default BDI. However, the bdev inode still\nneeds to be moved to the dirty lists of the new BDI, otherwise it\nwill corrupt the writeback list is was left on.\n\nAdd a new function bdev_inode_switch_bdi() to move all the bdi state\nfrom the old bdi to the new one safely. This is only a temporary\nmeasure until the bdev inode\u003c-\u003ebdi lifecycle problems are sorted\nout.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f",
      "tree": "88787e77ba8a253d0a26aeda4bd5e58532d592e0",
      "parents": [
        "646ec4615cd05972581c9c5342ed7a1e77df17bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 23 11:11:40 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "new helper: ihold()\n\nClones an existing reference to inode; caller must already hold one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dd3932eddf428571762596e17b65f5dc92ca361b",
      "tree": "57cec5ae2f862037f78b7e993323d77955bb6463",
      "parents": [
        "8786fb70ccb36c7cff64680bb80c46d3a09d44db"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Sep 16 20:51:46 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 20:52:58 2010 +0200"
      },
      "message": "block: remove BLKDEV_IFL_WAIT\n\nAll the blkdev_issue_* helpers can only sanely be used for synchronous\ncaller.  To issue cache flushes or barriers asynchronously the caller needs\nto set up a bio by itself with a completion callback to move the asynchronous\nstate machine ahead.  So drop the BLKDEV_IFL_WAIT flag that is always\nspecified when calling blkdev_issue_* and also remove the now unused flags\nargument to blkdev_issue_flush and blkdev_issue_zeroout.  For\nblkdev_issue_discard we need to keep it for the secure discard flag, which\ngains a more descriptive name and loses the bitops vs flag confusion.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b7300b78d1a87625975a799a109a2f98d77757c8",
      "tree": "8cf263c09daf725ee701b0acd7ad700c530a5f08",
      "parents": [
        "e400c28524af2d344b1663b27bf28984fa959a0e"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Tue Aug 10 18:02:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "blkdev: cgroup whitelist permission fix\n\nThe cgroup device whitelist code gets confused when trying to grant\npermission to a disk partition that is not currently open.  Part of\nblkdev_open() includes __blkdev_get() on the whole disk.\n\nBasically, the only ways to reliably allow a cgroup access to a partition\non a block device when using the whitelist are to 1) also give it access\nto the whole block device or 2) make sure the partition is already open in\na different context.\n\nThe patch avoids the cgroup check for the whole disk case when opening a\npartition.\n\nAddresses https://bugzilla.redhat.com/show_bug.cgi?id\u003d589662\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nAcked-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nTested-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nReported-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: \"Daniel P. Berrange\" \u003cberrange@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\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": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "b57922d97fd6f79b6dbe6db0c4fd30d219fa08c1",
      "tree": "1d39e9cd8e1c1f502fb7e985a08286859c69aa36",
      "parents": [
        "45321ac54316eaeeebde0b5f728a1791e500974c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 07 14:34:48 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:37 2010 -0400"
      },
      "message": "convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "155130a4f7848b1aac439cab6bda1a175507c71c",
      "tree": "5019b14b0a9221b08959196e01e3f9326957d678",
      "parents": [
        "6e1db88d536adcbbfe562b2d4b7d6425784fff12"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:58 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:33 2010 -0400"
      },
      "message": "get rid of block_write_begin_newtrunc\n\nMove the call to vmtruncate to get rid of accessive blocks to the callers\nin preparation of the new truncate sequence and rename the non-truncating\nversion to block_write_begin.\n\nWhile we\u0027re at it also remove several unused arguments to block_write_begin.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eafdc7d190a944c755a9fe68573c193e6e0217e7",
      "tree": "915c3cc8004706fabf88eae1ab123a3fa0147516",
      "parents": [
        "256249584bda1a9357e2d29987a37f5b2df035f6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:53 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:29 2010 -0400"
      },
      "message": "sort out blockdev_direct_IO variants\n\nMove the call to vmtruncate to get rid of accessive blocks to the callers\nin prepearation of the new truncate calling sequence.  This was only done\nfor DIO_LOCKING filesystems, so the __blockdev_direct_IO_newtrunc variant\nwas not needed anyway.  Get rid of blockdev_direct_IO_no_locking and\nits _newtrunc variant while at it as just opencoding the two additional\nparamters is shorted than the name suffix.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\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": "e75aa85892b2ee78c79edac720868cbef16e62eb",
      "tree": "80b9ce187b207a1a817b9b4b172f86fa71d75212",
      "parents": [
        "d9b68e5e88248bb24fd4e455588bea1d56108fd6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Aug 04 17:59:39 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 04 11:17:10 2010 -0700"
      },
      "message": "block_dev: always serialize exclusive open attempts\n\nbd_prepare_to_claim() incorrectly allowed multiple attempts for\nexclusive open to progress in parallel if the attempting holders are\nidentical.  This triggered BUG_ON() as reported in the following bug.\n\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d16393\n\n__bd_abort_claiming() is used to finish claiming blocks and doesn\u0027t\nwork if multiple openers are inside a claiming block.  Allowing\nmultiple parallel open attempts to continue doesn\u0027t gain anything as\nthose are serialized down in the call chain anyway.  Fix it by always\nallowing only single open attempt in a claiming block.\n\nThis problem can easily be reproduced by adding a delay after\nbd_prepare_to_claim() and attempting to mount two partitions of a\ndisk.\n\nstable: only applicable to v2.6.35\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e6c05052c262ebe7fdd85e75e9d4f956cdd8d82",
      "tree": "35b65924594cc085cc21b36c1b9f918961e760e0",
      "parents": [
        "b0018361c3f934858592cbbb5e1a4f318c2a70ed"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Mon Jun 07 20:17:38 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 10 19:08:34 2010 +0200"
      },
      "message": "block: remove duplicate BUG_ON() in bd_finish_claiming()\n\nWe do the same BUG_ON() just a line later when calling into\n__bd_abort_claiming().\n\nReported-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "b0018361c3f934858592cbbb5e1a4f318c2a70ed",
      "tree": "fa14b78331f2683838a3aee5a694ec37911c4ea3",
      "parents": [
        "cf3425707ed9ce0d5ebaba20bc3d22dd39e52f2f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed May 26 01:51:19 2010 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 10 19:08:34 2010 +0200"
      },
      "message": "block: bd_start_claiming cleanup\n\nI don\u0027t like the subtle multi-context code in bd_claim (ie.  detects where it\nhas been called based on bd_claiming). It seems clearer to just require a new\nfunction to finish a 2-part claim.\n\nAlso improve commentary in bd_start_claiming as to how it should\nbe used.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "cf3425707ed9ce0d5ebaba20bc3d22dd39e52f2f",
      "tree": "49bf80d0e11e93f6b27ba481800901aae87597d7",
      "parents": [
        "63a07cb64ccc3ceae619d3298545d602ab5ecd38"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed May 26 01:50:21 2010 +1000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 10 19:08:34 2010 +0200"
      },
      "message": "block: bd_start_claiming fix module refcount\n\nbd_start_claiming has an unbalanced module_put introduced in 6b4517a79.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "3322e79a3860fd0d50e3c1879b2e98ac582c0ff6",
      "tree": "58ebfb1742c996dd9a40593c33c9ea1ff958efe8",
      "parents": [
        "15c6fd9786dfaab43547bf60df6fa63170fb64fc"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Thu May 27 22:42:19 2010 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:15:47 2010 -0400"
      },
      "message": "fs: convert simple fs to new truncate\n\nConvert simple filesystems: ramfs, configfs, sysfs, block_dev to new truncate\nsequence.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7ea8085910ef3dd4f3cad6845aaa2b580d39b115",
      "tree": "d9c1edb5906f943f7d70bfb4b65106e29772d379",
      "parents": [
        "cc967be54710d97c05229b2e5ba2d00df84ddd64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed May 26 17:53:25 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:05:02 2010 -0400"
      },
      "message": "drop unused dentry argument to -\u003efsync\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e8bebe2f71d26871b0970ae1d9cf0ed3cdd9569d",
      "tree": "c0d82cbd11daaf579b74121c6641d58947091094",
      "parents": [
        "6109e2ce2600e2db26cd0424bb9c6ed019723288",
        "82f3952c02add60b15eea9151d4d99b6b82066c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 21 19:37:45 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (69 commits)\n  fix handling of offsets in cris eeprom.c, get rid of fake on-stack files\n  get rid of home-grown mutex in cris eeprom.c\n  switch ecryptfs_write() to struct inode *, kill on-stack fake files\n  switch ecryptfs_get_locked_page() to struct inode *\n  simplify access to ecryptfs inodes in -\u003ereadpage() and friends\n  AFS: Don\u0027t put struct file on the stack\n  Ban ecryptfs over ecryptfs\n  logfs: replace inode uid,gid,mode initialization with helper function\n  ufs: replace inode uid,gid,mode initialization with helper function\n  udf: replace inode uid,gid,mode init with helper\n  ubifs: replace inode uid,gid,mode initialization with helper function\n  sysv: replace inode uid,gid,mode initialization with helper function\n  reiserfs: replace inode uid,gid,mode initialization with helper function\n  ramfs: replace inode uid,gid,mode initialization with helper function\n  omfs: replace inode uid,gid,mode initialization with helper function\n  bfs: replace inode uid,gid,mode initialization with helper function\n  ocfs2: replace inode uid,gid,mode initialization with helper function\n  nilfs2: replace inode uid,gid,mode initialization with helper function\n  minix: replace inode uid,gid,mode init with helper\n  ext4: replace inode uid,gid,mode init with helper\n  ...\n\nTrivial conflict in fs/fs-writeback.c (mark bitfields unsigned)\n"
    },
    {
      "commit": "18e9e5104fcd9a973ffe3eed3816c87f2a1b6cd2",
      "tree": "635369c866fcb384223618c878e0b4c317790634",
      "parents": [
        "e1e46bf1866317d4f86f66bf18d3f07317d9f9ee"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Mar 23 10:34:56 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "Introduce freeze_super and thaw_super for the fsfreeze ioctl\n\nCurrently the way we do freezing is by passing sb\u003es_bdev to freeze_bdev and then\nletting it do all the work.  But freezing is more of an fs thing, and doesn\u0027t\nreally have much to do with the bdev at all, all the work gets done with the\nsuper.  In btrfs we do not populate s_bdev, since we can have multiple bdev\u0027s\nfor one fs and setting s_bdev makes removing devices from a pool kind of tricky.\nThis means that freezing a btrfs filesystem fails, which causes us to corrupt\nwith things like tux-on-ice which use the fsfreeze mechanism.  So instead of\npopulating sb-\u003es_bdev with a random bdev in our pool, I\u0027ve broken the actual fs\nfreezing stuff into freeze_super and thaw_super.  These just take the\nsuper_block that we\u0027re freezing and does the appropriate work.  It\u0027s basically\njust copy and pasted from freeze_bdev.  I\u0027ve then converted freeze_bdev over to\nuse the new super helpers.  I\u0027ve tested this with ext4 and btrfs and verified\neverything continues to work the same as before.\n\nThe only new gotcha is multiple calls to the fsfreeze ioctl will return EBUSY if\nthe fs is already frozen.  I thought this was a better solution than adding a\nfreeze counter to the super_block, but if everybody hates this idea I\u0027m open to\nsuggestions.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d3f2147307cce9eac56dd91d381709aa3f1615b3",
      "tree": "c1512bc87bdd657d379c6cf67f9c84436ad8fb52",
      "parents": [
        "7ed1ee6118ae77330cae2a6d5e9383532f7dfb48"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 23 11:11:05 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:17 2010 -0400"
      },
      "message": "Move grabbing s_umount to callers of grab_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7407cf355fdf5500430be966dbbde84a27293bad",
      "tree": "922861288ff38558ed721a79653f52b17b13bb95",
      "parents": [
        "6a47dc1418682c83d603b491df1d048f73aa973e",
        "79dba2eaa771c3173957eccfd288e0e0d12e4d3f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 09:36:24 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 29 09:36:24 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.35\n\nConflicts:\n\tfs/block_dev.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "fbd9b09a177a481eda256447c881f014f29034fe",
      "tree": "ef7e213045382f82a1e3e3cf134d196a1045dd7a",
      "parents": [
        "6b4517a7913a09d3259bb1d21c9cb300f12294bd"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Wed Apr 28 17:55:06 2010 +0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 28 19:47:36 2010 +0200"
      },
      "message": "blkdev: generalize flags for blkdev_issue_fn functions\n\nThe patch just convert all blkdev_issue_xxx function to common\nset of flags. Wait/allocation semantics preserved.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6b4517a7913a09d3259bb1d21c9cb300f12294bd",
      "tree": "a79a1a95c0ef193b20fc004b575f65826f2a85cc",
      "parents": [
        "1a3cbbc5a5e8a66934aa0947896a4aca6fd77298"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Apr 07 18:53:59 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 27 10:57:54 2010 +0200"
      },
      "message": "block: implement bd_claiming and claiming block\n\nCurrently, device claiming for exclusive open is done after low level\nopen - disk-\u003efops-\u003eopen() - has completed successfully.  This means\nthat exclusive open attempts while a device is already exclusively\nopen will fail only after disk-\u003efops-\u003eopen() is called.\n\ncdrom driver issues commands during open() which means that O_EXCL\nopen attempt can unintentionally inject commands to in-progress\ncommand stream for burning thus disturbing burning process.  In most\ncases, this doesn\u0027t cause problems because the first command to be\nissued is TUR which most devices can process in the middle of burning.\nHowever, depending on how a device replies to TUR during burning,\ncdrom driver may end up issuing further commands.\n\nThis can\u0027t be resolved trivially by moving bd_claim() before doing\nactual open() because that means an open attempt which will end up\nfailing could interfere other legit O_EXCL open attempts.\nie. unconfirmed open attempts can fail others.\n\nThis patch resolves the problem by introducing claiming block which is\nstarted by bd_start_claiming() and terminated either by bd_claim() or\nbd_abort_claiming().  bd_claim() from inside a claiming block is\nguaranteed to succeed and once a claiming block is started, other\nbd_start_claiming() or bd_claim() attempts block till the current\nclaiming block is terminated.\n\nbd_claim() can still be used standalone although now it always\nsynchronizes against claiming blocks, so the existing users will keep\nworking without any change.\n\nblkdev_open() and open_bdev_exclusive() are converted to use claiming\nblocks so that exclusive open attempts from these functions don\u0027t\ninterfere with the existing exclusive open.\n\nThis problem was discovered while investigating bko#15403.\n\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d15403\n\nThe burning problem itself can be resolved by updating userspace\nprobing tools to always open w/ O_EXCL.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Matthias-Christian Ott \u003cott@mirix.org\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1a3cbbc5a5e8a66934aa0947896a4aca6fd77298",
      "tree": "b8425cd193874adee8ba36181e64294ef39335cc",
      "parents": [
        "afc24d49c1e5dbeef745c1c1246f5ae6ebd97c71"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Apr 07 18:52:29 2010 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 27 10:57:54 2010 +0200"
      },
      "message": "block: factor out bd_may_claim()\n\nFactor out bd_may_claim() from bd_claim(), add comments and apply a\ncouple of cosmetic edits.  This is to prepare for further updates to\nclaim path.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b8af67e2681c693a21f3933e3bdfce4cf66596d3",
      "tree": "757fe652a36aa002b6bee9365b484e57bc5318fd",
      "parents": [
        "98d5ce0d0044666fc85a01915a1d22407eb546fd"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Fri Apr 23 13:18:06 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 24 11:31:26 2010 -0700"
      },
      "message": "fs/block_dev.c: fix performance regression in O_DIRECT|O_SYNC writes to block devices\n\nWe are seeing a large regression in database performance on recent\nkernels.  The database opens a block device with O_DIRECT|O_SYNC and a\nnumber of threads write to different regions of the file at the same time.\n\nA simple test case is below.  I haven\u0027t defined DEVICE since getting it\nwrong will destroy your data :) On an 3 disk LVM with a 64k chunk size we\nsee about 17MB/sec and only a few threads in IO wait:\n\nprocs  -----io---- -system-- -----cpu------\n r  b     bi    bo   in   cs us sy id wa st\n 0  3      0 16170  656 2259  0  0 86 14  0\n 0  2      0 16704  695 2408  0  0 92  8  0\n 0  2      0 17308  744 2653  0  0 86 14  0\n 0  2      0 17933  759 2777  0  0 89 10  0\n\nMost threads are blocking in vfs_fsync_range, which has:\n\n        mutex_lock(\u0026mapping-\u003ehost-\u003ei_mutex);\n        err \u003d fop-\u003efsync(file, dentry, datasync);\n        if (!ret)\n                ret \u003d err;\n        mutex_unlock(\u0026mapping-\u003ehost-\u003ei_mutex);\n\ncommit 148f948ba877f4d3cdef036b1ff6d9f68986706a (vfs: Introduce new\nhelpers for syncing after writing to O_SYNC file or IS_SYNC inode) offers\nsome explanation of what is going on:\n\n    Use these new helpers for syncing from generic VFS functions. This makes\n    O_SYNC writes to block devices acquire i_mutex for syncing. If we really\n    care about this, we can make block_fsync() drop the i_mutex and reacquire\n    it before it returns.\n\nThanks Jan for such a good commit message!  As well as dropping i_mutex,\nChristoph suggests we should remove the call to sync_blockdev():\n\n\u003e sync_blockdev is an overcomplicated alias for filemap_write_and_wait on\n\u003e the block device inode, which is exactly what we did just before calling\n\u003e into -\u003efsync\n\nThe patch below incorporates both suggestions. With it the testcase improves\nfrom 17MB/s to 68M/sec:\n\nprocs  -----io---- -system-- -----cpu------\n r  b     bi    bo   in   cs us sy id wa st\n 0  7      0 65536 1000 3878  0  0 70 30  0\n 0 34      0 69632 1016 3921  0  1 46 53  0\n 0 57      0 69632 1000 3921  0  0 55 45  0\n 0 53      0 69640  754 4111  0  0 81 19  0\n\nTestcase:\n\n#define _GNU_SOURCE\n#include \u003cstdio.h\u003e\n#include \u003cpthread.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cstring.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n\n#define NR_THREADS 64\n#define BUFSIZE (64 * 1024)\n\n#define DEVICE \"/dev/mapper/XXXXXX\"\n\n#define ALIGN(VAL, SIZE) (((VAL)+(SIZE)-1) \u0026 ~((SIZE)-1))\n\nstatic int fd;\n\nstatic void *doit(void *arg)\n{\n\tunsigned long offset \u003d (long)arg;\n\tchar *b, *buf;\n\n\tb \u003d malloc(BUFSIZE + 1024);\n\tbuf \u003d (char *)ALIGN((unsigned long)b, 1024);\n\tmemset(buf, 0, BUFSIZE);\n\n\twhile (1)\n\t\tpwrite(fd, buf, BUFSIZE, offset);\n}\n\nint main(int argc, char *argv[])\n{\n\tint flags \u003d O_RDWR|O_DIRECT;\n\tint i;\n\tunsigned long offset \u003d 0;\n\n\tif (argc \u003e 1 \u0026\u0026 !strcmp(argv[1], \"O_SYNC\"))\n\t\tflags |\u003d O_SYNC;\n\n\tfd \u003d open(DEVICE, flags);\n\tif (fd \u003d\u003d -1) {\n\t\tperror(\"open\");\n\t\texit(1);\n\t}\n\n\tfor (i \u003d 0; i \u003c NR_THREADS-1; i++) {\n\t\tpthread_t tid;\n\t\tpthread_create(\u0026tid, NULL, doit, (void *)offset);\n\t\toffset +\u003d BUFSIZE;\n\t}\n\tdoit((void *)offset);\n\n\treturn 0;\n}\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1dd3b2843b3b73b7fc2ee47d96310cd1c051371",
      "tree": "ab7d13e076d255dd2c598a3c819e114a854ae85f",
      "parents": [
        "55ab3a1ff843e3f0e24d2da44e71bffa5d853010"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Apr 06 14:35:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 07 08:38:04 2010 -0700"
      },
      "message": "vfs: rename block_fsync() to blkdev_fsync()\n\nRequested by hch, for consistency now it is exported.\n\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55ab3a1ff843e3f0e24d2da44e71bffa5d853010",
      "tree": "092f383aab3dc57d6780348aa9638d01e99041cf",
      "parents": [
        "da258016293f5e82b36db67ac3db3931a4fbbc4d"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Tue Apr 06 14:34:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 07 08:38:04 2010 -0700"
      },
      "message": "raw: fsync method is now required\n\nCommit 148f948ba877f4d3cdef036b1ff6d9f68986706a (vfs: Introduce new\nhelpers for syncing after writing to O_SYNC file or IS_SYNC inode) broke\nthe raw driver.\n\nWe now call through generic_file_aio_write -\u003e generic_write_sync -\u003e\nvfs_fsync_range.  vfs_fsync_range has:\n\n        if (!fop || !fop-\u003efsync) {\n                ret \u003d -EINVAL;\n                goto out;\n        }\n\nBut drivers/char/raw.c doesn\u0027t set an fsync method.\n\nWe have two options: fix it or remove the raw driver completely.  I\u0027m\nhappy to do either, the fact this has been broken for so long suggests it\nis rarely used.\n\nThe patch below adds an fsync method to the raw driver.  My knowledge of\nthe block layer is pretty sketchy so this could do with a once over.\n\nIf we instead decide to remove the raw driver, this patch might still be\nuseful as a backport to 2.6.33 and 2.6.32.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nTested-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b06e5b9ad8abb20105b2b25e42c509ebe9b2d76",
      "tree": "a151e21fef671e9d046a6c456d2f048eea56fb99",
      "parents": [
        "8dd5ca532c2d2c2b85f16bc038ebfff05b8853e1"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Fri Jan 29 09:56:22 2010 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Feb 07 03:06:21 2010 -0500"
      },
      "message": "freeze_bdev: don\u0027t deactivate successfully frozen MS_RDONLY sb\n\nThanks Thomas and Christoph for testing and review.\nI removed \u0027smp_wmb()\u0027 before up_write from the previous patch,\nsince up_write() should have necessary ordering constraints.\n(I.e. the change of s_frozen is visible to others after up_write)\nI\u0027m quite sure the change is harmless but if you are uncomfortable\nwith Tested-by/Reviewed-by on the modified patch, please remove them.\n\nIf MS_RDONLY, freeze_bdev should just up_write(s_umount) instead of\ndeactivate_locked_super().\nAlso, keep sb-\u003es_frozen consistent so that remount can check the frozen state.\n\nOtherwise a crash reported here can happen:\nhttp://lkml.org/lkml/2010/1/16/37\nhttp://lkml.org/lkml/2010/1/28/53\n\nThis patch should be applied for 2.6.32 stable series, too.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nTested-by: Thomas Backlund \u003ctmb@mandriva.org\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2058297d2d045cb57138c33b87cfabcc80e65186",
      "tree": "7ccffd0e162cbd7471f643561e79f23abb989a62",
      "parents": [
        "150e6c67f4bf6ab51e62defc41bd19a2eefe5709",
        "4b27e1bb442e964903f8a3fa6bdf33a602dc0941"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 21:14:39 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 21:14:39 2009 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027 into for-2.6.33\n\nConflicts:\n\tblock/cfq-iosched.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ab0a9735e06914ce4d2a94ffa41497dbc142fe7f",
      "tree": "4d3a19c066d2e513f7d1645092b4a27059b5ee67",
      "parents": [
        "b9d128f1088ea5245109dfc9bbceb128b6371a77"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 29 14:14:04 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 29 14:14:04 2009 +0100"
      },
      "message": "blkdev: flush disk cache on -\u003efsync\n\nCurrently there is no barrier support in the block device code.  That\nmeans we cannot guarantee any sort of data integerity when using the\nblock device node with dis kwrite caches enabled.  Using the raw block\ndevice node is a typical use case for virtualization (and I assume\ndatabases, too).  This patch changes block_fsync to issue a cache flush\nand thus make fsync on block device nodes actually useful.\n\nNote that in mainline we would also need to add such code to the\n-\u003eaio_write method for O_SYNC handling, but assuming that Jan\u0027s patch\nseries for the O_SYNC rewrite goes in it will also call into -\u003efsync\nfor 2.6.32.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "960cc0f4fef607baabc2232fbd7cce5368a9dcfd",
      "tree": "5920396618a0c1cf406b999d2cf5b68eafcdd7e8",
      "parents": [
        "6cafb12dc85a5bdc722791cc5070968413264909"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 26 08:59:17 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 26 15:27:11 2009 +0100"
      },
      "message": "block: use after free bug in __blkdev_get\n\ncommit 0762b8bde9729f10f8e6249809660ff2ec3ad735\n(from 14 months ago) introduced a use-after-free bug which has just\nrecently started manifesting in my md testing.\nI tried git bisect to find out what caused the bug to start\nmanifesting, and it could have been the recent change to\nblk_unregister_queue (48c0d4d4c04) but the results were inconclusive.\n\nThis patch certainly fixes my symptoms and looks correct as the two\ncalls are now in the same order as elsewhere in that function.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4504230a71566785a05d3e6b53fa1ee071b864eb",
      "tree": "e73070fcad99b800f0324992c392d44c6dddc97c",
      "parents": [
        "4fadd7bb20a1e7c774ed88dc703d8fbcd00ff917"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 03 23:28:35 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 24 07:47:41 2009 -0400"
      },
      "message": "freeze_bdev: grab active reference to frozen superblocks\n\nCurrently we held s_umount while a filesystem is frozen, despite that we\nmight return to userspace and unlock it from a different process.  Instead\ngrab an active reference to keep the file system busy and add an explicit\ncheck for frozen filesystems in remount and reject the remount instead\nof blocking on s_umount.\n\nAdd a new get_active_super helper to super.c for use by freeze_bdev that\ngrabs an active reference to a superblock from a given block device.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4fadd7bb20a1e7c774ed88dc703d8fbcd00ff917",
      "tree": "a6f3df6f19d27e81f35a93f8858b73bd4273f420",
      "parents": [
        "1ba50bbe93ebb98e83b174a85eff76af430c4e5b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 03 23:28:06 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Sep 24 07:47:39 2009 -0400"
      },
      "message": "freeze_bdev: kill bd_mount_sem\n\nNow that we have the freeze count there is not much reason for bd_mount_sem\nanymore.  The actual freeze/thaw operations are serialized using the\nbd_fsfreeze_mutex, and the only other place we take bd_mount_sem is\nget_sb_bdev which tries to prevent mounting a filesystem while the block\ndevice is frozen.  Instead of add a check for bd_fsfreeze_count and\nreturn -EBUSY if a filesystem is frozen.  While that is a change in user\nvisible behaviour a failing mount is much better for this case rather\nthan having the mount process stuck uninterruptible for a long time.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "83d5cde47dedf01b6a4a4331882cbc0a7eea3c2e",
      "tree": "f8ba5e263717d35cd444fcc65898d2ed352af1ae",
      "parents": [
        "7b021967c5e1463936042c8da72b550d3cabe9ac"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:25 2009 -0700"
      },
      "message": "const: make block_device_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c96ce9f2084c1e04d02883e622f74a537a63aea",
      "tree": "cad3c6773d2886103b05f7b090b3385d23076a03",
      "parents": [
        "0cb583fd2862f19ea88b02eb307d11c09e51e2f8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 15 09:43:56 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:16:18 2009 +0200"
      },
      "message": "fs: remove bdev-\u003ebd_inode_backing_dev_info\n\nIt has been unused since it was introduced in:\n\ncommit 520808bf20e90fdbdb320264ba7dd5cf9d47dcac\nAuthor: Andrew Morton \u003cakpm@osdl.org\u003e\nDate:   Fri May 21 00:46:17 2004 -0700\n\n    [PATCH] block device layer: separate backing_dev_info infrastructure\n\nSo lets just kill it.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "eef99380679e20e7edc096aa4d8a98b875404d79",
      "tree": "358a39148e8513eed9ba6aaff13f6bf660a2ce1e",
      "parents": [
        "918941a3f3d46c2a69971b4718aaf13b1be2f1a7"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Aug 20 17:43:41 2009 +0200"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 14 17:08:15 2009 +0200"
      },
      "message": "vfs: Rename generic_file_aio_write_nolock\n\ngeneric_file_aio_write_nolock() is now used only by block devices and raw\ncharacter device. Filesystems should use __generic_file_aio_write() in case\ngeneric_file_aio_write() doesn\u0027t suit them. So rename the function to\nblkdev_aio_write() and move it to fs/blockdev.c.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "dddac6a7b445de95515f64fdf82fe5dc36c02f26",
      "tree": "39651610292d6b0c17f210f253a0dd16b022727d",
      "parents": [
        "ec79be26875f6c1468784876cb99192b7f41c7a5"
      ],
      "author": {
        "name": "Alan Jenkins",
        "email": "alan-jenkins@tuffmail.co.uk",
        "time": "Wed Jul 29 21:07:55 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 29 21:07:55 2009 +0200"
      },
      "message": "PM / Hibernate: Replace bdget call with simple atomic_inc of i_count\n\nCreate bdgrab().  This function copies an existing reference to a\nblock_device.  It is safe to call from any context.\n\nHibernation code wishes to copy a reference to the active swap device.\nRight now it calls bdget() under a spinlock, but this is wrong because\nbdget() can sleep.  It doesn\u0027t need a full bdget() because we already\nhold a reference to active swap devices (and the spinlock protects\nagainst swapoff).\n\nFixes http://bugzilla.kernel.org/show_bug.cgi?id\u003d13827\n\nSigned-off-by: Alan Jenkins \u003calan-jenkins@tuffmail.co.uk\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "60b0680fa236ac4e17ce31a50048c9d75f9ec831",
      "tree": "c8ca34340a173326694247eab779e713c57202c2",
      "parents": [
        "c15c54f5f056ee4819da9fde59a5f2cd45445f23"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:53 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:04 2009 -0400"
      },
      "message": "vfs: Rename fsync_super() to sync_filesystem() (version 4)\n\nRename the function so that it better describe what it really does. Also\nremove the unnecessary include of buffer_head.h.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5cee5815d1564bbbd505fea86f4550f1efdb5cd0",
      "tree": "ba99c38932dc534bf56f0d7dcfeeca153f50b007",
      "parents": [
        "429479f031322a0cc5c921ffb2321a51718dc875"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:51 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:03 2009 -0400"
      },
      "message": "vfs: Make sys_sync() use fsync_super() (version 4)\n\nIt is unnecessarily fragile to have two places (fsync_super() and do_sync())\ndoing data integrity sync of the filesystem. Alter __fsync_super() to\naccommodate needs of both callers and use it. So after this patch\n__fsync_super() is the only place where we gather all the calls needed to\nproperly send all data on a filesystem to disk.\n\nNice bonus is that we get a complete livelock avoidance and write_supers()\nis now only used for periodic writeback of superblocks.\n\nsync_blockdevs() introduced a couple of patches ago is gone now.\n\n[build fixes folded]\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "429479f031322a0cc5c921ffb2321a51718dc875",
      "tree": "6741f7f1bfa1d889bbc4f44ab0489de97a3e47c0",
      "parents": [
        "bfe881255c74800147523b59c85328a1a826ba21"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Apr 27 16:43:50 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:03 2009 -0400"
      },
      "message": "vfs: Make __fsync_super() a static function (version 4)\n\n__fsync_super() does the same thing as fsync_super(). So change the only\ncaller to use fsync_super() and make __fsync_super() static. This removes\nunnecessarily duplicated call to sync_blockdev() and prepares ground\nfor the changes to __fsync_super() in the following patches.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "512626a04e72aca60effe111fa0333ed0b195d21",
      "tree": "c22e23b0dcc2dd2ff5a9a96a007de6799e9223de",
      "parents": [
        "8a1ca8cedd108c8e76a6ab34079d0bbb4f244799",
        "3aa27bbe7a6536d1ec859d3a97caf3319b5081b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:15:57 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6\n\n* \u0027for-linus\u0027 of git://linux-arm.org/linux-2.6:\n  kmemleak: Add the corresponding MAINTAINERS entry\n  kmemleak: Simple testing module for kmemleak\n  kmemleak: Enable the building of the memory leak detector\n  kmemleak: Remove some of the kmemleak false positives\n  kmemleak: Add modules support\n  kmemleak: Add kmemleak_alloc callback from alloc_large_system_hash\n  kmemleak: Add the vmalloc memory allocation/freeing hooks\n  kmemleak: Add the slub memory allocation/freeing hooks\n  kmemleak: Add the slob memory allocation/freeing hooks\n  kmemleak: Add the slab memory allocation/freeing hooks\n  kmemleak: Add documentation on the memory leak detector\n  kmemleak: Add the base support\n\nManual conflict resolution (with the slab/earlyboot changes) in:\n\tdrivers/char/vt.c\n\tinit/main.c\n\tmm/slab.c\n"
    },
    {
      "commit": "2e1483c995bbd0fa6cbd055ad76088a520799ba4",
      "tree": "4b555ae3452a80e3cebd7adcab83b019d1ca1b60",
      "parents": [
        "4f2294b6dc88d99295230d97fef2c9863cec44c3"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 13:24:13 2009 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Jun 11 17:04:18 2009 +0100"
      },
      "message": "kmemleak: Remove some of the kmemleak false positives\n\nThere are allocations for which the main pointer cannot be found but\nthey are not memory leaks. This patch fixes some of them. For more\ninformation on false positives, see Documentation/kmemleak.txt.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n"
    },
    {
      "commit": "172124e220f1854acc99ee394671781b8b5e2120",
      "tree": "d9b726679f55d39208bec73fef406433f438dd12",
      "parents": [
        "a05c0205ba031c01bba33a21bf0a35920eb64833"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 04 22:34:44 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 04 22:34:44 2009 +0200"
      },
      "message": "Revert \"block: implement blkdev_readpages\"\n\nThis reverts commit db2dbb12dc47a50c7a4c5678f526014063e486f6.\n\nIt apparently causes problems with partition table read-ahead\non archs with large page sizes. Until that problem is diagnosed\nfurther, just drop the readpages support on block devices.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e1defc4ff0cf57aca6c5e3ff99fa503f5943c1f1",
      "tree": "d60d15a082171c58ac811d547d51a9c3119f23e3",
      "parents": [
        "9bd7de51ee8537094656149eaf45338cadb7d7d4"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri May 22 17:17:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 22 23:22:54 2009 +0200"
      },
      "message": "block: Do away with the notion of hardsect_size\n\nUntil now we have had a 1:1 mapping between storage device physical\nblock size and the logical block sized used when addressing the device.\nWith SATA 4KB drives coming out that will no longer be the case.  The\nsector size will be 4KB but the logical block size will remain\n512-bytes.  Hence we need to distinguish between the physical block size\nand the logical ditto.\n\nThis patch renames hardsect_size to logical_block_size.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "db2dbb12dc47a50c7a4c5678f526014063e486f6",
      "tree": "8bfa3fe41e674f584eb37a7767c008d609b41d75",
      "parents": [
        "db29a6b49674085f136331014ba0eee249c16a2c"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Wed Apr 22 14:08:13 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: implement blkdev_readpages\n\nDoing a proper block dev -\u003ereadpages() speeds up the crazy dump(8)\napproach of using interleaved process IO.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "47e4491b40df73c3b117e3d80b31b5b512a4b19f",
      "tree": "a751af5e30db8f935b97bd671d0055d670b75fe5",
      "parents": [
        "e5824c97a993ac5bd22cec34e6cb6f85d39b73ba"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 01 07:07:16 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Apr 01 07:07:16 2009 -0400"
      },
      "message": "Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225\n\nfsync_bdev() export and a bunch of stubs for !CONFIG_BLOCK case had\nbeen left behind\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "585d3bc06f4ca57f975a5a1f698f65a45ea66225",
      "tree": "393cbd213e714f00c0cae85851e7837ed88b9a99",
      "parents": [
        "3ba13d179e8c24c68eac32b93593a6b10fcd1572"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Feb 25 10:44:19 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "fs: move bdev code out of buffer.c\n\nMove some block device related code out from buffer.c and put it in\nblock_dev.c. I\u0027m trying to move non-buffer_head code out of buffer.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fcccf502540e3d752d33b2d8e976034dee81f9f7",
      "tree": "401be4ad2fc3c535a2fc77e413b1be4a736f320c",
      "parents": [
        "c4be0c1dc4cdc37b175579be1460f15ac6495e9a"
      ],
      "author": {
        "name": "Takashi Sato",
        "email": "t-sato@yk.jp.nec.com",
        "time": "Fri Jan 09 16:40:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 16:54:42 2009 -0800"
      },
      "message": "filesystem freeze: implement generic freeze feature\n\nThe ioctls for the generic freeze feature are below.\no Freeze the filesystem\n  int ioctl(int fd, int FIFREEZE, arg)\n    fd: The file descriptor of the mountpoint\n    FIFREEZE: request code for the freeze\n    arg: Ignored\n    Return value: 0 if the operation succeeds. Otherwise, -1\n\no Unfreeze the filesystem\n  int ioctl(int fd, int FITHAW, arg)\n    fd: The file descriptor of the mountpoint\n    FITHAW: request code for unfreeze\n    arg: Ignored\n    Return value: 0 if the operation succeeds. Otherwise, -1\n    Error number: If the filesystem has already been unfrozen,\n                  errno is set to EINVAL.\n\n[akpm@linux-foundation.org: fix CONFIG_BLOCK\u003dn]\nSigned-off-by: Takashi Sato \u003ct-sato@yk.jp.nec.com\u003e\nSigned-off-by: Masayuki Hamaguchi \u003cm-hamaguchi@ys.jp.nec.com\u003e\nCc: \u003cxfs-masters@oss.sgi.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f"
}
