How to get list of all files open in the system

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, all.
 
I'm writing a kernel module. One of its tasks requires getting full paths of all open files in the system.
 
My first solution essentially looks like:
 for_each_process_thread(process, thread)
  iterate_fd(files, 0, my_callback, NULL);
my_callback calls d_path for passed file->f_path to get its full path.
 
But this solution has obvious problems:
   A. It will skip files which were opened directly from kernel code (using filp_open for example);
   B. It iterates over fd_table for each thread, performing a lot of unnecessary work (invoking my_callback multiple times for one file).
 
My questions are:
1) Is there any bettter way to get full paths of all open files?
2) If there is no better way, what kind of locking should i use
   a) to protect access to task list when invoking for_each_process_thread?
   b) to protect access to thread's fd_table when invoking iterate_fd?
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux