Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

update Documentation/filesystems/Locking for 2.6.27 changes

In the 2.6.27 circle ->fasync lost the BKL, and the last remaining
->open variant that takes the BKL is also gone. ->get_sb and ->kill_sb
didn't have BKL forever, so updated the entries while we're at that.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Christoph Hellwig and committed by
Linus Torvalds
adaae721 82a28c79

+4 -11
+4 -11
Documentation/filesystems/Locking
··· 144 144 void (*kill_sb) (struct super_block *); 145 145 locking rules: 146 146 may block BKL 147 - get_sb yes yes 148 - kill_sb yes yes 147 + get_sb yes no 148 + kill_sb yes no 149 149 150 150 ->get_sb() returns error or 0 with locked superblock attached to the vfsmount 151 151 (exclusive on ->s_umount). ··· 409 409 unlocked_ioctl: no (see below) 410 410 compat_ioctl: no 411 411 mmap: no 412 - open: maybe (see below) 412 + open: no 413 413 flush: no 414 414 release: no 415 415 fsync: no (see below) 416 416 aio_fsync: no 417 - fasync: yes (see below) 417 + fasync: no 418 418 lock: yes 419 419 readv: no 420 420 writev: no ··· 430 430 For many filesystems, it is probably safe to acquire the inode 431 431 semaphore. Note some filesystems (i.e. remote ones) provide no 432 432 protection for i_size so you will need to use the BKL. 433 - 434 - ->open() locking is in-transit: big lock partially moved into the methods. 435 - The only exception is ->open() in the instances of file_operations that never 436 - end up in ->i_fop/->proc_fops, i.e. ones that belong to character devices 437 - (chrdev_open() takes lock before replacing ->f_op and calling the secondary 438 - method. As soon as we fix the handling of module reference counters all 439 - instances of ->open() will be called without the BKL. 440 433 441 434 Note: ext2_release() was *the* source of contention on fs-intensive 442 435 loads and dropping BKL on ->release() helps to get rid of that (we still