Whamcloud - gitweb
LU-4961 lustre: remove liblustre.h and obd.h from userspace
[fs/lustre-release.git] / lustre / utils / ll_decode_filter_fid.c
index a394a4c..7f2e170 100644 (file)
@@ -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,6 +26,8 @@
 /*
  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright (c) 2011, 2013, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -46,7 +46,7 @@
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/xattr.h>
-#include <liblustre.h>
+#include <libcfs/libcfs.h>
 #include <lustre/lustre_user.h>
 
 int main(int argc, char *argv[])
@@ -59,24 +59,37 @@ int main(int argc, char *argv[])
                struct filter_fid *ff = (void *)buf;
                int size;
 
-               size = getxattr(argv[i], "trusted.fid", buf, sizeof(buf));
+               size = getxattr(argv[i], "trusted.fid", buf,
+                               sizeof(struct filter_fid_old));
                if (size < 0) {
                        fprintf(stderr, "%s: error reading fid: %s\n",
                                argv[i], strerror(errno));
                        if (rc == 0)
                                rc = size;
-                        continue;
-                }
-                if (size > sizeof(*ff))
-                       fprintf(stderr, "%s: warning: fid larger than expected "
-                                "(%d bytes), recompile?\n", argv[i], size);
+                       continue;
+               }
+               if (size > sizeof(struct filter_fid_old)) {
+                       fprintf(stderr, "%s: warning: fid larger than expected"
+                               " (%d bytes), recompile?\n", argv[i], size);
+               } else if (size > sizeof(*ff)) {
+                       struct filter_fid_old *ffo = (void *)buf;
 
-                printf("%s: objid="LPU64" seq="LPU64" parent="DFID"\n",
-                       argv[i], le64_to_cpu(ff->ff_objid),
-                       le64_to_cpu(ff->ff_seq),
-                       le64_to_cpu(ff->ff_parent.f_seq),
-                       le32_to_cpu(ff->ff_parent.f_oid),
-                       le32_to_cpu(ff->ff_parent.f_ver));
+                       /* old filter_fid */
+                       printf("%s: objid="LPU64" seq="LPU64" parent="DFID
+                              " stripe=%u\n", argv[i],
+                              le64_to_cpu(ffo->ff_objid),
+                              le64_to_cpu(ffo->ff_seq),
+                              le64_to_cpu(ffo->ff_parent.f_seq),
+                              le32_to_cpu(ffo->ff_parent.f_oid), 0 /* ver */,
+                              /* this is stripe_nr actually */
+                              le32_to_cpu(ffo->ff_parent.f_stripe_idx));
+               } else {
+                       printf("%s: parent="DFID" stripe=%u\n", argv[i],
+                              le64_to_cpu(ff->ff_parent.f_seq),
+                              le32_to_cpu(ff->ff_parent.f_oid), 0, /* ver */
+                              /* this is stripe_nr actually */
+                              le32_to_cpu(ff->ff_parent.f_stripe_idx));
+               }
        }
 
        return rc;