/** metadata attributes */
enum ma_valid {
- MA_INODE = 1 << 0,
- MA_LOV = 1 << 1,
- MA_FLAGS = 1 << 2,
- MA_LMV = 1 << 3,
- MA_ACL_DEF = 1 << 4,
- MA_LOV_DEF = 1 << 5,
- MA_HSM = 1 << 6,
- MA_PFID = 1 << 7,
- MA_LMV_DEF = 1 << 8,
- MA_SOM = 1 << 9,
+ MA_INODE = BIT(0),
+ MA_LOV = BIT(1),
+ MA_FLAGS = BIT(2),
+ MA_LMV = BIT(3),
+ MA_ACL_DEF = BIT(4),
+ MA_LOV_DEF = BIT(5),
+ MA_HSM = BIT(6),
+ MA_PFID = BIT(7),
+ MA_LMV_DEF = BIT(8),
+ MA_SOM = BIT(9),
+ MA_FORCE_LOG = BIT(10), /* forced close logged in mdt_mfd_close */
};
typedef enum {
} mdl_mode_t;
typedef enum {
- MDT_NUL_LOCK = 0,
- MDT_REG_LOCK = (1 << 0),
- MDT_PDO_LOCK = (1 << 1)
+ MDT_NUL_LOCK = 0,
+ MDT_REG_LOCK = BIT(0),
+ MDT_PDO_LOCK = BIT(1),
} mdl_type_t;
/* lfs rgetfacl permission check */
-#define MAY_RGETFACL (1 << 14)
+#define MAY_RGETFACL BIT(14)
/* memory structure for hsm attributes
* for fields description see the on disk structure hsm_attrs
int ma_lmv_size;
int ma_default_lmv_size;
int ma_acl_size;
+ int ma_enable_chprojid_gid;
};
/** Additional parameters for create */
sp_cr_lookup:1, /* do lookup sanity check or not. */
sp_rm_entry:1, /* only remove name entry */
sp_permitted:1, /* do not check permission */
- sp_migrate_close:1; /* close the file during migrate */
+ sp_migrate_close:1, /* close the file during migrate */
+ sp_migrate_nsonly:1; /* migrate dirent only */
/** Current lock mode for parent dir where create is performing. */
mdl_mode_t sp_cr_mode;
MD_LAYOUT_WRITE, /* FLR: write the file */
MD_LAYOUT_RESYNC, /* FLR: resync starts */
MD_LAYOUT_RESYNC_DONE, /* FLR: resync done */
+ MD_LAYOUT_ATTACH, /* attach stripes */
+ MD_LAYOUT_DETACH, /* detach stripes */
+ MD_LAYOUT_SHRINK, /* shrink striped directory (destroy stripes) */
+ MD_LAYOUT_SPLIT, /* split directory (allocate new stripes) */
+ MD_LAYOUT_MAX,
};
/**
* Parameters for layout change API.
*/
struct md_layout_change {
- enum md_layout_opc mlc_opc;
- __u16 mlc_mirror_id;
- struct layout_intent *mlc_intent;
- struct lu_buf mlc_buf;
- struct lustre_som_attrs mlc_som;
- size_t mlc_resync_count;
- __u32 *mlc_resync_ids;
+ enum md_layout_opc mlc_opc;
+ struct lu_buf mlc_buf;
+ union {
+ struct {
+ __u16 mlc_mirror_id;
+ struct layout_intent *mlc_intent;
+ struct lustre_som_attrs mlc_som;
+ size_t mlc_resync_count;
+ __u32 *mlc_resync_ids;
+ }; /* file */
+ struct {
+ struct md_object *mlc_parent; /* parent obj in plain dir split */
+ struct md_object *mlc_target; /* target obj in plain dir split */
+ struct lu_attr *mlc_attr; /* target attr in plain dir split */
+ const struct lu_name *mlc_name; /* target name in plain dir split */
+ struct md_op_spec *mlc_spec; /* dir split spec */
+ }; /* dir */
+ };
};
union ldlm_policy_data;
#define md_cap_t(x) (x)
-#define MD_CAP_TO_MASK(x) (1 << (x))
+#define MD_CAP_TO_MASK(x) BIT(x)
#define md_cap_raised(c, flag) (md_cap_t(c) & MD_CAP_TO_MASK(flag))