[lustre-devel] [PATCH 15/20] lustre: llite: don't check mirror info for page discard

James Simmons jsimmons at infradead.org
Sat Jun 13 09:27:11 PDT 2020


From: Bobi Jam <bobijam at whamcloud.com>

The CIT_MISC is used for locks/pages manipulation, it will not
go with full io procedure, i.e. cl_io_loop() will not be called
for it. So don't check it for plain file since the mirror info
is not initialized/set in this case.

WC-bug-id: https://jira.whamcloud.com/browse/LU-13473
Lustre-commit: d0dd744ed6ae0 ("LU-13473 llite: don't check mirror info for page discard")
Signed-off-by: Bobi Jam <bobijam at whamcloud.com>
Reviewed-on: https://review.whamcloud.com/38307
Reviewed-by: Andreas Dilger <adilger at whamcloud.com>
Reviewed-by: Wang Shilong <wshilong at ddn.com>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
 fs/lustre/lov/lov_io.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/fs/lustre/lov/lov_io.c b/fs/lustre/lov/lov_io.c
index 615db73..99b68d8 100644
--- a/fs/lustre/lov/lov_io.c
+++ b/fs/lustre/lov/lov_io.c
@@ -299,8 +299,13 @@ static int lov_io_mirror_init(struct lov_io *lio, struct lov_object *obj,
 	int result;
 
 	if (!lov_is_flr(obj)) {
-		LASSERT(comp->lo_preferred_mirror == 0);
-		lio->lis_mirror_index = comp->lo_preferred_mirror;
+		/* only locks/pages are manipulated for CIT_MISC op, no
+		 * cl_io_loop() will be called, don't check/set mirror info.
+		 */
+		if (io->ci_type != CIT_MISC) {
+			LASSERT(comp->lo_preferred_mirror == 0);
+			lio->lis_mirror_index = comp->lo_preferred_mirror;
+		}
 		io->ci_ndelay = 0;
 		return 0;
 	}
-- 
1.8.3.1



More information about the lustre-devel mailing list