mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Linux 3.13-rc6
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJSwLfoAAoJEHm+PkMAQRiGi6QH/1U1B7lmHChDTw3jj1lfm9gA 189Si4QJlnxFWCKHvKEL+pcaVuACU+aMGI8+KyMYK4/JfuWVjjj5fr/SvyHH2/8m LdSK8aHMhJ46uBS4WJ/l6v46qQa5e2vn8RKSBAyKm/h4vpt+hd6zJdoFrFai4th7 k/TAwOAEHI5uzexUChwLlUBRTvbq4U8QUvDu+DeifC8cT63CGaaJ4qVzjOZrx1an eP6UXZrKDASZs7RU950i7xnFVDQu4PsjlZi25udsbeiKcZJgPqGgXz5ULf8ZH8RQ YCi1JOnTJRGGjyIOyLj7pyB01h7XiSM2+eMQ0S7g54F2s7gCJ58c2UwQX45vRWU= =/4/R -----END PGP SIGNATURE----- Merge tag 'v3.13-rc6' into for-3.14/core Needed to bring blk-mq uptodate, since changes have been going in since for-3.14/core was established. Fixup merge issues related to the immutable biovec changes. Signed-off-by: Jens Axboe <[email protected]> Conflicts: block/blk-flush.c fs/btrfs/check-integrity.c fs/btrfs/extent_io.c fs/btrfs/scrub.c fs/logfs/dev_bdev.c
This commit is contained in:
commit
b28bc9b38c
1309 changed files with 15369 additions and 6993 deletions
|
|
@ -465,6 +465,7 @@ int iscsit_del_np(struct iscsi_np *np)
|
|||
*/
|
||||
send_sig(SIGINT, np->np_thread, 1);
|
||||
kthread_stop(np->np_thread);
|
||||
np->np_thread = NULL;
|
||||
}
|
||||
|
||||
np->np_transport->iscsit_free_np(np);
|
||||
|
|
@ -823,24 +824,22 @@ int iscsit_setup_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd,
|
|||
if (((hdr->flags & ISCSI_FLAG_CMD_READ) ||
|
||||
(hdr->flags & ISCSI_FLAG_CMD_WRITE)) && !hdr->data_length) {
|
||||
/*
|
||||
* Vmware ESX v3.0 uses a modified Cisco Initiator (v3.4.2)
|
||||
* that adds support for RESERVE/RELEASE. There is a bug
|
||||
* add with this new functionality that sets R/W bits when
|
||||
* neither CDB carries any READ or WRITE datapayloads.
|
||||
* From RFC-3720 Section 10.3.1:
|
||||
*
|
||||
* "Either or both of R and W MAY be 1 when either the
|
||||
* Expected Data Transfer Length and/or Bidirectional Read
|
||||
* Expected Data Transfer Length are 0"
|
||||
*
|
||||
* For this case, go ahead and clear the unnecssary bits
|
||||
* to avoid any confusion with ->data_direction.
|
||||
*/
|
||||
if ((hdr->cdb[0] == 0x16) || (hdr->cdb[0] == 0x17)) {
|
||||
hdr->flags &= ~ISCSI_FLAG_CMD_READ;
|
||||
hdr->flags &= ~ISCSI_FLAG_CMD_WRITE;
|
||||
goto done;
|
||||
}
|
||||
hdr->flags &= ~ISCSI_FLAG_CMD_READ;
|
||||
hdr->flags &= ~ISCSI_FLAG_CMD_WRITE;
|
||||
|
||||
pr_err("ISCSI_FLAG_CMD_READ or ISCSI_FLAG_CMD_WRITE"
|
||||
pr_warn("ISCSI_FLAG_CMD_READ or ISCSI_FLAG_CMD_WRITE"
|
||||
" set when Expected Data Transfer Length is 0 for"
|
||||
" CDB: 0x%02x. Bad iSCSI Initiator.\n", hdr->cdb[0]);
|
||||
return iscsit_add_reject_cmd(cmd,
|
||||
ISCSI_REASON_BOOKMARK_INVALID, buf);
|
||||
" CDB: 0x%02x, Fixing up flags\n", hdr->cdb[0]);
|
||||
}
|
||||
done:
|
||||
|
||||
if (!(hdr->flags & ISCSI_FLAG_CMD_READ) &&
|
||||
!(hdr->flags & ISCSI_FLAG_CMD_WRITE) && (hdr->data_length != 0)) {
|
||||
|
|
|
|||
|
|
@ -474,7 +474,8 @@ static ssize_t __iscsi_##prefix##_store_##name( \
|
|||
\
|
||||
if (!capable(CAP_SYS_ADMIN)) \
|
||||
return -EPERM; \
|
||||
\
|
||||
if (count >= sizeof(auth->name)) \
|
||||
return -EINVAL; \
|
||||
snprintf(auth->name, sizeof(auth->name), "%s", page); \
|
||||
if (!strncmp("NULL", auth->name, 4)) \
|
||||
auth->naf_flags &= ~flags; \
|
||||
|
|
|
|||
|
|
@ -1403,11 +1403,6 @@ old_sess_out:
|
|||
|
||||
out:
|
||||
stop = kthread_should_stop();
|
||||
if (!stop && signal_pending(current)) {
|
||||
spin_lock_bh(&np->np_thread_lock);
|
||||
stop = (np->np_thread_state == ISCSI_NP_THREAD_SHUTDOWN);
|
||||
spin_unlock_bh(&np->np_thread_lock);
|
||||
}
|
||||
/* Wait for another socket.. */
|
||||
if (!stop)
|
||||
return 1;
|
||||
|
|
@ -1415,7 +1410,6 @@ exit:
|
|||
iscsi_stop_login_thread_timer(np);
|
||||
spin_lock_bh(&np->np_thread_lock);
|
||||
np->np_thread_state = ISCSI_NP_THREAD_EXIT;
|
||||
np->np_thread = NULL;
|
||||
spin_unlock_bh(&np->np_thread_lock);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -1106,6 +1106,11 @@ int se_dev_set_block_size(struct se_device *dev, u32 block_size)
|
|||
dev->dev_attrib.block_size = block_size;
|
||||
pr_debug("dev[%p]: SE Device block_size changed to %u\n",
|
||||
dev, block_size);
|
||||
|
||||
if (dev->dev_attrib.max_bytes_per_io)
|
||||
dev->dev_attrib.hw_max_sectors =
|
||||
dev->dev_attrib.max_bytes_per_io / block_size;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,9 +66,8 @@ static int fd_attach_hba(struct se_hba *hba, u32 host_id)
|
|||
pr_debug("CORE_HBA[%d] - TCM FILEIO HBA Driver %s on Generic"
|
||||
" Target Core Stack %s\n", hba->hba_id, FD_VERSION,
|
||||
TARGET_CORE_MOD_VERSION);
|
||||
pr_debug("CORE_HBA[%d] - Attached FILEIO HBA: %u to Generic"
|
||||
" MaxSectors: %u\n",
|
||||
hba->hba_id, fd_host->fd_host_id, FD_MAX_SECTORS);
|
||||
pr_debug("CORE_HBA[%d] - Attached FILEIO HBA: %u to Generic\n",
|
||||
hba->hba_id, fd_host->fd_host_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -220,7 +219,8 @@ static int fd_configure_device(struct se_device *dev)
|
|||
}
|
||||
|
||||
dev->dev_attrib.hw_block_size = fd_dev->fd_block_size;
|
||||
dev->dev_attrib.hw_max_sectors = FD_MAX_SECTORS;
|
||||
dev->dev_attrib.max_bytes_per_io = FD_MAX_BYTES;
|
||||
dev->dev_attrib.hw_max_sectors = FD_MAX_BYTES / fd_dev->fd_block_size;
|
||||
dev->dev_attrib.hw_queue_depth = FD_MAX_DEVICE_QUEUE_DEPTH;
|
||||
|
||||
if (fd_dev->fbd_flags & FDBD_HAS_BUFFERED_IO_WCE) {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,10 @@
|
|||
#define FD_DEVICE_QUEUE_DEPTH 32
|
||||
#define FD_MAX_DEVICE_QUEUE_DEPTH 128
|
||||
#define FD_BLOCKSIZE 512
|
||||
#define FD_MAX_SECTORS 2048
|
||||
/*
|
||||
* Limited by the number of iovecs (2048) per vfs_[writev,readv] call
|
||||
*/
|
||||
#define FD_MAX_BYTES 8388608
|
||||
|
||||
#define RRF_EMULATE_CDB 0x01
|
||||
#define RRF_GOT_LBA 0x02
|
||||
|
|
|
|||
|
|
@ -278,7 +278,6 @@ struct se_node_acl *core_tpg_check_initiator_node_acl(
|
|||
snprintf(acl->initiatorname, TRANSPORT_IQN_LEN, "%s", initiatorname);
|
||||
acl->se_tpg = tpg;
|
||||
acl->acl_index = scsi_get_new_index(SCSI_AUTH_INTR_INDEX);
|
||||
spin_lock_init(&acl->stats_lock);
|
||||
acl->dynamic_node_acl = 1;
|
||||
|
||||
tpg->se_tpg_tfo->set_default_node_attributes(acl);
|
||||
|
|
@ -406,7 +405,6 @@ struct se_node_acl *core_tpg_add_initiator_node_acl(
|
|||
snprintf(acl->initiatorname, TRANSPORT_IQN_LEN, "%s", initiatorname);
|
||||
acl->se_tpg = tpg;
|
||||
acl->acl_index = scsi_get_new_index(SCSI_AUTH_INTR_INDEX);
|
||||
spin_lock_init(&acl->stats_lock);
|
||||
|
||||
tpg->se_tpg_tfo->set_default_node_attributes(acl);
|
||||
|
||||
|
|
@ -658,16 +656,10 @@ static int core_tpg_setup_virtual_lun0(struct se_portal_group *se_tpg)
|
|||
spin_lock_init(&lun->lun_sep_lock);
|
||||
init_completion(&lun->lun_ref_comp);
|
||||
|
||||
ret = percpu_ref_init(&lun->lun_ref, core_tpg_lun_ref_release);
|
||||
ret = core_tpg_post_addlun(se_tpg, lun, lun_access, dev);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = core_tpg_post_addlun(se_tpg, lun, lun_access, dev);
|
||||
if (ret < 0) {
|
||||
percpu_ref_cancel_init(&lun->lun_ref);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue