--- /dev/null
+From c369c9a4a7c82d33329d869cbaf93304cc7a0c40 Mon Sep 17 00:00:00 2001
+From: Sachin Prabhu <sprabhu@redhat.com>
+Date: Tue, 9 Apr 2013 18:17:41 +0100
+Subject: cifs: Allow passwords which begin with a delimitor
+
+From: Sachin Prabhu <sprabhu@redhat.com>
+
+commit c369c9a4a7c82d33329d869cbaf93304cc7a0c40 upstream.
+
+Fixes a regression in cifs_parse_mount_options where a password
+which begins with a delimitor is parsed incorrectly as being a blank
+password.
+
+Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
+Acked-by: Jeff Layton <jlayton@redhat.com>
+Signed-off-by: Steve French <sfrench@us.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/cifs/connect.c | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+--- a/fs/cifs/connect.c
++++ b/fs/cifs/connect.c
+@@ -1546,14 +1546,24 @@ cifs_parse_mount_options(const char *mou
+ }
+ break;
+ case Opt_blank_pass:
+- vol->password = NULL;
+- break;
+- case Opt_pass:
+ /* passwords have to be handled differently
+ * to allow the character used for deliminator
+ * to be passed within them
+ */
+
++ /*
++ * Check if this is a case where the password
++ * starts with a delimiter
++ */
++ tmp_end = strchr(data, '=');
++ tmp_end++;
++ if (!(tmp_end < end && tmp_end[1] == delim)) {
++ /* No it is not. Set the password to NULL */
++ vol->password = NULL;
++ break;
++ }
++ /* Yes it is. Drop down to Opt_pass below.*/
++ case Opt_pass:
+ /* Obtain the value string */
+ value = strchr(data, '=');
+ value++;
--- /dev/null
+From d4a2618fa77b5e58ec15342972bd3505a1c3f551 Mon Sep 17 00:00:00 2001
+From: Lukasz Dorau <lukasz.dorau@intel.com>
+Date: Wed, 3 Apr 2013 10:27:17 +0200
+Subject: SCSI: libsas: fix handling vacant phy in sas_set_ex_phy()
+
+From: Lukasz Dorau <lukasz.dorau@intel.com>
+
+commit d4a2618fa77b5e58ec15342972bd3505a1c3f551 upstream.
+
+If a result of the SMP discover function is PHY VACANT,
+the content of discover response structure (dr) is not valid.
+It sometimes happens that dr->attached_sas_addr can contain
+even SAS address of other phy. In such case an invalid phy
+is created, what causes NULL pointer dereference during
+destruction of expander's phys.
+
+So if a result of SMP function is PHY VACANT, the content of discover
+response structure (dr) must not be copied to phy structure.
+
+This patch fixes the following bug:
+
+BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
+IP: [<ffffffff811c9002>] sysfs_find_dirent+0x12/0x90
+Call Trace:
+ [<ffffffff811c95f5>] sysfs_get_dirent+0x35/0x80
+ [<ffffffff811cb55e>] sysfs_unmerge_group+0x1e/0xb0
+ [<ffffffff813329f4>] dpm_sysfs_remove+0x24/0x90
+ [<ffffffff8132b0f4>] device_del+0x44/0x1d0
+ [<ffffffffa016fc59>] sas_rphy_delete+0x9/0x20 [scsi_transport_sas]
+ [<ffffffffa01a16f6>] sas_destruct_devices+0xe6/0x110 [libsas]
+ [<ffffffff8107ac7c>] process_one_work+0x16c/0x350
+ [<ffffffff8107d84a>] worker_thread+0x17a/0x410
+ [<ffffffff81081b76>] kthread+0x96/0xa0
+ [<ffffffff81464944>] kernel_thread_helper+0x4/0x10
+
+Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
+Signed-off-by: Pawel Baldysiak <pawel.baldysiak@intel.com>
+Reviewed-by: Maciej Patelczyk <maciej.patelczyk@intel.com>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/scsi/libsas/sas_expander.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/drivers/scsi/libsas/sas_expander.c
++++ b/drivers/scsi/libsas/sas_expander.c
+@@ -235,6 +235,17 @@ static void sas_set_ex_phy(struct domain
+ linkrate = phy->linkrate;
+ memcpy(sas_addr, phy->attached_sas_addr, SAS_ADDR_SIZE);
+
++ /* Handle vacant phy - rest of dr data is not valid so skip it */
++ if (phy->phy_state == PHY_VACANT) {
++ memset(phy->attached_sas_addr, 0, SAS_ADDR_SIZE);
++ phy->attached_dev_type = NO_DEVICE;
++ if (!test_bit(SAS_HA_ATA_EH_ACTIVE, &ha->state)) {
++ phy->phy_id = phy_id;
++ goto skip;
++ } else
++ goto out;
++ }
++
+ phy->attached_dev_type = to_dev_type(dr);
+ if (test_bit(SAS_HA_ATA_EH_ACTIVE, &ha->state))
+ goto out;
+@@ -272,6 +283,7 @@ static void sas_set_ex_phy(struct domain
+ phy->phy->maximum_linkrate = dr->pmax_linkrate;
+ phy->phy->negotiated_linkrate = phy->linkrate;
+
++ skip:
+ if (new_phy)
+ if (sas_phy_add(phy->phy)) {
+ sas_phy_free(phy->phy);
ipc-set-msg-back-to-eagain-if-copy-wasn-t-performed.patch
gfs2-fix-unlock-of-fcntl-locks-during-withdrawn-state.patch
gfs2-return-error-if-malloc-failed-in-gfs2_rs_alloc.patch
+scsi-libsas-fix-handling-vacant-phy-in-sas_set_ex_phy.patch
+cifs-allow-passwords-which-begin-with-a-delimitor.patch
+target-fix-incorrect-fallthrough-of-alua-standby-offline-transition-cdbs.patch
--- /dev/null
+From 30f359a6f9da65a66de8cadf959f0f4a0d498bba Mon Sep 17 00:00:00 2001
+From: Nicholas Bellinger <nab@linux-iscsi.org>
+Date: Wed, 10 Apr 2013 15:00:27 -0700
+Subject: target: Fix incorrect fallthrough of ALUA Standby/Offline/Transition CDBs
+
+From: Nicholas Bellinger <nab@linux-iscsi.org>
+
+commit 30f359a6f9da65a66de8cadf959f0f4a0d498bba upstream.
+
+This patch fixes a bug where a handful of informational / control CDBs
+that should be allowed during ALUA access state Standby/Offline/Transition
+where incorrectly returning CHECK_CONDITION + ASCQ_04H_ALUA_TG_PT_*.
+
+This includes INQUIRY + REPORT_LUNS, which would end up preventing LUN
+registration when LUN scanning occured during these ALUA access states.
+
+Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
+Cc: Hannes Reinecke <hare@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/target/target_core_alua.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/target/target_core_alua.c
++++ b/drivers/target/target_core_alua.c
+@@ -408,6 +408,7 @@ static inline int core_alua_state_standb
+ case REPORT_LUNS:
+ case RECEIVE_DIAGNOSTIC:
+ case SEND_DIAGNOSTIC:
++ return 0;
+ case MAINTENANCE_IN:
+ switch (cdb[1] & 0x1f) {
+ case MI_REPORT_TARGET_PGS:
+@@ -450,6 +451,7 @@ static inline int core_alua_state_unavai
+ switch (cdb[0]) {
+ case INQUIRY:
+ case REPORT_LUNS:
++ return 0;
+ case MAINTENANCE_IN:
+ switch (cdb[1] & 0x1f) {
+ case MI_REPORT_TARGET_PGS:
+@@ -490,6 +492,7 @@ static inline int core_alua_state_transi
+ switch (cdb[0]) {
+ case INQUIRY:
+ case REPORT_LUNS:
++ return 0;
+ case MAINTENANCE_IN:
+ switch (cdb[1] & 0x1f) {
+ case MI_REPORT_TARGET_PGS: