Whamcloud - gitweb
LU-11771 ldlm: use hrtimer for recovery to fix timeout messages
[fs/lustre-release.git] / lustre / include / obd.h
index d005aec..286779d 100644 (file)
@@ -346,8 +346,11 @@ struct client_obd {
        /* ptlrpc work for writeback in ptlrpcd context */
        void                    *cl_writeback_work;
        void                    *cl_lru_work;
+       struct mutex              cl_quota_mutex;
        /* hash tables for osc_quota_info */
        struct cfs_hash         *cl_quota_hash[LL_MAXQUOTAS];
+       /* the xid of the request updating the hash tables */
+       __u64                    cl_quota_last_xid;
        /* Links to the global list of registered changelog devices */
        struct list_head         cl_chg_dev_linkage;
 };
@@ -441,16 +444,18 @@ struct lmv_obd {
        int                     connected;
        int                     max_easize;
        int                     max_def_easize;
+       u32                     lmv_statfs_start;
 
-       __u32                   tgts_size; /* size of tgts array */
+       u32                     tgts_size; /* size of tgts array */
        struct lmv_tgt_desc     **tgts;
-       int                     lmv_statfs_start;
-
 
        struct obd_connect_data conn_data;
        struct kobject          *lmv_tgts_kobj;
 };
 
+/* Minimum sector size is 512 */
+#define MAX_GUARD_NUMBER (PAGE_SIZE / 512)
+
 struct niobuf_local {
        __u64           lnb_file_offset;
        __u32           lnb_page_offset;
@@ -459,6 +464,9 @@ struct niobuf_local {
        int             lnb_rc;
        struct page     *lnb_page;
        void            *lnb_data;
+       __u16           lnb_guards[MAX_GUARD_NUMBER];
+       __u16           lnb_guard_rpc:1;
+       __u16           lnb_guard_disk:1;
 };
 
 struct tgt_thread_big_cache {
@@ -678,7 +686,7 @@ struct obd_device {
        int                     obd_requests_queued_for_recovery;
        wait_queue_head_t       obd_next_transno_waitq;
        /* protected by obd_recovery_task_lock */
-       struct timer_list       obd_recovery_timer;
+       struct hrtimer          obd_recovery_timer;
        /* seconds */
        time64_t                obd_recovery_start;
        /* seconds, for lprocfs_status */
@@ -874,8 +882,9 @@ struct md_op_data {
        __u64                   op_data_version;
        struct lustre_handle    op_lease_handle;
 
-       /* File security context, for creates. */
+       /* File security context, for creates/metadata ops */
        const char             *op_file_secctx_name;
+       __u32                   op_file_secctx_name_size;
        void                   *op_file_secctx;
        __u32                   op_file_secctx_size;
 
@@ -1007,8 +1016,6 @@ struct obd_ops {
        int (*o_quotactl)(struct obd_device *, struct obd_export *,
                          struct obd_quotactl *);
 
-       int (*o_ping)(const struct lu_env *, struct obd_export *exp);
-
        /* pools methods */
        int (*o_pool_new)(struct obd_device *obd, char *poolname);
        int (*o_pool_del)(struct obd_device *obd, char *poolname);