On Thu, Mar 31, 2016 at 2:12 PM, nick <xerofoify@gmail.com> wrote:
On 2016-03-31 12:30 PM, Carlo Caione wrote:
On Thu, Mar 31, 2016 at 5:08 PM, Roger H Newell <newell.roger@gmail.com> wrote:
On Thu, Mar 31, 2016 at 12:18 PM, nick <xerofoify@gmail.com> wrote:
On 2016-03-31 08:34 AM, Roger H Newell wrote: In the fs/file_table.c file as from the root directory of your kernel tree change in the function, get_empty_flip change these lines: if (unlikely(error)) { file_free(f); return ERR_PTR(error); } to: if (unlikely(error)) return ERR_PTR(error); and tell me if that fixes your issue. Nick
Seems to have worked, the error is is gone and I can mount the USB device.
That's not a fix, you are leaking f.
Good catch seems: static inline void file_free(struct file *f) { percpu_counter_dec(&nr_files); if (f) call_rcu(&f->f_u.fu_rcuhead, file_free_rcu); } Roger can you tell this and see if it fixes your issue. The file is fs/file_table.c from the root of the kernel directory. Thanks, Nick
I reverted the previous change, and applied the if(f) test in file_free. There are no error messages in dmseg and I can mount the USB device.