/* FIEMAP flags supported by Lustre */
#define LUSTRE_FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_DEVICE_ORDER)
-struct obd_statfs;
+enum obd_statfs_state {
+ OS_STATE_DEGRADED = 0x00000001, /**< RAID degraded/rebuilding */
+ OS_STATE_READONLY = 0x00000002, /**< filesystem is read-only */
+ OS_STATE_RDONLY_1 = 0x00000004, /**< obsolete 1.6, was EROFS=30 */
+ OS_STATE_RDONLY_2 = 0x00000008, /**< obsolete 1.6, was EROFS=30 */
+ OS_STATE_RDONLY_3 = 0x00000010, /**< obsolete 1.6, was EROFS=30 */
+};
+
+struct obd_statfs {
+ __u64 os_type;
+ __u64 os_blocks;
+ __u64 os_bfree;
+ __u64 os_bavail;
+ __u64 os_files;
+ __u64 os_ffree;
+ __u8 os_fsid[40];
+ __u32 os_bsize;
+ __u32 os_namelen;
+ __u64 os_maxbytes;
+ __u32 os_state; /**< obd_statfs_state OS_STATE_* flag */
+ __u32 os_spare1;
+ __u32 os_spare2;
+ __u32 os_spare3;
+ __u32 os_spare4;
+ __u32 os_spare5;
+ __u32 os_spare6;
+ __u32 os_spare7;
+ __u32 os_spare8;
+ __u32 os_spare9;
+};
+
/*
* The ioctl naming rules:
#define LL_IOC_QUOTACHECK _IOW ('f', 160, int)
#define LL_IOC_POLL_QUOTACHECK _IOR ('f', 161, struct if_quotacheck *)
#define LL_IOC_QUOTACTL _IOWR('f', 162, struct if_quotactl *)
-#define LL_IOC_JOIN _IOW ('f', 163, long)
#define IOC_OBD_STATFS _IOWR('f', 164, struct obd_statfs *)
#define IOC_LOV_GETINFO _IOWR('f', 165, struct lov_user_mds_data *)
#define LL_IOC_FLUSHCTX _IOW ('f', 166, long)
#define LOV_USER_MAGIC_V1 0x0BD10BD0
#define LOV_USER_MAGIC LOV_USER_MAGIC_V1
-#define LOV_USER_MAGIC_JOIN 0x0BD20BD0
+#define LOV_USER_MAGIC_JOIN_V1 0x0BD20BD0
#define LOV_USER_MAGIC_V3 0x0BD30BD0
#define LOV_PATTERN_RAID0 0x001
__u32 lrc_ost_idx;
};
+struct ll_fid {
+ __u64 id; /* holds object id */
+ __u32 generation; /* holds object generation */
+ __u32 f_type; /* holds object type or stripe idx when passing it to
+ * OST for saving into EA. */
+};
+
+struct filter_fid {
+ struct ll_fid ff_fid; /* ff_fid.f_type == file stripe number */
+ __u64 ff_objid;
+ __u64 ff_group;
+};
+
struct obd_uuid {
char uuid[40];
};
#define LUSTRE_Q_FINVALIDATE 0x80000c /* invalidate filter quota data */
#define UGQUOTA 2 /* set both USRQUOTA and GRPQUOTA */
-#define IMMQUOTA 0x4 /* set immutable quota flag, cannot be turned on/off
- * on-fly. temporary used by SOM */
struct if_quotacheck {
char obd_type[16];
};
#ifdef NEED_QUOTA_DEFS
-#ifndef QUOTABLOCK_BITS
-#define QUOTABLOCK_BITS 10
-#endif
-
-#ifndef QUOTABLOCK_SIZE
-#define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS)
-#endif
-
-#ifndef toqb
-#define toqb(x) (((x) + QUOTABLOCK_SIZE - 1) >> QUOTABLOCK_BITS)
-#endif
-
#ifndef QIF_BLIMITS
#define QIF_BLIMITS 1
#define QIF_SPACE 2
#define CLF_FLAGMASK 0x0FFF
/* Anything under the flagmask may be per-type (if desired) */
+#define CR_MAXSIZE (PATH_MAX + sizeof(struct changelog_rec))
struct changelog_rec {
__u16 cr_namelen;
__u16 cr_flags; /**< (flags&CLF_FLAGMASK)|CLF_VERSION */
__u64 icc_recno;
};
+enum changelog_message_type {
+ CL_RECORD = 10, /* message is a changelog_rec */
+ CL_EOF = 11, /* at end of current changelog */
+};
/********* Misc **********/
/********* HSM **********/
+
+
+#define HSM_FLAGS_MASK 0
+
+
enum hsm_message_type {
HMT_ACTION_LIST = 100, /* message is a hsm_action_list */
};
static __inline__ struct hsm_action_item * hai_zero(struct hsm_action_list *hal)
{
return (struct hsm_action_item *)(hal->hal_fsname +
- size_round(strlen(hal->hal_fsname)));
+ cfs_size_round(strlen(hal-> \
+ hal_fsname)));
}
/* Return pointer to next hai */
static __inline__ struct hsm_action_item * hai_next(struct hsm_action_item *hai)
{
return (struct hsm_action_item *)((char *)hai +
- size_round(hai->hai_len));
+ cfs_size_round(hai->hai_len));
}