Using the BKL in llseek() does not protect the inode's i_size from modification since the i_size is protected by a seqlock nowadays. Since default_llseek() is already using the i_size_read() wrapper it is not the BKL which is serializing the access here. The access to file->f_pos is not protected by the BKL either since its access in vfs_write()/vfs_read() is not protected by any lock. If the BKL is not protecting anything here it can clearly get removed. Signed-off-by: Jan Blunck <jblunck@xxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> Cc: Frédéric Weisbecker <fweisbec@xxxxxxxxx> Cc: John Kacur <jkacur@xxxxxxxxxx> --- fs/read_write.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/fs/read_write.c b/fs/read_write.c index 3ac2898..0e491cc 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -107,7 +107,6 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin) { loff_t retval; - lock_kernel(); switch (origin) { case SEEK_END: offset += i_size_read(file->f_path.dentry->d_inode); @@ -128,7 +127,6 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin) retval = offset; } out: - unlock_kernel(); return retval; } EXPORT_SYMBOL(default_llseek); -- 1.6.4.2 -- 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