@@ -132,39 +132,35 @@ impl Bpf {
132132 Ok ( ( ) )
133133 }
134134
135+ fn load_lsm_prog ( & mut self , name : & str , hook : & str , btf : & Btf ) -> anyhow:: Result < ( ) > {
136+ let Some ( prog) = self . obj . program_mut ( name) else {
137+ bail ! ( "{name} program not found" ) ;
138+ } ;
139+ let prog: & mut Lsm = prog. try_into ( ) ?;
140+ prog. load ( hook, btf) ?;
141+ Ok ( ( ) )
142+ }
143+
135144 fn load_progs ( & mut self ) -> anyhow:: Result < ( ) > {
136145 let btf = Btf :: from_sys_fs ( ) ?;
137- let Some ( trace_file_open) = self . obj . program_mut ( "trace_file_open" ) else {
138- bail ! ( "trace_file_open program not found" ) ;
139- } ;
140- let trace_file_open: & mut Lsm = trace_file_open. try_into ( ) ?;
141- trace_file_open. load ( "file_open" , & btf) ?;
146+ self . load_lsm_prog ( "trace_file_open" , "file_open" , & btf) ?;
147+ self . load_lsm_prog ( "trace_path_unlink" , "path_unlink" , & btf)
148+ }
142149
143- let Some ( trace_path_unlink) = self . obj . program_mut ( "trace_path_unlink" ) else {
144- bail ! ( "trace_path_unlink program not found" ) ;
150+ fn attach_lsm_prog ( & mut self , name : & str ) -> anyhow:: Result < ( ) > {
151+ let Some ( prog) = self . obj . program_mut ( name) else {
152+ bail ! ( "{name} program not found" ) ;
145153 } ;
146- let trace_path_unlink: & mut Lsm = trace_path_unlink. try_into ( ) ?;
147- trace_path_unlink. load ( "path_unlink" , & btf) ?;
154+ let prog: & mut Lsm = prog. try_into ( ) ?;
155+ let id = prog. attach ( ) ?;
156+ self . links . push ( prog. take_link ( id) ?) ;
148157
149158 Ok ( ( ) )
150159 }
151160
152161 fn attach_progs ( & mut self ) -> anyhow:: Result < ( ) > {
153- let Some ( trace_file_open) = self . obj . program_mut ( "trace_file_open" ) else {
154- bail ! ( "trace_file_open program not found" ) ;
155- } ;
156- let trace_file_open: & mut Lsm = trace_file_open. try_into ( ) ?;
157- let id = trace_file_open. attach ( ) ?;
158- self . links . push ( trace_file_open. take_link ( id) ?) ;
159-
160- let Some ( trace_path_unlink) = self . obj . program_mut ( "trace_path_unlink" ) else {
161- bail ! ( "trace_path_unlink program not found" ) ;
162- } ;
163- let trace_path_unlink: & mut Lsm = trace_path_unlink. try_into ( ) ?;
164- let id = trace_path_unlink. attach ( ) ?;
165- self . links . push ( trace_path_unlink. take_link ( id) ?) ;
166-
167- Ok ( ( ) )
162+ self . attach_lsm_prog ( "trace_file_open" ) ?;
163+ self . attach_lsm_prog ( "trace_path_unlink" )
168164 }
169165
170166 fn detach_progs ( & mut self ) {
0 commit comments