Re: debugfs question...

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

 



Greg KH <greg@xxxxxxxxx> writes:

> On Mon, Oct 31, 2016 at 09:19:03PM +0100, Nicolai Stange wrote:
>> Hi,
>> 
>> Greg KH <greg@xxxxxxxxx> writes:
>> 
>> > On Mon, Oct 31, 2016 at 02:32:56PM -0400, Mike Marshall wrote:
>> 
>> >
>> > [adding Nicolai to thread...]
>> >
>> 
>> >> 
>> >> Our debugfs code results in three files in /sys/kernel/debug/orangefs.
>> >> One of the files gets deleted (debugfs_remove'd) and re-created
>> >> (debugfs_create_file'd) the first time someone fires up the
>> >> user-space part of Orangefs after a reboot.
>> >> 
>> >> We wondered what awful things might happen if someone was
>> >> reading the file across the delete/re-create, so I wrote a
>> >> program that opens the file, sleeps ten seconds and then
>> >> starts reading, and I fired up the Orangefs userspace part
>> >> during the sleep. I didn't see any problems there, we get
>> >> EIO when the read happens.
>> >> 
>> >> But... really bad things happen if someone unloads the Orangefs
>> >> module after my test program does the open and before the read
>> >> starts. So I picked another debugfs-using-filesystem (f2fs) and
>> >> pointed my tester-program at /sys/kernel/debug/f2fs/status, and
>> >> the same bad thing happens there.
>> 
>> [...]
>> 
>> >> [ 1240.144316] Call Trace:
>> >> [ 1240.144450]  [<ffffffff8122907f>] __fput+0xdf/0x1d0
>> >> [ 1240.144704]  [<ffffffff812291ae>] ____fput+0xe/0x10
>> >> [ 1240.144962]  [<ffffffff810b97de>] task_work_run+0x8e/0xc0
>> >> [ 1240.145243]  [<ffffffff8109b98e>] do_exit+0x2ae/0xae0
>> 
>> 
>> Thank you very much for this detailed report!
>> 
>> At least for the .../f2fs/status file, your splat at fput() can be
>> readily explained with the full proxy's releaser not being protected
>> against file removals in any way.
>> 
>> Partly this is on purpose, c.f. the comment in full_proxy_release().
>> 
>> However, I should have at least tried to acquire a reference to the
>> owning module before accessing some static struct file_operations or
>> even calling some ->release() within it. Meh.
>> 
>> The fix should be relatively trivial and I'll hopefully manage to
>> submit a patch tomorrow.
>> 
>> May I add your (Mike Marshall's?) Reported-by?
>
> Did this patch ever show up?

Not yet, sorry. I still have this on my list though and will definitely
be able to find some free time this weekend.

I hope this is Ok.

Thanks,

Nicolai


--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux