Whamcloud - gitweb
LU-14713 llite: mend the trunc_sem_up_write()
[fs/lustre-release.git] / lustre / llite / llite_internal.h
index 4bbe0c6..7d27214 100644 (file)
@@ -351,6 +351,8 @@ static inline void trunc_sem_down_write(struct ll_trunc_sem *sem)
 static inline void trunc_sem_up_write(struct ll_trunc_sem *sem)
 {
        atomic_set(&sem->ll_trunc_readers, 0);
+       /* match the smp_mb() in wait_var_event()->prepare_to_wait() */
+       smp_mb();
        wake_up_var(&sem->ll_trunc_readers);
 }
 
@@ -422,6 +424,7 @@ enum ll_file_flags {
 };
 
 int ll_xattr_cache_destroy(struct inode *inode);
+int ll_xattr_cache_empty(struct inode *inode);
 
 int ll_xattr_cache_get(struct inode *inode,
                       const char *name,
@@ -580,14 +583,15 @@ struct ra_io_arg {
 #define LL_HIST_START 12 /* buckets start at 2^12 = 4k */
 #define LL_PROCESS_HIST_MAX 10
 struct per_process_info {
-        pid_t pid;
-        struct obd_histogram pp_r_hist;
-        struct obd_histogram pp_w_hist;
+       pid_t pid;
+       struct obd_histogram pp_r_hist;
+       struct obd_histogram pp_w_hist;
 };
 
 /* pp_extents[LL_PROCESS_HIST_MAX] will hold the combined process info */
 struct ll_rw_extents_info {
-        struct per_process_info pp_extents[LL_PROCESS_HIST_MAX + 1];
+       ktime_t pp_init;
+       struct per_process_info pp_extents[LL_PROCESS_HIST_MAX + 1];
 };
 
 #define LL_OFFSET_HIST_MAX 100
@@ -697,16 +701,18 @@ struct ll_sb_info {
 
        struct lu_site           *ll_site;
        struct cl_device         *ll_cl;
+
        /* Statistics */
        struct ll_rw_extents_info ll_rw_extents_info;
-       int                       ll_extent_process_count;
+       int                       ll_extent_process_count;
+       unsigned int              ll_offset_process_count;
+       ktime_t                   ll_process_stats_init;
        struct ll_rw_process_info ll_rw_process_info[LL_PROCESS_HIST_MAX];
-       unsigned int              ll_offset_process_count;
        struct ll_rw_process_info ll_rw_offset_info[LL_OFFSET_HIST_MAX];
-       unsigned int              ll_rw_offset_entry_count;
-       int                       ll_stats_track_id;
+       unsigned int              ll_rw_offset_entry_count;
+       int                       ll_stats_track_id;
        enum stats_track_type     ll_stats_track_type;
-       int                       ll_rw_stats_on;
+       int                       ll_rw_stats_on;
 
        /* metadata stat-ahead */
        unsigned int              ll_sa_running_max;/* max concurrent