Skip to content

Commit

Permalink
Remove unnecessary references to slavery
Browse files Browse the repository at this point in the history
The horrible effects of human slavery continue to impact society.  The
casual use of the term "slave" in computer software is an unnecessary
reference to a painful human experience.

This commit removes all possible references to the term "slave".

Implementation notes:

The zpool.d/slaves script is renamed to dm-deps, which uses the same
terminology as `dmsetup deps`.

References to the `/sys/class/block/$dev/slaves` directory remain.  This
directory name is determined by the Linux kernel.  Although
`dmsetup deps` provides the same information, it unfortunately requires
elevated privileges, whereas the `/sys/...` directory is world-readable.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Matthew Ahrens <mahrens@delphix.com>
Closes #10435
  • Loading branch information
ahrens authored Jun 11, 2020
1 parent feff3f6 commit f664342
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 48 deletions.
4 changes: 2 additions & 2 deletions cmd/zpool/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ zpoolexecdir = $(zfsexecdir)/zpool.d
EXTRA_DIST = zpool.d/README

dist_zpoolexec_SCRIPTS = \
zpool.d/dm-deps \
zpool.d/enc \
zpool.d/encdev \
zpool.d/fault_led \
Expand All @@ -50,7 +51,6 @@ dist_zpoolexec_SCRIPTS = \
zpool.d/serial \
zpool.d/ses \
zpool.d/size \
zpool.d/slaves \
zpool.d/slot \
zpool.d/smart \
zpool.d/smartx \
Expand Down Expand Up @@ -80,6 +80,7 @@ dist_zpoolexec_SCRIPTS = \
zpool.d/test_ended

zpoolconfdefaults = \
dm-deps \
enc \
encdev \
fault_led \
Expand All @@ -94,7 +95,6 @@ zpoolconfdefaults = \
serial \
ses \
size \
slaves \
slot \
smart \
smartx \
Expand Down
11 changes: 4 additions & 7 deletions cmd/zpool/zpool.d/slaves → cmd/zpool/zpool.d/dm-deps
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
#!/bin/sh
#
# Show device mapper slave devices. This is useful for looking up the
# /dev/sd* devices associated with a dm or multipath device. For example:
#
# $ ls /sys/block/dm-113/slaves/
# sddt sdjw
# Show device mapper dependent / underlying devices. This is useful for
# looking up the /dev/sd* devices associated with a dm or multipath device.
#

if [ "$1" = "-h" ] ; then
echo "Show device mapper slave devices."
echo "Show device mapper dependent (underlying) devices."
exit
fi

Expand All @@ -29,4 +26,4 @@ if [ -d "/sys/class/block/$dev/slaves" ] ; then
val=$(echo "$val" | sed -r 's/[[:blank:]]+/ /g')
fi

echo "slaves=$val"
echo "dm-deps=$val"
26 changes: 13 additions & 13 deletions contrib/dracut/02zfsexpandknowledge/module-setup.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ check() {
local blockdevs
local fstype
local majmin
local _slavedev
local _slavedevname
local _slavedevtype
local _slavemajmin
local _depdev
local _depdevname
local _depdevtype
local _depmajmin
local _dev

if [[ $hostonly ]]; then
Expand Down Expand Up @@ -108,15 +108,15 @@ if [[ $hostonly ]]; then
host_fs_types["$dev"]="$fstype"
majmin=$(get_maj_min "$dev")
if [[ -d /sys/dev/block/$majmin/slaves ]] ; then
for _slavedev in /sys/dev/block/$majmin/slaves/*; do
[[ -f $_slavedev/dev ]] || continue
_slavedev=/dev/$(basename "$_slavedev")
_slavedevname=$(udevadm info --query=property --name="$_slavedev" | grep "^DEVNAME=" | sed 's|^DEVNAME=||')
_slavedevtype=$(get_devtype "$_slavedevname")
_slavemajmin=$(get_maj_min "$_slavedevname")
dinfo "zfsexpandknowledge: slave block device backing ZFS dataset $mp: $_slavedevname"
array_contains "$_slavedevname" "${host_devs[@]}" || host_devs+=("$_slavedevname")
host_fs_types["$_slavedevname"]="$_slavedevtype"
for _depdev in /sys/dev/block/$majmin/slaves/*; do
[[ -f $_depdev/dev ]] || continue
_depdev=/dev/$(basename "$_depdev")
_depdevname=$(udevadm info --query=property --name="$_depdev" | grep "^DEVNAME=" | sed 's|^DEVNAME=||')
_depdevtype=$(get_devtype "$_depdevname")
_depmajmin=$(get_maj_min "$_depdevname")
dinfo "zfsexpandknowledge: underlying block device backing ZFS dataset $mp: $_depdevname"
array_contains "$_depdevname" "${host_devs[@]}" || host_devs+=("$_depdevname")
host_fs_types["$_depdevname"]="$_depdevtype"
done
fi
done
Expand Down
1 change: 0 additions & 1 deletion include/os/freebsd/spl/sys/dkio.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ struct dk_cinfo {
uint_t dki_vec; /* interrupt vector */
char dki_dname[DK_DEVLEN]; /* drive name (no unit #) */
uint_t dki_unit; /* unit number */
uint_t dki_slave; /* slave number */
ushort_t dki_partition; /* partition number */
ushort_t dki_maxtransfer; /* max. transfer size in DEV_BSIZE */
};
Expand Down
1 change: 0 additions & 1 deletion lib/libspl/include/sys/dkio.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ struct dk_cinfo {
uint_t dki_vec; /* interrupt vector */
char dki_dname[DK_DEVLEN]; /* drive name (no unit #) */
uint_t dki_unit; /* unit number */
uint_t dki_slave; /* slave number */
ushort_t dki_partition; /* partition number */
ushort_t dki_maxtransfer; /* max. transfer size in DEV_BSIZE */
};
Expand Down
6 changes: 5 additions & 1 deletion lib/libzutil/os/linux/zutil_device_path_os.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,11 @@ dm_get_underlying_path(const char *dm_name)
if (dp == NULL)
goto end;

