X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre%2Fliblustreapi.h;h=813badb48a9b7e3deb3e338f1b51fa006560cd98;hb=e3a7c58aebafce40323db54bf6056029e5af4a70;hp=68d8bffa35be8d67e3161f37ddff51cb632ee10b;hpb=f90abfdc961debae069804307dcbc883b50c137c;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre/liblustreapi.h b/lustre/include/lustre/liblustreapi.h index 68d8bff..813badb 100644 --- a/lustre/include/lustre/liblustreapi.h +++ b/lustre/include/lustre/liblustreapi.h @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -28,9 +26,8 @@ /* * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. - */ -/* - * Copyright (c) 2011 Whamcloud, Inc. + * + * Copyright (c) 2011, 2012, Whamcloud, Inc. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -47,12 +44,6 @@ #include -/* Initially allocate for these many OSTs, realloc if needed */ -#define INIT_ALLOC_NUM_OSTS 1024 - -/* Maximum number of osts that can be specified to lfs find */ -#define FIND_MAX_OSTS 1024 - typedef void (*llapi_cb_t)(char *obd_type_name, char *obd_name, char *obd_uuid, void *args); /* liblustreapi message severity level */ @@ -107,6 +98,7 @@ extern int llapi_file_lookup(int dirfd, const char *name); #define VERBOSE_DETAIL 0x10 #define VERBOSE_OBJID 0x20 #define VERBOSE_GENERATION 0x40 +#define VERBOSE_MDTINDEX 0x80 #define VERBOSE_ALL (VERBOSE_COUNT | VERBOSE_SIZE | VERBOSE_OFFSET | \ VERBOSE_POOL | VERBOSE_OBJID | VERBOSE_GENERATION) @@ -115,37 +107,41 @@ struct find_param { time_t atime; time_t mtime; time_t ctime; - int asign; - int csign; + int asign; /* cannot be bitfields due to using pointers to */ + int csign; /* access them during argument parsing. */ int msign; int type; + int size_sign:2, /* these need to be signed values */ + stripesize_sign:2, + stripecount_sign:2; unsigned long long size; - int size_sign; unsigned long long size_units; uid_t uid; gid_t gid; unsigned long zeroend:1, recursive:1, - got_uuids:1, - obds_printed:1, exclude_pattern:1, exclude_type:1, exclude_obd:1, - have_fileinfo:1, + exclude_mdt:1, exclude_gid:1, exclude_uid:1, - check_gid:1, - check_uid:1, - check_pool:1, - check_size:1, + check_gid:1, /* group ID */ + check_uid:1, /* user ID */ + check_pool:1, /* LOV pool name */ + check_size:1, /* file size */ exclude_pool:1, exclude_size:1, exclude_atime:1, exclude_mtime:1, exclude_ctime:1, - get_mdt_index:1, - raw:1; + get_lmv:1, /* get MDT list from LMV */ + raw:1, /* do not fill in defaults */ + check_stripesize:1, /* LOV stripe size */ + exclude_stripesize:1, + check_stripecount:1, /* LOV stripe count */ + exclude_stripecount:1; int verbose; int quiet; @@ -155,20 +151,34 @@ struct find_param { char *print_fmt; - struct obd_uuid *obduuid; + struct obd_uuid *obduuid; int num_obds; int num_alloc_obds; int obdindex; - int *obdindexes; + int *obdindexes; + + struct obd_uuid *mdtuuid; + int num_mdts; + int num_alloc_mdts; + int mdtindex; + int *mdtindexes; + int file_mdtindex; int lumlen; struct lov_user_mds_data *lmd; - /* In-precess parameters. */ - unsigned int depth; - dev_t st_dev; - char poolname[LOV_MAXPOOLNAME + 1]; + + unsigned long long stripesize; + unsigned long long stripesize_units; + unsigned long long stripecount; + + /* In-process parameters. */ + unsigned long got_uuids:1, + obds_printed:1, + have_fileinfo:1; /* file attrs and LOV xattr */ + unsigned int depth; + dev_t st_dev; }; extern int llapi_ostlist(char *path, struct find_param *param); @@ -186,6 +196,7 @@ extern int llapi_catinfo(char *dir, char *keyword, char *node_name); extern int llapi_file_get_lov_uuid(const char *path, struct obd_uuid *lov_uuid); extern int llapi_file_fget_lov_uuid(int fd, struct obd_uuid *lov_uuid); extern int llapi_lov_get_uuids(int fd, struct obd_uuid *uuidp, int *ost_count); +extern int llapi_lmv_get_uuids(int fd, struct obd_uuid *uuidp, int *mdt_count); extern int llapi_is_lustre_mnttype(const char *type); extern int llapi_search_ost(char *fsname, char *poolname, char *ostname); extern int llapi_get_obd_count(char *mnt, int *count, int is_mdt); @@ -220,6 +231,8 @@ extern int llapi_fid2path(const char *device, const char *fidstr, char *path, extern int llapi_path2fid(const char *path, lustre_fid *fid); extern int llapi_get_version(char *buffer, int buffer_size, char **version); +extern int llapi_get_data_version(int fd, __u64 *data_version, __u64 flags); + /* Changelog interface. priv is private state, managed internally by these functions */ #define CHANGELOG_FLAG_FOLLOW 0x01 /* Not yet implemented */