Whamcloud - gitweb
LU-13437 mdt: don't fetch LOOKUP lock for remote object 69/39769/2
authorLai Siyao <lai.siyao@whamcloud.com>
Sun, 10 May 2020 07:22:36 +0000 (15:22 +0800)
committerOleg Drokin <green@whamcloud.com>
Sat, 19 Sep 2020 18:13:14 +0000 (18:13 +0000)
commitae9fc81363bbb4cd5f6e0f6350cc2d6cc33798b3
tree65e0caa10b6149e4df0ec35860c3fa69ca53636b
parentf1712b36b670dab2da6b7db44b7e06da25df9c34
LU-13437 mdt: don't fetch LOOKUP lock for remote object

Pack parent FID in getattr by FID, which will be used to check whether
child is remote object on parent. The helper function is called
mdt_is_remote_object(). NB, directory shard is not treated as remote
object, because if so, client needs to revalidate shards when dir is
accessed, which will hurt performance much.

For getattr by FID, if object is remote file on parent, don't fetch
LOOKUP lock, otherwise client may see stale dir entries.

Lustre-change: https://review.whamcloud.com/38561
Lustre-commit: f9a2da63abab5b8b687842166a0b5b5e434ad441

Signed-off-by: Lai Siyao <lai.siyao@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Yingjin Qian <qian@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Change-Id: I37b36983735eca63da37f190456b5cc1b861b29e
Reviewed-on: https://review.whamcloud.com/39769
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/include/obd.h
lustre/include/obd_class.h
lustre/llite/file.c
lustre/llite/llite_lib.c
lustre/lmv/lmv_intent.c
lustre/lmv/lmv_internal.h
lustre/lmv/lmv_obd.c
lustre/mdt/mdt_handler.c
lustre/mdt/mdt_internal.h
lustre/mdt/mdt_lib.c