summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSimon Rettberg2025-11-11 09:49:45 +0100
committerSimon Rettberg2025-12-09 15:33:20 +0100
commit8fe443a5d82568d33d27f2bf9fc946e6324d46aa (patch)
treed96cb3336bc3d178df81efa93726536853e9e910 /src
parent[SERVER] iscsi: Fix endianness bugs in ACTION(16) and rotation rate (diff)
downloaddnbd3-8fe443a5d82568d33d27f2bf9fc946e6324d46aa.tar.gz
dnbd3-8fe443a5d82568d33d27f2bf9fc946e6324d46aa.tar.xz
dnbd3-8fe443a5d82568d33d27f2bf9fc946e6324d46aa.zip
[SERVER] iscsi: Report read cache enabled; report maximum prefetch
ctld is also reporting maximum prefetch values, so let's just do the same.
Diffstat (limited to 'src')
-rw-r--r--src/server/iscsi.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/server/iscsi.c b/src/server/iscsi.c
index 87c0a74..f1199d6 100644
--- a/src/server/iscsi.c
+++ b/src/server/iscsi.c
@@ -1641,14 +1641,20 @@ static int iscsi_scsi_emu_primary_mode_sense_page(dnbd3_image_t *image, iscsi_sc
if ( sub_page != 0U )
break;
- iscsi_scsi_mode_sense_caching_mode_page_data_packet *mode_sense_caching_mode_page_pkt = (iscsi_scsi_mode_sense_caching_mode_page_data_packet *) buffer;
+ iscsi_scsi_mode_sense_caching_mode_page_data_packet *cache_page = (iscsi_scsi_mode_sense_caching_mode_page_data_packet *) buffer;
- page_len = sizeof(iscsi_scsi_mode_sense_caching_mode_page_data_packet);
+ page_len = sizeof(*cache_page);
iscsi_scsi_emu_primary_mode_sense_page_init( buffer, page_len, page, sub_page );
- if ( (buffer != NULL) && (pc != ISCSI_SCSI_CDB_MODE_SENSE_6_PAGE_CONTROL_CHG_VALUES) )
- mode_sense_caching_mode_page_pkt->flags |= ISCSI_SCSI_MODE_SENSE_CACHING_MODE_PAGE_FLAGS_RCD;
+ if ( cache_page != NULL ) {
+ cache_page->flags |= ISCSI_SCSI_MODE_SENSE_CACHING_MODE_PAGE_FLAGS_DISC;
+ // 0xffff is endian-agnostic, don't need to convert
+ cache_page->disable_prefetch_xfer_len = 0xffff;
+ cache_page->min_prefetch = 0xffff;
+ cache_page->max_prefetch = 0xffff;
+ cache_page->max_prefetch_ceil = 0xffff;
+ }
len += page_len;