Re: (un)lock_kernel() ?

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

 



> According to Documentation/filesystems/Locking, ->get_sb() is called
> with the BKL held, but looking through the code, I'm not able to find
> where it is being taken.

I noticed that too. Unless I'm just dumb and can't see it, I'm not able to 
find any BKL references during filesystem mounting until you get into 
FS-specific code. I looked through everything from sys_mount through to 
vfs_kern_mount. Documentation/filesystems/porting talks about several 
situations where the VFS code was modified to not take the BKL, and BLK 
calls were added by FS non-maintainers for safety until each FS could be 
audited independently, but that wouldn't be the case, would it?

The ext2 code takes the BKL in three places: ext2_update_inode, 
write_super, and ext2_compat_ioctl. Starting with ext3, it's in 
ext3_compat_ioctl and ext3_fill_super, and the same with ext4.

I suppose the BKL does have to be held, somehow, somewhere, during 
mounting, or anybody using ext3 on a multiprocessor box would lock their 
system from unmatched locking calls. Unless the first unlock_kernel() 
would make the count -1 and the lock would bring it back to zero?
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux