Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d299c290 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-20130331' of git://git.kernel.dk/linux-block

Pull block fixes from Jens Axboe:
 "Alright, this time from 10K up in the air.

  Collection of fixes that have been queued up since the merge window
  opened, hence postponed until later in the cycle.  The pull request
  contains:

   - A bunch of fixes for the xen blk front/back driver.

   - A round of fixes for the new IBM RamSan driver, fixing various
     nasty issues.

   - Fixes for multiple drives from Wei Yongjun, bad handling of return
     values and wrong pointer math.

   - A fix for loop properly killing partitions when being detached."

* tag 'for-linus-20130331' of git://git.kernel.dk/linux-block: (25 commits)
  mg_disk: fix error return code in mg_probe()
  rsxx: remove unused variable
  rsxx: enable error return of rsxx_eeh_save_issued_dmas()
  block: removes dynamic allocation on stack
  Block: blk-flush: Fixed indent code style
  cciss: fix invalid use of sizeof in cciss_find_cfgtables()
  loop: cleanup partitions when detaching loop device
  loop: fix error return code in loop_add()
  mtip32xx: fix error return code in mtip_pci_probe()
  xen-blkfront: remove frame list from blk_shadow
  xen-blkfront: pre-allocate pages for requests
  xen-blkback: don't store dev_bus_addr
  xen-blkfront: switch from llist to list
  xen-blkback: fix foreach_grant_safe to handle empty lists
  xen-blkfront: replace kmalloc and then memcpy with kmemdup
  xen-blkback: fix dispatch_rw_block_io() error path
  rsxx: fix missing unlock on error return in rsxx_eeh_remap_dmas()
  Adding in EEH support to the IBM FlashSystem 70/80 device driver
  block: IBM RamSan 70/80 error message bug fix.
  block: IBM RamSan 70/80 branding changes.
  ...
parents dbf520a9 c613c5f6
Loading
Loading
Loading
Loading
+6 −6
Original line number Original line Diff line number Diff line
@@ -3242,6 +3242,12 @@ F: Documentation/firmware_class/
F:	drivers/base/firmware*.c
F:	drivers/base/firmware*.c
F:	include/linux/firmware.h
F:	include/linux/firmware.h


FLASHSYSTEM DRIVER (IBM FlashSystem 70/80 PCI SSD Flash Card)
M:	Joshua Morris <josh.h.morris@us.ibm.com>
M:	Philip Kelleher <pjk1939@linux.vnet.ibm.com>
S:	Maintained
F:	drivers/block/rsxx/

FLOPPY DRIVER
FLOPPY DRIVER
M:	Jiri Kosina <jkosina@suse.cz>
M:	Jiri Kosina <jkosina@suse.cz>
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/floppy.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/floppy.git
@@ -6551,12 +6557,6 @@ S: Maintained
F:	Documentation/blockdev/ramdisk.txt
F:	Documentation/blockdev/ramdisk.txt
F:	drivers/block/brd.c
F:	drivers/block/brd.c


RAMSAM DRIVER (IBM RamSan 70/80 PCI SSD Flash Card)
M:	Joshua Morris <josh.h.morris@us.ibm.com>
M:	Philip Kelleher <pjk1939@linux.vnet.ibm.com>
S:	Maintained
F:	drivers/block/rsxx/

RANDOM NUMBER DRIVER
RANDOM NUMBER DRIVER
M:	Theodore Ts'o" <tytso@mit.edu>
M:	Theodore Ts'o" <tytso@mit.edu>
S:	Maintained
S:	Maintained
+1 −0
Original line number Original line Diff line number Diff line
@@ -257,6 +257,7 @@ void delete_partition(struct gendisk *disk, int partno)


	hd_struct_put(part);
	hd_struct_put(part);
}
}
EXPORT_SYMBOL(delete_partition);


static ssize_t whole_disk_show(struct device *dev,
static ssize_t whole_disk_show(struct device *dev,
			       struct device_attribute *attr, char *buf)
			       struct device_attribute *attr, char *buf)
