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

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

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

Pull block fixes from Jens Axboe:
 "Two fixes that should go into this release:

   - a loop writeback error clearing fix from Jeff

   - the sr sense fix from myself"

* tag 'for-linus-20180524' of git://git.kernel.dk/linux-block:
  loop: clear wb_err in bd_inode when detaching backing file
  sr: pass down correctly sized SCSI sense buffer
parents 9ca5a2ae eedffa28
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1068,6 +1068,7 @@ static int loop_clr_fd(struct loop_device *lo)
	if (bdev) {
		bdput(bdev);
		invalidate_bdev(bdev);
		bdev->bd_inode->i_mapping->wb_err = 0;
	}
	set_capacity(lo->lo_disk, 0);
	loop_sysfs_exit(lo);
+8 −2
Original line number Diff line number Diff line
@@ -188,9 +188,13 @@ int sr_do_ioctl(Scsi_CD *cd, struct packet_command *cgc)
	struct scsi_device *SDev;
	struct scsi_sense_hdr sshdr;
	int result, err = 0, retries = 0;
	unsigned char sense_buffer[SCSI_SENSE_BUFFERSIZE], *senseptr = NULL;

	SDev = cd->device;

	if (cgc->sense)
		senseptr = sense_buffer;

      retry:
	if (!scsi_block_when_processing_errors(SDev)) {
		err = -ENODEV;
@@ -198,10 +202,12 @@ int sr_do_ioctl(Scsi_CD *cd, struct packet_command *cgc)
	}

	result = scsi_execute(SDev, cgc->cmd, cgc->data_direction,
			      cgc->buffer, cgc->buflen,
			      (unsigned char *)cgc->sense, &sshdr,
			      cgc->buffer, cgc->buflen, senseptr, &sshdr,
			      cgc->timeout, IOCTL_RETRIES, 0, 0, NULL);

	if (cgc->sense)
		memcpy(cgc->sense, sense_buffer, sizeof(*cgc->sense));

	/* Minimal error checking.  Ignore cases we know about, and report the rest. */
	if (driver_byte(result) != 0) {
		switch (sshdr.sense_key) {