[PATCH 12/12] Documentation/filesystems/Locking: Update documentation on llseek() wrt BKL

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Jan Blunck
Date: Friday, April 9, 2010 - 7:00 am

The inode's i_size is not protected by the big kernel lock. Therefore it
does not make sense to recommend taking the BKL in filesystems llseek
operations. Instead it should use the inode's mutex or use just use
i_size_read() instead. Add a note that this is not protecting file->f_pos.

Signed-off-by: Jan Blunck <jblunck@suse.de>
Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: John Kacur <jkacur@redhat.com>
---
 Documentation/filesystems/Locking |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 06bbbed..3cfe165 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -429,8 +429,9 @@ check_flags:		no
 implementations.  If your fs is not using generic_file_llseek, you
 need to acquire and release the appropriate locks in your ->llseek().
 For many filesystems, it is probably safe to acquire the inode
-semaphore.  Note some filesystems (i.e. remote ones) provide no
-protection for i_size so you will need to use the BKL.
+mutex or just to use i_size_read() instead.
+Note: this does not protect the file->f_pos against concurrent modifications
+since this is something the userspace has to take care about.
 
 Note: ext2_release() was *the* source of contention on fs-intensive
 loads and dropping BKL on ->release() helps to get rid of that (we still
-- 
1.6.4.2

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 06/12] zcrypt: Use nonseekable_open(), Jan Blunck, (Fri Apr 9, 7:00 am)
[PATCH 07/12] rtc-m41t80: Use nonseekable_open(), Jan Blunck, (Fri Apr 9, 7:00 am)
[PATCH 08/12] Introduce noop_llseek(), Jan Blunck, (Fri Apr 9, 7:00 am)
[PATCH 12/12] Documentation/filesystems/Locking: Update do ..., Jan Blunck, (Fri Apr 9, 7:00 am)