Whamcloud - gitweb
LU-3540 lod: update recovery thread
[fs/lustre-release.git] / lustre / include / lu_object.h
index b312539..d67d8fc 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2011, 2013, Intel Corporation.
+ * Copyright (c) 2011, 2014, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -407,12 +407,12 @@ static inline int lu_device_is_md(const struct lu_device *d)
 struct lu_attr {
         /** size in bytes */
         __u64          la_size;
-        /** modification time in seconds since Epoch */
-        obd_time       la_mtime;
-        /** access time in seconds since Epoch */
-        obd_time       la_atime;
-        /** change time in seconds since Epoch */
-        obd_time       la_ctime;
+       /** modification time in seconds since Epoch */
+       s64             la_mtime;
+       /** access time in seconds since Epoch */
+       s64             la_atime;
+       /** change time in seconds since Epoch */
+       s64             la_ctime;
         /** 512-byte blocks allocated to object */
         __u64          la_blocks;
         /** permission bits and file type */
@@ -439,6 +439,44 @@ struct lu_attr {
         __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,
@@ -560,9 +598,9 @@ struct fld;
 
 struct lu_site_bkt_data {
        /**
-        * number of busy object on this bucket
+        * number of object in this bucket on the lsb_lru list.
         */
-       long                    lsb_busy;
+       long                    lsb_lru_len;
        /**
         * LRU list, updated on each access to object. Protected by
         * bucket lock of lu_site::ls_obj_hash.
@@ -642,6 +680,10 @@ struct lu_site {
         * XXX: a hack! fld has to find md_site via site, remove when possible
         */
        struct seq_server_site  *ld_seq_site;
+       /**
+        * Pointer to the lu_target for this site.
+        */
+       struct lu_target        *ls_tgt;
 };
 
 static inline struct lu_site_bkt_data *
@@ -731,8 +773,6 @@ struct lu_object *lu_object_find_at(const struct lu_env *env,
                                     struct lu_device *dev,
                                     const struct lu_fid *f,
                                     const struct lu_object_conf *conf);
-void lu_object_purge(const struct lu_env *env, struct lu_device *dev,
-                    const struct lu_fid *f);
 struct lu_object *lu_object_find_slice(const struct lu_env *env,
                                        struct lu_device *dev,
                                        const struct lu_fid *f,
@@ -1376,5 +1416,18 @@ void lu_buf_realloc(struct lu_buf *buf, size_t size);
 int lu_buf_check_and_grow(struct lu_buf *buf, size_t len);
 struct lu_buf *lu_buf_check_and_alloc(struct lu_buf *buf, size_t len);
 
+extern __u32 lu_context_tags_default;
+extern __u32 lu_session_tags_default;
+
+static inline bool lu_device_is_cl(const struct lu_device *d)
+{
+       return d->ld_type->ldt_tags & LU_DEVICE_CL;
+}
+
+static inline bool lu_object_is_cl(const struct lu_object *o)
+{
+       return lu_device_is_cl(o->lo_dev);
+}
+
 /** @} lu */
 #endif /* __LUSTRE_LU_OBJECT_H */