Whamcloud - gitweb
LU-8856 osd: mark specific transactions netfree
[fs/lustre-release.git] / lustre / utils / lhsmtool_posix.c
index 79da303..28e3c49 100644 (file)
@@ -57,7 +57,7 @@
 #include <sys/types.h>
 
 #include <libcfs/util/string.h>
-#include <linux/lustre_fid.h>
+#include <linux/lustre/lustre_fid.h>
 #include <lustre/lustreapi.h>
 
 /* Progress reporting period */
@@ -210,35 +210,46 @@ static void usage(const char *name, int rc)
 static int ct_parseopts(int argc, char * const *argv)
 {
        struct option long_opts[] = {
-               {"abort-on-error", no_argument,       &opt.o_abort_on_error, 1},
-               {"abort_on_error", no_argument,       &opt.o_abort_on_error, 1},
-               {"archive",        required_argument, NULL,                'A'},
-               {"bandwidth",      required_argument, NULL,                'b'},
-               {"chunk-size",     required_argument, NULL,                'c'},
-               {"chunk_size",     required_argument, NULL,                'c'},
-               {"daemon",         no_argument,       &opt.o_daemonize,     1},
-               {"event-fifo",     required_argument, NULL,                'f'},
-               {"event_fifo",     required_argument, NULL,                'f'},
-               {"dry-run",        no_argument,       &opt.o_dry_run,       1},
-               {"help",           no_argument,       NULL,                'h'},
-               {"hsm-root",       required_argument, NULL,                'p'},
-               {"hsm_root",       required_argument, NULL,                'p'},
-               {"import",         no_argument,       NULL,                'i'},
-               {"max-sequence",   no_argument,       NULL,                'M'},
-               {"max_sequence",   no_argument,       NULL,                'M'},
-               {"no-attr",        no_argument,       &opt.o_copy_attrs,    0},
-               {"no_attr",        no_argument,       &opt.o_copy_attrs,    0},
-               {"no-shadow",      no_argument,       &opt.o_shadow_tree,   0},
-               {"no_shadow",      no_argument,       &opt.o_shadow_tree,   0},
-               {"no-xattr",       no_argument,       &opt.o_copy_xattrs,   0},
-               {"no_xattr",       no_argument,       &opt.o_copy_xattrs,   0},
-               {"quiet",          no_argument,       NULL,                'q'},
-               {"rebind",         no_argument,       NULL,                'r'},
-               {"update-interval", required_argument,  NULL,              'u'},
-               {"update_interval", required_argument,  NULL,              'u'},
-               {"verbose",        no_argument,       NULL,                'v'},
-               {0, 0, 0, 0}
-       };
+       { .val = 1,     .name = "abort-on-error",
+         .flag = &opt.o_abort_on_error,        .has_arg = no_argument },
+       { .val = 1,     .name = "abort_on_error",
+         .flag = &opt.o_abort_on_error,        .has_arg = no_argument },
+       { .val = 'A',   .name = "archive",      .has_arg = required_argument },
+       { .val = 'b',   .name = "bandwidth",    .has_arg = required_argument },
+       { .val = 'c',   .name = "chunk-size",   .has_arg = required_argument },
+       { .val = 'c',   .name = "chunk_size",   .has_arg = required_argument },
+       { .val = 1,     .name = "daemon",       .has_arg = no_argument,
+         .flag = &opt.o_daemonize },
+       { .val = 'f',   .name = "event-fifo",   .has_arg = required_argument },
+       { .val = 'f',   .name = "event_fifo",   .has_arg = required_argument },
+       { .val = 1,     .name = "dry-run",      .has_arg = no_argument,
+         .flag = &opt.o_dry_run },
+       { .val = 'h',   .name = "help",         .has_arg = no_argument },
+       { .val = 'i',   .name = "import",       .has_arg = no_argument },
+       { .val = 'M',   .name = "max-sequence", .has_arg = no_argument },
+       { .val = 'M',   .name = "max_sequence", .has_arg = no_argument },
+       { .val = 0,     .name = "no-attr",      .has_arg = no_argument,
+         .flag = &opt.o_copy_attrs },
+       { .val = 0,     .name = "no_attr",      .has_arg = no_argument,
+         .flag = &opt.o_copy_attrs },
+       { .val = 0,     .name = "no-shadow",    .has_arg = no_argument,
+         .flag = &opt.o_shadow_tree },
+       { .val = 0,     .name = "no_shadow",    .has_arg = no_argument,
+         .flag = &opt.o_shadow_tree },
+       { .val = 0,     .name = "no-xattr",     .has_arg = no_argument,
+         .flag = &opt.o_copy_xattrs },
+       { .val = 0,     .name = "no_xattr",     .has_arg = no_argument,
+         .flag = &opt.o_copy_xattrs },
+       { .val = 'p',   .name = "hsm-root",     .has_arg = required_argument },
+       { .val = 'p',   .name = "hsm_root",     .has_arg = required_argument },
+       { .val = 'q',   .name = "quiet",        .has_arg = no_argument },
+       { .val = 'r',   .name = "rebind",       .has_arg = no_argument },
+       { .val = 'u',   .name = "update-interval",
+                                               .has_arg = required_argument },
+       { .val = 'u',   .name = "update_interval",
+                                               .has_arg = required_argument },
+       { .val = 'v',   .name = "verbose",      .has_arg = no_argument },
+       { .name = NULL } };
        int                      c, rc;
        unsigned long long       value;
        unsigned long long       unit;
