Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dlm: remove lkb from callback tracepoints

Stop using lkb structs in the callback tracepoints so that lkb
references are not needed. This prepares for separating lkb
structs from callbacks.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>

authored by

Alexander Aring and committed by
David Teigland
1131f339 609ed5bd

+33 -31
+7 -2
fs/dlm/ast.c
··· 171 171 { 172 172 struct dlm_lkb *lkb = container_of(work, struct dlm_lkb, lkb_cb_work); 173 173 struct dlm_ls *ls = lkb->lkb_resource->res_ls; 174 + struct dlm_rsb *rsb = lkb->lkb_resource; 174 175 void (*castfn) (void *astparam); 175 176 void (*bastfn) (void *astparam, int mode); 176 177 struct dlm_callback *cb; ··· 191 190 bastfn = lkb->lkb_bastfn; 192 191 193 192 if (cb->flags & DLM_CB_BAST) { 194 - trace_dlm_bast(ls, lkb, cb->mode); 193 + trace_dlm_bast(ls->ls_global_id, lkb->lkb_id, 194 + cb->mode, rsb->res_name, 195 + rsb->res_length); 195 196 lkb->lkb_last_bast_time = ktime_get(); 196 197 lkb->lkb_last_bast_mode = cb->mode; 197 198 bastfn(lkb->lkb_astparam, cb->mode); 198 199 } else if (cb->flags & DLM_CB_CAST) { 199 200 lkb->lkb_lksb->sb_status = cb->sb_status; 200 201 lkb->lkb_lksb->sb_flags = cb->sb_flags; 201 - trace_dlm_ast(ls, lkb); 202 + trace_dlm_ast(ls->ls_global_id, lkb->lkb_id, 203 + cb->sb_flags, cb->sb_status, 204 + rsb->res_name, rsb->res_length); 202 205 lkb->lkb_last_cast_time = ktime_get(); 203 206 castfn(lkb->lkb_astparam); 204 207 }
+7 -2
fs/dlm/user.c
··· 805 805 struct dlm_lkb *lkb; 806 806 DECLARE_WAITQUEUE(wait, current); 807 807 struct dlm_callback *cb; 808 + struct dlm_rsb *rsb; 808 809 int rv, ret; 809 810 810 811 if (count == sizeof(struct dlm_device_version)) { ··· 888 887 } 889 888 spin_unlock(&proc->asts_spin); 890 889 890 + rsb = lkb->lkb_resource; 891 891 if (cb->flags & DLM_CB_BAST) { 892 - trace_dlm_bast(lkb->lkb_resource->res_ls, lkb, cb->mode); 892 + trace_dlm_bast(rsb->res_ls->ls_global_id, lkb->lkb_id, 893 + cb->mode, rsb->res_name, rsb->res_length); 893 894 } else if (cb->flags & DLM_CB_CAST) { 894 895 lkb->lkb_lksb->sb_status = cb->sb_status; 895 896 lkb->lkb_lksb->sb_flags = cb->sb_flags; 896 - trace_dlm_ast(lkb->lkb_resource->res_ls, lkb); 897 + trace_dlm_ast(rsb->res_ls->ls_global_id, lkb->lkb_id, 898 + cb->sb_flags, cb->sb_status, rsb->res_name, 899 + rsb->res_length); 897 900 } 898 901 899 902 ret = copy_result_to_user(lkb->lkb_ua,
+19 -27
include/trace/events/dlm.h
··· 189 189 190 190 TRACE_EVENT(dlm_bast, 191 191 192 - TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb, int mode), 192 + TP_PROTO(__u32 ls_id, __u32 lkb_id, int mode, 193 + const char *res_name, size_t res_length), 193 194 194 - TP_ARGS(ls, lkb, mode), 195 + TP_ARGS(ls_id, lkb_id, mode, res_name, res_length), 195 196 196 197 TP_STRUCT__entry( 197 198 __field(__u32, ls_id) 198 199 __field(__u32, lkb_id) 199 200 __field(int, mode) 200 - __dynamic_array(unsigned char, res_name, 201 - lkb->lkb_resource ? lkb->lkb_resource->res_length : 0) 201 + __dynamic_array(unsigned char, res_name, res_length) 202 202 ), 203 203 204 204 TP_fast_assign( 205 - struct dlm_rsb *r; 206 - 207 - __entry->ls_id = ls->ls_global_id; 208 - __entry->lkb_id = lkb->lkb_id; 205 + __entry->ls_id = ls_id; 206 + __entry->lkb_id = lkb_id; 209 207 __entry->mode = mode; 210 208 211 - r = lkb->lkb_resource; 212 - if (r) 213 - memcpy(__get_dynamic_array(res_name), r->res_name, 214 - __get_dynamic_array_len(res_name)); 209 + memcpy(__get_dynamic_array(res_name), res_name, 210 + __get_dynamic_array_len(res_name)); 215 211 ), 216 212 217 213 TP_printk("ls_id=%u lkb_id=%x mode=%s res_name=%s", ··· 220 224 221 225 TRACE_EVENT(dlm_ast, 222 226 223 - TP_PROTO(struct dlm_ls *ls, struct dlm_lkb *lkb), 227 + TP_PROTO(__u32 ls_id, __u32 lkb_id, __u8 sb_flags, int sb_status, 228 + const char *res_name, size_t res_length), 224 229 225 - TP_ARGS(ls, lkb), 230 + TP_ARGS(ls_id, lkb_id, sb_flags, sb_status, res_name, res_length), 226 231 227 232 TP_STRUCT__entry( 228 233 __field(__u32, ls_id) 229 234 __field(__u32, lkb_id) 230 - __field(u8, sb_flags) 235 + __field(__u8, sb_flags) 231 236 __field(int, sb_status) 232 - __dynamic_array(unsigned char, res_name, 233 - lkb->lkb_resource ? lkb->lkb_resource->res_length : 0) 237 + __dynamic_array(unsigned char, res_name, res_length) 234 238 ), 235 239 236 240 TP_fast_assign( 237 - struct dlm_rsb *r; 241 + __entry->ls_id = ls_id; 242 + __entry->lkb_id = lkb_id; 243 + __entry->sb_flags = sb_flags; 244 + __entry->sb_status = sb_status; 238 245 239 - __entry->ls_id = ls->ls_global_id; 240 - __entry->lkb_id = lkb->lkb_id; 241 - __entry->sb_flags = lkb->lkb_lksb->sb_flags; 242 - __entry->sb_status = lkb->lkb_lksb->sb_status; 243 - 244 - r = lkb->lkb_resource; 245 - if (r) 246 - memcpy(__get_dynamic_array(res_name), r->res_name, 247 - __get_dynamic_array_len(res_name)); 246 + memcpy(__get_dynamic_array(res_name), res_name, 247 + __get_dynamic_array_len(res_name)); 248 248 ), 249 249 250 250 TP_printk("ls_id=%u lkb_id=%x sb_flags=%s sb_status=%d res_name=%s",