Whamcloud - gitweb
LU-17662 osd-zfs: Support for ZFS 2.2.3
[fs/lustre-release.git] / lustre / llite / glimpse.c
index bc09c33..275bf99 100644 (file)
@@ -27,7 +27,6 @@
  */
 /*
  * 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).
  *
@@ -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
-        *       attributes are returned anyway. */
+        *       attributes are returned anyway.
+        */
        *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);
-                       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;
                }
 
-               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));