@@ -783,14 +794,14 @@ static int ct_copy_xattr(const char *src, const char *dst, int src_fd,
 }
 
 static int ct_path_lustre(char *buf, int sz, const char *mnt,
-                         const lustre_fid *fid)
+                         const struct lu_fid *fid)
 {
        return snprintf(buf, sz, "%s/%s/fid/"DFID_NOBRACE, mnt,
                        dot_lustre_name, PFID(fid));
 }
 
 static int ct_path_archive(char *buf, int sz, const char *archive_dir,
-                          const lustre_fid *fid)
+                          const struct lu_fid *fid)
 {
        return snprintf(buf, sz, "%s/%04x/%04x/%04x/%04x/%04x/%04x/"
                        DFID_NOBRACE, archive_dir,
@@ -1385,7 +1396,7 @@ static int ct_process_item_async(const struct hsm_action_item *hai,
 static int ct_import_one(const char *src, const char *dst)
 {
        char            newarc[PATH_MAX];
-       lustre_fid      fid;
+       struct lu_fid   fid;
        struct stat     st;
        int             rc;
 
@@ -1443,7 +1454,7 @@ static char *path_concat(const char *dirname, const char *basename)
        return result;
 }
 
-static int ct_import_fid(const lustre_fid *import_fid)
+static int ct_import_fid(const struct lu_fid *import_fid)
 {
        char    fid_path[PATH_MAX];
        int     rc;
@@ -1469,7 +1480,7 @@ static int ct_import_recurse(const char *relpath)
        DIR             *dir;
        struct dirent   *ent;
        char            *srcpath, *newpath;
-       lustre_fid       import_fid;
+       struct lu_fid    import_fid;
        int              rc;
 
        if (relpath == NULL)
@@ -1552,7 +1563,8 @@ out:
        return rc;
 }
 
-static int ct_rebind_one(const lustre_fid *old_fid, const lustre_fid *new_fid)
+static int ct_rebind_one(const struct lu_fid *old_fid,
+                        const struct lu_fid *new_fid)
 {
        char    src[PATH_MAX];
        char    dst[PATH_MAX];
@@ -1580,7 +1592,7 @@ static int ct_rebind_one(const lustre_fid *old_fid, const lustre_fid *new_fid)
        return 0;
 }
 
-static bool fid_is_file(lustre_fid *fid)
+static bool fid_is_file(struct lu_fid *fid)
 {
        return fid_is_norm(fid) || fid_is_igif(fid);
 }
@@ -1620,8 +1632,8 @@ static int ct_rebind_list(const char *list)
 
        /* each line consists of 2 FID */
        while ((r = getline(&line, &line_size, filp)) != -1) {
-               lustre_fid      old_fid;
-               lustre_fid      new_fid;
+               struct lu_fid   old_fid;
+               struct lu_fid   new_fid;
 
                /* Ignore empty and commented out ('#...') lines. */
                if (should_ignore_line(line))
@@ -1661,8 +1673,8 @@ static int ct_rebind(void)
        int     rc;
 
        if (opt.o_dst) {
-               lustre_fid      old_fid;
-               lustre_fid      new_fid;
+               struct lu_fid old_fid;
+               struct lu_fid new_fid;
 
                if (sscanf(opt.o_src, SFID, RFID(&old_fid)) != 3 ||
                    !fid_is_file(&old_fid)) {