LU-15452 utils: support lctl getattr for osc
In lctl:jt_obd_getattr(), support FIDs in addition to OIDs and print
whatever valid attributes were returned. Add a supporting
OBD_IOC_GETATTR case to osc_iocontrol().
# function lctl_osc_device() {
# Find osc device name for file and index.
# lctl_osc_device /mnt/lustre/... 42 => lustre-OST002a-osc-
ffff89cca1555000
local path="$1"
local index="$2"
local fsname=$(lfs getname --fsname "$path")
local instance=$(lfs getname --instance "$path")
printf '%s-OST%04x-osc-%sn' "$fsname" "$index" "$instance"
}
# lfs getstripe /mnt/lustre/f0 | grep l_ost_idx
- 0: { l_ost_idx: 1, l_fid: [0x100010000:0x2:0x0] }
- 1: { l_ost_idx: 2, l_fid: [0x100020000:0x2:0x0] }
- 0: { l_ost_idx: 3, l_fid: [0x100030000:0x2:0x0] }
- 1: { l_ost_idx: 0, l_fid: [0x100000000:0x2:0x0] }
# lctl --device $(lctl_osc_device /mnt/lustre 1) getattr '[0x100010000:0x2:0x0]'
valid: 0x110000001008fff
oi.oi.oi_id: 0x100020000
oi.oi.oi_seq: 0x2
oi.oi_fid: [0x100020000:0x2:0x0]
atime: 0
mtime:
1642178551
ctime:
1642178551
size: 0
blocks: 0
blksize: 4194304
mode: 0107666
uid: 0
gid: 0
flags: 2097152
layout_version: 3
projid: 0
data_version:
4294967298
Signed-off-by: John L. Hammond <jhammond@whamcloud.com>
Change-Id: I57d5778e9ac39030ae9477a0979f20b7f7460fc8
Reviewed-on: https://review.whamcloud.com/46131
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>