Subject: CVS commit: src/dist/iscsi/src
To: None <source-changes@NetBSD.org>
From: Alistair G. Crooks <agc@netbsd.org>
List: source-changes
Date: 12/18/2007 20:31:51
Module Name:	src
Committed By:	agc
Date:		Tue Dec 18 20:31:50 UTC 2007

Modified Files:
	src/dist/iscsi/src: disk.c storage.c targets.5

Log Message:
When defining extents, the new keyword "size" can be used in the place
of the physical size of the regular file. This is useful for presenting
ISO images to initiators, as in the following:

	In /etc/iscsi/targets:
	# present an ISO image
	extent2         /usr/sets/20071214/release/iso/i386cd.iso 0 size
	target2         ro      extent2         any

	% priv /etc/rc.d/iscsi_target restart
	Stopping iscsi_target.
	Starting iscsi_target.
	Reading configuration from `/etc/iscsi/targets'
	target0:rw:any
		extent0:/tmp/iscsi-target0:0:104857600
	target1:rw:any
		extent1:/tmp/iscsi-target1:0:52428800
	target2:ro:any
		extent2:/usr/sets/20071214/release/iso/i386cd.iso:0:354906112
	DISK: 1 logical unit (204800 blocks, 512 bytes/block), type iscsi fs
	DISK: LUN 0: 100 MB disk storage for "target0"
	DISK: 1 logical unit (102400 blocks, 512 bytes/block), type iscsi fs
	DISK: LUN 0: 50 MB disk storage for "target1"
	DISK: 1 logical unit (693176 blocks, 512 bytes/block), type iscsi fs
	DISK: LUN 0: 338 MB readonly disk storage for "target2"
	TARGET: TargetName is iqn.1994-04.org.netbsd.iscsi-target
	%

Please note that the NetBSD initiator can mount (via vnd) an iSCSI target
presented in this manner. The Microsoft iSCSI initiator sees the read-only
target as a normal SCSI disk, and fails (not surprisingly) to initialize
the disk. It's now possible to make ISO images available via iSCSI, and
NetBSD will DTRT.

In read-only targets, don't attempt to seek to the last block and rewrite
it, it may not work.

Don't assign 8 MB of unused space for use in each iSCSI disk - just use
1MB, which will be enough for the scatter gather iovecs.

Get rid of some dead code.


To generate a diff of this commit:
cvs rdiff -r1.36 -r1.37 src/dist/iscsi/src/disk.c
cvs rdiff -r1.9 -r1.10 src/dist/iscsi/src/storage.c
cvs rdiff -r1.5 -r1.6 src/dist/iscsi/src/targets.5

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.