Merge branch 'master' of ssh://pkgs.fedoraproject.org/kernel
This commit is contained in:
commit
b79611b13a
89
iSCSI-let-session-recovery_tmo-sysfs-writes-persist.patch
Normal file
89
iSCSI-let-session-recovery_tmo-sysfs-writes-persist.patch
Normal file
@ -0,0 +1,89 @@
|
||||
From 9c8108a4d3a837c51a29f28229a06d97654eaeb6 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Leech <cleech@redhat.com>
|
||||
Date: Tue, 16 Jun 2015 16:07:13 -0700
|
||||
Subject: iSCSI: let session recovery_tmo sysfs writes persist across recovery
|
||||
|
||||
The iSCSI session recovery_tmo setting is writeable in sysfs, but it's
|
||||
also set every time a connection is established when parameters are set
|
||||
from iscsid over netlink. That results in the timeout being reset to
|
||||
the default value after every recovery.
|
||||
|
||||
The DM multipath tools want to use the sysfs interface to lower the
|
||||
default timeout when there are multiple paths to fail over. It has
|
||||
caused confusion that we have a writeable sysfs value that seem to keep
|
||||
resetting itself.
|
||||
|
||||
This patch adds an in-kernel flag that gets set once a sysfs write
|
||||
occurs, and then ignores netlink parameter setting once it's been
|
||||
modified via the sysfs interface. My thinking here is that the sysfs
|
||||
interface is much simpler for external tools to influence the session
|
||||
timeout, but if we're going to allow it to be modified directly we
|
||||
should ensure that setting is maintained.
|
||||
|
||||
Signed-off-by: Chris Leech <cleech@redhat.com>
|
||||
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
|
||||
Signed-off-by: James Bottomley <JBottomley@Odin.com>
|
||||
|
||||
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
|
||||
index 55647aa..4c25539 100644
|
||||
--- a/drivers/scsi/scsi_transport_iscsi.c
|
||||
+++ b/drivers/scsi/scsi_transport_iscsi.c
|
||||
@@ -2042,6 +2042,7 @@ iscsi_alloc_session(struct Scsi_Host *shost, struct iscsi_transport *transport,
|
||||
session->transport = transport;
|
||||
session->creator = -1;
|
||||
session->recovery_tmo = 120;
|
||||
+ session->recovery_tmo_sysfs_override = false;
|
||||
session->state = ISCSI_SESSION_FREE;
|
||||
INIT_DELAYED_WORK(&session->recovery_work, session_recovery_timedout);
|
||||
INIT_LIST_HEAD(&session->sess_list);
|
||||
@@ -2786,7 +2787,8 @@ iscsi_set_param(struct iscsi_transport *transport, struct iscsi_uevent *ev)
|
||||
switch (ev->u.set_param.param) {
|
||||
case ISCSI_PARAM_SESS_RECOVERY_TMO:
|
||||
sscanf(data, "%d", &value);
|
||||
- session->recovery_tmo = value;
|
||||
+ if (!session->recovery_tmo_sysfs_override)
|
||||
+ session->recovery_tmo = value;
|
||||
break;
|
||||
default:
|
||||
err = transport->set_param(conn, ev->u.set_param.param,
|
||||
@@ -4049,13 +4051,15 @@ store_priv_session_##field(struct device *dev, \
|
||||
if ((session->state == ISCSI_SESSION_FREE) || \
|
||||
(session->state == ISCSI_SESSION_FAILED)) \
|
||||
return -EBUSY; \
|
||||
- if (strncmp(buf, "off", 3) == 0) \
|
||||
+ if (strncmp(buf, "off", 3) == 0) { \
|
||||
session->field = -1; \
|
||||
- else { \
|
||||
+ session->field##_sysfs_override = true; \
|
||||
+ } else { \
|
||||
val = simple_strtoul(buf, &cp, 0); \
|
||||
if (*cp != '\0' && *cp != '\n') \
|
||||
return -EINVAL; \
|
||||
session->field = val; \
|
||||
+ session->field##_sysfs_override = true; \
|
||||
} \
|
||||
return count; \
|
||||
}
|
||||
@@ -4066,6 +4070,7 @@ store_priv_session_##field(struct device *dev, \
|
||||
static ISCSI_CLASS_ATTR(priv_sess, field, S_IRUGO | S_IWUSR, \
|
||||
show_priv_session_##field, \
|
||||
store_priv_session_##field)
|
||||
+
|
||||
iscsi_priv_session_rw_attr(recovery_tmo, "%d");
|
||||
|
||||
static struct attribute *iscsi_session_attrs[] = {
|
||||
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
|
||||
index 2555ee5..6183d20 100644
|
||||
--- a/include/scsi/scsi_transport_iscsi.h
|
||||
+++ b/include/scsi/scsi_transport_iscsi.h
|
||||
@@ -241,6 +241,7 @@ struct iscsi_cls_session {
|
||||
|
||||
/* recovery fields */
|
||||
int recovery_tmo;
|
||||
+ bool recovery_tmo_sysfs_override;
|
||||
struct delayed_work recovery_work;
|
||||
|
||||
unsigned int target_id;
|
||||
--
|
||||
cgit v0.10.2
|
||||
|
63
kdbus.patch
63
kdbus.patch
@ -51834,3 +51834,66 @@ index 9217465f3ff1..e400dc86a2f5 100644
|
||||
--
|
||||
2.4.3
|
||||
|
||||
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||
Date: 2015-08-14 13:21:43
|
||||
Subject: kdbus: create /sys/fs/kdbus with sysfs_create_mount_point()
|
||||
|
||||
Since 0cbee99269 user-namespace pull, if a kdbusfs is mounted on a
|
||||
location that's not created with sysfs_create_mount_point the user
|
||||
namespaces are not allowed to mount their sysfs instances.
|
||||
|
||||
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
|
||||
---
|
||||
Applies on top of char-misc/kdbus a36324913.
|
||||
|
||||
ipc/kdbus/main.c | 13 +++++--------
|
||||
1 file changed, 5 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/ipc/kdbus/main.c b/ipc/kdbus/main.c
|
||||
index 1ad4dc8..c2117ea 100644
|
||||
--- a/ipc/kdbus/main.c
|
||||
+++ b/ipc/kdbus/main.c
|
||||
@@ -75,16 +75,13 @@
|
||||
* '» struct kdbus_ep *ep (owned)
|
||||
*/
|
||||
|
||||
-/* kdbus mount-point /sys/fs/kdbus */
|
||||
-static struct kobject *kdbus_dir;
|
||||
-
|
||||
static int __init kdbus_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
- kdbus_dir = kobject_create_and_add(KBUILD_MODNAME, fs_kobj);
|
||||
- if (!kdbus_dir)
|
||||
- return -ENOMEM;
|
||||
+ ret = sysfs_create_mount_point(fs_kobj, KBUILD_MODNAME);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
|
||||
ret = kdbus_fs_init();
|
||||
if (ret < 0) {
|
||||
@@ -96,14 +93,14 @@ static int __init kdbus_init(void)
|
||||
return 0;
|
||||
|
||||
exit_dir:
|
||||
- kobject_put(kdbus_dir);
|
||||
+ sysfs_remove_mount_point(fs_kobj, KBUILD_MODNAME);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void __exit kdbus_exit(void)
|
||||
{
|
||||
kdbus_fs_exit();
|
||||
- kobject_put(kdbus_dir);
|
||||
+ sysfs_remove_mount_point(fs_kobj, KBUILD_MODNAME);
|
||||
ida_destroy(&kdbus_node_ida);
|
||||
}
|
||||
|
||||
--
|
||||
2.4.3
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
|
14
kernel.spec
14
kernel.spec
@ -67,7 +67,7 @@ Summary: The Linux kernel
|
||||
# The rc snapshot level
|
||||
%define rcrev 7
|
||||
# The git snapshot level
|
||||
%define gitrev 0
|
||||
%define gitrev 2
|
||||
# Set rpm version accordingly
|
||||
%define rpmversion 4.%{upstream_sublevel}.0
|
||||
%endif
|
||||
@ -590,6 +590,9 @@ Patch508: kexec-uefi-copy-secure_boot-flag-in-boot-params.patch
|
||||
#rhbz 1239050
|
||||
Patch509: ideapad-laptop-Add-Lenovo-Yoga-3-14-to-no_hw_rfkill-.patch
|
||||
|
||||
#rhbz 1253789
|
||||
Patch510: iSCSI-let-session-recovery_tmo-sysfs-writes-persist.patch
|
||||
|
||||
Patch904: kdbus.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
@ -2027,6 +2030,15 @@ fi
|
||||
#
|
||||
#
|
||||
%changelog
|
||||
* Wed Aug 19 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.2.0-0.rc7.git2.1
|
||||
- Linux v4.2-rc7-24-g1b647a166f07
|
||||
|
||||
* Tue Aug 18 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.2.0-0.rc7.git1.1
|
||||
- Linux v4.2-rc7-15-gbf6740281ed5
|
||||
|
||||
* Mon Aug 17 2015 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Fix iscsi issue (rhbz 1253789)
|
||||
|
||||
* Mon Aug 17 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.2.0-0.rc7.git0.1
|
||||
- Linux v4.2-rc7
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user