mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jan Blunck <jblunck@suse.de>
To: Linux-Kernel Mailinglist <linux-kernel@vger.kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Arnd Bergmann <arnd@arndb.de>, Alan Cox <alan@linux.intel.com>,
	Jan Blunck <jblunck@suse.de>,
	Christoph Hellwig <hch@infradead.org>,
	John Kacur <jkacur@redhat.com>
Subject: [PATCH 12/12] Documentation/filesystems/Locking: Update documentation on llseek() wrt BKL
Date: Fri,  9 Apr 2010 16:00:55 +0200	[thread overview]
Message-ID: <1270821655-4368-13-git-send-email-jblunck@suse.de> (raw)
In-Reply-To: <1270821655-4368-1-git-send-email-jblunck@suse.de>

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


      parent reply	other threads:[~2010-04-09 14:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-09 14:00 [PATCH 00/12] Multiple file->f_pos/nonseekable_open/llseek fixes (reposy) Jan Blunck
2010-04-09 14:00 ` [PATCH 01/12] osst: Update ppos instead of using file->f_pos Jan Blunck
2010-04-09 14:00 ` [PATCH 02/12] flash_read should update ppos instead of file->f_pos Jan Blunck
2010-04-09 14:00 ` [PATCH 03/12] eeprom_read()/eeprom_write() " Jan Blunck
2010-04-09 14:00 ` [PATCH 04/12] frv: remove "struct file *" argument from sysctl ->proc_handler Jan Blunck
2010-04-09 16:23   ` Alexey Dobriyan
2010-04-12  8:11     ` Jan Blunck
2010-04-09 14:00 ` [PATCH 05/12] mISDN: Remove unnecessary test on f_pos Jan Blunck
2010-04-09 14:00 ` [PATCH 06/12] zcrypt: Use nonseekable_open() Jan Blunck
2010-04-09 14:00 ` [PATCH 07/12] rtc-m41t80: " Jan Blunck
2010-04-09 14:00 ` [PATCH 08/12] Introduce noop_llseek() Jan Blunck
2010-04-09 14:00 ` [PATCH 09/12] osst: Use noop_llseek() instead of default_llseek() Jan Blunck
2010-04-09 14:00 ` [PATCH 10/12] st: " Jan Blunck
2010-04-09 14:00 ` [PATCH 11/12] Do not fallback to default_llseek() when readdir() uses BKL Jan Blunck
2010-04-09 14:00 ` Jan Blunck [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1270821655-4368-13-git-send-email-jblunck@suse.de \
    --to=jblunck@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=fweisbec@gmail.com \
    --cc=hch@infradead.org \
    --cc=jkacur@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®