summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/namei.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/namei.h b/include/linux/namei.h
index 4bf19d8174ed..66542b644804 100644
--- a/include/linux/namei.h
+++ b/include/linux/namei.h
@@ -98,4 +98,20 @@ static inline void nd_terminate_link(void *name, size_t len, size_t maxlen)
((char *) name)[min(len, maxlen)] = '\0';
}
+/**
+ * retry_estale - determine whether the caller should retry an operation
+ * @error: the error that would currently be returned
+ * @flags: flags being used for next lookup attempt
+ *
+ * Check to see if the error code was -ESTALE, and then determine whether
+ * to retry the call based on whether "flags" already has LOOKUP_REVAL set.
+ *
+ * Returns true if the caller should try the operation again.
+ */
+static inline bool
+retry_estale(const long error, const unsigned int flags)
+{
+ return error == -ESTALE && !(flags & LOOKUP_REVAL);
+}
+
#endif /* _LINUX_NAMEI_H */