Sorry, there's editing problem. Reply it here again. --- From: Minfei Huang mhuang@redhat.com
There are several kinds of iSCSI mode we support currently. - Pure hardware iSCSI - iBFT iSCSI - Pure software iSCSI
Except of the 1st one because firmware takes care of everything to make it behave like a local disk, iBFT and pure software iSCSI mode need information passed to kdump kernel for configuring them correctly.
Currently kdump will take iBFT mode as a software iSCSI and collect the related information for setting it up in 2nd kernel, though dracut can detect it as iBFT mode and collect enough information. This brings 2 problems:
1) For iBFT mode 2 sessions will be built in 2nd kernel, one is in iBFT mode, the other is pure software mode. This is because both kdump and dracut collect iSCSI inforamtion separately for a certain iBFT mode iSCSI of 1st kernel.
2) These 2 sessions of 2nd kernel for a certain session of 1st kernel could contain two "ip=xxx" cmdline option. This will cause cmdline handling error in dracut.
In order to avoid above 2 problems, kdump need detect iBFT mode iSCSI and leave it to dracut. This is what have been done in this patch.
Signed-off-by: Minfei Huang mhuang@redhat.com Signed-off-by: Baoquan He bhe@redhat.com --- dracut-module-setup.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 4cd7107..50dee8d 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -494,7 +494,11 @@ kdump_get_iscsi_initiator() { return 1 }
-# No ibft handling yet. +# Detect iBFT session according to session type +is_ibft() { + [ "$(kdump_iscsi_get_rec_val $1 "node.discovery_type")" = fw ] +} + kdump_setup_iscsi_device() { local path=$1 local tgt_name; local tgt_ipaddr; @@ -517,6 +521,10 @@ kdump_setup_iscsi_device() { return 1 fi
+ if is_ibft ${path}; then + return + fi + tgt_name=$(kdump_iscsi_get_rec_val ${path} "node.name") tgt_ipaddr=$(kdump_iscsi_get_rec_val ${path} "node.conn[0].address")