+2 −2
Original line number Original line Diff line number Diff line
@@ -532,11 +532,11 @@ config BLK_DEV_RBD
	  If unsure, say N.
	  If unsure, say N.


config BLK_DEV_RSXX
config BLK_DEV_RSXX
	tristate "RamSam PCIe Flash SSD Device Driver"
	tristate "IBM FlashSystem 70/80 PCIe SSD Device Driver"
	depends on PCI
	depends on PCI
	help
	help
	  Device driver for IBM's high speed PCIe SSD
	  Device driver for IBM's high speed PCIe SSD
	  storage devices: RamSan-70 and RamSan-80.
	  storage devices: FlashSystem-70 and FlashSystem-80.


	  To compile this driver as a module, choose M here: the
	  To compile this driver as a module, choose M here: the
	  module will be called rsxx.
	  module will be called rsxx.
+1 −1
Original line number Original line Diff line number Diff line
@@ -4206,7 +4206,7 @@ static int cciss_find_cfgtables(ctlr_info_t *h)
	if (rc)
	if (rc)
		return rc;
		return rc;
	h->cfgtable = remap_pci_mem(pci_resource_start(h->pdev,
	h->cfgtable = remap_pci_mem(pci_resource_start(h->pdev,
		cfg_base_addr_index) + cfg_offset, sizeof(h->cfgtable));
		cfg_base_addr_index) + cfg_offset, sizeof(*h->cfgtable));
	if (!h->cfgtable)
	if (!h->cfgtable)
		return -ENOMEM;
		return -ENOMEM;
	rc = write_driver_ver_to_cfgtable(h->cfgtable);
	rc = write_driver_ver_to_cfgtable(h->cfgtable);
+20 −2
Original line number Original line Diff line number Diff line
@@ -1044,12 +1044,29 @@ static int loop_clr_fd(struct loop_device *lo)
	lo->lo_state = Lo_unbound;
	lo->lo_state = Lo_unbound;
	/* This is safe: open() is still holding a reference. */
	/* This is safe: open() is still holding a reference. */
	module_put(THIS_MODULE);
	module_put(THIS_MODULE);
	if (lo->lo_flags & LO_FLAGS_PARTSCAN && bdev)
		ioctl_by_bdev(bdev, BLKRRPART, 0);
	lo->lo_flags = 0;
	lo->lo_flags = 0;
	if (!part_shift)
	if (!part_shift)
		lo->lo_disk->flags |= GENHD_FL_NO_PART_SCAN;
		lo->lo_disk->flags |= GENHD_FL_NO_PART_SCAN;
	mutex_unlock(&lo->lo_ctl_mutex);
	mutex_unlock(&lo->lo_ctl_mutex);

	/*
	 * Remove all partitions, since BLKRRPART won't remove user
	 * added partitions when max_part=0
	 */
	if (bdev) {
		struct disk_part_iter piter;
		struct hd_struct *part;

		mutex_lock_nested(&bdev->bd_mutex, 1);
		invalidate_partition(bdev->bd_disk, 0);
		disk_part_iter_init(&piter, bdev->bd_disk,
					DISK_PITER_INCL_EMPTY);
		while ((part = disk_part_iter_next(&piter)))
			delete_partition(bdev->bd_disk, part->partno);
		disk_part_iter_exit(&piter);
		mutex_unlock(&bdev->bd_mutex);
	}

	/*
	/*
	 * Need not hold lo_ctl_mutex to fput backing file.
	 * Need not hold lo_ctl_mutex to fput backing file.
	 * Calling fput holding lo_ctl_mutex triggers a circular
	 * Calling fput holding lo_ctl_mutex triggers a circular
@@ -1623,6 +1640,7 @@ static int loop_add(struct loop_device **l, int i)
		goto out_free_dev;
		goto out_free_dev;
	i = err;
	i = err;


	err = -ENOMEM;
	lo->lo_queue = blk_alloc_queue(GFP_KERNEL);
	lo->lo_queue = blk_alloc_queue(GFP_KERNEL);
	if (!lo->lo_queue)
	if (!lo->lo_queue)
		goto out_free_dev;
		goto out_free_dev;
Loading