From: bobijam Date: Wed, 6 Aug 2008 02:44:43 +0000 (+0000) Subject: Branch b1_8_gate X-Git-Tag: v1_7_72~1^48~1 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=87803fb8f715ec8df5d2b124406597b3a8e08ec6;p=fs%2Flustre-release.git Branch b1_8_gate b=16317 o=Herb Wartens(hwartens@llnl.gov) i=wangdi, johann Description: exports in /proc are broken Details : recreate /proc entries for clients when they reconnect. --- diff --git a/lustre/include/lprocfs_status.h b/lustre/include/lprocfs_status.h index f5fcf8d..4642feb 100644 --- a/lustre/include/lprocfs_status.h +++ b/lustre/include/lprocfs_status.h @@ -362,11 +362,11 @@ extern void lprocfs_counter_sub(struct lprocfs_stats *stats, int idx, #define lprocfs_counter_decr(stats, idx) \ lprocfs_counter_sub(stats, idx, 1) -extern __s64 lprocfs_read_helper(struct lprocfs_counter *lc, +extern __s64 lprocfs_read_helper(struct lprocfs_counter *lc, enum lprocfs_fields_flags field); -static inline __u64 lprocfs_stats_collector(struct lprocfs_stats *stats, - int idx, +static inline __u64 lprocfs_stats_collector(struct lprocfs_stats *stats, + int idx, enum lprocfs_fields_flags field) { __u64 ret = 0; @@ -379,12 +379,13 @@ static inline __u64 lprocfs_stats_collector(struct lprocfs_stats *stats, return ret; } -extern struct lprocfs_stats *lprocfs_alloc_stats(unsigned int num, +extern struct lprocfs_stats *lprocfs_alloc_stats(unsigned int num, enum lprocfs_stats_flags flags); extern void lprocfs_clear_stats(struct lprocfs_stats *stats); extern void lprocfs_free_stats(struct lprocfs_stats **stats); -extern void lprocfs_init_ops_stats(int num_private_stats, +extern void lprocfs_init_ops_stats(int num_private_stats, struct lprocfs_stats *stats); +extern void lprocfs_init_ldlm_stats(struct lprocfs_stats *ldlm_stats); extern int lprocfs_alloc_obd_stats(struct obd_device *obddev, unsigned int num_private_stats); extern void lprocfs_counter_init(struct lprocfs_stats *stats, int index, @@ -433,7 +434,7 @@ extern int lprocfs_nid_stats_clear_read(char *page, char **start, off_t off, extern struct file_operations lprocfs_evict_client_fops; -extern int lprocfs_seq_create(cfs_proc_dir_entry_t *parent, char *name, +extern int lprocfs_seq_create(cfs_proc_dir_entry_t *parent, char *name, mode_t mode, struct file_operations *seq_fops, void *data); extern int lprocfs_obd_seq_create(struct obd_device *dev, char *name, @@ -469,7 +470,7 @@ extern int lprocfs_rd_num_exports(char *page, char **start, off_t off, extern int lprocfs_rd_numrefs(char *page, char **start, off_t off, int count, int *eof, void *data); struct adaptive_timeout; -extern int lprocfs_at_hist_helper(char *page, int count, int rc, +extern int lprocfs_at_hist_helper(char *page, int count, int rc, struct adaptive_timeout *at); extern int lprocfs_rd_timeouts(char *page, char **start, off_t off, int count, int *eof, void *data); @@ -500,7 +501,7 @@ extern int lprocfs_write_helper(const char *buffer, unsigned long count, int *val); extern int lprocfs_write_frac_helper(const char *buffer, unsigned long count, int *val, int mult); -extern int lprocfs_read_frac_helper(char *buffer, unsigned long count, +extern int lprocfs_read_frac_helper(char *buffer, unsigned long count, long val, int mult); extern int lprocfs_write_u64_helper(const char *buffer, unsigned long count, __u64 *val); @@ -540,7 +541,7 @@ extern struct rw_semaphore _lprocfs_lock; } \ } while(0) -/* You must use these macros when you want to refer to +/* You must use these macros when you want to refer to * the import in a client obd_device for a lprocfs entry */ #define LPROCFS_CLIMP_CHECK(obd) do { \ typecheck(struct obd_device *, obd); \ @@ -554,8 +555,8 @@ extern struct rw_semaphore _lprocfs_lock; up_read(&(obd)->u.cli.cl_sem); -/* write the name##_seq_show function, call LPROC_SEQ_FOPS_RO for read-only - proc entries; otherwise, you will define name##_seq_write function also for +/* write the name##_seq_show function, call LPROC_SEQ_FOPS_RO for read-only + proc entries; otherwise, you will define name##_seq_write function also for a read-write proc entry, and then call LPROC_SEQ_SEQ instead. Finally, call lprocfs_obd_seq_create(obd, filename, 0444, &name#_fops, data); */ #define __LPROC_SEQ_FOPS(name, custom_seq_write) \ @@ -655,8 +656,8 @@ static inline void lprocfs_counter_init(struct lprocfs_stats *stats, const char *name, const char *units) { return; } -static inline __u64 lc_read_helper(struct lprocfs_counter *lc, - enum lprocfs_fields_flags field) +static inline __u64 lc_read_helper(struct lprocfs_counter *lc, + enum lprocfs_fields_flags field) { return 0; } static inline struct lprocfs_stats* lprocfs_alloc_stats(unsigned int num, @@ -670,9 +671,11 @@ static inline int lprocfs_register_stats(cfs_proc_dir_entry_t *root, const char *name, struct lprocfs_stats *stats) { return 0; } -static inline void lprocfs_init_ops_stats(int num_private_stats, +static inline void lprocfs_init_ops_stats(int num_private_stats, struct lprocfs_stats *stats) { return; } +static inline void lprocfs_init_ldlm_stats(struct lprocfs_stats *ldlm_stats) +{ return; } static inline int lprocfs_alloc_obd_stats(struct obd_device *obddev, unsigned int num_private_stats) { return 0; } @@ -740,7 +743,7 @@ static inline int lprocfs_rd_numrefs(char *page, char **start, off_t off, int count, int *eof, void *data) { return 0; } struct adaptive_timeout; -static inline int lprocfs_at_hist_helper(char *page, int count, int rc, +static inline int lprocfs_at_hist_helper(char *page, int count, int rc, struct adaptive_timeout *at) { return 0; } static inline int lprocfs_rd_timeouts(char *page, char **start, off_t off, @@ -795,7 +798,7 @@ int lprocfs_counter_write(struct file *file, const char *buffer, unsigned long count, void *data) { return 0; } static inline -__u64 lprocfs_stats_collector(struct lprocfs_stats *stats, int idx, +__u64 lprocfs_stats_collector(struct lprocfs_stats *stats, int idx, enum lprocfs_fields_flags field) { return (__u64)0; }