diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2011-12-05 16:44:01 -0600 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-12-15 10:57:40 +0400 |
commit | 0c70d84b794c9a99f7395b617ecaef34c00d82ec (patch) | |
tree | 135e42139e5404d73685c03ff040ce9557a000e8 /include/scsi | |
parent | ef8c98543c3ad75240599d4032f7e56b793740a9 (diff) | |
download | linux-0c70d84b794c9a99f7395b617ecaef34c00d82ec.tar.gz linux-0c70d84b794c9a99f7395b617ecaef34c00d82ec.tar.bz2 linux-0c70d84b794c9a99f7395b617ecaef34c00d82ec.zip |
[SCSI] iscsi class: export pid of process that created
There could be multiple userspace entities creating/destroying/
recoverying sessions and also the kernel's iscsi drivers could
be doing this too. If the userspace apps do try to manage the kernel
ones it can get the driver/fw out of sync and cause the user to
loose the root disk, oopses or ping ponging becasue userspace
wants to do one thing but the kernel manager thought we
are trying to do another.
This patch fixes the problem by just exporting the pid of
the entity that created the session. Userspace programs like
iscsid, iscsiadm, iscsistart, qlogic's tools, etc, can then
figure out which sessions they own and only manage them.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/scsi_transport_iscsi.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h index 5994bcc1b017..c54cedc196e8 100644 --- a/include/scsi/scsi_transport_iscsi.h +++ b/include/scsi/scsi_transport_iscsi.h @@ -211,6 +211,11 @@ struct iscsi_cls_session { unsigned int target_id; bool ida_used; + /* + * pid of userspace process that created session or -1 if + * created by the kernel. + */ + pid_t creator; int state; int sid; /* session id */ void *dd_data; /* LLD private data */ |