summaryrefslogtreecommitdiff
path: root/fs/ncpfs
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2011-12-01 17:27:39 -0600
committerGreg Kroah-Hartman <gregkh@suse.de>2011-12-09 08:54:29 -0800
commit686da49e5aa50117d8d824c579c3fd9e0318fbc6 (patch)
treec489f0761a86b4f4f3b6741bbcaa56114d734317 /fs/ncpfs
parentf06b70aa96019273ed984f76c79ad786ac216f7e (diff)
xfs: don't serialise direct IO reads on page cache checks
commit 0c38a2512df272b14ef4238b476a2e4f70da1479 upstream. There is no need to grab the i_mutex of the IO lock in exclusive mode if we don't need to invalidate the page cache. Taking these locks on every direct IO effective serialises them as taking the IO lock in exclusive mode has to wait for all shared holders to drop the lock. That only happens when IO is complete, so effective it prevents dispatch of concurrent direct IO reads to the same inode. Fix this by taking the IO lock shared to check the page cache state, and only then drop it and take the IO lock exclusively if there is work to be done. Hence for the normal direct IO case, no exclusive locking will occur. Signed-off-by: Dave Chinner <dchinner@redhat.com> Tested-by: Joern Engel <joern@logfs.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Alex Elder <aelder@sgi.com> Cc: Ben Myers <bpm@sgi.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs/ncpfs')
0 files changed, 0 insertions, 0 deletions