int (* fs_get_op_len)(int, struct fsfilt_objinfo *, int);
int (* fs_quotacheck)(struct super_block *sb,
struct obd_quotactl *oqctl);
+#ifdef HAVE_DISK_INODE_VERSION
+ __u64 (* fs_get_version) (struct inode *inode);
+ __u64 (* fs_set_version) (struct inode *inode, __u64 new_version);
+#endif
int (* fs_quotactl)(struct super_block *sb,
struct obd_quotactl *oqctl);
int (* fs_quotainfo)(struct lustre_quota_info *lqi, int type,
return 0;
}
+#ifdef HAVE_DISK_INODE_VERSION
+static inline void fsfilt_set_version(struct obd_device *obd,
+ struct inode *inode, __u64 new_version)
+{
+ obd->obd_fsops->fs_set_version(inode, new_version);
+}
+
+static inline __u64 fsfilt_get_version(struct obd_device *obd,
+ struct inode *inode)
+{
+ return obd->obd_fsops->fs_get_version(inode);
+}
+#endif
+
#endif /* __KERNEL__ */
#endif
return EXT3_SB(sb)->s_es->s_uuid;
}
+#ifdef HAVE_DISK_INODE_VERSION
+/*
+ * Get the 64-bit version for an inode.
+ */
+static __u64 fsfilt_ext3_get_version(struct inode *inode)
+{
+ return EXT3_I(inode)->i_fs_version;
+}
+
+/*
+ * Set the 64-bit version and return the old version.
+ */
+static __u64 fsfilt_ext3_set_version(struct inode *inode, __u64 new_version)
+{
+ __u64 old_version = EXT3_I(inode)->i_fs_version;
+
+ (EXT3_I(inode))->i_fs_version = new_version;
+ return old_version;
+}
+
+#endif
+
/*
* We don't currently need any additional blocks for rmdir and
* unlink transactions because we are storing the OST oa_id inside
.fs_get_op_len = fsfilt_ext3_get_op_len,
.fs_quotactl = fsfilt_ext3_quotactl,
.fs_quotacheck = fsfilt_ext3_quotacheck,
+#ifdef HAVE_DISK_INODE_VERSION
+ .fs_get_version = fsfilt_ext3_get_version,
+ .fs_set_version = fsfilt_ext3_set_version,
+#endif
#ifdef HAVE_QUOTA_SUPPORT
.fs_quotainfo = fsfilt_ext3_quotainfo,
.fs_qids = fsfilt_ext3_qids,