__u64 la_valid;
};
+static inline void lu_attr_cpu_to_le(struct lu_attr *dst_attr,
+ struct lu_attr *src_attr)
+{
+ dst_attr->la_size = cpu_to_le64(src_attr->la_size);
+ dst_attr->la_mtime = cpu_to_le64(src_attr->la_mtime);
+ dst_attr->la_atime = cpu_to_le64(src_attr->la_atime);
+ dst_attr->la_ctime = cpu_to_le64(src_attr->la_ctime);
+ dst_attr->la_blocks = cpu_to_le64(src_attr->la_blocks);
+ dst_attr->la_mode = cpu_to_le32(src_attr->la_mode);
+ dst_attr->la_uid = cpu_to_le32(src_attr->la_uid);
+ dst_attr->la_gid = cpu_to_le32(src_attr->la_gid);
+ dst_attr->la_flags = cpu_to_le32(src_attr->la_flags);
+ dst_attr->la_nlink = cpu_to_le32(src_attr->la_nlink);
+ dst_attr->la_blkbits = cpu_to_le32(src_attr->la_blkbits);
+ dst_attr->la_blksize = cpu_to_le32(src_attr->la_blksize);
+ dst_attr->la_rdev = cpu_to_le32(src_attr->la_rdev);
+ dst_attr->la_valid = cpu_to_le64(src_attr->la_valid);
+}
+
+static inline void lu_attr_le_to_cpu(struct lu_attr *dst_attr,
+ struct lu_attr *src_attr)
+{
+ dst_attr->la_size = le64_to_cpu(src_attr->la_size);
+ dst_attr->la_mtime = le64_to_cpu(src_attr->la_mtime);
+ dst_attr->la_atime = le64_to_cpu(src_attr->la_atime);
+ dst_attr->la_ctime = le64_to_cpu(src_attr->la_ctime);
+ dst_attr->la_blocks = le64_to_cpu(src_attr->la_blocks);
+ dst_attr->la_mode = le32_to_cpu(src_attr->la_mode);
+ dst_attr->la_uid = le32_to_cpu(src_attr->la_uid);
+ dst_attr->la_gid = le32_to_cpu(src_attr->la_gid);
+ dst_attr->la_flags = le32_to_cpu(src_attr->la_flags);
+ dst_attr->la_nlink = le32_to_cpu(src_attr->la_nlink);
+ dst_attr->la_blkbits = le32_to_cpu(src_attr->la_blkbits);
+ dst_attr->la_blksize = le32_to_cpu(src_attr->la_blksize);
+ dst_attr->la_rdev = le32_to_cpu(src_attr->la_rdev);
+ dst_attr->la_valid = le64_to_cpu(src_attr->la_valid);
+}
+
/** Bit-mask of valid attributes */
enum la_valid {
LA_ATIME = 1 << 0,