Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-14499 lnet: Revert "LU-13368 lnet: discard the callback"
[fs/lustre-release.git]
/
lustre
/
llite
/
glimpse.c
diff --git
a/lustre/llite/glimpse.c
b/lustre/llite/glimpse.c
index
bc09c33
..
275bf99
100644
(file)
--- a/
lustre/llite/glimpse.c
+++ b/
lustre/llite/glimpse.c
@@
-27,7
+27,6
@@
*/
/*
* This file is part of Lustre, http://www.lustre.org/
*/
/*
* This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
*
* glimpse code used by vvp (and other Lustre clients in the future).
*
*
* glimpse code used by vvp (and other Lustre clients in the future).
*
@@
-102,7
+101,8
@@
int cl_glimpse_lock(const struct lu_env *env, struct cl_io *io,
* if there were no conflicting locks. If there
* were conflicting locks, enqueuing or waiting
* fails with -ENAVAIL, but valid inode
* if there were no conflicting locks. If there
* were conflicting locks, enqueuing or waiting
* fails with -ENAVAIL, but valid inode
- * attributes are returned anyway. */
+ * attributes are returned anyway.
+ */
*descr = whole_file;
descr->cld_obj = clob;
descr->cld_mode = CLM_READ;
*descr = whole_file;
descr->cld_obj = clob;
descr->cld_mode = CLM_READ;
@@
-211,11
+211,16
@@
int cl_glimpse_size0(struct inode *inode, int agl)
} else if (result == 0) {
result = cl_glimpse_lock(env, io, inode, io->ci_obj,
agl);
} else if (result == 0) {
result = cl_glimpse_lock(env, io, inode, io->ci_obj,
agl);
- if (!agl && result == -EWOULDBLOCK)
+ /**
+ * need to limit retries for FLR mirrors if fast read
+ * is short because of concurrent truncate.
+ */
+ if (!agl && result == -EAGAIN &&
+ !io->ci_tried_all_mirrors)
io->ci_need_restart = 1;
}
io->ci_need_restart = 1;
}
-
OBD
_FAIL_TIMEOUT(OBD_FAIL_GLIMPSE_DELAY, cfs_fail_val ?: 4);
+
CFS
_FAIL_TIMEOUT(OBD_FAIL_GLIMPSE_DELAY, cfs_fail_val ?: 4);
cl_io_fini(env, io);
} while (unlikely(io->ci_need_restart));
cl_io_fini(env, io);
} while (unlikely(io->ci_need_restart));