[patch 36/40] mm: do_sync_mapping_range integrity fix

Greg KH
2009-01-23T06:29:50Z

[-- Attachment #1: mm-do_sync_mapping_range-integrity-fix.patch --]
[-- Type: text/plain, Size: 1042 bytes --]

2.6.27-stable review patch. If anyone has any objections, please let us know.

------------------

From: Nick Piggin <npiggin@suse.de>

commit ee53a891f47444c53318b98dac947ede963db400 upstream.

Chris Mason notices do_sync_mapping_range didn't actually ask for data
integrity writeout. Unfortunately, it is advertised as being usable for
data integrity operations.

This is a data integrity bug.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Chris Mason <chris.mason@oracle.com>
Cc: Dave Chinner <david@fromorbit.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
fs/sync.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/fs/sync.c
+++ b/fs/sync.c
@@ -287,7 +287,7 @@ int do_sync_mapping_range(struct address

if (flags & SYNC_FILE_RANGE_WRITE) {
ret = __filemap_fdatawrite_range(mapping, offset, endbyte,
- WB_SYNC_NONE);
+ WB_SYNC_ALL);
if (ret < 0)
goto out;
}