lock_kernel called under spinlock in NFS

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

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux