Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src
>>> "matthew green" <mrg%netbsd.org@localhost> wrote
> Module Name: src
> Committed By: mrg
> Date: Thu Jan 18 00:32:49 UTC 2018
>
> Modified Files:
> src/sbin/raidctl: raidctl.8 raidctl.c rf_configure.c
> src/sys/conf: files
> src/sys/dev/raidframe: files.raidframe raidframeio.h raidframevar.h
> rf_compat50.c rf_decluster.c rf_decluster.h rf_kintf.h
> rf_netbsdkintf.c rf_reconutil.c
> src/sys/modules/raid: Makefile
> src/sys/rump: Makefile.rump
> src/sys/rump/dev/lib/libraidframe: Makefile
> src/tests/dev/raidframe: t_raid.sh
> Added Files:
> src/sys/dev/raidframe: rf_compat32.c rf_compat32.h rf_compat80.c
> rf_compat80.h
>
> Log Message:
> implement 32-bit compat support for raidframe.
>
> convert several raidframe ioctls to be bitsize idempotent so that
> they work the same in 32 and 64 bit worlds, allowing netbsd32 to
> configure and query raid properly. remove useless 'row' in a few
> places. add COMPAT_80 and put the old ioctls there.
>
> raidframeio.h:
> RAIDFRAME_TEST_ACC
> - remove, unused
> RAIDFRAME_GET_COMPONENT_LABEL
> - convert to label not pointer to label
> RAIDFRAME_CHECK_RECON_STATUS_EXT
> RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT
> RAIDFRAME_CHECK_COPYBACK_STATUS_EXT
> - convert to progress info not pointer to info
> RAIDFRAME_GET_INFO
> - version entirely.
> raidframevar.h:
> - rf_recon_req{} has row, flags and raidPtr removed (they're
> not a useful part of this interface.)
> - RF_Config_s{} and RF_DeviceConfig_s{} have numRow/rows removed.
> - RF_RaidDisk_s{} is re-ordered slightly to fix alignment
> padding - the actual data was already OK.
> - InstallSpareTable() loses row argument
>
> rf_compat32.c has code for RF_Config_s{} in 32 bit mode, used
> by RAIDFRAME_CONFIGURE and RAIDFRAME_GET_INFO32.
>
> rf_compat80.c has code for rf_recon_req{}, RF_RaidDisk_s{} and
> RF_DeviceConfig_s{} to handle RAIDFRAME_FAIL_DISK,
> RAIDFRAME_GET_COMPONENT_LABEL, RAIDFRAME_CHECK_RECON_STATUS_EXT,
> RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT,
> RAIDFRAME_CHECK_COPYBACK_STATUS_EXT, RAIDFRAME_GET_INFO.
>
> move several of the per-ioctl code blocks into separate functions.
>
> add rf_recon_req_internal{} to replace old usage of global
> rf_recon_req{} that had unused void * in the structure, ruining
> it's 32/64 bit ABI.
>
> add missing case for RAIDFRAME_GET_INFO50.
>
> adjust raid tests to use the new .conf format, and add a case to
> test the old method as well.
>
> raidctl:
> deal with lack of 'row' members in a couple of places.
> fail request no longer takes row.
> handle "START array" sections with just "numCol numSpare", ie
> no "numRow" specified. for now, generate old-style configuration
> but update raidctl.8 to specify the new style (keeping reference
> to the old style.)
>
> note that: RF_ComponentLabel_s::{row,num_rows} and
> RF_SingleComponent_s::row are obsolete but not removed yet.
>
>
> To generate a diff of this commit:
> cvs rdiff -u -r1.73 -r1.74 src/sbin/raidctl/raidctl.8
> cvs rdiff -u -r1.65 -r1.66 src/sbin/raidctl/raidctl.c
> cvs rdiff -u -r1.32 -r1.33 src/sbin/raidctl/rf_configure.c
> cvs rdiff -u -r1.1191 -r1.1192 src/sys/conf/files
> cvs rdiff -u -r1.9 -r1.10 src/sys/dev/raidframe/files.raidframe
> cvs rdiff -u -r1.7 -r1.8 src/sys/dev/raidframe/raidframeio.h \
> src/sys/dev/raidframe/rf_decluster.h
> cvs rdiff -u -r1.17 -r1.18 src/sys/dev/raidframe/raidframevar.h
> cvs rdiff -u -r0 -r1.1 src/sys/dev/raidframe/rf_compat32.c \
> src/sys/dev/raidframe/rf_compat32.h src/sys/dev/raidframe/rf_compat80.c \
> src/sys/dev/raidframe/rf_compat80.h
> cvs rdiff -u -r1.2 -r1.3 src/sys/dev/raidframe/rf_compat50.c
> cvs rdiff -u -r1.24 -r1.25 src/sys/dev/raidframe/rf_decluster.c \
> src/sys/dev/raidframe/rf_kintf.h
> cvs rdiff -u -r1.352 -r1.353 src/sys/dev/raidframe/rf_netbsdkintf.c
> cvs rdiff -u -r1.35 -r1.36 src/sys/dev/raidframe/rf_reconutil.c
> cvs rdiff -u -r1.1 -r1.2 src/sys/modules/raid/Makefile
> cvs rdiff -u -r1.122 -r1.123 src/sys/rump/Makefile.rump
> cvs rdiff -u -r1.10 -r1.11 src/sys/rump/dev/lib/libraidframe/Makefile
> cvs rdiff -u -r1.12 -r1.13 src/tests/dev/raidframe/t_raid.sh
>
> Please note that diffs are not public domain; they are subject to the
> copyright notices on the relevant files.
The kernel with this changes cannot configure the RAIDframe device
with old raidctl(8) as follows, since RF_Config_s has been changed
(remove numRow) but no compat code.
| dk_lookup on device: failed!
| RAIDFRAME: failed rf_ConfigureDisks with 2
| raidctl: ioctl (RAIDFRAME_CONFIGURE) failed: No such file or directory
-- Takeshi Nakayama
Home |
Main Index |
Thread Index |
Old Index