/* Return first sd* entry in /sys/block/dm-N/slaves/ */
/*
* Return first entry (that isn't itself a directory) in the
* directory containing device-mapper dependent (underlying)
* devices.
*/
while ((ep = readdir(dp))) {
if (ep->d_type != DT_DIR) { /* skip "." and ".." dirs */
size = asprintf(&path, "/dev/%s", ep->d_name);
Expand Down
19 changes: 7 additions & 12 deletions man/man8/zpool.8
Original file line number Diff line number Diff line change
Expand Up @@ -431,18 +431,13 @@ option.
U13 ONLINE 0 0 0 SEAGATE ST8000NM0075 7.3T
U14 ONLINE 0 0 0 SEAGATE ST8000NM0075 7.3T

# zpool iostat -vc slaves
capacity operations bandwidth
pool alloc free read write read write slaves
---------- ----- ----- ----- ----- ----- ----- ---------
tank 20.4G 7.23T 26 152 20.7M 21.6M
mirror 20.4G 7.23T 26 152 20.7M 21.6M
U1 - - 0 31 1.46K 20.6M sdb sdff
U10 - - 0 1 3.77K 13.3K sdas sdgw
U11 - - 0 1 288K 13.3K sdat sdgx
U12 - - 0 1 78.4K 13.3K sdau sdgy
U13 - - 0 1 128K 13.3K sdav sdgz
U14 - - 0 1 63.2K 13.3K sdfk sdg
# zpool iostat -vc size
capacity operations bandwidth
pool alloc free read write read write size
---------- ----- ----- ----- ----- ----- ----- ----
rpool 14.6G 54.9G 4 55 250K 2.69M
sda1 14.6G 54.9G 4 55 250K 2.69M 70G
---------- ----- ----- ----- ----- ----- ----- ----
.Ed
.El
.Sh ENVIRONMENT VARIABLES
Expand Down
22 changes: 11 additions & 11 deletions tests/zfs-tests/include/blkdev.shlib
Original file line number Diff line number Diff line change
Expand Up @@ -336,25 +336,25 @@ function on_off_disk # disk state{online,offline} host
if [[ $state == "offline" ]] && ( is_mpath_device $disk ); then
dm_name="$(readlink $DEV_DSKDIR/$disk \
| nawk -F / '{print $2}')"
slave="$(ls /sys/block/${dm_name}/slaves \
dep="$(ls /sys/block/${dm_name}/slaves \
| nawk '{print $1}')"
while [[ -n $slave ]]; do
while [[ -n $dep ]]; do
#check if disk is online
lsscsi | egrep $slave > /dev/null
lsscsi | egrep $dep > /dev/null
if (($? == 0)); then
slave_dir="/sys/block/${dm_name}"
slave_dir+="/slaves/${slave}/device"
ss="${slave_dir}/state"
sd="${slave_dir}/delete"
dep_dir="/sys/block/${dm_name}"
dep_dir+="/slaves/${dep}/device"
ss="${dep_dir}/state"
sd="${dep_dir}/delete"
log_must eval "echo 'offline' > ${ss}"
log_must eval "echo '1' > ${sd}"
lsscsi | egrep $slave > /dev/null
lsscsi | egrep $dep > /dev/null
if (($? == 0)); then
log_fail "Offlining" \
"$disk failed"
fi
fi
slave="$(ls /sys/block/$dm_name/slaves \
dep="$(ls /sys/block/$dm_name/slaves \
2>/dev/null | nawk '{print $1}')"
done
elif [[ $state == "offline" ]] && ( is_real_device $disk ); then
Expand All @@ -380,9 +380,9 @@ function on_off_disk # disk state{online,offline} host
if is_mpath_device $disk; then
dm_name="$(readlink $DEV_DSKDIR/$disk \
| nawk -F / '{print $2}')"
slave="$(ls /sys/block/$dm_name/slaves \
dep="$(ls /sys/block/$dm_name/slaves \
| nawk '{print $1}')"
lsscsi | egrep $slave > /dev/null
lsscsi | egrep $dep > /dev/null
if (($? != 0)); then
log_fail "Onlining $disk failed"
fi
Expand Down

0 comments on commit f664342

Please sign in to comment.