diff options
author | Anton Altaparmakov <aia21@cam.ac.uk> | 2006-06-22 17:47:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-22 18:05:55 -0400 |
commit | f893afbe1262e27e91234506f72e17716190dd2f (patch) | |
tree | 4352204e9c53e278f7d494d2564f8ae78244feef /fs | |
parent | 5d2170ad1092b2940138dc3ae4a944d7bf87ae9e (diff) |
[PATCH] NTFS: Critical bug fix (affects MIPS and possibly others)
Many thanks to Pauline Ng for the detailed bug report and analysis!
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ntfs/file.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c index c63a83e8da98..36e1e136bb0c 100644 --- a/fs/ntfs/file.c +++ b/fs/ntfs/file.c | |||
@@ -1484,14 +1484,15 @@ static inline void ntfs_flush_dcache_pages(struct page **pages, | |||
1484 | unsigned nr_pages) | 1484 | unsigned nr_pages) |
1485 | { | 1485 | { |
1486 | BUG_ON(!nr_pages); | 1486 | BUG_ON(!nr_pages); |
1487 | /* | ||
1488 | * Warning: Do not do the decrement at the same time as the call to | ||
1489 | * flush_dcache_page() because it is a NULL macro on i386 and hence the | ||
1490 | * decrement never happens so the loop never terminates. | ||
1491 | */ | ||
1487 | do { | 1492 | do { |
1488 | /* | 1493 | --nr_pages; |
1489 | * Warning: Do not do the decrement at the same time as the | ||
1490 | * call because flush_dcache_page() is a NULL macro on i386 | ||
1491 | * and hence the decrement never happens. | ||
1492 | */ | ||
1493 | flush_dcache_page(pages[nr_pages]); | 1494 | flush_dcache_page(pages[nr_pages]); |
1494 | } while (--nr_pages > 0); | 1495 | } while (nr_pages > 0); |
1495 | } | 1496 | } |
1496 | 1497 | ||
1497 | /** | 1498 | /** |