From: Mikhail Pershin Date: Tue, 4 Jul 2023 19:13:58 +0000 (+0300) Subject: EX-7786 test: get size before fallback to generic X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=ccb1207c0e538919522773ab7ae043175e520e85;p=fs%2Flustre-release.git EX-7786 test: get size before fallback to generic If ll_file_seek() falls back to generic_file_llseek_size() then make sure inode size is reliable Test-Parameters: testlist=sanity env=ONLY=460f,ONLY_REPEAT=4 clientdistro=el9.1 Signed-off-by: Mikhail Pershin Change-Id: Ieb8c90e66fb19675ba41f0147c0d9cdaf29ea20a Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/51564 Tested-by: jenkins Tested-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Andreas Dilger --- diff --git a/lustre/llite/file.c b/lustre/llite/file.c index 8006b8f..62a71e2 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -4826,12 +4826,16 @@ static loff_t ll_file_seek(struct file *file, loff_t offset, int origin) CL_FSYNC_LOCAL, 0); retval = ll_lseek(file, offset, origin); - if (retval >= 0) + if (retval >= 0) { retval = vfs_setpos(file, retval, maxbytes); - else if (retval == -EOPNOTSUPP) + } else if (retval == -EOPNOTSUPP) { + retval = ll_glimpse_size(inode); + if (retval) + RETURN(retval); retval = generic_file_llseek_size(file, offset, origin, maxbytes, i_size_read(inode)); + } } else { retval = generic_file_llseek_size(file, offset, origin, maxbytes, eof);