On Wed, Sep 30, 2009 at 05:30:04PM +0200, Jan Blunck wrote: > default_llseek() is using the big kernel lock. There are only two users of > that function that can both can be converted to use generic_file_llseek(). So > get rid of default_llseek() completely. I don't think it's that easy. The are two crucial differences between generic_file_llseek and default_llseek: - default_llseek uses the BKL for locking, and generic_file_llseek uses i_mutex - generic_file_llseek checks inode->i_sb->s_maxbytes and default_llseek doesn't. The first could cause tons of problems, although it most likely doesn't. The second is much nastier. There are lots of non-regular file objects residing on filesystems. For character devices or synthetics files the pagecache limitation doesn't make any sense at all and I'm pretty sure it will break things. For directories it might or might now although in general we really need i_mutex in directories to protect against namespace operations. The only way to get rid of default_llseek is to audit all file_operations instances, and make sure they all have a lssek method that makes sense or call nonseekable_open during open to make sure we error out early in in vfs_llseek. This taks could be split by e.g. taking care of character devices first, or files on procfs. -- 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