X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Finclude%2Flustre%2Flustreapi.h;h=905fba698d421df9f24c2d3fd3ac5923b74df5d6;hp=a9ecd8d64f8fd2e290f53ee1766d5c826153dfb1;hb=0561c144cc1bb623e05d08b5055009e8d86047f4;hpb=f2a1c6e06f4dc5250cb72b1a6f4720f20486d502 diff --git a/lustre/include/lustre/lustreapi.h b/lustre/include/lustre/lustreapi.h index a9ecd8d..905fba6 100644 --- a/lustre/include/lustre/lustreapi.h +++ b/lustre/include/lustre/lustreapi.h @@ -54,10 +54,16 @@ extern "C" { #define LL_MAXQUOTAS 3 #endif -#ifndef ARRAY_SIZE -#define ARRAY_SIZE(a) ((sizeof(a)) / (sizeof((a)[0]))) +#ifndef SEL_UNIT_SIZE +#define SEL_UNIT_SIZE 1024llu #endif +#ifndef LOV_PATTERN_DEFAULT +#define LOV_PATTERN_DEFAULT 0xffffffff +#endif + +typedef struct statx lstatx_t; + #define lustre_fid struct lu_fid /* Currently external applications can access this but in the @@ -196,6 +202,7 @@ enum { NEWERXY_ATIME = 0, /* neweraY */ NEWERXY_MTIME = 1, /* newermY */ NEWERXY_CTIME = 2, /* newercY */ + NEWERXY_BTIME = 3, /* newerbY | newerBY */ NEWERXY_MAX, }; @@ -208,7 +215,7 @@ struct find_param { time_t fp_atime; time_t fp_mtime; time_t fp_ctime; - /* {a,m,c}sign cannot be bitfields due to using pointers to + /* {a,m,c,b}sign cannot be bitfields due to using pointers to * access them during argument parsing. */ int fp_asign; int fp_msign; @@ -291,12 +298,13 @@ struct find_param { fp_exclude_ext_size:1, fp_lazy:1, fp_newerxy:1, - fp_unused_bit2:1, /* All of these unused bit */ - fp_unused_bit3:1, /* fields available to use.*/ - fp_unused_bit4:1, /* Once all unused fields */ - fp_unused_bit5:1, /* are used we need to add */ - fp_unused_bit6:1, /* a separate flag field at*/ - fp_unused_bit7:1; /* the end of the struct. */ + fp_exclude_btime:1, + fp_unused_bit3:1, /* All of these unused bit */ + fp_unused_bit4:1, /* fields available to use.*/ + fp_unused_bit5:1, /* Once all unused fields */ + fp_unused_bit6:1, /* are used we need to add */ + fp_unused_bit7:1; /* a separate flag field at*/ + /* the end of the struct. */ enum llapi_layout_verbose fp_verbose; int fp_quiet; @@ -362,6 +370,9 @@ struct find_param { * fp_newery[NEWERXY_MAX][1]: ! -- newerXY reference */ time_t fp_newery[NEWERXY_MAX][2]; + + time_t fp_btime; + int fp_bsign; }; int llapi_ostlist(char *path, struct find_param *param); @@ -383,6 +394,7 @@ int llapi_dir_create_pool(const char *name, int flags, int stripe_offset, int stripe_count, int stripe_pattern, const char *poolname); int llapi_direntry_remove(char *dname); +int llapi_unlink_foreign(char *dname); int llapi_obd_fstatfs(int fd, __u32 type, __u32 index, struct obd_statfs *stat_buf, struct obd_uuid *uuid_buf); @@ -431,6 +443,8 @@ int llapi_get_connect_flags(const char *mnt, __u64 *flags); int llapi_cp(int argc, char *argv[]); int llapi_ls(int argc, char *argv[]); int llapi_fid_parse(const char *fidstr, struct lu_fid *fid, char **endptr); +int llapi_fid2path_at(int mnt_fd, const struct lu_fid *fid, char *path, + int pathlen, long long *recno, int *linkno); int llapi_fid2path(const char *device, const char *fidstr, char *path, int pathlen, long long *recno, int *linkno); int llapi_path2fid(const char *path, struct lu_fid *fid); @@ -552,6 +566,30 @@ int llapi_hsm_request(const char *path, const struct hsm_user_request *request); int llapi_hsm_current_action(const char *path, struct hsm_current_action *hca); /* JSON handling */ +enum llapi_json_types { + LLAPI_JSON_INTEGER = 1, + LLAPI_JSON_BIGNUM, + LLAPI_JSON_REAL, + LLAPI_JSON_STRING +}; + +struct llapi_json_item { + char *lji_key; + __u32 lji_type; + union { + int lji_integer; + __u64 lji_u64; + double lji_real; + char *lji_string; + }; + struct llapi_json_item *lji_next; +}; + +struct llapi_json_item_list { + int ljil_item_count; + struct llapi_json_item *ljil_items; +}; + int llapi_json_init_list(struct llapi_json_item_list **item_list); int llapi_json_destroy_list(struct llapi_json_item_list **item_list); int llapi_json_add_item(struct llapi_json_item_list **item_list, char *key, @@ -570,6 +608,9 @@ int llapi_lease_put(int fd); /* obsoleted */ int llapi_group_lock(int fd, int gid); int llapi_group_unlock(int fd, int gid); +bool llapi_file_is_sparse(int fd); +off_t llapi_data_seek(int src_fd, off_t offset, size_t *length); + /* Ladvise */ int llapi_ladvise(int fd, unsigned long long flags, int num_advise, struct llapi_lu_ladvise *ladvise); @@ -1114,10 +1155,12 @@ ssize_t llapi_mirror_read(int fd, unsigned int id, void *buf, size_t count, off_t pos); ssize_t llapi_mirror_copy_many(int fd, __u16 src, __u16 *dst, size_t count); int llapi_mirror_copy(int fd, unsigned int src, unsigned int dst, - off_t pos, size_t count); + off_t pos, size_t count); +off_t llapi_mirror_data_seek(int fd, unsigned int id, off_t pos, size_t *size); int llapi_heat_get(int fd, struct lu_heat *heat); int llapi_heat_set(int fd, __u64 flags); + int llapi_layout_sanity(struct llapi_layout *layout, bool incomplete, bool flr); void llapi_layout_sanity_perror(int error); int llapi_layout_dom_size(struct llapi_layout *layout, uint64_t *size);