aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/iversion.h
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2020-11-30 17:46:16 -0500
committerChuck Lever <chuck.lever@oracle.com>2020-12-09 09:39:37 -0500
commit4b03d99794eeed27650597a886247c6427ce1055 (patch)
treef6f832964583f8ef0c8f2b41b143914a4dcc1d13 /include/linux/iversion.h
parentnfsd: simplify nfsd4_change_info (diff)
downloadlinux-dev-4b03d99794eeed27650597a886247c6427ce1055.tar.xz
linux-dev-4b03d99794eeed27650597a886247c6427ce1055.zip
nfsd: minor nfsd4_change_attribute cleanup
Minor cleanup, no change in behavior. Also pull out a common helper that'll be useful elsewhere. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'include/linux/iversion.h')
-rw-r--r--include/linux/iversion.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/iversion.h b/include/linux/iversion.h
index 2917ef990d43..3bfebde5a1a6 100644
--- a/include/linux/iversion.h
+++ b/include/linux/iversion.h
@@ -328,6 +328,19 @@ inode_query_iversion(struct inode *inode)
return cur >> I_VERSION_QUERIED_SHIFT;
}
+/*
+ * For filesystems without any sort of change attribute, the best we can
+ * do is fake one up from the ctime:
+ */
+static inline u64 time_to_chattr(struct timespec64 *t)
+{
+ u64 chattr = t->tv_sec;
+
+ chattr <<= 32;
+ chattr += t->tv_nsec;
+ return chattr;
+}
+
/**
* inode_eq_iversion_raw - check whether the raw i_version counter has changed
* @inode: inode to check