Whamcloud - gitweb
b=23035 split changelog time record into ctime,mtime,atime
[fs/lustre-release.git] / lustre / include / lustre / lustre_user.h
index f56f4b4..e275262 100644 (file)
@@ -26,7 +26,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  */
 /*
 #ifndef _LUSTRE_USER_H
 #define _LUSTRE_USER_H
 
+/** \defgroup lustreuser lustreuser
+ *
+ * @{
+ */
+
 #include <lustre/ll_fiemap.h>
 #if defined(__linux__)
 #include <linux/lustre_user.h>
@@ -110,6 +115,7 @@ struct obd_statfs {
  * *STRIPE* - set/get lov_user_md
  * *INFO    - set/get lov_user_mds_data
  */
+/* see <lustre_obd.h> for ioctl numberss 101-150 */
 #define LL_IOC_GETFLAGS                 _IOR ('f', 151, long)
 #define LL_IOC_SETFLAGS                 _IOW ('f', 152, long)
 #define LL_IOC_CLRFLAGS                 _IOW ('f', 153, long)
@@ -117,6 +123,7 @@ struct obd_statfs {
 #define LL_IOC_LOV_GETSTRIPE            _IOW ('f', 155, long)
 #define LL_IOC_LOV_SETEA                _IOW ('f', 156, long)
 #define LL_IOC_RECREATE_OBJ             _IOW ('f', 157, long)
+#define LL_IOC_RECREATE_FID             _IOW ('f', 157, struct lu_fid)
 #define LL_IOC_GROUP_LOCK               _IOW ('f', 158, long)
 #define LL_IOC_GROUP_UNLOCK             _IOW ('f', 159, long)
 #define LL_IOC_QUOTACHECK               _IOW ('f', 160, int)
@@ -126,17 +133,17 @@ struct obd_statfs {
 #define IOC_LOV_GETINFO                 _IOWR('f', 165, struct lov_user_mds_data *)
 #define LL_IOC_FLUSHCTX                 _IOW ('f', 166, long)
 #define LL_IOC_RMTACL                   _IOW ('f', 167, long)
-
 #define LL_IOC_GETOBDCOUNT              _IOR ('f', 168, long)
-
 #define LL_IOC_LLOOP_ATTACH             _IOWR('f', 169, long)
 #define LL_IOC_LLOOP_DETACH             _IOWR('f', 170, long)
 #define LL_IOC_LLOOP_INFO               _IOWR('f', 171, long)
 #define LL_IOC_LLOOP_DETACH_BYDEV       _IOWR('f', 172, long)
 #define LL_IOC_PATH2FID                 _IOR ('f', 173, long)
-#define LL_IOC_GET_MDTIDX               _IOR ('f', 174, int)
+#define LL_IOC_GET_CONNECT_FLAGS        _IOWR('f', 174, __u64 *)
+#define LL_IOC_GET_MDTIDX               _IOR ('f', 175, int)
+#define LL_IOC_HSM_CT_START             _IOW ('f', 176,struct lustre_kernelcomm)
+/* see <lustre_obd.h> for ioctl numbers 177-210 */
 
-#define LL_IOC_HSM_CT_START             _IOW ('f', 178, struct lustre_kernelcomm *)
 
 #define LL_STATFS_MDC           1
 #define LL_STATFS_LOV           2
@@ -173,7 +180,7 @@ struct obd_statfs {
 #define lov_user_ost_data lov_user_ost_data_v1
 struct lov_user_ost_data_v1 {     /* per-stripe data structure */
         __u64 l_object_id;        /* OST object ID */
-        __u64 l_object_gr;        /* OST object group (creating MDS number) */
+        __u64 l_object_seq;       /* OST object seq number */
         __u32 l_ost_gen;          /* generation of this OST index */
         __u32 l_ost_idx;          /* OST index in LOV */
 } __attribute__((packed));
@@ -183,7 +190,7 @@ struct lov_user_md_v1 {           /* LOV EA user data (host-endian) */
         __u32 lmm_magic;          /* magic number = LOV_USER_MAGIC_V1 */
         __u32 lmm_pattern;        /* LOV_PATTERN_RAID0, LOV_PATTERN_RAID1 */
         __u64 lmm_object_id;      /* LOV object ID */
-        __u64 lmm_object_gr;      /* LOV object group */
+        __u64 lmm_object_seq;     /* LOV object seq */
         __u32 lmm_stripe_size;    /* size of stripe in bytes */
         __u16 lmm_stripe_count;   /* num stripes in use for this object */
         __u16 lmm_stripe_offset;  /* starting stripe offset in lmm_objects */
@@ -194,7 +201,7 @@ struct lov_user_md_v3 {           /* LOV EA user data (host-endian) */
         __u32 lmm_magic;          /* magic number = LOV_USER_MAGIC_V3 */
         __u32 lmm_pattern;        /* LOV_PATTERN_RAID0, LOV_PATTERN_RAID1 */
         __u64 lmm_object_id;      /* LOV object ID */
-        __u64 lmm_object_gr;      /* LOV object group */
+        __u64 lmm_object_seq;     /* LOV object seq */
         __u32 lmm_stripe_size;    /* size of stripe in bytes */
         __u16 lmm_stripe_count;   /* num stripes in use for this object */
         __u16 lmm_stripe_offset;  /* starting stripe offset in lmm_objects */
@@ -220,7 +227,6 @@ struct lov_user_mds_data_v3 {
 
 struct ll_recreate_obj {
         __u64 lrc_id;
-        __u64 lrc_group;
         __u32 lrc_ost_idx;
 };
 
@@ -231,12 +237,6 @@ struct ll_fid {
                            * OST for saving into EA. */
 };
 
-struct filter_fid {
-        struct ll_fid   ff_fid;  /* ff_fid.f_type == file stripe number */
-        __u64           ff_objid;
-        __u64           ff_group;
-};
-
 struct obd_uuid {
         char uuid[40];
 };
@@ -309,6 +309,12 @@ struct lu_fid {
         __u32 f_ver;
 };
 
+struct filter_fid {
+        struct lu_fid   ff_parent;  /* ff_parent.f_ver == file stripe number */
+        __u64           ff_objid;
+        __u64           ff_seq;
+};
+
 /* Userspace should treat lu_fid as opaque, and only use the following methods
    to print or parse them.  Other functions (e.g. compare, swab) could be moved
    here from lustre_idl.h if needed. */
@@ -324,7 +330,11 @@ typedef struct lu_fid lustre_fid;
 
 /* scanf input parse format -- strip '[' first.
    e.g. sscanf(fidstr, SFID, RFID(&fid)); */
-#define SFID "0x%llx:0x%x:0x%x"
+/* #define SFID "0x"LPX64i":0x"LPSZX":0x"LPSZX""
+liblustreapi.c:2893: warning: format '%lx' expects type 'long unsigned int *', but argument 4 has type 'unsigned int *'
+liblustreapi.c:2893: warning: format '%lx' expects type 'long unsigned int *', but argument 5 has type 'unsigned int *'
+*/
+#define SFID "0x"LPX64i":0x%x:0x%x"
 #define RFID(fid)     \
         &((fid)->f_seq), \
         &((fid)->f_oid), \
@@ -468,6 +478,9 @@ enum changelog_rec_type {
         CL_SETATTR  = 14,
         CL_XATTR    = 15,
         CL_HSM      = 16, /* HSM specific events, see flags */
+        CL_MTIME    = 17, /* Precedence: setattr > mtime > ctime > atime */
+        CL_CTIME    = 18,
+        CL_ATIME    = 19,
         CL_LAST
 };
 
@@ -475,7 +488,7 @@ static inline const char *changelog_type2str(int type) {
         static const char *changelog_str[] = {
                 "MARK",  "CREAT", "MKDIR", "HLINK", "SLINK", "MKNOD", "UNLNK",
                 "RMDIR", "RNMFM", "RNMTO", "OPEN",  "CLOSE", "IOCTL", "TRUNC",
-                "SATTR", "XATTR", "HSM"   };
+                "SATTR", "XATTR", "HSM",   "MTIME", "CTIME", "ATIME"  };
         if (type >= 0 && type < CL_LAST)
                 return changelog_str[type];
         return NULL;
@@ -589,5 +602,6 @@ static __inline__ struct hsm_action_item * hai_next(struct hsm_action_item *hai)
                                           cfs_size_round(hai->hai_len));
 }
 
+/** @} lustreuser */
 
 #endif /* _LUSTRE_USER_H */