lkml.org 
[lkml]   [2006]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectlock_kernel called under spinlock in NFS
Tree 5fdccf2354269702f71beb8e0a2942e4167fd992

[PATCH] vfs: *at functions: core

introduced a bug where lock_kernel() can be called from
under a spinlock. To trigger the bug one must have
CONFIG_PREEMPT_BKL=y and be using NFS heavily. It is
somewhat rare and, so far, haven't traced down the userland
sequence that causes the fatal path to be taken.

The bug was caused by the insertion into do_path_lookup()
of a call to file_permission(). do_path_lookup()
read-locks current->fs->lock for most of its operation.
file_permission() calls permission() which calls
nfs_permission(), which has one path through it
that uses lock_kernel().

I am not sure how to fix this bug. It is not clear what
the lock_kernel() call is protecting. Nor is it clear why,
as part of the introduction of the openat() etc services,
it was desirable to add a call to file_permission()
to do_path_lookup().

For now, I plan to turn off CONFIG_PREEMPT_BKL.

Regards,
Joe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-06-01 21:58    [W:2.017 / U:0.400 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site