Merge tag 'vfs-6.7.fsid' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[sfrench/cifs-2.6.git] / include / linux / exportfs.h
index e0e69dafaa43bd2098e1f1e588e8638483bef3bd..bb37ad5cc954a4ce7d5aaf002ff506aff8862136 100644 (file)
@@ -115,6 +115,12 @@ enum fid_type {
         */
        FILEID_LUSTRE = 0x97,
 
+       /*
+        * 64 bit inode number, 32 bit subvolume, 32 bit generation number:
+        */
+       FILEID_BCACHEFS_WITHOUT_PARENT = 0xb1,
+       FILEID_BCACHEFS_WITH_PARENT = 0xb2,
+
        /*
         * 64 bit unique kernfs id
         */
@@ -239,9 +245,23 @@ struct export_operations {
                                                  atomic attribute updates
                                                */
 #define EXPORT_OP_FLUSH_ON_CLOSE       (0x20) /* fs flushes file data on close */
+#define EXPORT_OP_ASYNC_LOCK           (0x40) /* fs can do async lock request */
        unsigned long   flags;
 };
 
+/**
+ * exportfs_lock_op_is_async() - export op supports async lock operation
+ * @export_ops:        the nfs export operations to check
+ *
+ * Returns true if the nfs export_operations structure has
+ * EXPORT_OP_ASYNC_LOCK in their flags set
+ */
+static inline bool
+exportfs_lock_op_is_async(const struct export_operations *export_ops)
+{
+       return export_ops->flags & EXPORT_OP_ASYNC_LOCK;
+}
+
 extern int exportfs_encode_inode_fh(struct inode *inode, struct fid *fid,
                                    int *max_len, struct inode *parent,
                                    int flags);