Whamcloud - gitweb
LU-14510 dom: fiemap support for DoM files 21/55221/6
authorMikhail Pershin <mpershin@whamcloud.com>
Tue, 28 May 2024 11:02:23 +0000 (14:02 +0300)
committerOleg Drokin <green@whamcloud.com>
Sun, 24 Nov 2024 06:03:41 +0000 (06:03 +0000)
commit5921e1571f2ddcc8ebc7cee481f75fe8fc458b45
treef1eace7aac979d96245552742f796f97d8d42e20
parent1b1ac423ea40cbca9a1da7c2208a7d6b41804b47
LU-14510 dom: fiemap support for DoM files

Patch adds support for fiemap to DoM files.
Server part:
- modify MDS_GET_IMFO handler to return FIEMAP like
  OST_GET_INFO does
- mdt_fiemap_get() to process fiemap request
Client part:
- rewrite lov_object_fiemap() to support DoM component
- rework fiemap_for_stripe() to work with both DoM and
  RAID0 layouts
- use initialized layout entries to get subobject and
  get rid of lov_find_subobj() used by fiemap only
- fix issue with wrong resume entry/stripe count
- mdc_object_fiemap() as implementation of .coo_fiemap
  cl_object_operations to send and receive fiemap request
- treat LOV subdev errors as UNKNOWN extent
- rework FID2PATH layout description to be compatible with
  other GET_INFO keys (no protocol changes)
- add sanity.sh test_130h for DoM fiemap with resuming

To indicate MDT device the extra bit is taken from stripe
number bits in favor of device number. So total absolute
stripe amount limit is 32768 in fiemap report

Signed-off-by: Mikhail Pershin <mpershin@whamcloud.com>
Change-Id: I9b6df04fd62d773aec2d916440ba08dfea06faa4
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55221
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
12 files changed:
lustre/include/lustre_req_layout.h
lustre/include/uapi/linux/lustre/lustre_fiemap.h
lustre/lov/lov_cl_internal.h
lustre/lov/lov_object.c
lustre/lov/lov_offset.c
lustre/mdc/mdc_dev.c
lustre/mdc/mdc_request.c
lustre/mdt/mdt_handler.c
lustre/mdt/mdt_internal.h
lustre/mdt/mdt_io.c
lustre/ptlrpc/layout.c
lustre/tests/sanity.sh