From 2730656aa4d4326e67615e9652c576545403ed15 Mon Sep 17 00:00:00 2001 From: Yang Sheng Date: Sat, 31 Dec 2016 05:09:31 +0800 Subject: [PATCH] LU-8969 llite: sanity test_56x read failed: Invalid argument In generic_file_read_iter() does not check EOF before invoke direct_IO callback. So we have to check it by ourselves. Signed-off-by: Yang Sheng Change-Id: Ia30d2a42da81beb6c5217f081c18ce4d93553540 Reviewed-on: https://review.whamcloud.com/24552 Reviewed-by: Bob Glossman Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Bobi Jam Reviewed-by: Oleg Drokin --- lustre/llite/rw26.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lustre/llite/rw26.c b/lustre/llite/rw26.c index d38c79f..80eb9fc 100644 --- a/lustre/llite/rw26.c +++ b/lustre/llite/rw26.c @@ -357,6 +357,9 @@ ll_direct_IO( ssize_t tot_bytes = 0, result = 0; size_t size = MAX_DIO_SIZE; + /* Check EOF by ourselves */ + if (iov_iter_rw(iter) == READ && file_offset >= i_size_read(inode)) + return 0; /* FIXME: io smaller than PAGE_SIZE is broken on ia64 ??? */ if ((file_offset & ~PAGE_MASK) || (count & ~PAGE_MASK)) return -EINVAL; -- 1.8.3.1