diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2013-12-18 14:14:52 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-01-09 12:25:15 -0800 |
commit | 3d508835389d026df5a6cefa4209ee012abfb764 (patch) | |
tree | 672eb427141ef461b636c64504e94401555e99a0 /mm | |
parent | e93b100931a45490cd07960a1ec51d9d8e5100cb (diff) |
GFS2: Fix incorrect invalidation for DIO/buffered I/O
commit dfd11184d894cd0a92397b25cac18831a1a6a5bc upstream.
In patch 209806aba9d540dde3db0a5ce72307f85f33468f we allowed
local deferred locks to be granted against a cached exclusive
lock. That opened up a corner case which this patch now
fixes.
The solution to the problem is to check whether we have cached
pages each time we do direct I/O and if so to unmap, flush
and invalidate those pages. Since the glock state machine
normally does that for us, mostly the code will be a no-op.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm')
0 files changed, 0 insertions, 0 deletions